КАТЕГОРИИ: Архитектура-(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'. Были считаны следующие состояния:
Требуется определить самую левую разомкнутую кнопку, при этом считаем, что разомкнутой кнопке соответствует 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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |