Основная программа организующая работу микроконтроллера.
READYACP: REG P1.2
READYKEY: REG P1.3
TABLE: EQU 0000h
PA: EQU 00h
PC: EQU 01h
PB: EQU 10h
ORG 0000h:
CONTROL: AJMP PROGR
ORG 0003h:
INT0: AJMP TRANSMIT
ORG 0013h:
INT1: AJMP KEYBOARD
ORG 000Bh:
DELAYR: AJMP DELAY
ORG 0010h
PROGR: MOV IE, #85h
MOV IP, #01h
MOV SP,#71h
ACALL INIT
SETB TCON4
MOV 14, #7Bh длительность задержки 5 сек.
MOV 15, #03h
ACALL DELAY
CIKL: ACALL WYWOD
JMP CIKL
Подпрограмма обслуживания прерывания от таймера, обеспечивает двенадцать одно измерение в минуту. Для того, что бы исключить лишние операции при выполнении основной программы, будем производить измерения только по приходу сигнала прерывания от таймера, т. е. По истечении 5 сек.
Входные параметры: ячейка 14h младший байт и ячейка 15h старший байт, резидентной памяти данных, количества отсчётов таймера.
Выходные параметры: ячейка 14h младший байт и ячейка 15h старший байт, резидентной памяти данных, количества отсчётов таймера.
Используются: регистры R0, R1. Подпрограммы ACP, TEMPER, PEREADR.
ORG 0020h
DELAY: CLR C ;
SET RS0 ; включить 1 банк регистров
MOV R0, 14 ; загрузка количества отсчётов таймера.
MOV R1, 15 ;
ADD A, @R0 ;если младший байт полон то переход на увеличение
JC M1 ; старшего
CJNE R0, #7Bh, M2 ; проверка, если количество отсчётов закончилось то переход
CJNE R1, #03h, M2 ; на снятие данных с АЦП, и обнуление количества отсчётов
MOV 14, #00h ; таймера
MOV 15, #00h ;
ACALL ACP ;
ACALL TEMPER ;
ACALL SRAVNENIE;
ACALL SREDN ;
ACALL PEREADR ;
AJMP M2 ;
M1: INC @R1 ;
M2: MOV TMOD, #01h ; загрузка и запуск таймера
MOV TH0, #FFh ;
MOV TL0, #FFh ;
SETB TCON4 ;
MOV 14, R0 ; сохранение количества отсчётов
MOV 15, R1 ;
CLR RS0 ; включить 0 банк регистров
RETI ;
Подпрограмма чтения данных из аналого-цифрового преобразователя.
Входные параметры: содержимое выходного регистра преобразователя.
Выходные параметры: ячейки резидентной памяти данных с 0018h по 0023h.
Используются: регистры R0, R1, R2, R3.
ORG 0055h
ACP: MOV R1, #18h ; начальный адрес
MOV R2, #01h ; количество датчиков у нас один
MOV R3, #00h ; управляющее слово АЦП
CLR P1.3 ;
CLR P1.4 ; активизация АЦП
ANL P1, #FCh ;
SLED: MOV A, R3 ; вывод в АЦП управляющего слова
MOVX @R1, A ;
WAIT: JNB READYACP, WAIT ; ожидание готовности данных из АЦП
MOVX A, @R1 ;
MOV R0, A ; чтение Мл.Б в R0
MOV A, #03h ;
ANL A, P1 ; чтение СТ.Б в А
XCH A, R0 ;
MOV @R1, A ; запись Мл.Б по адресу в R1
INC R1 ;
MOV A, R0 ;
MOV @R1, A ; запись Ст.Б по адресу в R1
INC R1 ; следующий адрес
INC R3 ; следующий датчик
DJNZ R2, SLED ;
SETB P1.3 ;
SETB P1.4 ; отключение АЦП
RET ;
SRAVNENIE
Подпрограмма переадресации значения измеренного давления, для его дальнейшего хранения в течении одного часа.
Входные параметры: регистры R4 младший байт среднего, R5 старший байт среднего. Ячейки резидентной памяти данных 12 последний адрес, 13 количество средних.
Выходные параметры: ячейки внешней памяти данных от 0010h до 0088h, а также ячейки резидентной памяти 12 последний адрес, 13 количество средних.
Используются: регистр R0, R4, R5.
ORG 00F0h
PEREADR: SETB P1.3 ; активизация ВПД
CLR P1.4 ;
INC 12h ; следующий адрес хранения среднего
MOV A, 12h ; запись Мл.Б среднего по адресу хранения
MOV R0, A ;
MOV A, R4 ;
MOVX @R0, A ;
INC R0 ;
MOV A, R5 ; запись Ст.Б среднего по адресу хранения
MOVX @R0, A ;
DJNZ 13, SLED ; число средних равно 60, если нет переход
MOV 13, #3Ch ; выбор адреса хранения сначала
MOV 12, #0Fh ;
SETB P1.4 ; отключение ВПД
RET ;
SLED: MOV A, R0 ;
MOV 12,A ;
SET P1.4 ; отключение ВПД
RET ;
Подпрограмма, выполняющая ввод информации с клавиатуры её анализ и отображение информации на дисплей.
Входные параметры: данные с клавиатуры.
Выходные параметры: данные на дисплей. Используются подпрограммы работы с ЖК-дисплеем.
KEYBOARD:ACALL DELAY5; ЗАДЕРЖКА НА ДРЕБЕЗГ КОНТАКТОВ
SETB P1.4 ; активизация PIO
CLR P1.3 ;
MOVX A,PB ;
CPL A ;
ANL A,#0Fh ;
CJNZ A,#01,K1 ;сравнение с кодами кнопок.
CJNZ A,#02,K2 ;
CJNZ A,#04,K3 ;
K1: SETB P1.4 отключение PIO
ACALL OUTPUT1;вывод значения первого канала на дисплей.
RETI;
K2: SETB P1.4
ACALL OUTPUT2;
RETI;
K3: SETB P1.4
ACALL OUTPUT3;
RETI;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.