Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп лек по ЭиУА.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
934.4 Кб
Скачать

10.2 Цифровой индикатор

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

Рисунок 10.3 – Семи - сегментный индикатор

Входным сигналом в данном случае является 4-битный двоичный код, находя­щийся в рабочем регистре. Этот код представляет собой десять десятичных цифр в виде b’0000’…b’1001’. Выходным значением, также возвращаемым в W, является соответствующий 7-битный код, необходимый для отображения соответству­ющей цифры. Причем предполагается, что включение сегмента происходит при подаче на него 1, а выключение — соответственно при подаче 0. При необходимости можно реализовать и обратную полярность.

Преобра­зования реализуются подпрограммой в виде наборов команд Retlw, каждая из которых возвращает однобайтную константу. Каждая команда retlw помещает разные константы в аккумулятор W, неиспользу­емый 7-й бит, предназначенный для изображения точки, сброшен в ноль.

При использовании таблиц извлечение n-го элемента таблицы заклю­чается в выполнении N-ой команды. При этом константа, находящаяся в коде команды, будет помещена в аккумулятор W, после чего произойдет нормальный возврат в вызывающую программу. Если N=6, то исполнится команда Retlw, возвращающая в W код b'011I1000' для символа 6.

Подпрограмма, код которой приведен ниже, осуществляет выбор­ку элемента таблицы, прибавляя число N, передаваемое через аккумулятор, к младшему байту счетчика команд (регистр PCL, расположенный по адресу h'02'). Действительно счетчик команд РС при вызове подпрограммы VYBOR_SEG будет указывать на адрес, где записана первая строка подпрограммы, например 100h. После выполнения команды addwf PCL, f в счетчике будет число 100h+6h+1h=107h поскольку счетчик инкрементируется после выполнения команды, и следующая выполненная команда бет иметь адрес 107h, что нам и требуется.

Подпрограмма дешифратора семи - сегментного индикатора.

VYBOR_SEG; Адрес

addwf PCL, f; прибавим W к PCL, получая PCL + W. 100h

retlw b'00111111'; код для цифры 0. Возвращается при W=0. 101h

retlw b'00000110'; код для цифры 1. Возвращается при W=1. 102h

retlw b'10101101'; код для цифры 2. Возвращается при W=2. 103h

retlw b'01001111'; код для цифры 3. Возвращается при W=3. 104h

retlw b'01100110'; код для цифры 4. Возвращается при W=4. 105h

retlw b'01101101'; код для цифры 5. Возвращается при W=5. 106h

retlw b'01111101'; код для цифры 6. Возвращается при W=6. 107h

retlw b'00000111'; код для цифры 7. Возвращается при W=7. 108h

retlw b'01111111'; код для цифры 8. Возвращается при W=8. 109h

retlw b'01101111'; код для цифры 9. Возвращается при W= 9. 10Аh

В программе не учитывается возможность того, что входное значение в может быть больше h’09’.

10.2 Структурная схема мк

Из рисунка 10.4 видно, что микроконтроллер может управлять различными устройствами и принимать от них данные при ми­нимуме дополнительных устройств, так как большое число пе­риферийных схем уже имеется непосредственно на кристалле микроконтроллера. Это позволяет уменьшить размеры конст­рукции и снизить потребление энергии от источника питания.

Рисунок 10.4 - Структура микроконтроллера

Рассмотрим типичные элементы микроконтроллеров:

1) Последовательный порт. Он позволяет обмениваться данными с внешними устройствами при малом количестве проводов.

2) Цифровые линии ввода/вывода.

3) Аналоговый порт.

4) Центральное процессорное устройство (ЦПУ) - это мозг микроконтроллера. Оно принимает из памяти программ коды команд, декодирует их и выполняет. ЦПУ состоит из регистров, арифметически- логического устройства (АЛУ) и цепей управ­ления.

5) Сторожевой таймер. Это специальный таймер, предна­значенный для предотвращения сбоя программы. Он работает следующим образом: после включения питания начинает отсчет заданного временного интервала, определяющего нормальное выполнение программы. Если программа не перезапус­тит его до истечения этого интервала времени, сторожевой тай­мер перезапустит микроконтроллер. Таким образом, программа должна давать сторожевому таймеру сигнал - все в порядке. Ес­ли она этого не сделала, значит, по какой-либо причине произо­шел сбой.

6) Аналого-цифровой преобразователь. В моделях старшего класса есть и цифро-аналоговый преобразователь.

7) Тактовый генератор. Этот генератор определяет ско­рость работы микроконтроллера и синхронизирует работу всех устройств.

8) Память программ. ОЗУ. Здесь хранятся переменные, стек и коды команд, формирующих программу для микрокон­троллера.

9) Встроенные таймеры-счетчики, которые используются для отсчета временного ин­тервала или счета объектов.