您当前的位置:五五电子网电子知识单片机-工控设备51单片机TIMER0在MODE0下延时时间程序 正文
TIMER0在MODE0下延时时间程序

TIMER0在MODE0下延时时间程序

点击数:7678 次   录入时间:03-04 11:44:59   整理:http://www.55dianzi.com   51单片机
        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


本文关键字:程序  51单片机单片机-工控设备 - 51单片机