Разработка микропроцессорной системы удаленного мониторинга многоканального источника напряжения

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,48 Мб
  • Опубликовано:
    2013-02-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка микропроцессорной системы удаленного мониторинга многоканального источника напряжения

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Брянский государственный технический университет

КАФЕДРА «ЭРЭ и ЭС»









Пояснительная записка к курсовой работе

по дисциплине: «Отладочные средства микропроцессорных систем»

на тему: «Разработка микропроцессорной системы удаленного мониторинга многоканального источника напряжения»

БГТУ.210106.000 ПЗ









Брянск 2012

Содержание

Введение

1. Функциональная схема

2. Выбор датчиков

3. Выбор АЦП и микроконтроллера

4. Реализация HART протокола

5. Индикация

6. Сторожевой таймер

7. Разработка печатной платы

8. Листинг

Заключение

Литература

Введение

В данной курсовой работе необходимо было разработать систему Система удаленного мониторинга многоканального источника постоянного напряжения по HART протоколу с индикацией текущего значения тока нагрузки по каждому каналу. Целью данной работы является приобретение навыков в написании программ на языке высокого уровня С, работы в различных программных комплексах.

1. Функциональная схема

Рис. 1 - Функциональная схема

С датчиков тока снимается значение тока. АЦП преобразует эти значения в цифровую форму. Микроконтроллер обрабатывает эти значения и посылает их на индикатор. ЦАП переводит в аналоговую форму ток, так что, ноль ампер с датчика преобразуется в 4 миллиампера, 25 ампер-20 миллиампер. HART модем принимает сообщения от главного устройства и производит демодуляцию, передает полученное сообщение в микроконтроллер. После обработки микроконтроллером полученного сообщения он посылает ответ, который модулируется модемом.

Рис. 2 - Общая блок-схема программы

2. Выбор датчиков

По заданию необходимо знать значение тока от 4-х источников постоянного напряжения:1)+5В(5-20А), 2)+12В(0.1-1А), 3)+15В(0.5-2А),4) -15В(0.5-2А).

Выберем датчик ACS712 , принцип работы которого основан на эффекте Холла, с линейным выходом по напряжения.

Рис. 3 - Подключение датчика

Для первого источника напряжения ACS712ELCTR-30A-T -диапазон измеряемого тока ±30А.

Рис. 4 - График зависимости выходного напряжения от измеряемого тока

Для остальных - ACS712ELCTR-05B-T-диапазон измеряемого тока ±5А.

Рис. 5 - График зависимости выходного напряжения от измеряемого тока

3. Выбор АЦП и микроконтроллера

Для реализации поставленной задачи выберем микроконтроллер семейства МК-51 AT89C51RD2.

Отличительные особенности:

Совместимость с 80C52 Совместимость с инструкциями 8051 Шесть 8-разрядных порта ввода-вывода (64-выводная или 68-выводная версии) Четыре 8-разрядных порта ввода-вывода (44 -выводная версия) Три 16-разрядных таймера-счетчика 256 байт сверхоперативной памяти 9 источников запроса на прерывание с 4 уровнями приоритета.

Интегрированный контроль питания (POR/PFD) для контроля внутреннего питания.

Внутрисхемное программирование ISP использует стандартное питание Vсс.

Загрузочное ПЗУ содержит процедуры низкого уровня для программирования флэш-памяти и исходный последовательный загрузчик

Высокопроизводительная архитектура 40 МГц в стандартном режиме 20 МГц режиме X2 (6 тактов в машинном цикле)

кБ встроенной флэш-памяти программ/данных Побайтная и постраничная (128 байт) очистка и запись 100000 циклов записи.

Встроенное расширенное ОЗУ емкостью 1792 байт (XRAM) Программно выбираемый размер (0, 256, 512, 768, 1024, 1792 байт) 768 байт выбирается при сбросе для совместимости с T89C51RD2.

Встроенные 2048 байт ЭППЗУ для хранения данных (только у AT89C51ED2) 100000 циклов записи.

Двойной указатель данных

Переменная длина инструкции MOVX для доступа к медленному ОЗУ и периферийным устройствам.

Улучшенный режим X2 с независимыми настройками ЦПУ и каждого периферийного устройства.

Клавиатурный интерфейс на порте 1 с функциям прерывания.интерфейс (режим ведущий/подчиненный)

