单片机--中断系统实验

  1. 实验目的和任务

目的:利用“模块化单片机教学实验平台”,加深对单片机的中断系统的理解。

任务:利用单片机的中断系统完成程序设计。

  1. 实验内容

使用AT89S52单片机的外部中断1控制实验箱母板上的LED1点亮和熄灭。外部按键SKEY1与AT89S52单片机的P3.3引脚连接,LED1的阴极与AT89S52单片机的P1.5引脚连接。当按下按键SKEY1,LED1点亮,再按下按键SKEY1,LED1熄灭,如此反复。(注意:本实验使用单片机的中断系统编程。)

  1. 实验过程和结果

(1)基本实验

硬件连线:

CPU_CORE_51

MAIN_BOARD

P2:P3.3

J26:SKEY1

P2:P1.5

J48:LED1

(2)扩展实验

编写主程序实现左右跑马灯(8个LED灯依次单个点亮,方向先从左到右然后从右到左,如此循环),同时使用AT89S52单片机的外部中断1控制实验箱母板上的蜂鸣器发声和关声。

单片机的P2.0~P2.7引脚分别接实验箱母板LED1~LED8的阴极。

外部按键SKEY1与AT89S52单片机的P3.3引脚连接,蜂鸣器的输入端(高电平有效)与AT89S52单片机的P1.0引脚连接。当按下按键SKEY1,蜂鸣器发声,再按下按键SKEY1,蜂鸣器关声,如此反复。(注意:本实验使用单片机的中断系统编程。)

硬件连线:

CPU_CORE_51

MAIN_BOARD

P3:P2.0-P2.7

J48:LED1-LED8

P2:P3.3

J26:SKEY1

P2:P1.0

BUZZER IN

 

 

实验结果图

  1. 实验心得

本次程序编写中断系统的实验,中断系统是单片机的基本功能之一。使用终端系统能方便的打断主程序或低级中断程序执行,跳转到中断程序。使用终端系统能方便的响应外部事件或程序设计,方便编写单片机程序。

在编写过程中,由于对终端系统的引脚关系和处罚方式的不熟悉,让我走了些弯路,例如设置位地址控制中断响应,也可以通过对字节地址赋值的方式实现功能,编写程序更多的是对程序设计的思维和逻辑性,以及单片机特点的掌握。

  1. 附录(代码)

ORG 0000H

LJMP MAIN           

ORG 0013H           ;外部中断1跳转地址

LJMP ON        ;响应外部中断后跳转到ON

MAIN:SETB IT1              ;设置外部中断为负跳

SETB EX1             ;允许外部中断1的中断请求

SETB EA        ;终端系统总开关

LJMP $                   ;死循环,等待外部中断

ON: JC OF                  ;判断进位标志位,此时的灯是否亮起

CLR P1.5        ;将灯点亮

SETB C                  ;将进位标志位设置为1

RETI                ;结束中断

OF:SETB P1.5           ;将灯熄灭

CLR C                 ;将进位标志位设置为0

RETI    

END            

(2)扩展实验

ORG 0000H

LJMP MAIN               

ORG 0013H

LJMP ON

MAIN:SETB IT1

SETB EX1

SETB EA

CLR C

SETB P2.0

SETB P2.1

SETB P2.2

SETB P2.3

SETB P2.4

SETB P2.5

SETB P2.6

SETB P2.7

LOOP:CLR P2.0

LCALL TIME

SETB P2.0

CLR P2.1

LCALL TIME

SETB P2.1

CLR P2.2

LCALL TIME

SETB P2.2

CLR P2.3

LCALL TIME

SETB P2.3

CLR P2.4

LCALL TIME

SETB P2.4

CLR P2.5

LCALL TIME

SETB P2.5

CLR P2.6

LCALL TIME

SETB P2.6

CLR P2.7

LCALL TIME

SETB P2.7

CLR P2.6

LCALL TIME

SETB P2.6

CLR P2.5

LCALL TIME

SETB P2.5

CLR P2.4

LCALL TIME

SETB P2.4

CLR P2.3

LCALL TIME

SETB P2.3

CLR P2.2

LCALL TIME

SETB P2.2

CLR P2.1

LCALL TIME

SETB P2.1

CLR P2.0

LCALL TIME

SETB P2.0

LJMP LOOP

TIME:MOV R1,#00H

O:MOV R0,#00H

J:INC R0

CJNE R0,#7FH,J

INC R1

CJNE R1,#7FH,O

RET

ON:JC OF

CLR P1.0

SETB C

RETI

OF:SETB P1.0

CLR C

RETI

END

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜航一直在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值