$MOD812 ; Use 8052&ADuC812 predefined symbols Tresh_l set 10h ; Порог срабатывания Tresh_h set 00h T_TL0 set 00h ; Таймер Т0 T_TH0 set 0feh M1_count set 10 Count_0 equ 31h Count_1 equ 32h ;************************************************************************ ; Инициализация контроллера (initialization) ;************************************************************************ Initial macro ; MOV PCON,#00000000b ;Настройка послед. порта (режим 0) MOV SCON,#00000000b ; MOV TMOD,#00100001b ;Настройка таймеров 0,1 - режим 1 MOV TCON,#00000001b ;Прерывание Exi_0 по фронту MOV SPICON,#00111001b MOV TL0,#T_TL0 ;Настроить регистр таймера С/Т0 MOV TH0,#T_TH0 ;--------"----------"----------- MOV IE,#11101010b ;Общее разрешение прерываний и от Т/С 0 MOV IP,#00000010b ;Приоритет прерываний Т/С 0 MOV p3,#00h endm START: Initial Main: setb p3.6 clr p3.7 Main_4: clr tr0 MOV TL0,#T_TL0 MOV TH0,#T_TH0 setb tr0 MOV Count_1,#M1_count Cmp_0: djnz Count_1,Cmp_2 jb p3.7,Main Cmp_1: setb p3.7 clr p3.6 ljmp Main_4 Cmp_2: RET END