-разрядный предделитель тактовых импульсов

-разрядный программируемый счетный массив Быстродействующий выход Функции сравнения и захвата фронтов Широтно-импульсная модуляция Совместимый сторожевой таймер

Вывод асинхронного сброса

Полнодуплексный улучшенный УАПП с встроенным генератором скорости передачи

Малые электромагнитные излучения (запрещен ALE)

Аппаратный сторожевой таймер (однократно разрешается после сброса), флаг выключения питания

Режимы управления энергопотреблением: режим холостого хода (Idle), экономичный (Power-down) режим

Диапазон напряжения питания: 2.7В…5.5В

Промышленный температурный диапазон(-40 …+85°C)

Для обработки сигнала с датчиков целесообразно выбрать один четырёхканальный АЦП ADS7841 со следующими параметрами:

напряжение питания: 2.7-5 В

разрядность: 12 бит

число каналов: 4

последовательный интерфейс

возможность 8 битной разрядности

В качестве источника опорного напряжения для АЦП используем микросхему ИОН AD586M (+5В), запитав её от источника +15В.

Рис. 6 - Схема подключения ADS7841

Рис. 7 - Блок-схема программы АЦП

Рис. 8 - Интерфейс АЦП

В соответствие с алгоритмом и даташитом напишем программу.

Линия DIN: старт-бит устанавливаем в 1.

А2,А1,А0-меняем значения в соответствие с датчиком.устанавливаем в 1(12 битный режим).., PD0-1(не включаем режим энергосбережения)



while (B>0)

{KOD_ADC[x]=KOD_ADC[x]<<1;_ADC[x]|=DOUT; =1;

DCLK=0;-;

}

В этом цикле получаем 12 разрядов, которые последовательно передаёт АЦП. Вначале идет старший разряд-поэтому сдвигаем его 11 раз.В переменной KOD_ADC[x] вначале записаны нули, поэтому после выполнения операции ИЛИ с DOUT(бит, который передает АЦП), в KOD_ADC[x] записывается 1,если DOUT=1, и остается 0 если DOUT=0.

х-это номер датчика значение напряжения которого оцифровывается.++ увеличиваем на единицу после опроса АЦП.

В следующем цикле переключаем АЦП на те, датчики, которые еще не опросили. Делаем это с помощью изменения переменных А2,А1,А0.

if(x==1)

{A2=1;A1=0;A0=1;}

{(x==2)

{A2=0;A1=1;A0=0;} // переключаем ацп

{(x==3)

{A2=1;A1=1;A0=0;}

{2=0;A1=0;A0=1;

x=0;

}}}

Ввиду отсутствия данного АЦП в протеусе и необходимости какого-нибудь моделирования, было произведено моделирование в Keil, путем изменения Р1.4 и дописанием нескольких строчек кода для вывода на порты полученного значения.

Было промеделировано напряжение 3.333В-т.е. Р1.4 изменялся так 101010101010. На порт Р3-целое значение Р5,Р4-дробное

Рис. 9 - Код АЦП в Keil

Рис. 10 - Сигналы в Keil

4. Реализация HART протокола

HART-протокол - цифровой промышленный протокол передачи данных. Модулированный цифровой сигнал, позволяющий получить информацию о состоянии датчика или осуществить его настройку, накладывается на токовую несущую аналоговой токовой петли уровня 4-20 мА. Таким образом, питание датчика, снятие его первичных показаний и вторичной информации осуществляется по двум проводам. HART-протокол это практически стандарт для современных промышленных датчиков. Приём сигнала о параметре и настройка датчика осуществляется с помощью HART-модема или HART-коммуникатора. К одной паре проводов может быть подключено несколько датчиков. HART протокол использует принцип частотной модуляции для обмена данными на скорости 1200 бод. Для передачи логической «1» HART использует один полный период частоты 1200 Гц, а для передачи логического «0» - два неполных периода 2200 Гц. HART составляющая накладывается на токовую петлю 4-20 мА. Поскольку среднее значение синусоиды за период равно "0", то HART сигнал никак не влияет на аналоговый сигнал 4-20 мА. HART протокол построен по принципу «Ведущий - Ведомый», то есть полевое устройство отвечает по запросу системы.

Для передачи и приема будем использовать UART микроконтроллера в 3-м режиме. В этом режиме через TXD передаются или из RXD принимаются 11 бит информации: старт-бит, 8 бит данных, программируемый девятый бит и стоп-бит. Частоты приема/передачи задаётся таймером.

