Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Взгляните на схему с использованием последовательного интерфейса, приведенную на Рис. 12.2. В этой схеме используются только два вывода порта. Один, называемый SDO (Serial Data Out — выход последовательных данных), используется для побитовой передачи данных. Второй, названный SCK (Serial ClocK — последовательный тактовый сигнал), используется для одновременного тактирования трех сдвиговых регистров, осуществляя, таким образом, побитовый сдвиг данных вправо аналогично тому, как это было изображено на Рис. 3.8 (стр. 78).

Рис. 12.2. Последовательный интерфейс с 3-разрядным 7-сегментным дисплеем

Каждый индикатор дисплея подключен к своему 8-битному сдвиговому регистру[151] 74НСТ164 (см. Рис. 2.22 на стр. 51). Эта микросхема имеет тактовый вход С1 (активный фронт — нарастающий) и два входа данных, объединенных по И. Один из этих входов может использоваться для стробирования второго, но в нашем примере они объединены, образуя один вход данных. Также имеется вход сброса с активным НИЗКИМ уровнем для очистки содержимого регистра (в нашей схеме на него подается ВЫСОКИЙ уровень). При необходимости для управления этим входом можно задействовать еще один вывод микроконтроллера.

Чтобы сменить изображение на дисплее, необходимо задвинуть в указанную цепочку регистров 24 бита данных. Чтобы разобраться, каким образом это можно сделать, обратимся снова к процедуре управления 7-сегментным индикатором из Программы 11.9 (стр. 363), в которой осуществляется преобразование двоичного числа в набор BCD-разрядов, хранящихся в регистрах HUNDREDS, TENS и UNITS. Эти значения преобразовывались в 7-сегментный код, который затем выставлялся на 8-битную шину.

Чтобы преобразовать этот процесс к последовательному виду, нам потребуется написать подпрограмму, которая будет по очереди выдавать все биты регистра, скажем DATA_OUT, на вывод RAO/SDO, начиная с самого левого (старшего) бита. Одновременно на выводе RA1/SCK будут формироваться тактовые импульсы для загрузки этих битов в регистры. Алгоритм работы данной подпрограммы будет следующим:

1. Выставить на SCK НИЗКИЙ уровень.

2. COUNT = 8.

3. ПОКА COUNT > 0, ВЫПОЛНЯТЬ:

а) Копировать старший бит DATA_OUT в SDO.

б) Сдвинуть DATA_OUT на один бит влево.

в) Сформировать импульс  на SCK.

г) Декрементировать COUNT.

В Программе 12.1 содержится две подпрограммы. Первая из них, названная DISPLAY, очень похожа на ту, что была написана нами в Программе 11.9, поскольку точно так же вызывает подпрограмму BIN_2_BCD и копирует значения кодов 7-сегментного индикатора в интерфейсный регистр. В данном случае сначала загружается значение единиц (поскольку этот байт в конце концов будет задвинут в самый последний регистр цепочки), затем десятков и, наконец, сотен.

Программа 12.1. Отображение трехразрядного десятичного числа с использованием последовательной передачи данных

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки