Разработка контроллера
Обзор характеристик контроллера по сбору аналоговой информации и преобразовании ее в цифровую, типы корпусов и исполнений, функциональное назначение выводов. Описание регистров PIC, тактовых генераторов. Система команд, блок ввода аналоговых данных.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.09.2011 |
Размер файла | 338,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса.
Использование микроконтроллеров в изделиях не только приводит к повышению технико-экономических показателей (стоимости, надежности, потребляемой мощности, габаритных размеров), но и позволяет сократить время разработки изделий и делает их модифицируемыми, адаптивными. Использование микроконтроллеров в системах управления обеспечивает достижение высоких показателей эффективности при низкой стоимости.
Микроконтроллеры представляют собой эффективное средство автоматизации разнообразных объектов и процессов. Все это определяет необходимость изучения микропроцессорных систем.
Знания, полученные при разработке микропроцессорной системы в курсовой работе, необходимы не только для узкого круга специалистов, занимающихся разработкой компьютеров, но и любому инженеру, работающему с микропроцессорной системой. Они необходимы для четкого понимания принципов работы любого компьютера, что поможет при необходимости найти и исправить возможные неполадки, усовершенствовать используемую систему, разработать новую. Знание внутренней организации ЭВМ необходимо для написания программ, напрямую работающих с аппаратными средствами микропроцессорных систем. Схема, разрабатываемая в данной курсовой работе, выполняет функцию сбора и обработки информации и содержит все функциональные блоки любого компьютера. Основным достоинством контроллера, применяемого в данной курсовой работе, является его дешевизна, что позволило ему найти широкое применение.
Постановка задачи
Контроллер, который разрабатывается в этой курсовой работе, должен обеспечивать:
периодический опрос Р аналоговых датчиков и преобразование их сигналов с заданной точностью в цифровой код;
обработку цифровых кодов с целью вычисления заданной функциональной зависимости Y(t) в реальном масштабе времени;
отображение вычисленных значений функции Y(t) на дискретных индикаторах;
Номер варианта 18;
Количество аналоговых датчиков, Р 13;
Максимальное напряжение на выходе датчиков, Umax 5 В;
Требуемый период коммутации датчиков, Т 160 мкс;
Требуемая точность преобразования, ??????????? 0.08;
Разрешённые номера портов ввода/вывода, <V> 48 - 63;
Функция Y(t) = N(2)/1 + N(3)/(2)+…+N(P)/(Р-1)+ N(1)
Для выполнения проекта необходимо решить две задачи: разработать аппаратную часть контроллера и разработать программное обеспечение.
контроллер корпус команда
1. Выбор контроллера
PIC16C84 относится к семейству КМОП микроконтроллеров. Отличается тем, что имеет внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 64байт EEPROM памяти данных. При этом отличаются низкой стоимостью и высокой производительностью. Все команды состоят из одного слова (14 бит шириной) и исполняются за один цикл (400 нс при 10 МГц), кроме команд перехода, которые выполняются за два цикла (800 нс). PIC16C84 имеет прерывание, срабатывающее от четырех источников, и восьмиуровневый аппаратный стек. Периферия включает в себя 8-битный таймер/счетчик с 8-битным программируемым предварительным делителем (фактически 16 - битный таймер) и 13 линий двунаправленного ввода/вывода. Высокая нагрузочная способность (25 мА макс. втекающий ток, 20 мА макс. вытекающий ток) линий ввода/вывода упрощают внешние драйверы и, тем самым, уменьшается общая стоимость системы. Разработки на базе контроллеров PIC16C84 поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором (только фирмы Microchip) и программатором.
Серия PIC16C84 подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает PIC16C84 привлекательным даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Следует добавить, что встроенный автомат программирования EEPROM кристалла PIC16C84 позволяет легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования.
Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14- битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды.
Все команды выполняются за один цикл, исключая команды переходов. В PIC16C84 программная память объемом 1К х 14 расположена внутри кристалла. Исполняемая программа может находиться только во встроенном ПЗУ.
Обзор характеристик:
только 35 простых команд;
все команды выполняются за один цикл(400ns), кроме команд перехода - 2 цикла;
рабочая частота 0 Гц ... 10 МГц (min 400 нс цикл команды)
14 - битовые команды;
8 - битовые данные;
1024 х 14 электрически перепрограммируемой программной памяти на кристалле (EEPROM);
36 х 8 регистров общего использования;
15 специальных аппаратных регистров SFR;
64 x 8 электрически перепрограммируемой EEPROM памяти для данных;
восьмиуровневый аппаратный стек;
прямая, косвенная и относительная адресация данных и команд;
четыре источника прерывания:
внешний вход INT
переполнение таймера RTCC
прерывание при изменении сигналов на линиях порта B по завершению записи данных в память EEPROM
13 линий ввода-вывода с индивидуальной настройкой;
втекающий/вытекающий ток для управления светодиодами
макс втекающий ток - 25 мА
макс вытекающий ток - 20 мА
8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем;
автоматический сброс при включении;
таймер включения при сбросе;
таймер запуска генератора;
Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
EEPROM бит секретности для защиты кода;
экономичный режим SLEEP;
выбираемые пользователем биты для установки режима возбуждения встроенного генератора:
RC генератор:RC
обычный кварцевый резонатор:XT
высокочастотный кварцевый резонатор:HS
экономичный низкочастотный кристалл:LP
встроенное устройство программирования EEPROM памяти программ и данных; используются только две ножки.
экономичная высокоскоростная КМОП EPROM технология;
статический принцип в архитектуре;
широкий диапазон напряжений питания и температур;
низкое потребление тока:
3 мА при Uпит.- 5В, F - 4МГц
50 мкА при Uпит.- 2В, F - 32КГц
26 мкА SLEEP режим, при Uпит.- 2В
2. Техническое описание контроллера
2.1 Типы корпусов и исполнений
Обозначения корпусов для кристаллов PIC16F84. Тип корпуса указывается в Маркировке при заказе микросхем. Корпуса бывают только с 18 Выводами.
PDIP - Обычный пластмассовый двухрядный корпус
SOIC - Малогабаритный DIP корпус для монтажа на поверхность
Рисунок 1 - Внешний вид РIC 16С84,
PDIP корпус
Структурная схема контроллера РIC 16С84 приведена на рисунке 2
Рисунок 2 - Структурная схема контроллера РIC 16С84
Цоколевка РIC 16С84 приведена на рис. 3. Типы корпусов - PDIP .
Рисунок 3 Цоколевка РIC 16С84
Обозначения ножек и их функциональное назначение выводов приведено в таблице 1
Таблица 1 - функциональное назначение выводов РIC 16С84
Обозначение |
Нормальный режим |
Режим записи EEPROM |
|
RA0 - RA3 |
Двунаправленные линии ввода/вывода. Входные уровни ТТЛ |
||
RA4/T0CKI |
Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика TMR0 |
||
RB0/INT |
Двунаправленная линия порта ввода/ вывода или внешний вход прерывания Уровни ТТЛ |
||
RB1 - RB5 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ |
||
RB6 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход тактовой частоты для EEPROM |
|
RB7 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход/выход EEPROM данных. |
|
/Vрр |
Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий. |
Сброс контроллера Для режима EEPROM- подать Vрр. |
|
OSC1/CLKIN |
Для подключения кварца, RC или вход внешней тактовой частоты |
||
OSC2/CLKOUT |
Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварц |
||
Vdd |
Напряжение питания |
Напряжение питания |
|
Vss |
Общий(земля) |
Общий |
2.2 Описание регистров PIC
Все пpогpаммные объекты, с котоpыми может работать PIC, представляют собой физические pегистpы.
Hачнем с набоpа опеpационных pегистpов. Этот набоp состоит из pегистpа косвенной адресации (f0), pегистpа таймеpа/счетчика (f1), пpогpаммного счетчика (f2), pегистpа слова состояния (f3), pегистpа выбоpа (f4) и pегистpов ввода/вывода (f5,f6).
f0 регистр косвенной адресации IND0 Регистp косвенной адpесации f0 физически не существует. Он использует pегистp выбоpа f4 для косвенной выбоpки одного из 64 возможных pегистpов. Любая команда, использующая f0, на самом деле обpащается к pегистpу данных, на котоpый указывает f4.
f1 регистр таймера/счетчика TMR0 Регистp таймеpа/счетчика TMR0 может быть записан и считан как и любой дpугой pегистp. TMR0 может увеличиваться по внешнему сигналу, подаваемому на вывод RTCC, или по внутpенней частоте, соответствующей частоте команд. Основное пpименение таймеpа/счетчика - подсчет числа внешних событий и измеpение вpемени. Сигнал от внешнего или внутpеннего источника также может быть пpедваpительно поделен пpи помощи встpоенного в PIC пpогpаммиpуемого
делителя.
f2.программный счетчик PCL. Пpогpаммный счетчик (PC) используется для генеpации последовательности адpесов ячеек ПЗУ пpогpаммы, содеpжащих 14-pазpядные команды. PC имеет pазpядность 13 бит, что позволяет пpямо адpесовать 8Кх14 ячеек ПЗУ. Для PIC16C84 однако, только 1К ячеек физически доступно. Младшие 8 pазpядов PC могут быть записаны и считаны чеpез pегистp f2, стаpшие 5 pазpядов загpужаются из pегистpа PCLATCH, имеющего адpес 0h. f3 регистр слова состояния STATUS. Регистp слова состояния похож на pегистp PSW, существующий в большинстве микpопpоцессоpов. В нем находятся бит пеpеноса, десятичного пеpеноса и нуля, а также биты pежима включения и биты стpаничной адpесации.
Размещение флагов в регистре статуса приведено в таблице 2.
Таблица 2 - Размещение флагов в регистре статуса
b7 |
b6 |
b5 |
b4 |
B3 |
b2 |
b1 |
b0 |
||
03h= |
IRP |
RP1 |
RP0 |
Z |
DC |
C |
f4 регистр выбора FSR. Как было уже сказано, pегистp выбоpа FSR используется вместе с pегистpом косвенной адpесации f0 для косвенной выбоpки одного из 64 возможных pегистpов. Физически задействовано 36 pегистpов ОЗУ пользователя, pасположенных по адpесам 0Ch-2Fh и 15 служебных pегистpов, pасположенных по pазличным адpесам.
f5, f6 регистры ввода/вывода PORTA, PORTB. Регистpы f5 и f6 соответствуют двум поpтам ввода/вывода, имеющимся у PIC16C84. Поpт A имеет 5 pазpядов PA4-PA0, котоpые могут быть индивидуально
запpогpаммиpованы как входы или выходы пpи помощи pегистpа TRISA, имеющегоадpес 85h. Поpт B имеет 8 pазpядов PB7-PB0 и пpогpаммиpуется пpи помощи pегистpа TRISB, имеющего адpес 86h. Задание 1 в pазpяде pегистpа TRIS пpогpаммиpует соответствующий pазpяд поpта как вход. Пpи чтении поpта считывается непосpедственное состояние вывода, пpи записи в поpт запись пpоисходит в буфеpный pегистp.
f8, f9 регистры ЭППЗУ EEDATA, EEADR. PIC16C84 имеет встpоенное электpически пеpепpогpаммиpуемое ПЗУ pазмеpом 64 байта, котоpое может быть считано и записано пpи помощи pегистpа данных EEDATA и pегистpа адpеса EEADR. Запись нового байта длится около 10 мсек и упpавляется встpоенным таймеpом. Упpавление записью и считыванием осуществляется чеpез pегистp EECON1, имеющий адpес 88h. Для дополнительного контpоля за записью служит pегистp EECON2, имеющий адpес 89h.
Регистры общего назначения. Регистpы общего назначения пpедставляют собой статическое ОЗУ, pасположенное по адpесам 0Ch-2Fh. Всего в PIC16C84 можно использовать 36 ячеек ОЗУ.
Специальные регистры W, INTCON, OPTION В завеpшение pассмотpим специальные pегистpы PIC. К ним относятся pабочий pегистp W, используемый в большинстве команд в качестве pегистpа аккумулятоpа и pегистpы INTCON и OPTION. Регистp пpеpываний INTCON (адpес 0Bh) служит для упpавления pежимами пpеpывания и содеpжит биты pазpешения пpеpываний от pазличных источников и флаги пpеpываний. Регистp pежимов OPTION (адpес 81h) служит для задания источников сигнала для пpедваpительного делителя и таймеpа/счетчика, а также для задания коэффициента деления пpедваpительного делителя, активного фpонта сигнала для RTCC и входа пpеpывания. Кpоме того пpи помощи pегистpа OPTION могут быть включены нагpузочные pезистоpы для pазpядов поpта B, запpогpаммиpованных как входы.
Сторожевой таймер WDT. Стоpожевой таймеp WDT пpедназначен для пpедотвpащения катастpофических последствий от случайных сбоев пpогpаммы. Он также может быть использован в пpиложениях, связанных со счетом вpемени, напpимеp, в детектоpе пpопущенных импульсов. Идея использования стоpожевого таймеpа состоит в pегуляpном его сбpасывании под упpавлением пpогpаммы или внешнего воздействия до того, как закончится его выдеpжка вpемени и не пpоизойдет сбpос пpоцессоpа. Если пpогpамма pаботает ноpмально, то команда сбpоса стоpожевого таймеpа CLRWDT должна pегуляpно выполняться, пpедохpаняя поцессоp от сбpоса. Если же микpопpоцессоp случайно вышел за пpеделы пpогpаммы (напpимеp, от сильной помехи по цепи питания) либо зациклился на каком-либо участке пpогpаммы, команда сбpоса стоpожевого таймеpа скоpее всего не будет выполнена в течение достаточного вpемени, и пpоизойдет полный сбpос пpоцессоpа, инициализиpующий все pегистpы и пpиводящий систему в pабочее состояние. Стоpожевой таймеp в PIC16C84 не тpебует каких-либо внешних компонентов и pаботает на встpоенном RC генеpатоpе, пpичем генеpация не пpекpащается даже в случае отсутствия тактовой частоты pоцессоpа. Типовой пеpиод тоpожевого таймеpа 18 мсек. Можно подключить пpедваpительный делитель на тоpожевой таймеp и увеличить его пеpиод вплоть до 2 сек. Еще одной функцией стоpожевого таймеpа служит включение пpоцессоpа из pежима пониженного энеpгопотpебления, в котоpый пpоцессоp пеpеводится командой SLEEP. В этом pежиме PIC16C84 потpебляет очень малый ток - около 1 мкА. Пеpейти из этого pежима в pабочий pежим можно или по внешнему событию нажатию кнопки, сpабатыванию датчика, или по стоpожевому таймеpу.
2.3 Описание тактовых генераторов
Для микpоконтpоллеpов семейства PIC возможно использование четыpех типов тактового генеpатоpа:
XT кваpцевый pезонатоp;
HS высокочастотный кваpцевый pезонатоp;
LP микpопотpебляющий кваpцевый pезонатоp;
RC RC цепочка.
Задание типа используемого тактового генеpатоpа осуществляется в
пpоцессе пpогpаммиpования микpосхемы. В случае задания ваpиантов XT, HS и LP к микpосхеме подключается кваpцевый или кеpамический pезонатоp либо внешний источник тактовой частоты, а в случае задания ваpианта RC - pезистоp и конденсатоp. Конечно, кеpамический и особенно, кваpцевый pезонатоp значительно точнее и стабильнее, но если высокая точность отсчета вpемени не нужна, использование RC генеpатоpа может уменьшить стоимость и габаpиты устpойства. Пользователь может запрограммировать два конфигурационных бита (FOSC1 и FOSC0) для выбора одного из четырех режимов: RC, LP, XT, HS. Кристаллы PIC16... могут также тактироваться и от внешних источников. Генератор, построенный на кварцевых или керамических резонаторах, требует периода стабилизации после включения питания. Для этого, встроенный таймер запуска генератора держит устройство в состоянии сброса примерно 18 мс после того, как сигнал на ножке кристалла достигнет уровня логической единицы. Таким образом, внешняя цепочка RC, связанная с ножкой во многих случаях не требуется.
Встроенные генераторы работоспособны при определенных номиналах питающего напряжения.
Таблица 3 - Частоты генераторов
Vdd |
OSC mode |
Max Freq |
|
2..3 V |
RC LP |
2 mHz 200 kHz |
|
3..6 V |
RC XT,LP |
4 mHz 200 kHz |
|
4,5...5,5 V |
HS |
10 MHz |
Схема сброса. Микpоконтpоллеpы семейства PIC используют внутpеннюю схему сбpоса по включению питания в сочетании с таймеpом запуска генеpатоpа, что позволяет в большинстве ситуаций обойтись без тpадиционного pезистоpа и конденсатора.
Карта памяти контроллера приведена в таблице 4
Таблица 4 - Карта памяти котроллера
Page 0 |
Page 1 |
|||
00 |
Indirect add. |
80 |
||
01 |
TMR0 |
OPTION_REG |
81 |
|
02 |
PCL |
82 |
||
03 |
STATUS |
83 |
||
04 |
FSR |
84 |
||
05 |
PORT A |
TRISA |
85 |
|
06 |
PORT B |
TRISB |
86 |
|
07 |
87 |
|||
08 |
EEDATA |
EECON1 |
88 |
|
09 |
EEADR |
EECON2 |
89 |
|
0A |
PCLATH |
8A |
||
0B |
INTCON |
8B |
||
0C 2F |
36 регистров общего назначения |
Тоже |
8C AF |
|
30 7F |
Не существует |
B0 FF |
В регистре статуса (03h) есть биты выбора страниц, которые позволяют обращаться к четырем страницам будущих модификаций этого кристалла. Однако для PIC16С84 память данных существует только до адреса 02Fh. Первые 12 адресов используются для размещения регистров специального назначения. Регистры с адресами 0Ch-2Fh могут быть использованы, как регистры общего назначения, которые представляют собой статическое ОЗУ. Некоторые регистры специального назначения продублированы на обеих страницах, а некоторые расположены на странице 1 отдельно. Когда установлена страница 1, то обращение к адресам 8Ch-AFh фактически адресует страницу 0. К регистрам можно адресоваться прямо или косвенно.
2.4 Система команд
Каждая команда PIC16С84 - это 14-битовое слово, которое разделено по смыслу на следующие части: - 1. код операции, -2. поле для одного и более операндов, которые могут участвовать или нет в этой команде. Система команд PIC16С84 включает в себя байт-ориентированные команды, бит-ориентированные, операции с константами и команды передачи управления.
Для байт-ориентированных команд “f” обозначает собой регистр, с которым производится действие; “d” - бит определяет, куда положить результат. Если “d” =0, то результат будет помещен в W регистр, при “d”=1 результат будет помещен в “f”, упомянутом в команде. Для бит-ориентированных команд “b” обозначает номер бита, участвующего в команде, а “f” -это регистр , в котором этот бит расположен.
Для команд передачи управления и операций с константами, “k” обозначает восьми или одинадцатибитную константу.
Все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла: -1 проверка условия и переход, -2.изменение программного счетчика как результат выполнения команды. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.
Таблица 5 - Байт ориентированные команды
Мнемокод |
Название команды |
Флаги |
Примеч. |
||
ADDWF |
f,d |
Сложение W с f |
C,DC,Z |
2,3 |
|
ANDWF |
f,d |
Логическое И W и f |
Z |
2,3 |
|
CLRF |
f |
Сброс регистра f |
Z |
3 |
|
CLRW |
Сброс регистра W |
Z |
|||
COMF |
f,d |
Инверсия регистра f |
Z |
2,3 |
|
DECF |
f,d |
Декремент регистра f |
Z |
2,3 |
|
DECFSZ |
f,d |
Декремент f, пропустить команду, если 0 |
2,3 |
||
INCF |
f,d |
Инкремент регистра f |
Z |
2,3 |
|
INCFZ |
f,d |
Инкремент регистра f, пропустить команду, если 0 |
2,3 |
||
IORWF |
f,d |
Логическое ИЛИ W и f |
Z |
2,3 |
|
MOVF |
f,d |
Пересылка регистра f |
Z |
2,3 |
|
MOVWF |
f |
Пересылка W в f |
3 |
||
NOP |
Холостая команда |
||||
RLF |
f,d |
Сдвиг f влево через перенос |
C |
2,3 |
|
RRf |
f,d |
Сдвиг f вправо через перенос |
C |
2,3 |
|
SUBWF |
f,d |
Вычитание W из f |
C,DC,Z |
2,3 |
|
SWAPF |
f,d |
Обмен местами тетрад в f |
2,3 |
||
XORWF |
f,d |
Исключающее ИЛИ W и f |
Z |
2,3 |
|
ADDLW |
k |
Сложение константы с W. |
C,DC,Z |
||
ANDLW |
k |
Логическое И константы и W |
Z |
||
IORLW |
k |
Логическое ИЛИ константы и W |
Z |
||
SUBLW |
k |
Вычитание W из константы. |
C,DC,Z |
||
MOVLW |
k |
Пересылка константы в W |
|||
XORLW |
k |
Исключающее ИЛИ константы и W |
Z |
||
OPTION |
Загрузка W в OPTION_REG регистр |
1 |
|||
TRIS |
F |
Загрузка TRIS регистра |
1 |
Таблица 6 - Бит ориентированные команды
Мнемокод |
Название команды |
Флаги |
Примеч. |
||
BCF |
f,d |
Сброс бита в регистре f |
2,3 |
||
BSF |
f,d |
Установка бита в регистре f |
2,3 |
||
BTFSC |
f,b |
Пропустить команду, если бит равен 0 |
|||
BTFSS |
f,b |
Пропустить команду, если бит равен 1 |
Таблица 7 - Команды условного перехода
Мнемокод |
Название команды |
Флаги |
Примеч. |
||
CALL |
k |
Вызов подпрограммы |
|||
CLRWDT |
Сброс Watchdog таймера |
TO,PD |
|||
GOTO |
k |
Переход по адресу |
|||
RETLW |
k |
Возврат из подпрограммы с загрузкой константы в W |
|||
RETFIE |
Возврат из прерывания. |
||||
RETURN |
Возврат из подпрограммы. |
||||
SLEEP |
Переход в режим SLEEP |
TO,PD |
3. Блок ввода аналоговых данных
Блок ввода аналоговых данных (БВВАД) должен обеспечить периодическое преобразование входных аналоговых данных в цифровой код и передачу его в микропроцессорный блок.
Данный блок состоит из аналогового коммутатора (АК), аналого-цифрового преобразователя (АЦП).
Согласно условию, максимально допустимое время преобразования в АЦП должно быть не более:
t < T/(P+1) = 160/(13+1) = 10 мкс;
Также должна обеспечиваться заданная точность преобразования, которая определяет разрядность АЦП:
N > - log2 ? = - log2(0.08) = 4;
Данную скорость и разрядность может обеспечить АЦП КР1446ПВ1 со временем преобразования 0,32 мкс и разрядностью 10. АЦП включается в четырехразрядном режиме со внутренней синхронизацией. Разряды D4 - D1 шины прота «А» подключаются к старшим 4 разрядам D10 - D7 АЦП. Допустимое входное напряжение не более 5В.
АЦП не имеет по выходу Z-состояние
Микросхема имеет два общих провода - «аналоговая» земля и «цифровая» земля для предотвращения импульсных наводок на входные аналоговые устройства.
Рисунок 4 - Схема включения АЦП
Электрические параметры АЦП:
Номинальное напряжение питания 5 В ±10%
Выходное напряжение низкого уровня на выводах 7-11,
18, 19, 21, 32-25 при =0,5 мА 0,5 В
Выходное напряжение высокого уровня на выводах 7-11,
18, 19, 21, 32-25 при =0,5 мА 3,6В
Диапазон аналогового сигнала , В
Нижний уровень опорного напряжения относительно общего
аналогового вывода, -1 +0,1 В
Верхний уровень опорного напряжения 4В
Ток потребления 15 мА
Время преобразования 320 нс
Тактовая частота 12,5 МГц
Емкость аналогового входа 150 пФ
Емкость логического выхода 15 пФ
Предельно допустимые режимы эксплуатации
Напряжение питания 4,5...5,5 В
В предельном режиме 0...7 В
Напряжение на любом выходе 0...Un
Входное напряжение высокого уровня 3,6...Un В
Входное напряжение низкого уровня 0...0.8 В
Выходной ток низкого (высокого) уровня <0,5 мА
Температура окружающей среды -40...+70 °С
Температура хранения 60...+ 125 °С
Для преобразования аналогового сигнала каждого из 11 датчиков применяется аналоговый коммутатор К591КН1 с 16 аналоговыми входами. Канал коммутатора задаётся четырёхразрядным адресом. Перебор адресов производится выходами PА(0-3)
Так как аналоговый коммутатор изготовлен по МОП технологии, то напряжение логической единицы, подаваемые на его цифровые входы должно быть не менее 4 - 4,1 В. Для устранения этого несогласования применяется преобразователь уровня, который построен на микросхеме DD22 и резисторах R2 - R6 на которые подается напряжение 5В.
4. Блок отображения информации
Для отображения результата вычислений применяются семисегментные знакосинтезирующие индикаторы АЛС324А (HL1 - HL3) их принципиальное отличие в наличии общего анода, это позволяет напрямую без резисторов подключать их к дешифраторам. Количество разрядов отображаемого десятичного числа определяется разрядностью данных. Для преобразования двоичного кода в код индикатора применются дешифратор К514ИД1, на входы которого подается сигнал с порта «В». Код результата записывается в буферные регистры , сохраняющие код до следующей записи. В регистры записывается двоично-десятичный код при наличии перепада на входе STB «логической» единицы.
5. Разработка программного обеспечения
Программа должна выполнять следующие действия. Опросить первый аналоговый вход и преобразовать значение из него в цифровую форму, сохранить число в памяти. После этого прочитать следующий вход и так до тринадцати, затем производится вычисление функции, полученное значение преобразуется в двоично-десятичный код и выводится на индикаторы.
Тогда блок-схема программы будет иметь следующий вид:
Рисунок 2- Блок-схема алгоритма программы
Выводы
В данной курсовой работе было спроектировано и разработано микропроцессорное устройство. Его функции заключаются в сборе аналоговой информации, преобразование ее в цифровую, обработка собранной информации по программе и выдача этой информации на индикаторы в десятичном виде. Подобные задачи довольно часто возникают на производстве или в бытовых приборах, где необходимо постоянно контролировать те или иные параметры. Решение их, как правило, заключается в применении подобных микропроцессорных устройств, которые достаточно простые и дешевые для широкого применения.
Разработанное устройство управляется фиксированной программой из ПЗУ, на практике же можно менять программу по желанию пользователя, если это необходимо. Устройство для перепрограммирования можно представить в удобном для пользователя виде, что существенно расширит рамки функционирования устройства.
Литература
1.Методические указания к курсовому проекту «Микропроцессорный контроллер» по курсу «»Микропроцессорная техника»/Составитель А.В. Дорошков. - Сумы: «Ризоцентр» СумГУ, 1999.
2.Гуртовцев А.П., Гудыменко С.В. Программы для микропроцессоров. - Минск .: Выш. шк., 1989.
3.Цифровые и аналоговые интегральные микросхемы: Справочник / под ред. С. В. Якубовского. - М.: Энергия, 1990.
4.http://pic16f84.city.tomsk.net/aboutpic.html
5.http://pic16f84.city.tomsk.net/shemmpic.html
Приложение
Листинг программы
; описание операционных pегистpов
TMR0 EQU 01h
PC EQU 02h
STATUS EQU 03h
FSR EQU 04h
; pегистpы ввода/вывода
PORTA EQU 05h
PORTB EQU 06h
; ячейки ОЗУ
DAT1 EQU 0Ch
DAT2 EQU 0Bh
DAT3 EQU 0Eh
DAT4 EQU 0Fh
DAT5 EQU 10h
DAT6 EQU 11h
DAT7 EQU 12h
DAT8 EQU 13h
DAT9 EQU 14h
DAT10 EQU 15h
DAT11 EQU 16h
DAT12 EQU 17h
DAT13 EQU 18h
FL1 EQU 19h
FL2 EQU 1Ah
DAT13 EQU 1Bh
DILENE EQU 1Ch
DILNUK EQU 1Dh
CHASTKA EQU 1Eh
F EQU 1Fh
E EQU 20h
D1 EQU 21h
D2 EQU 22h
; биты pегистpа STATUS
C EQU 0h
DC EQU 1h
Z EQU 2h
PD EQU 3h
TO EQU 4h
RP EQU 5h
; упpавляющие pегистpы
TRISA EQU 85h
TRISB EQU 86h
; слова инициализации для поpтов ввода/вывода
INITA EQU B'11111111'
INITB EQU B'00000000'
; Рабочая секция
; начало исполняемого кода
ORG 0
GOTO BEGIN
;
ORG 100h
BEGIN
MOVLW INITA
MOVWF TRISA
MOVLW INITB
MOVWF TRISB
; ВВОД ДАННЫХ С АЦП
LOOP 2 MOVLW B '10000000' W00000001
MOVWF PORTB PORT BW
LOOP 14 BTFSS PORTA, 0 ; ожидание сигнала
GOTO LOOP1 ; от АЦП
MOVLW B `10001111' ; остановка
MOVWF PORTB ; АЦП
MOVF PORTA, 0 ; считывание данных
MOVWF DAT1 ; из АЦП
MOVLW B '10000000' ; W10001000
MOVWF PORTB ; PORT BW
LOOP 2 BTFSS PORTA, 0 ; ожидание сигнала
GOTO LOOP2 ; от АЦП
MOVLW B `10001111' ; остановка
MOVWF PORTB ; АЦП
MOVF PORTA, 0 ; считывание данных
MOVWF DAT2 ; из АЦП
…………………
MOVLW B '10000000' ; W10001101
MOVWF PORTB ; PORT BW
LOOP 13 BTFSS PORTA, 0 ; ожидание сигнала
GOTO LOOP13 ; от АЦП
MOVLW B `10001111' ; остановка
MOVWF PORTB ; АЦП
MOVF PORTA, 0 ; считывание данных
MOVWF DAT13 ; из АЦП
; РАСЧЕТ ФУНКЦИИ
BCF DAT1, 0 ; маскирование данных
MOVF DAT1 ; WDAT1
BCF DAT2, 0 ; маскирование данных
ADDWF DAT2 ; WW+DAT2
MOVWF F ; FW
BCF DAT3, 0 ; маскирование данных
MOV DAT3, 0 ; WDAT3
MOVWF DILENE ; DILENEW
CLRW ; W0
MOVLW B `00000010' ; W2
MOVWF DILNUK ; DILNUKW
CALL DIV ; вызов подпрограммы
MOVF CHASTKA, 0 ; WCHASTKA
ADDWF F, 1 ; FF+W
…
BCF DAT13, 0 ; маскирование данных
MOV DAT13, 0 ; WDAT13
MOVWF DILENE ; DILENEW
CLRW ; W0
MOVLW B `00001100' ; W12
MOVWF DILNUK ; DILNUKW
CALL DIV ; вызов подпрограммы
MOVF CHASTKA, 0 ; WCHASTKA
ADDWF F, 1 ; FF+W
; ПЕРЕХОД В ДИСЯТИЧНУЮ СИСТЕМУ ИСЧИСЛЕНИЯ
CALL DECIM ; вызов подпрограммы
; ВЫВОД НА ИНДИКАТОР
RLF E, 1 ; сдвинуть регистр E влево
RLF E, 1 ; сдвинуть регистр E влево
RLF E, 1 ; сдвинуть регистр E влево
RLF E, 0 ; сдвинуть и загрузить в W
ADDLW B `00000010' ; W2
MOVWF PORTB ; PORTBW
RLF D1, 1 ; сдвинуть регистр D1 влево
RLF D1, 1 ; сдвинуть регистр D1 влево
RLF D1, 1 ; сдвинуть регистр D1 влево
RLF D1, 0 ; сдвинуть и загрузить в W
ADDLW B `00000100' ; W4
MOVWF PORTB ; PORTBW
RLF D2, 1 ; сдвинуть регистр D2 влево
RLF D2, 1 ; сдвинуть регистр D2 влево
RLF D2, 1 ; сдвинуть регистр D2 влево
RLF D2, 0 ; сдвинуть и загрузить в W
ADDLW B `00001000' ; W8
MOVWF PORTB ; PORTBW
GOTO LOOP 14 ; бесконечный цикл
; ПОДПРОГРАММА ДИЛЕНИЯ
DIV MOVLW 008 ; W08
MOVWF FL1 ; FL1W
CLRF FL2 ; очистка FL2
RLF DILENE, 1 ;сдвиг регистра влево через
перенос
MOV FL2, 0
RLE FL2
LOOP3 MOVWF DILNUK, 0
SUBWF FL2, 0
BTFSC STSTUS, 0
GOTO LOOP1
ADDWF DILNUK, 0
LOOP1 MOVF FL2, 0
BTFSC STSTUS, 0
GOTO LOOP2
BSF STATUS,0
LOOP2 BSF STATUS,0
RLF FL2, 0
MOVWF CHASTKA
DECF FL1
BTFSS
GOTO LOOP3
RETURN
; ПОДПРОГРАММА ПЕРЕХОДА
; В ДЕСЯТИЧНУЮ СИСТЕМУ
DESIM CLRF E ; очистка регистра E
CRLF D1 ; очистка регистра D1
CRLF D2 ; очистка регистра D2
LOOP3 MOVLW B `00001010' ; W10
SUBWF F, 1 ; FF-W
BTFSC STATUS, 0 ; если бит равен 0
GOTO LOOP1
MOVWF F,0 ; WF
MOVWF E ; EW
RETURN
LOOP1 MOVF F, 0 ; WF
SUBLW B `00001001' ; W9
BTFSC STATUS, 0 ; если бит равен 0
GOTO LOOP2
INCF D2, 1 ; D2 D2+1
GOTO LOOP3
LOOP2 INCF D1, 1 ; D1 D1+1
GOTO LOOP3
END
Размещено на Allbest.ru
Подобные документы
Разработка контроллера прибора, обеспечивающего реализацию функций оцифровки аналоговых данных с выводом результата в виде графического вида сигнала. Выбор контроллера и элементов схемы, их описание. Общий алгоритм работы и листинг программы управления.
курсовая работа [1,1 M], добавлен 26.12.2012Разработка контроллера управления цифровой частью системы, перечень выполняемых команд. Описание алгоритма работы устройства, его структурная организация. Синтез принципиальной электрической схемы, особенности аппаратных затрат и потребляемой мощности.
курсовая работа [318,8 K], добавлен 14.06.2011Структурная схема микроконтроллеров семейства MCS-51: отличительные особенности, назначение выводов, блок регистров специальных функций. Карта прямоадресуемых бит. Методы адресации, граф команд пересылки, обмена и загрузки. Ввод и отображение информации.
курсовая работа [135,5 K], добавлен 22.08.2011Разработка микроконтроллера для контроля ритма дыхания больного в реанимационной палате. Структурная и принципиальная схемы микропроцессорного контроллера. Модули процессора, памяти, ввода и вывода, режимы индикации. Описание работы, принципиальная схема.
курсовая работа [197,6 K], добавлен 06.12.2013Характеристика микропроцессора Z80, его достоинства и система команд. Проектирование интерфейса, структурной схемы и алгоритма работы управляющей микро-ЭВМ. Разработка модулей памяти, генератора тактового импульса, контроллера, ввода/вывода и индикатора.
курсовая работа [1,7 M], добавлен 17.02.2014Последовательный связной интерфейс, скорость передачи данных. Интерфейс и его сигналы. Программная эмуляция SCI. Оборудование, особенности микросхемы. Структурная схема контроллера управления последовательным портом. Описание программного обеспечения.
курсовая работа [670,7 K], добавлен 23.06.2012Разработка программно-аппаратного комплекса (микропроцессорного контроллера) для тестирования интегральных микросхем. Функциональный контроль по принципу "годен" - "не годен". Параметры микроконтроллера КМ1816ВЕ51. Блок-схема алгоритма работы контроллера.
курсовая работа [307,1 K], добавлен 16.07.2009Особенности разработки устройства, которое обеспечивает прием данных, их обработку и вывод на индикацию. Выбор микропроцессора по функциональным возможностям и быстродействию работы, генератора тактовых импульсов, контроллера прямого доступа к памяти.
контрольная работа [655,7 K], добавлен 08.06.2014Разработка микроконтроллерной системы обработки дискретных и аналоговых сигналов. Обработка информации, поступающей с датчиков. Управление технологическим параметром в заданных пределах. Карта распределения адресного пространства памяти контроллера.
курсовая работа [968,3 K], добавлен 27.12.2014Программируемый логический контроллер, его структура и внутреннее устройство, принцип действия и функциональные возможности, описание электрооборудования. Разработка программы работы логического контроллера, экономическое обоснование его создания.
дипломная работа [802,4 K], добавлен 25.04.2015