Таймер будем использовать таймер в режиме автоперезагрузки. Посчитаем число, которое нужно записать в TH1, для обеспечения скорости 1200 бит/c.

f = (2SMOD/32)*(fрез/12)/(256-(TH1))=>=232

Выбор частоты резонатора fрез= 11,0592 МГц.

Для частотной модуляции сообщения используем HART Modem DS8500.

Параметры DS8500

однокристальное решение для полудуплексной передачи, 1200 бод FSK-модуляция и демодуляция;

цифровая сигнальная обработка обеспечивает надежное детектирование входного сигнала в зашумленной среде;

синусоидальный выходной сигнал с минимальными гармоническими искажениями;

всего лишь нескольких внешних компонентов уменьшает площадь устройства;

стандартная тактовая частота 3,6864 МГц;

отвечает требованиям спецификации HART на физическом уровне;

напряжение питания в диапазоне 2,7…3,6 В;

максимальный ток потребления 285 мкА;

миниатюрный 20-выводной корпус TQFN с размерами 5×5×0,8 мм.

Когда начинается передача сигнал OCD модем устанавливает в 1.

Программа для передачи и приема будет реализована в подпрограмме прерываний от сигнала OCD, а т.к. прерывание должно осуществляется от логического 0, а активный OCD=1, то поставим логический инвертор SN74LVC1G04.

Рис. 11 - Схема подключения DS8500

Организовывать прием-передачу HART сообщения будем в соответствии с рис. 12.

Рис. 12 - Пример транзакции

В качестве ЦАП используем AD421 с токовым выходом 4 мА - 20 мА

- завершенный преобразователь цифрового кода в токовый сигнал, разработанный для рынка промышленных систем управления. Он обеспечивает высокую точность, низкую стоимость решения задачи генерации токового сигнала на одной микросхеме и поставляется в компактном 24-выводном SOIC или PDIP корпусах.

Диапазон выходных токов может программироваться на 4 мА-20мА, 0 мА-20 мА или на расширенный диапазон 0 мА-24 мА. AD420 может генерировать и сигнал напряжения с настраиваемым диапазоном 0 В-5 В, 0 В-10 В, ±5 В или ±10 В с дополнительным внешним буферным усилителем.

Наличие последовательного интерфейса со скоростью 3.3 Мбит/с минимизирует стоимость устройств с гальванической развязкой и обеспечивает простое присоединение к микропроцессорам. Он может использоваться в трехпроводном или асинхронном режимах, выход последовательной передачи может использоваться для организации шлейфного подключения нескольких ЦАП на той же стороне изоляционного барьера.использует технологию сигма-дельта цифро-аналогового преобразования для обеспечения 16-разрядного преобразования и низкой стоимости. Время установления выхода во всем диапазоне шкалы составляет 0.1% за 3 мс. Единственно требуемые навесные компоненты (для нормальной переходной схемы защиты) - два недорогих конденсатора для встроенного фильтра.

Рис. 13 - Подключение AD420

По ЦАП будем передавать значение тока датчика таким образом что:

А-4мА

А-20мА.

Т.е. нужно умножить значение тока датчика на 0.64 и прибавить 4.

Для проверки правильности установления режима UART и скорости передачи проведем симуляцию в протеусе.

Передаем число 1:

Рис. 14 - Результат моделирования передачи по UART

Рис. 15 - Блок-схема программы передачи-приема HART

Для суммирование 2-х токов и применим операционный усилитель тока OPA660

Рис. 16 - Модель в OrCADE OPA660

Рис. 17 - Выходной ток

5. Индикация

В качестве индикатора выберем LM032L.

Текст программы:


Вначале необходимо инициализировать дисплей-это выполняет подпрограмма LCD_init(). Далее идет уже собственно передача на дисплей значения тока.

Рис. 18 -Результат моделирования индикатора

6. Сторожевой таймер

Для защиты от зависания используем аппаратно встроенный в микроконтроллер Watchdog Timer.

Включение(и перезагрузка) таймера производится так:

=0x1E; =0xE1;

Если данный код не выполняется установленное число машиных циклов, то происходит перезагрузка микроконтроллера.

