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

        include "p16f627a.inc

SDOH equ 0

SCK equ 1

BUZ equ 2

SDOL equ 3

GREEN equ 5

YELLOW equ 6

RED equ 7

PAUSE equ 0

DIAG equ 1

STOP equ 2

SETT equ 3

GO equ 4

       cblock 20h

         MINUTE:1, SECOND:1, JIFFY:1, NUMBER:1, NEW_SEC:1

         DATA_OUT_L:1, DATA_OUT_H, COUNT:1, TEMP:1, TIME_OUT:1

         Pause:1, _work:1, _status:1

       endc

       __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF & _MCLRE_ON

       org 2100h; Область EEPROM

       de d’10’; Значение по умолчанию — 10 мин

RESET org 0; Вектор сброса

Преобразование двоичного кода в код 7-сегментного индикатора

Подпрограмма SVN_SEG преобразует младший полубайт содержимого регистра W в соответствующий код 7-сегментного индикатора. Код подпрограммы полностью эквивалентен приведенному в Программе 6.6 (стр. 184).

Вывод по SPI

Подпрограмма SPI_WRITE похожа на свою тезку, реализованную в Программе 12.1 на стр. 371, но формирует два потока последовательных данных. Число, находящееся в регистре DATA_OUT_L, передается по линии RA3, тогда как число, находящееся в регистре DATA_OUT_H, — по линии RA0. Оба канала используют общий тактовый сигнал.

Прежде чем перейти к кодированию процессов, составляющих программу, вкратце рассмотрим используемую конфигурацию микроконтроллера, задаваемую при его программировании, а также инициализационный код, выполняемый после сброса микроконтроллера (см. Программу 17.3).

Программа 17.3. Инициализационный код

        include "p16f627a.inc

SDOH equ 0

SCK equ 1

BUZ equ 2

SDOL equ 3

GREEN equ 5

YELLOW equ 6

RED equ 7

PAUSE equ 0

DIAG equ 1

STOP equ 2

SETT equ 3

GO equ 4

        cblock 20h

          MINUTE:1, SECOND:1, JIFFY:1, NUMBER:1, NEW_SEC:1

          DATA_OUT_L:1, DATA_OUT_H, COUNT:1, TEMP:1, TIME_OUT:1

          Pause:1, _work:1, _status:1

          endc

          __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF & _MCLRE_ON

          org 2100h; Область EEPROM

          de d’10’; Значение по умолчанию — 10 мин

RESET org 0; Вектор сброса

          goto MAIN

          org 4; Вектор прерывания

          goto ISR

MAIN  bsf STATUS,RP0; Переключаемся в 1-й банк

          movlw b’11100000’; RA4:0 — выходы

          movwf TRISA

          movlw Ь’11100000’; RB7:5 — выходы; RB4:0 — входы

          movwf TRISB

          movlw b’00000101’; Таймер 0: внутр. такт. сигнал,

          movwf OPTION_REG; предделитель 1:64. Подтяжка вкл.

          bcf STATUS,RP0; Возвращаемся в 0-й банк

          clrf Pause; Обнуляем флаги паузы

          clrf NEW_SEC; и секунды

          clrf TMR0

          bcf INTCON,T0IF

          bsf INTCON,T0IE;Разрешаем прерывание от Таймера 0

          bsf INTCON,GIE;Разрешаем все прерывания

          btfss PORTB,SETT;Проверяем кнопку УСТ.

            call SET_TIME;ЕСЛИ нажата, ТО устанавливаем интервал

          btfss PORTB,DIAG;Проверяем кнопку ДИАГ.

            call DIAGNOSTIC;ЕСЛИ нажата, ТО выполняем самодиагностику

Конфигурирование кристалла

С помощью директивы __config задается состояние конфигурационных ячеек в слове конфигурации кристалла. Сторожевой таймер отключен, генератор работает с внешним кварцевым резонатором, также задействован вход внешнего сброса . Запрещение низковольтного программирования высвобождает вывод RB3 для нужд ввода/вывода (см. стр. 312).

При прошивке микроконтроллера в ячейку EEPROM с адресом h’00’ заносится число 10. Это означает, что интервал счета только что запрограммированного микроконтроллера составляет 10 мин. Данное значение впоследствии можно изменять посредством процедуры установки интервала.

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

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

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

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

Сид Катцен

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

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

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

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

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

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

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

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