Контроллер сбора аналоговой информации

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

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

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

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

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

Содержание

  • 1. Введение
  • 2. Техническое задание
  • 2.1 Параметры устройства
  • 3. Краткое описание микроконтроллера
  • 3.1 Общее описание микроконтроллера
  • 3.2 Описание периферийных устройств
  • 4. Описание функционирования устройства
  • 4.2 Принципиальная схема
  • 4.3 Описание элементов схемы
  • 5. Схема устройства
  • 6. Листинг прграммы

1. Введение

Использование микроэлектронных средств в изделиях производственного и культурно-бытового назначения приводит не только к повышению технико-экономических показателей изделия (стоимости, потребляемой мощности, габаритных размеров) и позволяет многократно сократить сроки разработки и отодвинуть сроки "морального старения" изделий, но придает им принципиально новые потребительские качества (расширенные функциональные возможности, модифицируемость, адаптивность и т.д.).

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

За последние годы микроэлектроники бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров (ОМК), которые предназначены для "интеллектуализации" оборудования различного назначения. ОМК представляют собой приборы, конструктивно выполненные в виде БИС, и включающие в себя все составные части "голой" микроЭВМ: микропроцессор, память программы, память данных, также программируемые интерфейсные схемы для связи с внешней средой. Использование микроконтроллеров в системах управления обеспечивает достижение исключительно высоких показателей эффективности при столь низкой стоимости (во многих применениях система может состоять только из одной БИС микроконтроллера), что микроконтроллерам, видимо, нет разумной альтернативной базы для построения управляющих и регулирующих систем. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно ОМК.

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

Необходимо спроектировать схему выполненную на основе однокристального микроконтроллера 51 серии для получения с 8 аналоговых входов информации о изменении их состояния с течением времени. Данные регистрируются сразу на всех восьми входах при поступлении импульса синхронизации от самого контролера и накапливаются в ОЗУ подключённом к микроконтроллеру. При подключении внешней эвм или при заполнении памяти, данные необходимо передавать на ЭВМ по интерфейсу RS232 со скоростью 9600 Бод при поступлении запроса от ЭВМ.

Необходимо написать программу для контроллера, которая будет обрабатывать поступающие данные, накапливать их в ОЗУ и передавать на ЭВМ.

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

Число каналов - 8;

Тип сигналов - аналоговые уровни в диапазоне 0-10В.

Передача информации - интерфейс RS232;

Скорость передачи по последовательному порту - 9600 Бод;

3. Краткое описание микроконтроллера

3.1 Общее описание микроконтроллера

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

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

Микроконтроллер ADuC812 удовлетворяет вышеперечисленным требованиям, и подходит для реализации поставленной задачи. Он является аналогом микро-ЭВМ 51-й серии, с которой он совместим программно и аппаратно, но имеет более развитую архитектуру. Данный микроконтроллер представляет собой следующую архитектуру:

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

8-ми канальный 12-ти разрядный АЦП;

2 двенадцати разрядных ЦАП;

8 Кб FLASH ПЗУ;

640 байт FLASH данных;

256 Байт внутреннего ОЗУ;

позволяет адресовать 16 Мб внешнего ОЗУ;

позволяет адресовать 64 Кб памяти программ;

система прерываний имеет 9 источников, 2 уровня приоритетов;

Поддерживается последовательный канал стандарта I2C;

4 восьми разрядных порта ввода/вывода

Данный контроллер реализован в виде одноплатного модуля, имеющего в своем составе не только буферные элементы, но и внешнее ОЗУ, в которое производиться загрузка программы с персонального компьютера.

Название

Вывод

Тип

Назначение

AGND

22

I

Аналоговая земля.

DVdd

44

I

Питание +5V

P0.0-P0.7

43-46, 49-52

I/O

Порт P0. Двунаправленный порт с открытым стоком.

P1.0-P1.7

1-4, 11-14

I