Запишем в регистр WDTPRG число 7. Тогда число машиных циклов в течение которых таймер должен перезагрузиться будет рано 221-1, что при нашей частоте (11,0592МГц) соотвествует 2.268 секундам.

7. Разработка печатной платы

Плату системы управления разрабатываем на двухстороннем фольгированном стеклотекстолите FR-4, толщиной 1.5 мм.

микроконтроллер программа таймер плата

Рис. 19 - Расположение корпусов

8. Листинг

C51 COMPILER V9.50a STARTUP 12/27/2012 01:05:46 PAGE 1

C51 COMPILER V9.50a, COMPILATION OF MODULE STARTUPMODULE PLACED IN STARTUP.OBJINVOKED BY: C:\Keil\C51\BIN\C51.EXE STARTUP.C LARGE BROWSE DEBUG OBJECTEXTEND TABS(2)level source

#include <at89c51xd2.h>

2 #include <intrins.h> // Библиотека, содержащая _nop_

#include <stdio.h>

#include <stdlib.h>

#define E_Strobe E = 1; _nop_(); E = 0

///-----------АЦП--------------////

sbit CS=P1^0;

sbit DCLK= P1^1;

sbit DIN= P1^2;

sbit BUSY= P1^3;

sbit DOUT=P1^4;

///-----------HART Modem--------------////

//sbit RxD=P3^0; //ввод

// sbit TxD=P3^1; //вывод

// sbit OCD=P3^2;

sbit RTS=P3^3;

sbit RST=P3^6;

///-----------ЦАП--------------////

sbit CLOCK=P1^5;

sbit DATA= P1^6;

sbit LATCH= P1^7;

///-----------Индикатор--------------////

sbit RS=P2^0;

sbit RW=P2^1;

sbit E=P2^3;

sbit BUSY_I=P0^7; //!!

///-----------глобальные переменные--------------////

31 float I[4];

unsigned char txtbuf1[10];

unsigned char txtbuf2[10];

unsigned char txtbuf3[10];

unsigned char txtbuf4[10];

//// подпрограмма HART

void HART () interrupt 0 using 1 // от INT0 P3.2 1 банк

