子程序与中断程序的异同_单片机实验程序(汇编)

  1. IO口与子程序调用(开关控制灯亮灭)

     K1=1,K2=0时L1间隔0.5秒闪烁,L2熄灭;K0=1,K2=1时L2间隔0.5秒闪烁,L1熄灭;K1=1,K2=1时L1和L2间隔2秒闪烁;K1=0,K2=0时L1和L2均熄灭。要求:延时通过调用延时子程序实现,f=12MHz。

7d56c038f219c7cc508e27e1cf04a50c.png

程序流程图:

9b33ee1f317c45ef91cee871e9e33b0a.png

程序:

 ORG     0000H

 LJMP    MAIN

 ORG     0050H

MAIN:

  CLR P1.0

  CLR P1.1

  SETB P1.6

  SETB P1.7      

  JB  P1.0,L1

  JB  P1.1,L2

  LJMP MAIN  ;K1 K2均不闭合

L1:  

  JB  P1.1,L3  ;K1闭合而 K2不闭合的情况

  CLR  P1.6

  ACALL DELAY2

  SETB  P1.6

  ACALL DELAY2

  LJMP MAIN   

L2:  

  JB P1.0,L3

  CLR  P1.7     ;K2闭合而 K1不闭合的情况

  ACALL DELAY2

  SETB  P1.7

  ACALL DELAY2

  LJMP MAIN   

L3:  

  MOV  P1,#00H ;K2闭合且K1闭合的情况

  ACALL DELAY1

  MOV  P1,#0C0H

  ACALL DELAY1

  LJMP MAIN

DELAY1:   ;延时子程序 2S

        MOV     R5,#20

DLY10:  MOV     R6,#200

DLY11:  MOV     R7,#248

DLY12:  DJNZ    R7,$

        DJNZ    R6,DLY11

        DJNZ    R5,DLY10

        RET

DELAY2:   ;延时子程序 0.5S

        MOV     R5,#5

DLY20:  MOV     R6,#200

DLY21:  MOV     R7,#248

DLY22:  DJNZ    R7,$

        DJNZ    R6,DLY21

        DJNZ    R5,DLY20

        RET

END

2.定时器实现流水灯(查询和中断方法)

采用定时器T1的方式1,使P1口的八盏灯间隔两秒依次循环点亮,f=12MHz,要求:分别用查询和中断的方法实现。

f668d0636844a920ac8421d9e1c29498.png

流程图:

查询:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值