Порт P1, только ввод, по умолчанию настраивается на ввод аналоговых сигналов,.

P2.0-P2.7

28-31, 36-39

I/O

Порт P2. Двунаправленный порт с внутренними подтягивающими резисторами.

P3.0-P3.7

16-19, 22-25

I/O

Порт P3. Двунаправленный порт с внутренними подтягивающими резисторами.

XTAL1

21

I

Вход тактового генератора

XTAL2

20

O

Выход тактового генератора

3.2 Описание периферийных устройств

Таймеры/счётчики:

ADuC812 содержит три 16-ти разрядных счетчика таймера: Таймер0, Таймер1 и Таймер2. Каждый таймер/счетчик состоит из двух 8-ми разрядных регистров THx и TLx (х = 0, 1 и 2). Все три можно сконфигурировать как таймеры, либо как счетчики событий.

В режиме "Таймера" регистр TLx инкрементируется в каждом машинном цикле. В этом режиме работу можно рассматривать как счет машинных циклов. Так как машинный цикл состоит из 12 периодов осциллятора, то максимальная скорость счета составляет 1/12 от частоты осциллятора. В режиме "Счетчика" регистр TLx инкреминтируется по перепаду 1 - 0 на соответствующем контакте микросхемы Т0, Т1 или Т2.

Счетчики/таймеры могут работать в 3-х основных режимах:

Оставлен для совместимости с 48-й серией, на таймер поступает OSC/32, разрядность 13 бит.

Работает как 16-ти разрядный счетчик. При переполнении состояние изменяется с FFFFh на 0000h. При необходимости изменения коэффициента деления после переполнения в каждом такте необходимо записывать заданную константу.

Счетчик работает как 8-ми разрядный, причем используется младшая часть - TL. В старшей части (TH) находится делитель, который по переполнению TL автоматически перегружается из TH в TL.

Режимы работы таймеров Таймер0 и Таймер1 задают два регистра специальных функций (SFR - Special Function Register): регистр режима - TMOD, расположенный по адресу 89h в регистровой памяти и регистр управления таймерами и внешними прерываниями - TCON (88h). Для управления работой таймера Таймер2 служит регистр T2CON.

Регистр TMOD условно разбит на две половины: первая его часть отвечает за Таймер0, а вторая - за Таймер1.

Распределение битов регистра TMOD следующее:

Бит0 - (М0) - Младший байт поля управления режимом;

Бит1 - (М1) - Старший байт поля управления режимом;

Бит2 - (С/Т0) - Выбор функции таймера или счетчика для Таймера0: 0 - таймер; 1 - счетчик;

Бит3 - (GATE0) - Флаг управления входом:

0 - работа канала разрешается (INT0=1, TR=1)

1 - работа счетчика зависит только от TR0

Распределение битов регистра TCON следующее:

Бит0 - (IT0) - Управление типом входа INT0:

0 - вход прог-ся как динамич по зад фронту импльса,

1 - статическое состояние входа.

Бит1 - (IE0) - Флаг запроса прерывания INT0 при динамическом входе. Сбрасывается, когда происходит режим подтверждения прерывания.;

Бит2,3 - (IT1/IE1) - Тоже, что и предыдущие биты, но для Таймера0;

Бит4 - (TR0) - Флаг программного запуска Таймера0

Бит5 - (TF0) - Флаг переполнения Таймера0, который вызывает запрос прерывания. При подтверждении прерывания флаг сбрасывается;

Бит6,7 - (TR1,TF1) - Для Таймра1;

Для работы с таймером используется механизм прерываний, работой которого можно управлять через регистр маски прерываний IE (Interrupt Enable). Назначение битов регистра IE следующее:

Бит0 - (EX0) - Бит разрешения внешнего прерывания INT0.

Бит1 - (ET0) - Бит разрешения прерывания по переполнению Таймера0;

Бит2 - (EX1) - Бит разрешения внешнего прерывания INT1;

