Принцип действия системы сбора информации с датчиков

Проектирование схемы сбора информации со ста двадцати восьми датчиков на основе микроконтроллера. Разработка листинга программы для контроллера, обрабатывающей поступающие данные с накоплением их во Flash-памяти с учетом точного времени и текущей даты.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.12.2012
Размер файла 891,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

21

Размещено на http://www.allbest.ru

Принцип действия системы сбора информации с датчиков

Содержание

Техническое задание

1.Объект автоматизации

1.1 Параметры устройства

1.2 Описание и анализ функций, выполняемых МПС устройства

1.3 Микропроцессорная система на основе ОМК Intel 80C51

2. Принцип действия устройства

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

2.2 Принципиальная схема

2.3 Описание элементов схемы

3. Программное обеспечение МПС

3.1 Алгоритм работы программы

3.2 Листинг программы

Заключение

Литература

Приложение

Техническое задание

Необходимо спроектировать схему на основе микроконтроллера для сбора информации с 128 датчиков. Информация поступает в виде логических уровней 0В-0 или 5В-1. Датчики поочерёдно опрашиваются, и сравнивается их текущее состояние с предыдущим, в случае изменения состояния информация (дата, время и состояние) сохраняется во Flash-памяти, подключённой к микроконтроллеру. Устройство должно иметь часы реального времени. Начальную установку времени производить при помощи ЭВМ, подключая устройство через интерфейс RS232.Далее устройство само ведет счет времени, и даты в не полном формате( число, месяц).

Также необходимо написать программу для контроллера, которая будет обрабатывать поступающие данные, накапливать их во Flash-памяти и принимать от ЭВМ значение точного времени и текущей даты.

В дальнейшем по команде компьютера данные об изменении состояния накопленные во флеш-памяти передаются по последовательному порту в компьютер.

микроконтроллер датчик информация

1.Объект автоматизации

В качестве объекта автоматизации была выбрана система, состоящая из 128 датчиков, и регистратора. Каждый датчик может иметь два состояния, единицу и ноль. Каждый датчик должен быть пронумерован, и регистратор должен при изменении состояния датчика записывать во Flash - память время и код события. Регистратор также должен иметь часы реального времени, с дискретностью не более 1 секунды, связь с ПК. Flash - память может быть как внешней, так и встроена в регистратор.

1.1 Параметры устройства

Число датчиков - 128;

Часы реального времени - 1 год;

Дискретность часов - 1 секунда;

Связь с ЭВМ - СОМ-порт, интерфейс RS232;

Скорость обмена информацией с ЭВМ - 2400 Бод.

Ёмкость Flash - памяти - 32кБ;

1.2 Описание и анализ функций, выполняемых МПС устройства

Микропроцессорная система устройства позволяет производить сбор информации от 128 датчиков, регистрировать изменение состояния каждого из них, и записывать его во Flash, а также производить приём точного времени от ЭВМ по интерфейсу RS232.

1.3 Обоснование выбора микропроцессора

Основанием для выбора данного микроконтроллера послужили его высокие характеристики и возможности, а также возможность написания программы на языке высокого уровня ПЛМ. Контроллер имеет следующие технические характеристики:

- наличие достаточного количества портов ввода-вывода;

- наличие достаточного количества таймеров-счётчиков;

- наличие УАПП;

- возможность подключения внешней памяти данных;

- полученное задание.

В пользу выбора МК51 послужила возможность аппаратного подключения внешней памяти данных, в отличие от контроллеров семейства PIC Micro.

2. Принцип действия устройства

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

Функциональная схема устройства приведена на рис.1.

Микроконтроллер сканирует датчики, и фиксирует изменение состояния датчиков во Flash - памяти, при переполнении Flash - памяти микроконтроллер сигнализирует об этом светодиодным индикатором и начинает производить запись в другую микросхему памяти. На таймере/счётчике микроконтроллера реализованы часы реального времени, установка точного значения времени производится при помощи ЭВМ, через интерфейс RS232.

2.2 Описание Принципиальная схема

Принципиальная схема приведена на чертеже КП03.2101.303.00.Э3

Микроконтроллер DD2 устанавливает на порту Р0 данные, соответствующие номеру опрашиваемого датчика, и принимает полученный от него сигнал по линии Р3.5 порта Р3. Четырьмя младшими битами адреса выбирается один из 16 датчиков, подключённых к мультиплексорам DD1 - DD8, а тремя старшими выбирается один из 8 мультиплексоров, подключённых к мультиплексору DD9. В случае изменения состояния датчика он производит запись данных в микросхемы Flash DD13 и DD14. Операции записи/чтения происходят следующим образом: сначала микроконтроллер устанавливает адрес на портах Р0 и Р2, затем сигналом ALE защелкивает младший байт адреса в регистре DD12 и активизирует одну из линий, OE или WE, в зависимости от того, что необходимо, произвести, чтение или запись, и производит обмен данными через порт Р0.

