这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STC51单片机实例之51独立按键中断(汇编)

共1条 1/1 1 跳转至

STC51单片机实例之51独立按键中断(汇编)

高工
2014-09-13 23:28:57     打赏
org 0000h
ljmp start        
       
org 0013h
ljmp ext1        

org 0030h        
start: 
mov r7,#0ffh                       
setb ea        ;cpu开放中断
setb ex1       ;允许外部中断1申请中断
setb it1        ;设置外部中断1触发方式为跳变触发
lcall play1      ;调用初始状态显示子程序
ajmp $         ;等待按键发出中断申请
                
ext1:  clr ea          ;进入中断,先关闭中断       
lcall play2  ;调用键识别子程序
pass:  setb ea        ;返回主程序之前先开中断
reti            ;中断返回指令,
       
      
play1:     mov a,#0C0H   ;让最右面的数码管显示0的子程序
mov p0,a                                                                                                                                                                                                                                                                                                                                                                                               
mov p2,0
ret
       
play2:     inc r7       ;查表求段码,然后送到P0口的子程序.
mov a,r7
mov dptr,#tab
movc a,@a+dptr
mov p0,a
mov p2,0
cjne a,#06fH,next;如果没有显示到最后一个数字0,就继续查表显示
    mov r7,#0ffh   ;否则,重新从表头开始显示    
next:      ret

del10ms:  mov r5,#10    ;延时10ms子程序
del1:     mov r4,#02h
del2:     mov r3,#0ffh
del3:     djnz r3,del3
djnz r4,del2
djnz r5,del1
ret
tab:     db 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f    ;存放0~9的段码表
end   

 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]