Бит3 - (ET1) - Бит разрешения прерывания по переполнению Таймера1;

Бит4 - (ES) - Бит разрешения прерывания от последовательного порта UART.

Бит5 - (ET2) - Бит разрешения прерывания по переполнению Таймера 2

Бит6 - (EADC) - Бит разрешения прерывания АЦП

Бит7 - (EA) - Бит разрешения глобального прерывания. Если EA=0, то все прерывания запрещены;

12-ти разрядный 8-ми канальный АЦП;

Блок АЦП представляет собой восьмиканальный пяти микросекундный преобразователь с однополярным питанием. АЦП позволяет работать как в однократном режиме измерения, так и в циклическом. Запуск на преобразование осуществляется или по внешнему сигналу, подаваемому на 23-й контакт (CONVST/) или по сигналу переполнения Таймера2.

Для управления АЦП имеется 3 основных SFR-регистра: ADCCON1, ADCCON2, ADCCON3.

Регистр ADCCON1 производит управление преобразованием, временем переключения и режимами. Структура управл бит ADCCON1 следующая:

№ бита

Мнемоника

Описание

0

EXС

Бит разрешения внешнего запуска. Если установлен, то контакт 23 (CONVST/) будет использоваться как сигнал запуска (активный низкий должен быть не менее 100 нс).

1

T2C

Бит запуска преобразования от Таймера2. Если бит установлен, то сигнал переполнения Таймера2 используется для запуска АЦП.

2

AQ0

Биты задержки переключения, выбирают время, необходимое для перезарядки УВХ при переключении мультиплексора:

AQ1 AQ0 Число тактов задержки запуска АЦП

0 0 1

0 1 2

1 0 3

1 1 4

3

AQ1

4

CK0

Биты деления тактовой частоты, выбирают коэффициент деления основной частоты микропроцессора для получения тактовой частоты АЦП. Цикл преобразования АЦП занимает 16 тактов, в дополнении к числу тактов переключения. Коэффициент выбирается из:

CK1 CK0 Делитель для MCLK

0 0 1

0 1 2

1 0 4

1 1 8

5

CK1

6

MD0

Биты режима выбирают режимы работы АЦП следующим образом:

MD1 MD0 Режим АЦП

0 0 Дежурный

0 1 Нормальный

1 0 Дежурный, если не выполняется

цикл преобразования

1 1 Холостой, если не выполняется

цикл преобразования

7

MD1

Регистр ADCCON2 управляет выбором канала и режимами преобразования. Он имеет следующий формат:

№ бита

Мнемоника

Описание

0

CS0

Биты выбора входных каналов. Позволяют осуществлять выбор номера канала АЦП под управлением программы. Преобразование будет выполняться для канала, номер которого указан данными битами. В режиме ПДП выбор номера канала осуществляется из ID канала, записанного во внешней памяти.

CS3 CS2 CS1 CS0 CH#

0 n2 n1 n0 Номер входного канала (n2n1n0)

1 0 0 0 Температурный сенсор

1 x x x Другие комбинации

1 1 1 1 Останов ПДП

1

CS1

2

CS2

3

CS3

4

SCONV

Бит запуска однократного преобразования. Устанавливается пользователем для однократного запуска АЦП. Бит сбрасывается автоматически по завершению преобразования.

5

CCONV

Бит циклического преобразования. Устанавливается пользователем для установки АЦП в режим непрерывного циклического преобразования. В этом режиме АЦП выполняет преобразование в соответствии с типом синхронизации и конфигурацией каналов, выбранными в других SFR.

6

DMA

Бит разрешения режима ПДП. Устанавливается пользователем для начала операции ПДП со стороны АЦП.

7

ADCI

Бит прерывания АЦП устанавливается аппаратно по окончанию однократного цикла преобразования АЦП или по окончанию передачи блока в режиме ПДП. ADCI очищает аппаратно при переходе по вектору на процедуру обслуживания прерывания.