Резисторы R3 и R4 необходимы для ограничения тока, протекающего через светодиоды VD2 и VD3.

Конденсаторы С1, С2 и кварцевый резонатор ZQ1 необходимы для работы тактового генератора микроконтроллера.

Резистор R2 служит для подачи лог.1 на вход DEMA, этим обеспечивается использование резидентной памяти программ микроконтроллера DD11.

Конденсатор С3 и резистор R1 представляют собой схему формирования сигнала сброса при включении питания, диод VD1 предназначен для разряда конденсатора С3 при исчезновении напряжения питания.

2.3 Описание элементов схемы

Микросхема DD10 - преобразователь уровня ТТЛ - СОМ-порт, необходима для согласования электрических уровней микроконтроллера и COM-порта компьютера. Уровень логического нуля и единицы у микроконтроллера равны 0 и +5В, а у COM-порта компьютера +12В и -12В соответственно. Микросхема питается напряжением +5В, а напряжения ±12В она генерирует с помощью встроенных преобразователей напряжения

Микросхема DD11 - Intel 80C51 - однокристальный 8-ми разрядный микроконтроллер, он имеет следующие аппаратные особенности:

· внутреннее ОЗУ объемом 128 байт;

· четыре двунаправленных побитно настраиваемых восьмиразрядных порта ввода-вывода;

· два 16-разрядных таймера-счетчика;

· встроенный тактовый генератор;

· адресация 64 КБайт памяти программ и 64 Кбайт памяти данных;

· две линии запросов на прерывание от внешних устройств;

· интерфейс для последовательного обмена информацией с другими микроконтроллерами или персональными компьютерами.

Регистр-защелка DD12 - служит для фиксации младшего байта адреса при операциях записи/чтения внешней памяти. При высоком уровне на входе информация проходит на выход микросхемы, а при подаче низкого уровня она «защёлкивается» на выходах микросхемы.

Микросхемы DD1-DD9 - мультиплексор-селектор 16>1 со стробированием.

Микросхема Flash - памяти AT29C257.

· производитель - Atmel Corporation

· ёмкость - 32кБ х 8

· Время доступа при чтении - 70нс

· напряжение программирования - 5В

· автоматическое стирание перед записью

· цикл записи - 10мс

· ток потребления: 50мА - активное состояние

300мА - режим х.х.

· КМОП и ТТЛ совместимый выход

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

· количество циклов перезаписи не менее 10 000

· Эмуляция микросхемы ОЗУ

· Низкая потребляемая мощность

3. Программное обеспечение МПС

3.1 Алгоритм работы программы

Общий алгоритм работы программы приведен на рис.2.

При включении контроллера происходит его инициализация, в которой задаётся частота переполнения таймера Т/С0, определятся скорость передачи информации через УАПП, устанавливаются приоритеты прерываний. После этого контроллер по очереди начинает опрашивать датчики. При обнаружении изменения состояния датчика контроллер записывает во Flash номер датчика, код события и время, когда это событие произошло.

Микроконтроллер имеет часы реального времени, реализованные на Т/С0, алгоритм работы подпрограммы часов реального времени представлен на рис. 3.

Для связи с ЭВМ используется УАПП, алгоритм работы УАПП представлен на рис.4.

Рисунок 2. Алгоритм работы главной программы.

Рисунок 3. Алгоритм работы часов реального времени

(прерывания от таймера 0).

Рисунок 4. Алгоритм работы подпрограммы обработки

прерывания от УАПП.

Рис4.

Листинг программы

start: do;

include(reg51.dcl)

declare

DZY byte (65526) auxiliry,

(adr1, adr2) word,/* адрес считываемой ячейки, адрес записываемой ячейки*/

P bit (128),

(temp, delay, t, sec, min, hour, day, month, num_dat, f1,f2) byte,

m(13) byte, ms(16) byte, /* m-массив для месяцев года, ms-массив с предыдущими состояниями датчиков*/

ms11 word constant(1272),

comand byte, /*команды от компьютера*/

input byte, /* считываемый вход*/

adr word;

/*-------------------------------------------------------*/

Init: procedure;

delay=20;

t=0;

sec=0;

min=0;

hour=0;

day=0;

month=1;

m(1)=31;/*январь*/

m(2)=28;/*февраль*/

m(3)=31;/*март*/

m(4)=30;/*апрель*/

m(5)=31;/*май*/

m(6)=30;/*июнь*/

m(7)=31;/*июль*/

m(8)=31;/*август*/

m(9)=30;/*сентябрь*/

m(10)=31;/*октябрь*/

m(11)=30;/*ноябрь*/