{unsigned char nomer_byte=0, Vsego_byte=100; // Vsego_byte пока неизвестно

1 unsigned char PREAMBLE=0xFF,PR=0, STRT=6, BCNT=2, STATUS[2] ,CHK;

1 unsigned char COM,ADDR; // команда адрес

1 unsigned char PRIEM[10],bit_chetnosti[10];

44 1

1 /// переменные ЦАП

1 int kod_DAC[4];

47 1 char sdvig=15;

1 double I_mA[4];

1 int kod_na_1mA=2048;

1

1

1

1 RST=0; // reset модем

1

1 COMPILER V9.50a STARTUP 12/27/2012 01:05:46 PAGE 2

56 1 ///// приём

57 1

1

1

1 TMOD = 0x20; //1 таймер в режиме автоперезагрузки

1 TH1 = 232; //скорость передачи 1200 бит\с

1 TR1=1; // запуск таймера

63 1

1 while(nomer_byte<Vsego_byte)

65 1 {REN=1; // разрешение приема

2 while(RI==0) {}

2

2 PRIEM[nomer_byte]=SBUF;

2 bit_chetnosti[nomer_byte]=TB8;// узнаём бит четности для проверки

70 2 ACC=PRIEM[nomer_byte];// узнаём P

2 if(P!=bit_chetnosti[nomer_byte])

72 2 {goto Exit; //ошибка, четность

3}

2 RI=0;

75 2

2 nomer_byte++;

2 if(nomer_byte==8) // BCNT

2 {Vsego_byte=0+10; //Vsego_byte=PRIEM[8]+10;

79 3 ADDR=PRIEM[6]; // узнали адрес датчика

3 COM=PRIEM[7]; // узнали команду

3}}

1

1 if(PRIEM[9] !=(PRIEM[5]^PRIEM[6]^PRIEM[7]^PRIEM[8])) // проверяем контр сумму

1 {goto Exit; //несоответсвие контр сумме

85 2}

86 1

1 STATUS[0]=0; // всё ок

1 STATUS[1]=0;

1 REN=0; // запрет приема

90 1

1

1 /////// передачa

1 RTS=1; // идет передача в модем

94 1 CHK=STRT^ADDR^COM^BCNT^STATUS[0]^STATUS[1]; // контрольная сумма=искл-или

1

1

1 TH1 = 232;

98 1 while(PR<5) // передаем преамбулу

1 {ACC=PREAMBLE; //для контроля четности

100 2 TB8=P;

2 SBUF=PREAMBLE;

2 while(TI==0) {}

103 2 TI=0;

2 PR++;

2}

1

1 ACC=STRT; //для контроля четности

1 TB8=P;

1 SBUF=STRT; // передаем STRT

110 1 while(TI==0) {}

1 TI=0;

1

113 1 ACC=ADDR;

114 1 TB8=P;

1 SBUF=ADDR; // передаем адрес

116 1 while(TI==0) {}

1 TI=0; COMPILER V9.50a STARTUP 12/27/2012 01:05:46 PAGE 3

1

1 ACC=COM;

1 TB8=P;

1 SBUF=COM; //

1 while(TI==0) {}

1 TI=0;

1

1 ACC=BCNT;

126 1 TB8=P;

1 SBUF=BCNT; //количество оставшихся байт

128 1 while(TI==0) {}

1 TI=0;

1

1 ACC=STATUS[0];

1 TB8=P;

1 SBUF=STATUS[0]; //

1 while(TI==0) {}

1 TI=0;

1

1 ACC=STATUS[1];

1 TB8=P;

1 SBUF=STATUS[1]; //

1 while(TI==0) {}

141 1 TI=0;

142 1 ACC=CHK;

1 TB8=P;

1 SBUF=CHK; // контрольная сумма

145 1 while(TI==0) {}

1 TI=0;

1

1

1 ///----------ЦАП------------////

1 I_mA[ADDR]=0.64*I[ADDR]+4; //

1 kod_DAC[ADDR]=I_mA[ADDR]*kod_na_1mA; // передаваемый код ЦАП

152 1

1 // начало передачи

1 CLOCK=0;

1 DATA=0;

1 LATCH=0;

1

1 LATCH=1;

1 DATA=(kod_DAC[ADDR]>>sdvig)&1; //выделяем старшй бит

160 1 P3=DATA; //

1

1 LATCH=0;

1 CLOCK=1;

1 CLOCK=0;

1 sdvig--;

1

1 while(sdvig>=0)

1 {DATA=(kod_DAC[ADDR]>>sdvig)&1;

169 2 CLOCK=1;

2 CLOCK=0;

2 sdvig--;

2}

1

1 Exit:

1 REN=0; // запрет приема

176 1 TR1=0; // выкл таймера

1 RTS=0; // когда 1 идет передача в модем

178 1}

COMPILER V9.50a STARTUP 12/27/2012 01:05:46 PAGE 4

//индикация

void check_busy(void)

{do

1 {P0 = 0xff;

2 RS = 0;

2 RW = 1;

2 E = 1;

2} while(BUSY==1);

1 E = 0;

1}

void write_command(unsigned char com)

{check_busy();

1 RS = 0;

1 RW = 0;

1 P0 = com;

197 1 E_Strobe;

1}

void write_data(unsigned char dat)

{check_busy();

1 RS = 1;

1 RW = 0;

1 P0 = dat;

1 E_Strobe;

1}

void LCD_init(void)

{write_command(0x38); // 8-bits, 2 lines, 7x5 dots

1 write_command(0x0C); // no cursor, no blink, enable display

1 write_command(0x06); // auto-increment on

1 write_command(0x01); // clear screen

1}

void string(unsigned char ad, unsigned char *s)

{write_command(ad);

1 while(*s>0)

1 {write_data(*s++);

2}

1}








226

///////////////

void main()

