timer0-0.sdi

来自「20多个proteus仿真的例子」· SDI 代码 · 共 25 行

SDI
25
字号
,,,        ORG 00H
0000,02 00 30,,        JMP MAIN
,,,        ORG 30H
0030,75 89 00,MAIN,MAIN:   MOV     TMOD,#00H       ;设置TIMER0工作在MODE0
0033,7C 00,,        MOV     R4,#00H         ;记数指针初值
,,,;------------------------------------
0035,8C A0,START,START:  MOV     P2,R4           ;将记数指针初值输出至P2
0037,7B C8,,        MOV     R3,#200         ;延迟1s
0039,12 00 43,,        CALL    DELAY           ;
003C,CC,,        XCH     A,R4            ;将记数指针值与累加器的内容交换
003D,24 01,,        ADD     A,#01           ;累加器加1
003F,D4,,        DA      A               ;做十进制调整
0040,CC,,        XCH     A,R4            ;将累加器的内容与记数指针交换
0041,80 F2,,        JMP     START
,,,;-------------------------
0043,D2 8C,DELAY,DELAY:  SETB    TR0     ;启动定时器0开始计数
0045,75 8A 18,AGAIN,AGAIN:  MOV     TL0,#(8192-5000) MOD 32 ; 设置TL0的初值
0048,75 8C 63,,        MOV     TH0,#(8192-5000)/32     ;设置TH0的初值
004B,10 8D 02,LOOP2,LOOP2:  JBC     TF0,LOOP3       ;TF0是否为1,是则跳到LOOP3,并清除TF0
004E,80 FB,,        JMP     LOOP2   ;不是则跳到LOOP2
0050,DB F3,LOOP3,LOOP3:  DJNZ    R3,AGAIN        ;R3是否为0?不是则跳到AGAIN
0052,C2 8C,,        CLR     TR0     ;是则停止TIMER0计数
0054,22,,        RET
000E,,,        END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?