Переменная для хранения флаг-битов. Подложка для LCD индикатора. Битовые переменные (флаги) подпрограмм работы с шиной 12С

Страницы работы

Содержание работы

Надпись: EQU 0x18
EQU 0x19
bin	EQU 0x1 A
tens and„ones   EQU Ox I hundreds    EQU Ox 1С timeienght   EQU 0x06 templenght  EQU 0x06
,  АО (17) - строб записи в регистры ,  А1 (18) - данные для индикации

A2(l) -SCL

A3 (2) - SDA

А4 (3) - вход 4кГц для таймера

81  (7) - вход кнопки "+минута"

82  (8) - вход кнопки "+час"

83  (9) - подложка для LCD индикатора

***** *******»**************+***** *****************************

list p=16F84 #include <pl 6F84.inO _CONFIG _CP_OFF&

EQU OxOC EQU OxOD EQU OxOE

w_temp

statusjemp

countl

count2

count3

count4

flags

work data digit 1 digit2 digit3 digit4 digitemp

WDT_OFF & _ PWRTE.ON & _XT_OSC

EQU EQU EQU EQU EQU EQU EQU

OxOF

0x10

0x11

0x12

0x13

0x14

0x15

переменная для временного хранения переменная для временного хранения рабочий счетчик рабочий счетчик рабочий счетчик рабочий счетчик

EQU 0x16 EQU 0x17

переменная для хранения флаг-битов рабочая переменная значение для первого знакоместа значение для второго знакоместа значение для третьего знакоместа значение для четвертого знакоместа промежуточное значение знакоместа счетчик времени отображения рабочая переменная

В ; рабочая переменная для перекодировки ; рабочая переменная для перекодировки ; длительность индикации времени, сек ; длительность индикации температуры, сек

SLAVE      EQU   29   ; Адрес устройства (YYYYxxxO) TXBUF     EQU   2А ; Буфер передачи RXBUF     EQU   2В   ; Буфер приема COUNT     EQU   2С   ; Счетчик битов

0 3 2 7 6

EQU EQU EQU EQU EQU

ERR1

SDA

SCL

DI

DO

;*** Битовые переменные (флаги) подпрограмм работы с шиной 12С

; Флаг-бит ошибки (здесь не используется) ; RA3, вход/выход данных (SDA) ; RA2. тактовая частота (SCL) ; Входной бит подпрограммы I2C ; Выходной бит подпрограммы I2C

ORG 0x000 goto main

clrf TMR0 bcfINTCON,T0IF btfsc flags, 1 goto tempread timeread callclock btfss flags, 0 goto d„point bsfdigit2,7 bcf flags, 0 goto gohome d point  bcf digit2, 7 bsf lags, 0 decfsz disp, f

goto gohome bsf flags. 1

ORG   0x004       ; вектор прерывания movwf    w. temp ; сохранение текущего значения W movf STATUS.w ; перенос содержимого STATUS bW movwf statusjemp ; сохранение содержимого регистра STATUS

; очистка таймера

; сброс флага прерывания ; если flags<l>=0 отображаем время ; если flags< 1 >= 1 отображаем температуру ; чтение текущего значения времени ; разделитель включен? ; если нет,

; то включаем разделичелъ ; сбрасываем флаг разделителя ; и выходим из подпрограммы ; иначе выключаем разделитель ; устанавливаем флаг разделителя ; уменьшаем на 1 время индикации. Врем? ; истекло?

movlw templenght movwf disp goto gohome

tempread call celsio

; нет, продолжаем отображать часы ; иначе устанавливаем флаг индикации ; температуры ; и загружаем в disp ; длительность ее отображения

; чтение текущего значения температуры


Похожие материалы

Информация о работе

Тип:
Написанные программы на языках программирования
Размер файла:
39 Kb
Скачали:
0