{int KOD_ADC[4];

1 char B=12,x=0, A2=0,A1=0,A0=1;

1 float U[4], Razreshenie_ADC;

1 int N1, N2, N3,N4; //для индикации

233 1

1 Razreshenie_ADC=5.0/4096;

1

1 SM0=1;

1 SM1=1; // режим 3 последовательного порта старт-бит(0), 8бит, бит ТВ8, стоп-бит(1)

1 EA=1; // разрешение прерываний

1 EX0=1; // разрешение прерываний от INT0

1 RTS=0; // когда 1 идет передача в модем

241 1 COMPILER V9.50a STARTUP 12/27/2012 01:05:46 PAGE 5

1 WDTPRG=7; //2.09 секунд при 12 MHz watch dogs timer

1

1 ////////АЦП

1 while (1)

1 {P1=0xF0; //DCLK=0;DIN=0; CS=0; BUSY=0;DOUT=1;

2 KOD_ADC[x]=0;

2

2 DIN=1; // start

2 DCLK=1;

2 DCLK=0; //

2 DIN=A2; // A2

253 2 DCLK=1;

2 DCLK=0;

2 DIN=A1; // A1

2 DCLK=1;

2 DCLK=0;

2 DIN=A0; // A0

2 DCLK=1;

2 DCLK=0;

2 DIN=0; // MODE

2 DCLK=1;

2 DCLK=0;

2 DIN=1; // SGL см TABLE1

2 DCLK=1;

2 DCLK=0;

2 DIN=1; // PD1 см TABLE5

2 DCLK=1;

2 DCLK=0;

2 DIN=1; // PD0

2 DCLK=1;

2 DCLK=0;

2 DIN=0;

2 BUSY=1;

2 DCLK=1;

2 DCLK=0;

2 BUSY=0;

2

2 while (B>0)

2 {KOD_ADC[x]=KOD_ADC[x]<<1;

3 KOD_ADC[x]|=DOUT;

282 3 DCLK=1;

3 DCLK=0;

3 B--;

3}

2 B=12;

2 DCLK=1;

2 DCLK=0;

2 DCLK=1;

2 DCLK=0;

2 DCLK=1;

2 DCLK=0;

2

2 CS=1;

2 BUSY=1;

2 DOUT=1;

2

2 U[x]=Razreshenie_ADC*KOD_ADC[x]; //напряжение на датчике

2

2 if(x==0) {

3 I[x]=(U[x]-2.5)*15; // ACS712ELCTR-30A-T для 5В

3}

2 else{COMPILER V9.50a STARTUP 12/27/2012 01:05:46 PAGE 6

3 I[x]=(U[x]-2.5)*5; // ACS712ELCTR-05B-T

3}

2

2 x++;

2 if(x==1)

2 {A2=1;A1=0;A0=1;}

310 2

2 if(x==2)

2 {A2=0;A1=1;A0=0;}

2 // переключаем АЦП

2 if(x==3)

2 {A2=1;A1=1;A0=0;}

2

2 if(x==4)

2 {A2=0;A1=0;A0=1;

3 x=0;

3}

2

2 WDTRST=0x1E; // включаем(перезагружаем) watch dogs timer

2 WDTRST=0xE1;

2

2 //индикация

2

2 LCD_init();

2 N1 = sprintf(txtbuf1,"%.3f",I[0]);

2 N2 = sprintf(txtbuf2,"%.3f",I[1]);

2 N3 = sprintf(txtbuf3,"%.3f",I[2]);

2 N4= sprintf(txtbuf4,"%.3f",I[3]);

2 string(0x83, txtbuf1 );

2 string(0x8E, txtbuf2 );

2 string(0xC3, txtbuf3 );

2 string(0xCE, txtbuf4 );

2 string(0x80, "I1=");

2 string(0x89, "A");

2 string(0x8B, "I2=");

339 2 string(0x93, "A");

2 string(0xC0, "I3=");

2 string(0xC8, "A");

2 string(0xCB, "I4=");

2 string(0xD3, "A");

2}}

INFORMATION: STATIC OVERLAYABLESIZE = 1720 ----SIZE = 23 ----SIZE = 56 96SIZE = ---- ----SIZE = ---- ----SIZE = ---- ----SIZE = ---- ----OF MODULE INFORMATION.COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)

Заключение

Итогом выполнения курсовой работы является разработка системы удаленного мониторинга. В ходе выполнения были проанализированы возможные варианты решения поставленной задачи с обоснованием выбора функциональной схемы и элементной базы системы. Была спроектирована принципиальная схема системы с описанием ее работы. В результате были составлены алгоритм и программа работы микроконтроллера, написанная на языке программирования высокого уровня С. В завершении было предоставлено конструктивное исполнение системы в виде печатной платы. Также была произведена проверка работоспособности устройства.

Литература

1. Александров К.К. Электротехнические чертежи и схемы / К.К. Александров, Е.Г. Кузьмина. - М.: Энергоатомиздат, 1990. - 288 с.

Похожие работы на - Разработка микропроцессорной системы удаленного мониторинга многоканального источника напряжения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!