РефератыИнформатикаРаРазработка микропроцессорной системы контроля

Разработка микропроцессорной системы контроля

СОДЕРЖАНИЕ


ПОСТАНОВКА ЗАДАЧИ И ИСХОДНЫЕ ДАННЫЕ


1 Описание назначения и устройства микропроцессорной системы контроля


2 Описание функциональной схемы микропроцессорной системы контроля


3 Расчет статической характеристики канала измерения


4 Разработка алгоритма функционирования микропроцессорной системы контроля


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


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


ПОСТАНОВКА ЗАДАЧИ И ИСХОДНЫЕ ДАННЫЕ


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


· индикацию значений концентрации и режима работы системы


· сигнализацию превышения предельно допустимого значения концентрации


· автоматическое отключение (блокировку) подачи газа при превышении концентрации в течение заданного времени


· сброс блокировки и подачу газа по команде с клавиатуры при допустимом значении концентрации


– предельное значение концентрации;


#АЦП = 0 – номер входа АЦП;


– задержка срабатывания блокировки;


# OUT 1 = Р1.1 – номер линии для управления сигнализацией;


# OUT 2 = Р1.2 – номер линии для управления блокировкой;


"1" + "*"– комбинация нажатия кнопок для сброса блокировки.


1 ОПИСАНИЕ НАЗНАЧЕНИЯ И УСТРОЙСТВА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ


Микропроцессорная система контроля служит для индикации значения концентрации и режима работы системы, сигнализации превышения предельно допустимого значения концентрации, автоматического отключения (блокировки) подачи газа при превышении концентрации в течение заданного времени, сброса блокировки и подачи газа по команде с клавиатуры при допустимом значении концентрации.


Микропроцессорная система контроля состоит из микропроцессорной системы, клавиатуры, индикатора, двух сигнализирующих лампочек (L1 «сигнализация», L2 «блокировка») и усилителя.


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


Первый выход микропроцессорной системы подключен к сигнализирующей лампочке L1 «сигнализация». Второй выход микропроцессорной системы соединен с сигнализирующей лампочкой L2 «блокировка» и электромагнитным клапаном, служащим для подачи газа в аппарат. Третий и четвертый выходы микропроцессорной системы соединены с клавиатурой и индикатором.


2 ОПИСАНИЕ ФУНКЦИОНАЛЬНОЙ СХЕМЫ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ




Электромагнитный клапан KLможет находиться в двух состояниях: 0 – клапан закрыт и 1 – клапан открыт.


Сигнализирующие лампочки L1 «сигнализация», L2 «блокировка» также могут находиться только в двух состояниях: 0 – лампочка не горит, 1 – лампочка горит.


Сигналом с клавиатуры, поступающим на второй вход микропроцессорной системы, можно осуществлять подачу газа клавишей «2», переход в режим «ожидание» клавишей «1» и снятие блокировки клавишами "1" + "*".


Микропроцессорная система может работать в трех режимах:


regim 1 – ожидание сигнала «рабочий режим» при закрытом электромагнитном клапане;


regim2 – подача газа в аппарат до заданного значения концентрации с переходом после превышения заданного значения концентрации в течение заданного времени в regim3 (блокировка) с возможностью подачи сигнала «ожидание» с клавиатуры;


regim3 – автоматическая блокировка подачи газа в аппарат при превышении заданного значения концентрации в течение заданного времени с возможностью перехода в рабочий режим при нажатии клавиш "1" + "*" и при допустимом значении концентрации.


3 РАСЧЕТ СТАТИЧЕСКОЙ ХАРАКТЕРИСТИКИ КАНАЛА ИЗМЕРЕНИЯ


Напряжение на выходе термокондуктометрического газоанализатора:


,


где - концентрация монооксида углерода;


- радиус нити;


- радиус камеры детектора;


- ток нити;


- длина нити;


- сопротивление нити;


- температурный коэффициент сопротивления платиновой проволоки;


- теплопроводность воздуха;


- теплопроводность монооксида углерода.



Статическая характеристика вторичного преобразователя имеет вид:


,


где - коэффициент усиления; - выходной сигнал усилителя.


;


Статическая характеристика канала измерения будет выглядеть следующим образом:



4 РАЗРАБОТКА АЛГОРИТМА ФУНКЦИОНИРОВАНИЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ КОНТРОЛЯ


На рисунке 1 представлена блок-схема алгоритма функционирования микропроцессорной системы контроля.


В блоке 1 производится настройка индикатора для отображения информации и инициализация таймера/счетчика 0.


В блоке 2 задается regim 1 и устанавливается предельное значение концентрации 0,2.


В блоке 3 производится проверка, является ли regim 1 текущим режимом. При невыполнении этого условия программа переходит к блоку 8.


В блоке 4 производится закрытие электромагнитного клапана.


В блоке 5 осуществляется отключение сигнализирующих лампочек.


В блоке 6 производится проверка, нажата ли клавиша «2». При выполнении этого условия программа переходит к блоку 7, где устанавливается regim2, в противном случае – к блоку 3.


В блоке 8 производится проверка, является ли regim2 текущим режимом. При невыполнении этого условия программа переходит к блоку 18.


В блоке 9 выполняется подпрограмма индикации С(х).


В блоке 10 производится открытие электромагнитного клапана и присваивается начальное значение переменной time=0.


В блоке 12 производится проверка, нажата ли клавиша «1». При выполнении этого условия программа переходит к блоку 13, где устанавливается regim 1.


В блоке 14 выполняется проверка превышения концентрации при regim 2. При невыполнении этого условия программа переходит к блоку 8.


В блоке 15 производится включение сигнализирующей лампочки L1.


В блоке 16 выполняется проверка превышения заданного времени. При не выполнении этого условия программа переходит к блоку 14, в противном случае – к блоку 17, где устанавливается regim 3.


В блоке 18 производится проверка, является ли regim3 текущим режимом. При невыполнении этого условия программа переходит к блоку 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);


returnrd_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=0x00;


ADCON=(ADCON&0xF8)|(chan&0x07);


while (ADCON&0x08);


if (ADCON&0x10){nx=(ADCH<<2)|(ADCON>>6);


Ux=2.5*nx/1024;


Cx=Ux*5.6/(18.56+0.57*Ux);


if (Cx>1) Cx=1;


if (Cx<0) Cx=0;


wrc(0xC0);


printf("Cx=%02.3f",Cx);


ADCON=ADCON&0xEF;}


else


ADCON=ADCON|0x08;


return Cx;}


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с.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка микропроцессорной системы контроля

Слов:1556
Символов:14168
Размер:27.67 Кб.