m(12)=31;/*декабрь*/

P0=0ffh;/*настройка портов на вход*/

P1=0ffh;/* настройка портов на вход*/

P2=0ffh;/* настройка портов на вход*/

P3=0ffh; /* настройка портов на вход*/

/*XTAL=12MHz кварцевый резонатор*/

TMOD=21h; /*Счётчики Т/С0 - 1 реж и Т/С1 во 2-м режиме*/

SCON=60h; /*UART во втором режиме*/

TL0=0AFh; /*Переполнение счётчика 0*/

TH0=03Ch; /* через 50мс при 12МГц*/

TL1=0F3h; /*счётчик1 - генератор частоты*/

TH1=0F3h; /*обмена скорости с ЭВМ, 2400 Бод*/

IE=09Ah; /*Разрешение прерываний 1001 1010 разрешение прерывания от УАПП*/

IP=2; /*Приоритеты прерываний: Т/С0=1, Т/С2=0, SBUF=0*/

End ;

/*----------------------------------------------------------*/

timer0:procedure interrupt1;

do;

/*часы реального времени*/

TL0=0AFh; /*Переполнение счётчика 0 через 50мс при 12МГц*/

TH0=03Ch; /*загрузили 15535 в таймер, переполнение ч/з 50000*/

if ((t=t+1)=20) /* 1 секунда после 20 срабатываний*/

then

do;

t=0;

if (f1=1) then P3.3=not(P3.3); /*бит порта*/

if (f2=1) then P3.4= notP3.4;

sec=sec+1; then

if (sec)=60 /*подсчёт секунд*/

do;

sec=0;

min=min+1; then

if (min)=60 /*подсчёт минут*/

do;

min=0;

hour= hour+1; then

if (hour)=24 /*подсчёт часов*/

do;

hour=0;temp=m(month)+1;

day= day+1; then

if (day)=temp) /*подсчёт дней*/

do;

day=1;

month= month+1; then

if (month)=13 /*подсчёт месяцев*/

month=1; do;

end;

end;

end;

end;

end;

end timer0;

/*---------------------------------------------------------*/

uchar Scan_Dat(uchar ndat) /* процедура сканирования датчика */

uchar nbyte,nbit,p,s;

call init;

do while 1;

nbyte=ndat/8; /*вычисляем номер байта*/

nbit=(ndat mod8); /*вычисляем номер бита*/

P1=ndat; /*выбираем датчик № ndat*/

s=P3; /*считываем порт Р3*/

s=80h and SHL(ms(nbyte),(8-nbit)); /*1000 0000 массив состояния каждого датчика*/

p=(80h and(SHL(p,2))); /*0001 0000 << 3 = 1000 0000*/

yes=0;

then

end;

if (p(ndat)=1)and(s=0) then /* смотрим было ли изменение состояния*/

do;

yes=1; /*было изменение состояния*/

p(ndat)=0;

end;

if (p(ndat)=0)and(s=1) then

do;

yes=1;

p(ndat)=1;

end;

return s;

end;

/*---------------------------------------------------------*/

Serial: procedure interrupt 4//подпрограмма прерывания от УАПП

do; /*0xAA=0b10101010*/

if (SBUF=0AAh) then /*если принятое число равно 0xAA - установка времени*/

end;

/***-----------------------------------------------------***/

uchar sob;

adr=0;

call init;

TCON=0F0h; /*Разрешение работы счётчиков 0 и 1*/

do while (I);

do;

/*Блок чтения*/

do while (not(RI)); /*RI=1 когда передача от ЭВМ к УАПП закончена*/

sec=SBUF;

end;

RI=0;

do while (not(RI)); /*RI=1 когда передача от ЭВМ к УАПП закончена*/

min=SBUF;

end;

RI=0;

do while(not(RI)); /*RI=1 когда передача от ЭВМ к УАПП закончена*/

hour=SBUF;

end;

RI=0;

do while(not(RI)); /*RI=1 когда передача от ЭВМ к УАПП закончена*/

day=SBUF;

end;

RI=0;

do while(not(RI)); /*RI=1 когда передача от ЭВМ к УАПП закончена*/

month=SBUF;

RI=0;

end;

if SBUF=0DDh then /* цикл передачи данных*/

do;

if fl_per=1 then

do;

i=0;

do while i<=adr+6;

sbuf=DZY(i);

i=i+1;

call time(50);

end;

end;

end;

do;

/* формат хранения:*/

/* 0000 0000 - номер датчика*/

/* хх00 0000 - секунды*/

/* хх00 0000 - минуты*/

/* ххх0 0000 - часы*/

/* 0хх0 0000 - событие 1-0/день*/

/*хххх 0000 - /*зянятость ячейки/месяц*/

/*опрос датчика*/

