51单片机中断器实现1s延迟单灯左移

 51单片机定时器最长时间只有65.536ms,为了更长的时间应用需求,可以利用中断器执行50ms定时多次(1s就是20次)

1、开启中断器(0BH)

打开中断允许寄存器IE(interrupt enable)的全局中断位和定时器0中断位,

MOV IE,#10000010B

中断矢量的选择

                                                                IE各位功能

2、设置中断器起始地址

Timer0作为中断源,对应的中断矢量为0BH

ORG 0BH

        ;中断后操作

RETI        

编写这部分代码后,定时器0计满自动执行

CALL 0BH         ;CALL表示呼叫子程序,而RETI是子程序对应的中断器返回指令

 3、中断器、定时器实现单灯左移

ORG 00H
    JMP START
ORG 0BH
    DJNZ R6,TIMERLOOP
    JMP ROLLLEFT
;------------只执行一次----------
START:MOV TMOD,#11H
    MOV A,#0FEH        ;1111 1110B,P2.0口低电平
    MOV IE,#10000010B
    MOV R6,#20
TIMER:MOV P2,A    
    CLR TR0
    MOV TH0,#HIGH(15536)
    MOV TL0,#LOW(15536)
    SETB TR0
;-------------只执行一次-----------
    SJMP $                ;懒汉程序

TIMERLOOP:MOV P2,A    
    CLR TR0
    MOV TH0,#HIGH(15536)
    MOV TL0,#LOW(15536)
    SETB TR0
    RETI
ROLLLEFT:MOV R6,#20
    RL A
    RETI

    END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值