Регистр ADCCON3 является регистром статуса АЦП и используется только для чтения. Бит 7 этого регистра - бит занятости, автоматически устанавливается в 1 во время преобразования, по окончанию цикла преобразования автоматически очищается. Биты с 0-го по 6-й зарезервированы и в программе пользователя не используются.

Как только АЦП сконфигурирован и установлен бит SCONV регистра ADCCON2, начинается преобразование аналоговых входных сигналов и выдача 12-разрядных выходных кодов в регистры ADCDATAH и ADCDATAL.

ADCDATAH состоит из двух частей: номер канала (старшие четыре бита) +старшие разряды (младшие четыре бита), ADCDATAL содержит младшие разряды АЦП:

ADCDATAH

ADCDATAL

не используются

старшие 4 разряда

12-разрядного слова АЦП

младшие 8 разрядов

12-разрядного слова АЦП

4. Описание функционирования устройства

Микроконтроллер снимает со входов информацию о состоянии аналоговых уровней, данная съемка стробируется внутренним тактовым импульсом что позволяет зафиксировать на запоминающих конденсаторах одновременно состояние всех восьми входных уровней и в дальнейшем переключая каналы коммутатора оцифровать их. При приходе от компьютера команды запроса контроллер передаёт накопленную в ОЗУ информацию в ЭВМ по интерфейсу RS232 со скоростью 9600 Бод.

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

Принципиальная схема приведена на чертеже в приложении 1.

На входе перед повторителями установлены простейшие делители приводящие уровень 0-10В к уровню 0-5В. Каждый повторитель подключен к аналоговому коммутатору который на некоторое время подключает запоминающий конденсатор и фиксирует напряжение на входе. Так как далее конденсатор отключается, от повторителя то на нем на определенное время фиксируется принятый с повторителя уровень напряжения. Входы коммутатора АЦП микроконтроллера высокоомные поэтому мы даже при медленном цикле оцифровки успеваем снять точные измерения всех входных потенциалов, на всех восьми каналах.

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

Микросхема DА1 - операционный усилитель К544УД1 широко используемый в измерительной технике в данном случае включен как повторитель аналогового сигнала.

контроллер программа аналоговая информация

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

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

Микросхема DD3 - однокристальный микроконтроллер ADUC812 описание не привожу так как имеется по тексту ранее.

Микросхема DD4 - буферный регистр К580ИР22 используется для фиксации части адреса при выполнении цикла обмена с ОЗУ.

Микросхема DD5 - статическое ОЗУ с разрядностью 8 бит объемом 32Кбайта в нем производиться сохранение принятой информации.

5. Схема устройства

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

dataIN: do; /* устройство сбора аналоговой информации*/

include (reg812. dcl)

declare

Ram (32000) byte auxiliary,/*массив сохраняемых данных*/

(hADC,LADC,hADC1,lADC2,pp) byte,/*переменные для расчета*/

(i,j,n,k,s,t) byte,/* переменные для работы в цикле*/

(AdrL,AdrH) byte,/*адрес обращения*/

Data (8) byte,/*массив для промежут хранен даных*/

Pr byte;

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

timer_int: procedure interrupt 1; /* прерывание t0 */

tf0=0; /* sbros flaga perepolneniya */

if (time_out<per_t0) then /*если время ожидания превышено */

do;

if (fl_key=0) then

do; /* проверка найн код или нет*/

P0.3=1; call delay (255);

P0.3=0; /* сброс компьютера если не найден */

per_t0=0; /* обнуление счетчика переполнения*/

end;

else

do;

if fl_key=3 then tr0=0; /*использован обычный ключ блокируем таймер*/

sbuf=n_key; /* передаем регистрационный номер введенного ключа */

end;

end;

per_t0=per_t0+1; /* увеличиваем счетчик переполнений */

/*далее выполняем вывод на семисегментный индикатор номера пользователя*/

