Разработка микропроцессорной системы контроля
Разработка микропроцессорной системы контроля
3 СОДЕРЖАНИЕ ПОСТАНОВКА ЗАДАЧИ И ИСХОДНЫЕ ДАННЫЕ 1 Описание назначения и устройства микропроцессорной системы контроля 2 Описание функциональной схемы микропроцессорной системы контроля 3 Расчет статической характеристики канала измерения 4 Разработка алгоритма функционирования микропроцессорной системы контроля 5 Разработка программы для микропроцессорной системы контроля СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ПОСТАНОВКА ЗАДАЧИ И ИСХОДНЫЕ ДАННЫЕ Разрабатываемая МП система должна осуществлять контроль концентрации газа и обеспечивать: · индикацию значений концентрации и режима работы системы · сигнализацию превышения предельно допустимого значения концентрации · автоматическое отключение (блокировку) подачи газа при превышении концентрации в течение заданного времени · сброс блокировки и подачу газа по команде с клавиатуры при допустимом значении концентрации - предельное значение концентрации; #АЦП = 0 - номер входа АЦП; - задержка срабатывания блокировки; # OUT 1 = Р1.1 - номер линии для управления сигнализацией; # OUT 2 = Р1.2 - номер линии для управления блокировкой; "1" + "*"- комбинация нажатия кнопок для сброса блокировки. 1 ОПИСАНИЕ НАЗНАЧЕНИЯ И УСТРОЙСТВА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ Микропроцессорная система контроля служит для индикации значения концентрации и режима работы системы, сигнализации превышения предельно допустимого значения концентрации, автоматического отключения (блокировки) подачи газа при превышении концентрации в течение заданного времени, сброса блокировки и подачи газа по команде с клавиатуры при допустимом значении концентрации. Микропроцессорная система контроля состоит из микропроцессорной системы, клавиатуры, индикатора, двух сигнализирующих лампочек (L1 «сигнализация», L2 «блокировка») и усилителя. Термокондуктометрический газоанализатор соединен через усилитель с первым входом микропроцессорной системы. Сигналом с клавиатуры, поступающим на второй вход микропроцессорной системы, можно осуществлять включение или выключение электромагнитного клапана и сброс блокировки. Первый выход микропроцессорной системы подключен к сигнализирующей лампочке L1 «сигнализация». Второй выход микропроцессорной системы соединен с сигнализирующей лампочкой L2 «блокировка» и электромагнитным клапаном, служащим для подачи газа в аппарат. Третий и четвертый выходы микропроцессорной системы соединены с клавиатурой и индикатором. 2 ОПИСАНИЕ ФУНКЦИОНАЛЬНОЙ СХЕМЫ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ
3 Электромагнитный клапан KL может находиться в двух состояниях: 0 - клапан закрыт и 1 - клапан открыт. Сигнализирующие лампочки L1 «сигнализация», L2 «блокировка» также могут находиться только в двух состояниях: 0 - лампочка не горит, 1 - лампочка горит. Сигналом с клавиатуры, поступающим на второй вход микропроцессорной системы, можно осуществлять подачу газа клавишей «2», переход в режим «ожидание» клавишей «1» и снятие блокировки клавишами "1" + "*". Микропроцессорная система может работать в трех режимах: regim 1 - ожидание сигнала «рабочий режим» при закрытом электромагнитном клапане; regim 2 - подача газа в аппарат до заданного значения концентрации с переходом после превышения заданного значения концентрации в течение заданного времени в regim 3 (блокировка) с возможностью подачи сигнала «ожидание» с клавиатуры; regim 3 - автоматическая блокировка подачи газа в аппарат при превышении заданного значения концентрации в течение заданного времени с возможностью перехода в рабочий режим при нажатии клавиш "1" + "*" и при допустимом значении концентрации. 3 РАСЧЕТ СТАТИЧЕСКОЙ ХАРАКТЕРИСТИКИ КАНАЛА ИЗМЕРЕНИЯ Напряжение на выходе термокондуктометрического газоанализатора: , где - концентрация монооксида углерода; - радиус нити; - радиус камеры детектора; - ток нити; - длина нити; - сопротивление нити; - температурный коэффициент сопротивления платиновой проволоки; - теплопроводность воздуха; - теплопроводность монооксида углерода. Статическая характеристика вторичного преобразователя имеет вид: , где - коэффициент усиления; - выходной сигнал усилителя. ; Статическая характеристика канала измерения будет выглядеть следующим образом: 4 РАЗРАБОТКА АЛГОРИТМА ФУНКЦИОНИРОВАНИЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ На рисунке 1 представлена блок-схема алгоритма функционирования микропроцессорной системы контроля. В блоке 1 производится настройка индикатора для отображения информации и инициализация таймера/счетчика 0. В блоке 2 задается regim 1 и устанавливается предельное значение концентрации 0,2. В блоке 3 производится проверка, является ли regim 1 текущим режимом. При невыполнении этого условия программа переходит к блоку 8. В блоке 4 производится закрытие электромагнитного клапана. В блоке 5 осуществляется отключение сигнализирующих лампочек. В блоке 6 производится проверка, нажата ли клавиша «2». При выполнении этого условия программа переходит к блоку 7, где устанавливается regim 2, в противном случае - к блоку 3. В блоке 8 производится проверка, является ли regim 2 текущим режимом. При невыполнении этого условия программа переходит к блоку 18. В блоке 9 выполняется подпрограмма индикации С(х). В блоке 10 производится открытие электромагнитного клапана и присваивается начальное значение переменной time=0. В блоке 12 производится проверка, нажата ли клавиша «1». При выполнении этого условия программа переходит к блоку 13, где устанавливается regim 1. В блоке 14 выполняется проверка превышения концентрации при regim 2. При невыполнении этого условия программа переходит к блоку 8. В блоке 15 производится включение сигнализирующей лампочки L1. В блоке 16 выполняется проверка превышения заданного времени. При не выполнении этого условия программа переходит к блоку 14, в противном случае - к блоку 17, где устанавливается regim 3. В блоке 18 производится проверка, является ли regim 3 текущим режимом. При невыполнении этого условия программа переходит к блоку 3. В блоке 19 производится закрытие электромагнитного клапана и выполняется подпрограмма индикации С(х). В блоке 20 производится проверка превышения предельного значения концентрации. При выполнении этого условия программа переходит к блоку 21, в котором включает сигнализирующие лампочки L1 и L2, иначе - к блоку 22, где включает сигнализирующую лампочку L2 и выключает L1. В блоке 23 производится проверка нажатия клавиш "1" + "*" при допустимом значении концентрации. При невыполнении этого условия программа переходит к блоку 18, иначе - к блоку 24, в котором устанавливается regim 2 . На рисунке 2 представлена блок-схема алгоритма опроса клавиатуры. В блоке 1 инициализируется переменная scan для опроса первого столбца клавиатуры. В блоке 2 производится проверка окончания сканирования последнего столбца. Если условие выполняется, то программа переходит к блоку 4, где осуществляется выход из подпрограммы.. Если нет, то программа переходит к блоку 3. В блоке 3 производится вывод значения переменной scan в порт P4 для сканирования клавиатуры. В блоке 5 осуществляется ввод с порта P4 и присвоение этого значения переменной key. В блоке 6 выполняется проверка факта нажатия кнопки в опрашиваемом столбце. При обнаружении нажатой кнопки выполняется блок 7, в котором производится возвращение в основную программу значения переменной key, в противном случае - блок 8. Блок 8 осуществляет модификацию переменной scan путем сдвига влево для сканирования следующего столбца. В блоке 9 производится инкрементация переменной scan. Далее программа переходит к блоку 2. На рисунке 3 представлена блок-схема алгоритма индикации С(х). В блоке 1 инициализируется переменная chan. В блоке 2 производится проверка равенства бита ADCS=1 регистра ADCON. Если условие выполняется, то АЦП не готов к выполнению новых преобразований и программа возвращается к блоку 2. Если нет, то программа переходит к блоку 3. В блоке 3 устанавливаются биты ADR0-ADR2 для выбора канала АЦП. В блоке 4 производится проверка равенства бита ADCI=1 регистра ADCON. Если условие не выполняется, то программа переходит к блоку 6, где осуществляется установление бита ADCS в 0, с последующим переходом к блоку 11. Если да, то программа переходит к блоку 5. В блоке 5 выполняется присвоение переменной nx факта нажатия кнопки в опрашиваемом столбце. В блоке 7 осуществляется расчет напряжения Ux. В блоке 8 осуществляется расчет текущего значения концентрации Сх. В блоке 9 производится индикация значения концентрации Сх. В блоке 10 выполняется сброс бита ADCI в 0. В блоке 11 возвращается в основную программу значения переменной Сх. На рисунке 4 представлена блок-схема алгоритма обработки прерывания. В блоке 1 инкрементируется переменная time. В блоке 2 производится установка старшего байта таймера 0. В блоке 3 устанавливается младший байт таймер 5 РАЗРАБОТКА ПРОГРАММЫ ДЛЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ HELLO.C Copyright 1995-1999 Keil Software, Inc. #include <REG552.H> #include <stdio1.h> /* prototype declarations for I/O functions */ unsigned char xdata wr_ir _at_ 0x7ff0 ; unsigned char xdata rd_ir _at_ 0x7ff1 ; unsigned char xdata wr_dr _at_ 0x7ff2 ; unsigned char xdata rd_dr _at_ 0x7ff3 ; unsigned char scan; unsigned char key; char chan=0x00; float Ux,Cx, C0=0.2; int nx, time=0, regim=1; bit KL=0; void wrc (unsigned char ir) { unsigned char bf; do{bf=rd_ir&0x80;} while (bf!=0); wr_ir =ir; } unsigned char rdc (void) { unsigned char bf; do{bf=rd_ir&0x80;} while (bf!=0); return rd_ir;} void wrd (unsigned char dr) { unsigned char bf; do{bf=rd_ir&0x80;} while (bf!=0); wr_dr =dr; } unsigned char rdd (void) { unsigned char bf; do{bf=rd_ir&0x80;} while (bf!=0); return rd_dr;} // вывод одного символа void putchar(unsigned char cm) { if((cm & 0xC0) == 0xC0) cm = tcod[cm & 0x3F]; wrd (cm);} // подпрограмма вывода строки по-русски void puts ( const unsigned char *str ) { unsigned char i = 0; while(str[i] != 0) {putchar(str[i]); i++;}} The main C function. Program execution starts here after stack initialization. unsigned char klav(void) { scan=0xFE; while (scan!=0xF7){ P4=scan; key=P4; if ((key&0x78)!=0x78) {return key;} scan=scan<<1; scan++; return 0;} float C (void)(chan&0x07); while (ADCON&0x08); if (ADCON&0x10)nx=(ADCH<<2) else ADCON=ADCON void INT_1(void) interrupt 1 {time++; TH0=0x4С;TL0=0x50;} void main (void) { // инициализация HD44780 wrc (0x38); //2 строки, 5*8 точек, wrc (0x06); // вывод слева-направо wrc (0x01); // очистка wrc (0x0c); // экран вкл., курсор выкл. IEN0=0x82; TMOD=0x01; TR0=1; while (1) {wrc(0x80); printf("измерение концентрации:"); while (regim==1) {wrc(0xCB); printf("ожидание "); KL=0; P1=0x00; if (klav()==0xF5){regim=2;} while (regim==2) {wrc(0xCB); printf("рабочий режим "); C();KL=1; time=0; P1=0x00; if (klav()==0xF6) {regim=1;} while ((C()>C0)&(regim==2)) {P1=0x02; wrc(0xCB); printf("cигнализация"); if (time>200) {regim=3;} while (regim==3) {wrc(0xCB); printf("блокировка "); KL=0; if (C()>C0) {P1=0x06;} else {P1=0x04;} if ((klav()==0xB4)&(C()<C0)){regim=2;} СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Архитектура микроконтроллеров семейства MCS-51: конспект лекций/ Бояринов А.Е., Дьяков И.А. Тамбов: Изд-во Тамб. гос. тех. ун-та, 2005. 64с. 2. Микропроцессоры в системах контроля: методические указания/ Бояринов А.Е. Тамбов: Изд-во Тамб. гос. тех. ун-та, 2005. 44с.
|