89c51单片机汇编语言,AT89C2051时钟程序——MCS51单片机汇编程序

;; AT89C2051时钟程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁用,

;P3.7为调整按钮,P1口 为字符输出口,采用共阳显示管。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 中断入口程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0000H ;程序执行开始地址

LJMPSTART;跳到标号START执行

ORG0003H ;外中断0中断程序入口

RETI;外中断0中断返回

ORG000BH ;定时器T0中断程序入口

LJMPINTT0;跳至INTTO执行

ORG0013H ;外中断1中断程序入口

RETI;外中断1中断返回

ORG001BH ;定时器T1中断程序入口

LJMPINTT1;跳至INTT1执行

ORG0023H ;串行中断程序入口地址

RETI;串行中断程序返回

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 主 程 序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

START:MOVR0,#70H ;清70H-7AH共11个内存单元

MOVR7,#0BH

CLEARDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARDISP

MOV20H,#00H ;清20H(标志用)

MOV7AH,#0AH ;放入"熄灭符"数据

MOVTMOD,#11H ;设T0、T1为16位定时器

MOVTL0,#0B0H ;50MS定时初值(T0计时用)

MOVTH0,#3CH ;50MS定时初值

MOVTL1,#0B0H ;50MS定时初值(T1闪烁定时用)

MOVTH1,#3CH ;50MS定时初值

SETBEA ;总中断开放

SETBET0 ;允许T0中断

SETBTR0 ;开启T0定时器

MOVR4,#14H ;1秒定时用初值(50MS×20)

START1:LCALLDISPLAY;调用显示子程序

JNBP3.7,SETMM1;P3.7口为0时转时间调整程序

SJMPSTART1;P3.7口为1时跳回START1

SETMM1:LJMPSETMM;转到时间调整程序SETMM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 1秒计时程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;T0中断服务程序

INTT0:PUSHACC ;累加器入栈保护

PUSHPSW ;状态字入栈保护

CLRET0 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值