Курсовая работа: Разработка микропроцессорной системы цифрового термометра на базе микроконтроллера
Расположение и обозначение выводов ОМК PIC 16С84 полностью совпадает с PIC 16С71 за исключением того, что ножки RA0, RA1, RA2, RA3 в связи отсутствием АЦП представляют собой лишь двунаправленные линии ввода/вывода сигналов с ТТЛ уровнями.
3.8 Организация памяти данных (ОЗУ)
Область ОЗУ организована как 128х8, имеет также 2-е страницы с одинаковыми объемом (128 байт) и практически не отличается от памяти данных PIC 16С71 за исключением того, что на местах регистров ADCON, ADCON1, ADRES и ADRES2 в связи с отсутствием АЦП находятся соответственно регистры управления EEPROM данных-констант EEDATA (08h), EECON1 (88h), EEADR (09h), EECON2 (89h).
Все регистры PIC 16C84 (16F84), также как и во всех других ОМК семейства PIC, разделяются на две функциональные группы: специальные регистры и регистры общего назначения (РОН).
Регистры специального назначения используются для управления функциями микроконтроллера и могут быть разделены на два набора: регистры базовых функций и регистры периферийных устройств. Регистры базовых функций включают в себя регистр-переключатель косвенной адресации (INDF), программный счетчик (РС), представленный двумя регистрами PCL и PCLATH, регистр слова состояния (STATUS), регистр-указатель косвенной адресации (FSR), рабочий регистр (W), регистр прерываний (INTCON), а также регистр режимов работы или конфигурации предварительного делителя и таймера (OPTION). Регистры периферийных устройств включают в себя регистры ввода/вывода (RA-порт А и RB-порт В), регистры данных (EEDATA) и адреса (EEADR) памяти данных-констант, регистр таймера-счетчика (TMPO) и регистры управления конфигурацией портов ввода/вывода (TRISA и TRISB).
К ячейкам ОЗУ можно точно также как и в PIC 16С71 адресоваться прямо или косвенно, через регистр указатель FSR (04h). Это, кстати, относится и к EEPROM памяти данных-констант.
Долговременная память данных-констант EEPROM
Память данных-констант EEPROM позволяет прочитать и записать байт информации. При записи байта автоматически стирается предыдущее значение и записывается новое (стирание перед записью). Все эти операции производит встроенный автомат записи EEPROM. Содержимое ячеек этой памяти сохраняется при выключенном питании.
При считывании данных из памяти EEPROM необходимо записать требуемый адрес в EEADR регистр и затем установить бит RD EECON1<0> в единицу. Данные появятся в следующем командном цикле в регистре EEDATA и могут быть прочитаны. Данные в регистре EEDATA защелкиваются. Пример фрагмента программы считывания данных из памяти данных-констант EEPROM приведена ниже:
Считывание из памяти данных-констант
Bcf STATUS , RP0 ; Установка банка 0.
Movlw CONFIG_ADDR ;
Movwf EEADR ; Адрес чтения.
Bsf STATUS , RP0 ; Установка банка 1.
Bsf EECON1 , RD ; Чтение EEPROM.
Bcf STATUS , RP0 ; Установка банка 0.
Movf EEDATA , W ; Считанные данные W.
При записи в память EEPROM, необходимо сначала записать требуемый адрес в EEADR регистр и данные в EEDATA регистр. Затем выполнить специальную обязательную последовательность команд, производящую непосредственную запись:
Movlw 55h ;
Movwf EECON2 ; Запись 55 h.
Movlw AAh ;
Movwf EECON2 ; Запись AA h.
Bsf EECON1 , WR ; Установка бита WR,
; начало цикла записи.
Во время выполнения этого участка программы, все прерывания должны быть запрещены для точного выполнения временной диаграммы. Время записи - примерно 10мс. Фактическое время записи будет изменяться в зависимости от напряжения, температуры и индивидуальных свойств кристалла. В конце записи бит WR автоматически обнуляется, а флаг завершения записи EEIF, он же запрос на прерывание, устанавливается. Пример фрагмента программы записи в память данных-констант EEPROM приведена ниже:
; Запись в память данных-констант.
Bsf Status , RP0 ; Установка банка 1.
Bcf Intcon , GIE ; Запрет прерываний.
; Обязательая последовательность команд.