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

共1条 1/1 1 跳转至

STC51单片机实例之50定时器(汇编)

高工
2014-09-13 23:27:04     打赏
org 0000h
      ajmp main
     
      org 000bh      ;T0溢出中断入口地址·
      ajmp time0
       
      org 0020h
main:  clr p1.5  
      mov r1,#0ffh 
      mov r2,#00h     ;给计数器r2赋初值0
 
      mov sp,#70h     ;设置堆栈
      mov tmod,#01h   ;设置T0工作方式
      mov th0,#3ch     ;T0置计数初值
      mov tl0,#0b0h
      setb et0         ;允许T0溢出中断
      setb ea          ;cpu开中断
      setb tr0         ;启动T0开始计数
 
wait:  cjne r2,#20,wait   ;定时时间未到,继续查询等待
      acall light        ;定时时间到,调用查表求灯光子程序  
      ajmp wait        
     
;以下是查表求灯光子程序
light:  mov r2,#00h     ;计数器重新赋初值

      inc r1           ;查表求灯光,详细解释见试验5“多位数码显示”
      mov a,r1
      mov dptr,#tab
      movc a,@a+dptr
      mov p0,a
      cjne a,#0ffh,next  
      mov r1,#0ffh
next:  ret               ;子程序返回
          
      ;以下是中断服务程序
time0: inc r2           ;计数器加1
      mov th0,#3ch      ;重置计数初值
      mov tl0,#0b0h
      reti           ;中断返回

tab:  db 0fah,0f5h,0ebh,0d7h     ;灯光变换表格
     db 0afh,5fh,0aah,055h,0f0h,0fh,0ffh  
     end

 


共1条 1/1 1 跳转至

回复

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