segment=segment+1;

if segment>=4 then segment=1;

if segment=1 then do;

ind_buf (1) = (n_key/100);

P1= (ind_buf (1) or 10h); /*выводим 100 на пеpв сегм*/

end;

if segment=2 then do;

ind_buf (3) = (n_key mod 100);

ind_buf (2) =ind_buf (3) /10;

P1= (ind_buf (2) or 20h); /*выводим на втоpой сегмент десятки*/

end;

if segment=3 then do;

ind_buf (3) = (ind_buf mod 10); /*вычисляем значение единиц*/

p1= (ind_buf (3) or 40h); /*выводим натpетий индикатоp единицы*/

end;

end timer_int;

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

power: procedure interupt 2; /* int1 */

IE1=0; /* zaprechaem prerivanie int1 */

fl_input=1;

tr0=1; /* ragreshaem raboty tai'mera */

P3.2=0;

end power;

init: procedure; /* пpоцедуpа инициализации*/

econ=1; /*устанавливаем pежим чтения FLASH памяти пользователя*/

eadrl=0; /*устанавливаем указатель на начало флеш*/

ea=1; /*pазpешаем все пpеpывания*/

et0=1; /*pазpешаем пpеpывание Т0*/

er0=1; /*запускаем таймеp 0*/

ex1=1; /*pазpешаем внешнее пpеpывание*/

es=1; /*pазpешаем пpеpывание UART*/

tmod=00010001b; /*пеpвый pежим таймеpа для 0 и 1*/

it0=1; /*пpеpывание по фpонту сигнала пеpеполнения*/

th0,tl0=0; tr0=1; /*обнуляем счетчики и pазpешаем pаботу 0го Таймеpа*/

/*инициализация второго таймера для синхронизации UART*/

cnt2=1; /*2й как таймеp*/

cap2=1; /*режим захват*/

exen2=1;

sm0=0; /*8ми битный pежим*/

sm1=1; /*1ин стоп бит*/

rcap2h=0feh; rcap2l=0b8h; /*установка скоpости UART 2400*/

fl_key=0;

end init;

/*___________ тело основной пpогpаммы______________*/

call init;

do while 1; /*бесконечный цикл pаботы*/

t=0;

do while (fl_inIB<>0) and (t<255); t=t+1;

call in_ibutton; end; /*выполняем процедуру чтения ключа пока. */

call find; /*ищем ключ в памяти*/

p10_old=1; p11_old=1; p12_old=1;

if fl_key=1 then do;

do while 1;

if (p1.0=0) and (p10_old=1) then do; /*вызов пеpезаписи ключа*/

call add_IB; p10_old=0; end;

if (p1.1=0) and (p11_old=1) then do;

n_key=n_key+1; if n_key>255 then n_key=255; p10_old=0; end;

if (p1.2=0) and (p12_old) then do;

n_key=n_key-1; if n_key=0 then n_key=1; p12_old=0; end;

end;

end dataIN;

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


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

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

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

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

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

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

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

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

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

  • Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.

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

  • Роль микроконтроллеров в современных системах управления. Проектирование схемы на основе микроконтроллера Aduc812, которая будет контролировать работу бытовой стиральной машины. Элементная база, описание и функционирование программы, ее листинг.

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

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

    дипломная работа [725,6 K], добавлен 16.01.2009

  • Применение однокристального микроконтроллера в адаптере параллельного обмена. Связь с внешними устройствами. Структурная схема устройства и ее описание. Назначение отдельных функциональных блоков. Разработка принципиальной схемы и программы устройства.

    курсовая работа [303,0 K], добавлен 06.01.2009

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

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

  • Разработка устройства ввода аналоговой информации (напряжения в диапазоне 0-100 мВ) в персональный компьютер через LPT-порт с предварительным ее сохранением в памяти устройства. Его структурная схема. Алгоритм работы программы чтения данных в ПК.

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

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