×
单片机 > 单片机程序设计 > 详情

TIMER0在MODE0下延时时间程序

发布时间:2020-05-22 发布时间:
|

        org    0000h       ;起始地址 
        jmp    main 

        org    0030h 
main: 
     MOV     tmod,#00h       ;设定TIMER0工作在MODE0 
start: 
    clr    c 
     MOV     a,#0ffh         ;ACC=FFH,左移初值 
     MOV     r2,#08          ;R2=08,设左移八次 
loop: 
    rlc    a               ;左移一位 
     MOV     p2,a            ;输出至P2 
     MOV     r3,#100         ;0.2秒 
    call    delay       ;2000微秒 
    djnz    r2,loop     ;左移八次 
     MOV     r2,#07          ;R2=07,设右移七次     
loop1:                                    
    rrc    a               ;右移一位         
     MOV     p2,a            ;输出至P2         
     MOV     r3,#100         ;0.2秒            
    call    delay       ;2000微秒                  
    djnz    r2,loop1    ;右移七次         
    jmp    start 
delay: 
    setb    tr0         ;启动TIMER0开始计时 
again: 
     MOV     tl0,#(8192-2000) mod 32     ;设定TL0的值 
     MOV     th0,#(8192-2000)/32         ;设定TH0的值 
loop2: 
    jbc    tf0,loop3       ;TF0是否为1,是则跳至LOOP3,并清除TF0 
    jmp    loop2           ;不是则跳到LOOP2 
loop3: 
    djnz    r3,again    ;R3是否为0?不是则跳到AGAIN 
    clr    tr0             ;是则停止TIMER0计数 
    ret 
    end


关键字:TIMER0  MODE0  延时时间 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式