Проектирование автоматической системы взвешивания вагонов в статике
;скорость передачи 300 бод, - задаётся ТС1
ORG 00H;начальный адрес трансляции
SJMP BEGIN
ORG 03H;прерывание по INT0
JMP MAIN
ORG 23H;прерывание по последоват. порту
JMP UAPP
ORG 30H;программа инициализации
BEGIN:
MOV IE, #10010001B;разрешение прерываний по последоват.
;порту и по INT0
MOV IP, #00010000B;установка высшего приоритета у прерыв. по ПП
>MOV TMOD, #00100000B;режим с перезагр TH1 в TL1
MOV TCON, #00000000B;обнуление битов управления ТС1
MOV PCON, #00000000B;работа МК без удвоения частоты
MOV SCON, #0101000B;настройка UAPP
MOV P0, #0FFH;настройка портов P0 и P2 на ввод
MOV P2, #0FFH
MOV TH1, #187;загрузка и запуск таймера
MOV TL1, #187
SETB TCON.6
MOV R5, #15;очистка смещений
MOV R1, #52
CALL CLEAR
CLR PSW.1;активация подпрограммы взвешивания
STOP:JMPSTOP ;зацикливание
;
;
;Nucleus of the Program
MAIN:
MOV R5, #0
MOV R0, #32;начальный адрес ячейки памяти
;для получаемого кода
MOV R1, #52;начальный адрес смещений
MOV P1, #11111000B;0 - настройка на вывод
MOV P1, R5;выбор канала 1 (MUX).
RETM:MOV P0, #0FFH;прием текущего значения
MOV R6, P0;кода с АЦП. "1"-линия настроена
MOV P2, #0FFH;на ввод
MOV R7, P2;в R6-младший байт кода,R7-старший
JNB PSW.1, MAIN0
MOV A, R6;запись полученных кодов в область смещений
MOV @R1, A;младший байт
INC R1
MOV A, R7
MOV @R1, A;старший байт
JMP COMMON
MAIN0:
CLR PSW.7
MOV A, R6
SUBB A, @R1 ;коррекция OffSet для младшего байта
MOV @R0, A;запись младшего байта
INC R0;вычисление адреса старшего байта
INC R1
MOV A, R7
SUBB A, @R1 ;коррекция OffSet для старшего байта
MOV @R0, A ;запись старшего байта
COMMON:
;подготовка к следующему циклу
INC R0;вычисление нового адреса младшего байта
INC R1
INC R5;вычисление адреса канала MUX
CLR PSW.7
MOV A, R5;проверка -> адрес канала > Last(8).
SUBB A, #8
JNZ GoOn
JB PSW.1, KALIB
ACALL OUT;вызов подпрограммы вывода инф. на ЭВМ
;и реинициализации управл. регистров.
KALIB:
CLR PSW.1
RETI
GoOn:
MOV P1, #11111000B;0 - настройка на вывод
MOV P1, R5;0 - 2 линии порта P1 - управляют MUX
MOV R4,#20 ;небольшая задержка для АЦП
DAC1:DJNZ R4, DAC1
JMP RETM
;End Nucleus of the Program
; _
; _
;Вывод полученного веса в компьютер через последовательный порт
OUT:
MOV R6, #0;временно - R6-мл. результат
MOV R7, #0 ;R7-ст. результат
;R5-счетчик
MOV R5, #8
MOV R0, #32
SUMM:
MOV A, @R0;суммирование младшего байта
ADD A, R6;и запись его в R6
MOV R6, A
INC R0
MOV A, @R0;суммирование старшего байта
ADDC A, R7;и запись его в R7
CLR PSW.7
MOV R7, A
INC R0
DJNZ R5, SUMM;в регR6-мл. результат
; R7-ст. результат
CLR IE.7;запрет всех прерываний на время передачи
MOV SBUF,R6;передача младшего байта результата
ACALL DELAY;вызов подпрограммы задержки
MOV SBUF,R7;передача старшего байта результата
ACALL DELAY;вызов подпрограммы задержки
CLR SCON.1;сброс флага прерывания по посл. порта
SETB IE.7;разрешение прерываний
MOV R5, #0
MOV R0, #32;начальный адрес ячейки памяти
;для получаемого кода
MOV R1, #52;начальный адрес смещений
CLR IE.0;запрещение прерывания по INT0
RET
;Конец передачи
; _
; _
;Прерывание по последовательному порту
UAPP:
CLR SCON.1;сброс флага прерывания
MOV R7, SBUF;прием управляющего слова
ACALL DELAY
MOV A, #00111100B;обнуление смещений и результатов
SUBB A, R7
JNZ NEXT0
MOV R5, #36;запуск очистки
MOV R1, #32
ACALL CLEAR
NEXT0:
MOV A, #11110000B;запрос на запуск преобразования и
SUBB A, R7;и на передачу в компьютер
JNZ NEXT1
;активация работы подпрограммы
CLR PSW.1;взвешивания в MAIN
SETB IE.0;разрешение прерывания по INT0
NEXT1:
MOV A, #00001111B;запрос на передачу в компьютер
SUBB A, R7
JNZ NEXT2
ACALL OUT
NEXT2:
MOV A, #0FFH ;запрос на калибровку
SUBB A, R7
JNZ NEXT3;активация работы подпрограммы
SETB PSW.1;калибровки в MAIN
NEXT3:
OTHERWISE:
RETI
; _
; _
;Подпрограмма задержки для последовательного порта
DELAY:
MOV R2,#25;задержка, небходимая для
A2:MOV R3,#250;принятия/передачи байта
A1:DJNZ R3,A1
DJNZ R2,A2
RET
; _
; _
CLEAR:
MOV @R1, #0;R5 - колличество
INC R1 ;R1 - начальный адрес
DJNZ R5, CLEAR
RET
; _
END;конец трансляции
Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:
Поиск рефератов
Последние рефераты раздела
- Микроконтроллер системы управления
- Разработка алгоритмического и программного обеспечения стандарта IEEE 1500 для тестирования гибкой автоматизированной системы в пакете кристаллов
- Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi 7.0
- Разработка детектора высокочастотного излучения
- Разработка микропроцессорного устройства для проверки и диагностики двигателя внутреннего сгорания автомобиля
- Разработка микшерного пульта
- Математические основы теории систем