$nolist
$include (org.prc)
$include (pic_io.mac)
$include (lcd_io.mac)
$include (kbrd_io.mac)
$include (552asm.inc)
$listSTART; переход на основную программу8003h; подпрограмма обработки прерывания по INT0; выход из подпрограммы обработки прерывания по INT08013h; подпрограмма обработки прерывания по INT1A, TL1PSW.0, M11; переход если поступило прерывание останавливающее таймерTCON.4M12: CLR TCON.4; остановка таймераIEN0,#00h; блокировка прерыванийTL1,#00h; обнуление счётчика импульсов: RETI; выход из подпрограммы обработки прерывания по INT1: CALL I2cinit; проверка связи с сопроцессором
%PicGet (PIC_flg)PROG: %SEND_STR_LCD(ERR1)START: CLR CY; обнулить бит переносаLCDinit; инициализировать ЖКИACC, (Scan_8_lines+INTenable+AutoRepeat_en+Beep_enable); (8 линий + прерывание по INT0)initKBRD; инициализировать клавиатуру: %SEND_CMD_LCD(01h); очистить экран
CALL D; подпрограмма временной задержки
%PICGET (PIC_flg); проверка состояния сопроцессораACC.KBRDRQU, NEW; переход если клавиша не нажата
%PICGET (KBRD_STS); чтение кода нажатой клавиши
%KBRD_COD; преобразование в коды ЖКИLCDD; вывод на экран заданного числа тысяч об/минA, R0; преобразование кода нажатой клавиши в число об/мин
SUBB A,#30hR0, A
MOV R1,#64hUMR6, A; запись числа оборотов в регистры R6 и R7R7, B; в регистре R7 - старшие разряды, а в R6 - младшие
M1: %PICGET (PIC_flg)ACC.KBRDRQU, M1
%PICGET (KBRD_STS)
%KBRD_CODLCDD; вывод на экран заданного числа сотен об/минA, R0; преобразование кода нажатой клавиши в число об/мин
SUBB A,#30hR0, AR1,#0AhUMR0, A
MOV R1, R6SUM; операция сложения тысяч и сотен об/мин в регистах R6 и R7
M2: %PICGET (PIC_flg)ACC.KBRDRQU, M2
%PICGET (KBRD_STS)
%KBRD_CODLCDD; вывод на экран заданного числа десятков об/мин
MOV A, R0A,#30h
ADD A, R6; получение окончательногоR6, A; числа об/мин в регистрах R6 и R7R0,#00hLCDD; добавка нуля к полученному результату: MOV R3, R7; определение времени которое должно быть получено на счётчикеR2, R6; между двумя импульсами от датчика скоростиR0,#02hDEL; деление скорости на 2 (N/2)
MOV R0, R2R3,#27hR2,#10hDEL; 10000/(N/2)R1, R2R0,#05hUM; 10000*5/(N/2)
MOV R6, A; занесение в регистры R6 и R7 времениR7, B; скоторым будет сравниваться время полученное на счётчикеPWMP, 7Fh; задание начальной частоты повторения ШИМTCON,#01h; установка прерывания INT0 по уровню (переход из 1 в 0)IEN0,#81h; снятие блокировки прерываний и разрешение прерывания по INT0: JNB TCON.1, M3; ожидание прерывания по INT0 (включение двигателя)TMOD,#D1h; Разрешение управлять счётчиком 1 от INT1 и выбор 1 - ого режима счётчика 1 и таймера 0TCON,#44h; запуск счётчика 1 и установка прерывания INT1 по уровню (переход из 1 в 0)IEN0,#84h; снятие блокировки прерываний и разрешение прерывания по INT1: JNB TCON.3, M4; ожидание прерывания по INT1 (с датчика скорости запускающего таймер): JNB TCON.3, M5; ожидание прерывания по INT1 (с датчика скорости останавливающего таймер): MOV A, TH0; операция сравнения заданного времени и времени с счётчика
MOV B, TL0CYA, R7UVELA, BA, R6
JC UVEL
JMP UMEN
UVEL: MOV A, PWMP; операция увеличения скважности импульсов
CJNE A,#01h, M6PWMP M6
UMEN: MOV A, PWMP; операция уменьшения скважности импульсов
CJNE A,#FFh, M6PWMP: MOV R0,#02hR3, TH0R2, TL0DELR0, R2R3,#27hR2,#10hDEL R0, R2; преобразование времени счётчика в текущую скорость
MOV R1,#05h; двигателя и отображение её на ЖКИ
LCALL UMR4, AR5, BR0,#64h MOV R3, R5R2, R4DELA, R2A,#30hR0,#C0h
LCALL LCDC; установка курсора в начало второй строки ЖКИR0, ALCDD; вывод количества тысяч об/мин
MOV R1, R2R0,#64hUMR3, R5R2, R4VICHB,#0AhA, R2ABR0, AA,#30h
MOV R0, ALCDD; вывод числа сотен об/мин
MOV A, BA,#30hR0, A
LCALL LCDD; вывод числа десятков об/минR0,#30hLCDD; добавка нуля к полученному результату Перейти на страницу: 1 2
Советуем почитать:
Изучение характеристик ключевых схем на дополняющих МОП-транзисторах (КМОП) Изучить характеристики ключевых схем на дополняющих МОП-транзисторах (КМОП) и базовых схем логических элементов КМОП, используя возможности программы MC8DEMO. Изучить содержание процессо ...
Источники питания электронных устройств Применение различного рода электронных устройств для управления производственными процессами подразумевает использование электрической энергии определенного вида для их питания (постоян ...
Система автоматического регулирование температуры теплоносителя зерносушилки Техническое задание на проектирование включает в себя исходные данные, позволяющие произвести синтез системы. К ним относятся функциональная схема нескорректированной САУ, сведения о при ...