【C51学习总结】综合和应用:中断法控制倒计时红绿灯的编程实现以及仿真

本文详细介绍了使用C51单片机通过中断控制法实现倒计时功能,涉及硬件选择、软件配置、复位与时钟电路、LED灯与按键控制、数码管显示以及完整的程序编写过程。作者还提供了Proteus仿真和Keil5开发环境的使用指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在经过了一段时间的C51课程学习后,使我更系统的认识了单片机的主要结构,本篇文章主要是将我所学习到的内容进行一个整理,并结合中断控制法这个综合性的任务尽量对每一个部分进行讲解,希望对大家的学习能够有一点帮助,文章内如有出错还请指正。


目录

一、前期准备工作

1、硬件选择

2、软件选择

二、仿真搭建

1、Proteus工程搭建及器件选择

2、复位电路及外部时钟电路

(1)复位电路:

(2)外部时钟电路:

2、LED灯部分

3、按键部分

4、数码管部分

5、完整仿真图

三、程序编写

1、工程搭建

2、定义所需变量 

3、中断源

(1)定时器设置

(2)按键中断控制开始与停止

 4、红绿灯控制部分

5、数码管控制部分 

四、最终效果

五、完整工程链接

一、前期准备工作

1、硬件选择

仿真软件中:单片机:AT89C51

                      数码管驱动:74ls47

                       数码管:7SEG-MPX2-CA

实体硬件:单片机:STC89C52RC

                   下载器:USB转TTL下载器

由于上课时所选择的单片机为宏晶科技的STC89C52RC,但仿真软件中只有AT系列单片机,故在仿真时选择AT89C51,编译仿真效果相同。

2、软件选择

编程软件:keil5

仿真软件:Proteus 8.9

下载器:STC-ISP(用于实物烧写程序,仅仿真则可不用)

二、仿真搭建

1、Proteus工程搭建及器件选择

打开安装好的Proteus ,点击新建工程

工程名称可以自行定义,并选择好工程文件存放路径,然后一直按下一步,设置均为默认即可

进入工程之后点击P选取所需元器件

左侧搜索栏搜索元器件(这里搜索的是AT89C51),中间可以选中器件,右侧有对应原理图以及封装图,选中后点击确定

依次添加好以下器件

右侧一栏选择终端模式,则可以选择调用电源以及接地,双击图标可以编辑字符

2、复位电路及外部时钟电路

(1)复位电路:

复位电路即初始化电路,其作用是将运行中的单片机恢复到初始状态,相当于重置运行状态

复位的触发要求,输入端RST至少保持两个机器周期为高电平(当晶振为12M时机器周期为1us)

 

(2)外部时钟电路:

该电路中,电容的选择由晶振决定,具体容量需参照技术手册选择,此处晶振的值为12MHz,单片机内部也有时钟电路,具体选择看个人需求

在仿真中可以不使用外部晶振,双击单片机在其设置中可以设置晶振的值

2、LED灯部分

这里设计红绿灯的引脚由P1组引脚控制,且为了方便,设计上选择南-北、东-西联动

对应关系为:

引脚 方位 led灯灯色 方位 led灯灯色
P1.0 绿 绿
P1.1
P1.2
P1.3 绿 西 绿
P1.4 西
P1.5 西

观察十字路口红绿灯工作流程,设计交通。 1、初始时:南北向、东西向直行左转均为红 2、南北向直行: ①南北向直行绿亮,延时若干秒 ②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灭,南北向直行黄亮,延时3秒 ③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灭,南北向直行红亮 3、南北向左转: ①南北向左转绿亮,延时若干秒 ②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灭,南北向左转黄亮,延时3秒 ③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灭,南北向左转红亮 4、东西向直行: ①东西向直行绿亮,延时若干秒 ②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灭,东西向直行黄亮,延时3秒 ③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灭,东西向直行红亮 5、东西向左转: ①东西向左转绿亮,延时若干秒 ②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灭,东西向左转黄亮,延时3秒 ③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灭,东西向左转红
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码路的小丘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值