AT89C51的矩阵键盘、跑马灯和呼吸灯设计

一、题目要求

1.使用8086,要求系统电路含有16个LED灯和按键,按键控制灯的不同闪烁方式(跑马灯),按键使用中断方式。使用定时器T1方式1实现1个心跳灯,中断方式。在PROTEUS上仿真实现,系统功能自定义。

二、设计思路

16个LED灯共阳极由P0口和P2口提供低电平信号,按键的信号由P1口采集,按键使用中断方式控制灯的不同闪烁方式。我们组采用的是先读取按键的键值,然后进入中断,运用外部中断0(中断号为0,P3.2引脚低电平或下降沿信号触发中断,ITO=0时为下降沿触发)在中断函数中根据不同的键值,执行不同的跑马灯函数。
2.使用定时器T1方式1(TMOD=0X10)实现1个心跳灯,采用定时器1中断(中断号为3,计数回0溢出中断)。
3.心跳灯每过一秒进行一次状态翻转。系统为12MHZ晶振,分频系数为12,则定时脉冲周期为1us。50ms=50000*1us。若给定时器赋初值65535-1000+1=15536=3CB0H,则定时器1定时50ms后触发中断。运用循环数j,定时器每触发一次中断j++,当j=20时,心跳灯状态翻转一次。
4.外部中断0的中断优先级比定时器1中断的中断优先级要高,因此在跑马灯时心跳灯的状态不会翻转。
在这里插入图片描述
三、仿真电路图
只有P0口要接上拉电阻,我做的时候憨憨了😂

附件:Proteus仿真+keil代码
https://download.csdn.net/download/alongiii/12441300

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

alongiii

万分感谢!!!

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

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

打赏作者

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

抵扣说明:

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

余额充值