Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 10. Структура микроконтроллера, 2-10 система




 

Цель лекции: применение операций сдвига, перевод чисел в двоично-десятичную систему. Рассмотрение структуры микроконтроллера.

10.1 применение операций сдвига

Одним из использований операций сдвига является побитовая проверка данных. Предположим, что состояние 8 кнопок мобильного телефона сохранено в регистре данных h'20'. Были считаны следующие состояния:

Кнопка К7 К6 К5 К4 К3 К2 К1 К0
Состояние                

Требуется определить самую левую разомкнутую кнопку, при этом считаем, что разомкнутой кнопке соответствует 1, замкнутой — 0. Рабочий регистр W в программе используется в качестве счетчика. Поскольку флаг переноса сбрасывается перед каждым сдвигом, вдвигается всегда логический 0. В какой-то момент остаток становится равным нулю, и процесс завершается. Циклический сдвиг регистра на один бит вправо показан на рисунке 10.1.

   

Рисунок 10.1. Циклический сдвиг регистра на один бит вправо

Последовательность сдвигов: 00101111 (0)®00010111 (1) ® 00001011 (2) ® 00000101 (3) ® 00000010 (4) ® 00000001 (5) ® 00000000 (6). Всё на шестом шаге регистр равен нулю, следовательно, шестая кнопка К5 разомкнута.

Блок-схема алгоритма показана на рисунке 10.2. При сдвиге вправо во флаг переноса выдвигается самый правый (младший) бит. Мы смо­жем определить позицию самого правого бита, заменив команду BTFSC STATUS, Z командой BTFSC STATUS, С.

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

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

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

 

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

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

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

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

Подпрограмма, код которой приведен ниже, осуществляет выбор­ку элемента таблицы, прибавляя число N, передаваемое через рабочий регистр, к младшему байту счетчика команд (регистр PCL, расположенный по адресу h'02'). Поскольку PC уже указывает на 1-ю команду Retlw, то после прибавления N он будет указывать на N-ю команду, что нам и требуется.

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

VYBOR_SEG

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

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

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

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

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

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

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

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

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

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

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

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

10.3 Структурная схема МК

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

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

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

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

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

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

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

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

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

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

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

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

 




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 612; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.