Автор: Пользователь скрыл имя, 15 Марта 2012 в 13:36, контрольная работа
Предложите микроконтроллерное устройство позволяющее ввести от двух независимых датчиков аналоговые сигналы постоянного тока (U1 и U2), сравнить их между собой и по результатам сравнения осуществить.
1) ADCON0 - регистр управления и статуса АЦП;
2) ADCON1 - регистр управления и конфигурации АЦП;
3) ADRES1 - регистр хранения результатов АЦП;
4) ADRES2 - регистр хранения результатов АЦП;
5) INTCON - регистр управления прерываниями;
6) PCLATH - старший регистр программного счетчика.
Первые 4-е регистра относятся к встроенному модулю АЦП и обеспечивают возможность аналого-цифрового преобразования входных сигналов.регистры специальных функций МК.
8. Регистр c адресом 07h (порт С) не существует и не является регистром общего назначения.
9. Регистр FSR (f4), в котором хранятся указатели при косвенной адресации стал шириной в 8-мь бит.
10. Величина аппаратного стека увеличена до 8-ми уровней (вместо 2-х в PIC 16С5Х), что позволило существенно увеличить глубину рекурсии программ.
11. Добавлен модуль 4-х канального 8-ми разрядного АЦП, имеющего схему выборки-хранения и среднее время преобразования 30 мкс (включая время выборки) с погрешностью не более одного младшего разряда.
Рис1. Структурная схема PIC 16С71
12. Адрес сброса при включении питания поменялся на 0000h.
13. Распознаются 5-ть различных типов сбросов (выходов из режима SLEEP).
При этом инициализация регистров изменена. Они устанавливаются по разному, в зависимости от типа сброса.
14. Добавлена возможность выхода из режима SLEEP через прерывание.
15. Для более надежного запуска добавлены следующие аппаратные задержки: таймер запуска (OST), таймер включения питания (PWRT). Эти таймеры могут быть использованы избирательно, что позволяет избежать ненужных задержек как при включении, так и при выходе из режима SLEEP.
16. Все 5-ть выводов порта А совмещены со входами других функциональных модулей микроконтроллера, что позволило существенно уменьшить необходимое количество входов/выходов.
Так 4-е линии двунаправленного ввода/вывода порта А RA3:RA0 совмещены (запараллелены) с аналоговыми входами 4-х каналов АЦП AIN:3AIN0 соответственно. Причем, на вход RA3 может быть подано также еще и внешнее опорное напряжение Vref.
Пятая же линия RA4 совмещена со входом внешней синхронизации TOCKI таймера-счетчика TMRO.
17. Одна из 8-ми двунаправленных линий ввода/вывода порта В (RS0)совмещена со входом сигнала внешнего прерывания INT.
18. Порт В имеет дополнительные активные нагрузки, которые коммутируются (подключаются и отключаются) программно.
19. Изменение сигналов на входах порта В может вызвать прерывание.
20. Реализован встроенный автомат самопрограммирования. Пользователь может программировать PIC 16С71 используя пять выводов : Vdd, Vss, MCLR/Vpp (тактовая частота), RB6, RB7 (ввод /вывод данных).
Более подробно некоторые из перечисленных выше архитектурных особенностей рассмотрены ниже.
Обозначение выводов и их функциональное назначение
PDIP, SOIC, CERDIP
RA2/AIN2
RA3/AIN3/Vref
RA4/RTCC
/MCLR/Vpp
Vss
RB0/INT
RB1
RB2
RB3
Рис.2. Расположение выводов PIC 16C71
Обозначение выводов PIC 16С71 и их функциональное назначение приведено на рис. 3.2. и в табл. 3.1.
Обозначение выводов PIC 16c71 и их функциональное назначение
Обозначение |
Нормальный режим |
RA4/RTCC |
Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика RTCC. |
RA0/AIN0 |
Двунаправленная линия ввода/вывода. Аналоговый вход канала 0. Как цифровой вход имеет уровни ТТЛ. |
RA1/AIN1 |
Двунаправленная линия ввода/вывода. Аналоговый вход канала 1. Как цифровой вход имеет уровни ТТЛ. |
RA2/AIN2 |
Двунаправленная линия ввода/вывода. Аналоговый вход канала 2. Как цифровой вход имеет уровни ТТЛ. |
RA2/AIN2 |
Двунаправленная линия ввода/вывода. Аналоговый вход канала 2. Как цифровой вход имеет уровни ТТЛ. |
RA3/AIN3/Vref |
Двунаправленная линия ввода/вывода. Аналоговый вход канала 3. Как цифровой вход имеет уровни ТТЛ. |
RB0/INT |
Двунаправленная линия порта вывода или внешний вход прерывания. Уровни ТТЛ. |
RB1 - RB5 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
RB6 |
Двунаправленные линии ввода/вывода. Уровни ТТЛ. |
RB7 |
Двунаправленные линии ввода/вывода. Уровни ТТЛ. |
/MCLR/Vpp |
Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий. Вход через триггер Шмитта. |
OSC1 |
Для подключения кварца, RC или вход внешней тактовой частоты. |
OSC2 /CLKOUT |
Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварца |
Vdd |
Напряжение питания |
Vss |
Общий(земля) |
Вопрс №2Ввод байта состояния одного датчика
Пусть, например, необходимо ввести байт состояния датчика дискретных сигналов (Di), сравнить его с уставкой, хранящейся в виде константы Ki в памяти данных, и по результатам сравнения осуществить:
Для решения данной вопроса необходимо:
На основании предыдущих рассуждений можно предложить вариант блок-схемы алгоритма рабочей программы микроконтроллера приведена БСА подпрограммы сравнения двух восьмиразрядных кодов (СОМР), один из которых представляет собой байт состояния датчика (Di), а другой - константу (Ki), хранящуюся в одном из регистров памяти данных.
На основании блок-схем алгоритмов и распределения памяти данных можно предложить текст программы, который приведен ниже:
; Текст программы.
LIST p=16C84, r =HEX
Title ‘Z2’
; Секция заголовка
; Описание специальных регистров
TRISA EQU 85H
TRISB EQU 86H
INTCON EQU 0BH
STATUS EQU 03H
; Описание регистров ввода/
Вопрос №3
Предварительная обработка входных аналоговых сигналов: Почему возникает такая необходимость? Усиление амплитуды до необходимого уровня (Нормирование входных сигналов по уровню)
Подключение аналоговых входов осуществляется следующим образом. Пользователь должен установить регистр ACON1 так, чтобы линии аналоговых сигналов были сконфигурированы как аналоговые входы. Так как линии аналоговых сигналов запараллелены с цифровыми выходами, которые имеют диоды защиты, подключенные к Vdd и к Vss в обратном направлении, то входной аналоговый сигнал должен будет ограничиваться этими значениями, иногда с увеличением тока в ножку. Чтобы избежать повреждений входных цепей, рекомендуется иметь последовательный ограничивающий резистор не менее 500Ом.
Для источников сигнала, выходное сопротивление не должно быть больше 10 КОм. Тогда максимальная погрешность, вызванная током утечки, составляет +- 5 мВ или +- 0.25 LSB при Vdd=Vref= 5В (10 КОм * 5мкА). Другая причина ограничения максимального выходного сопротивления источника сигнала -это требование к запоминанию входного сигнала на специальном конденсаторе в схеме выборки-хранения. Для снижения шума иногда добавляют внешний RC фильтр. И в этом случае значение R должно быть таким, чтобы суммарная величина сопротивления не превосходила 10КОм. Любой внешний компонент, подключаемый к аналоговому входу (будь то конденсатор или стабилитрон ), должен иметь очень небольшой ток утечки.
Управляющий регистр АЦП (ADCON1) (Адрес 88h. Значение при включении питания= 00H) имеет следующее содержание:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
- |
- |
PCFG1 |
PCFG0 |
PCFG1 |
PCFG1 |
- Биты, которые определяют конфигурацию ножек RA0 - RA3 (см. табл. 3.4) |
Таблица 3.4
Конфигурация выводов RA0-RA3
PCFG1, PCFG0 |
RA0,RA1 |
RA2 |
RA3 |
Vref |
00 |
аналоговые входы |
аналоговый вход |
аналоговый вход |
Vdd |
01 |
аналоговые входы |
аналоговый вход |
вход опорного напряжения |
RA3 |
10 |
налоговые входы |
цифровой вход |
цифровой вход |
Vdd |
11 |
цифровые входы |
цифровой вход |
цифровой вход |
— |
Функционирование АЦП в режиме SLEEP осуществляется следующим образом.
При входе в режим Sleep следует сбросить бит ADON в регистре ADCON0, чтобы уменьшить потребление тока.
Если АЦП находился в процессе преобразования ( с использованием RC генератора), то преобразование будет завершено прямо в режиме Sleep. Флаг прерывания ADIF будет взведен и кристалл будет выведен из режима SLEEP, если флаг разрешения прерывания ADIE ранее был установлен. При таком режиме измерения отсутствуют импульсные помехи и обеспечивается максимально возможная точность преобразования, что полезно на высоких тактовых частотах.
Если режим SLEEP инициализируется во время преобразования, которое использует внутренний генератор, как источник тактирования —преобразование будет прервано. В этом случае пользователь должен перезапустить АЦП после выхода из режима Sleep, начав с повторной выборки данных.
Информация о работе Проектирование Микроконтролерных устройств