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

а) Скопировать содержимое HUNDREDS в W и преобразовать его в 7-сегментный код.

б) Вывести полученный код в порт В.

в) Сформировать импульс  на выходе RA2.

3. ВЫПОЛНЯТЬ:

а) Скопировать содержимое TENS в W и преобразовать его в 7-сегментный код.

б) Вывести полученный код в порт В.

в) Сформировать импульс  на выходе RA1.

4. ВЫПОЛНЯТЬ:

а) Скопировать содержимое UNITS в W и преобразовать его в 7-сегментный код.

б) Вывести полученный код в порт В.

в) Сформировать импульс  на выходе RA0.

Код, реализующий этот алгоритм, приведен в Программе 11.9.

Программа 11.9. Отображение трехразрядного десятичного числа (статическая индикация)

; Задача 1 ----------

DISPLAY movf BINARY,w; Берем двоичное значение

             call BIN_2_BCD; Преобразуем его в три BCD-разряда

; Задача 2 ----------

             movf HUNDREDS,w; Берем число сотен

             call SVN_SEG; Преобразуем в 7-сегментный код

             movwf PORTB; Высылаем в порт В

             bsf PORTA,2; Заносим в регистр

             bcf PORTA,2

; Задача 3 ----------

             movf TENS,w; Берем число десятков

             call SVN_SEG; Преобразуем в 7-сегментный код

             movwf PORTB; Высылаем в порт В

             bsf PORTA,1; Заносим в регистр

             bcf PORTA,1

; Задача 4 ----------

             movf UNITS,w; Берем число единиц

             call SVN_SEG; Преобразуем в 7-сегментный

             movwf PORTB; Высылаем в порт В

             bsf PORTA,0; Заносим в регистр

             bcf PORTA,0

Управление схемой, показанной на Рис. 11.16, несколько сложнее, поскольку в ней отсутствуют регистры, хранящие данные! Поэтому данные необходимо непрерывно выдавать друг за другом одновременно с включением соответствующего индикатора. Если мы собираемся обновлять изображение 100 раз в секунду, то перед переходом к следующему знакоместу эти данные должны удерживаться в течение 10 мс. Таким образом, мы получаем новый алгоритм:

1. Преобразовать двоичное однобайтное число в BCD-формат.

2. ВЫПОЛНЯТЬ бесконечно:

а)

• Скопировать содержимое HUNDREDS в W и преобразовать его в 7-сегментный код.

• Выдать полученный код в порт В.

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

• Подождать 10 мс.

• Выставить на RA2 ВЫСОКИЙ уровень .

б)

• Скопировать содержимое TENS в W и преобразовать его в 7-сегментный код.

• Выдать полученный код в порт В.

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

• Подождать 10 мс.

• Выставить на RA1 ВЫСОКИЙ уровень .

в)

• Скопировать содержимое UNITS в W и преобразовать его в 7-сегментный код.

• Выдать полученный код в порт В.

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

• Подождать 10 мс.

• Выставить на RA0 ВЫСОКИЙ уровень .

В коде, приведенном в Программе 11.10, используется подпрограмма формирования 10-мс задержки, которую мы использовали в Программе 11.7 для задания скорости сканирования. За исключением длительности импульса разрешения, основная часть программы идентична предыдущей. Однако чтобы цифры на дисплее светились постоянно, код программы должен выполняться непрерывно. В этом и заключается компромисс между затратами на аппаратную и программную части. Действительно, как уже было показано, все ресурсы микроконтроллера PIC уйдут на обслуживание индикатора! На самом деле ситуацию может спасти прерывание микроконтроллера с периодом 10 мс, что позволит избежать использования подпрограмм формирования задержки. В листинге на стр. 475 показано, как это можно реализовать. Разумеется, в этом случае таймер нельзя будет использовать для других задач. Также можно воспользоваться внешним генератором с частотой 100 Гц, однако при этом схема не будет столь эффективной с аппаратной точки зрения. При длительности свечения одного знакоместа, равной 10 мс, можно без использования дополнительных интерфейсных схем обслуживать до десяти разрядов и все равно изображение будет обновляться чаще 100 раз в секунду.

Программа 11.10. Отображение трехразрядного десятичного числа (динамическая индикация)

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

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

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

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

Сид Катцен

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

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

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

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

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

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