sob=Scan_Dat(num_dat); /*событие от датчика 1000 0000 или 0000 0000*/

if (yes) then do; /*если у датчика изменение состояния*/

do; /*то производим его запись*/ DZY(adr)=num_dat; /*запись номера датчика*/

ms11=ms11-1;

while (ms11); /*пауза 11 мс*/

DZY(adr+1)=sec; /*запись секунд*/

ms11=ms11-1;

while (ms11); /*пауза 11 мс*/

DZY(adr+2)=min; /*запись минут*/

ms11=ms11-1;

while (ms11); /*пауза 11 мс*/

DZY(adr+3)=hour; /*запись часов*/

ms11=ms11-1;

while (ms11); /*пауза 11 мс*/

DZY (adr+4)=day and sob; /*запись дней*/

ms11=ms11-1;

while (ms11); /*пауза 11 мс*/

DZY(adr+5)=month; /*запись месяца*/

ms11=ms11-1;

while (ms11); /*пауза 11 мс*/

adr=adr+6; /* увеличение адреса для записи в память, следующая запись через 6 ячеек*/

end;

f1=0; f2=0;

if (adr>07FFFh) then f1=1; /* Flash переполнена, включ. моргание светодиода 1*/

else f2=1; /*включ. моргание светодиода 2*/

num_dat=num_dat+1; /*увеличение номера датчика*/

end;

end; /*while(1)*/

/*-----------------------------------------------------*/

Заключение

При выполнении данной курсовой работы был изучен однокристальный микроконтроллер Intel 80C51, Flash - память производства корпорации Atmel, приобретены навыки программирования однокристальных контроллеров. При написании и отладке программного обеспечения был изучен симулятор микроконтроллеров семейства MCS'51 Keil uVision 2.

Приложение

Размещено на Allbest.ru


Подобные документы

  • Принцип действия устройства сбора информации на базе микроконтроллера МК51: индикация, "рабочий режим" и передача данных персонального компьютера. Алгоритм начального опроса датчиков. Электрическая принципиальная схема устройства, текст программы.

    курсовая работа [102,5 K], добавлен 21.10.2012

  • Проектирование схемы, выполненной на основе однокристального микроконтроллера 51 серии для получения с 8 аналоговых входов информации о изменении их состояния с течением времени. Параметры устройства, описание элементов схемы, листинг программы.

    курсовая работа [627,2 K], добавлен 24.12.2012

  • Архитектура микроконтроллера PIC16F876 фирмы Microchip и построение на его основе микропроцессорной системы логического анализатора. Построение устройств сбора и обработки информации. Кросс-компилятор HI-TECH С for Microchip PIC v7.85. Листинг программы.

    контрольная работа [137,4 K], добавлен 24.12.2012

  • Особенности управляющих микроконтроллеров. Разработка контроллера для реализации комплекса сбора информации, рассчитанного на фиксирование данных в оперативно-запоминающем устройстве и одновременную передачу её по GSM-каналу в виде SMS-сообщения.

    курсовая работа [1019,3 K], добавлен 26.12.2012

  • Разработка структурной схемы и обобщенного алгоритма работы прибора. Оценка максимальной погрешности линейного датчика давления и нормирующего усилителя. Разработка элементов принципиальной электрической схемы микропроцессорной системы сбора данных.

    курсовая работа [2,1 M], добавлен 08.02.2015

  • Технология сбора информации традиционными методами. Правила сбора оффлайновой информации. Технические средства сбора информации. Операции для быстрого восстановления данных в системах хранения. Технологический процесс и процедуры обработки информации.

    курсовая работа [304,5 K], добавлен 02.04.2013

  • Разработка устройства последовательного сбора и обработки информации с последующим выводом. Выбор элементной базы. Расчет характеристик элементов функциональной схемы. Определение разрядности АЦП и количества бит, передаваемых в информационном кадре.

    курсовая работа [160,9 K], добавлен 05.05.2013

  • Проектирование устройства, выполняющего функцию определения минимального давления на основе информации о показаниях полученных от 7 датчиков. Разработка набора команд управления микроконтроллером в среде программного обеспечения Code Vision AVR.

    курсовая работа [24,5 K], добавлен 28.06.2011

  • Обзор контроллеров и модулей ввода-вывода отечественных и зарубежных фирм. Разработка системы АСТРК-СХК нового поколения. Возможные области применения OPC-серверов в АСУ предприятия. Оценка эффективности разработки системы удаленного сбора информации.

    дипломная работа [4,5 M], добавлен 07.09.2013

  • Запись результатов измерений в память микроконтроллера. Определение времени измерения и расчет погрешностей системы. Обоснование алгоритма сбора измерительной информации и метода ее обработки. Разработка временных диаграмм, отражающих работу системы.

    курсовая работа [1,6 M], добавлен 18.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.