项目二 51项目数码管倒计时
【实验内容】
- 熟悉软件流程(Proteus 8 Professional,Keil uVision5),熟悉烧录流程,熟悉51芯片的引脚。
- 了解51单片机数码管的控制方法;
- 掌握使用定时器进行倒计时的方法;
- 实现数码管倒计时功能并在倒计时结束时停止。
【实验原理】
该实验利用51单片机控制数码管进行倒计时显示。通过控制两个数码管的开启和关闭,将倒计时的十位数和个位数分别显示在两个数码管上。使用定时器进行时间的控制,每经过一定的时间间隔,倒计时数减少1,直到倒计时结束(00)为止。
【实验记录与结果分析】
实验的结果是数码管会从99开始逐渐倒计时至00,并且倒计时会不断循环重复。具体分析如下:
1.实验开始时,延时1秒后,count被初始化为99,V17被初始化为0。 |
2.进入while循环后,V17自增1,当V17等于17时,V17被重置为0,此时count减1。这样设计的目的是为了控制倒计时速度,每经过17次循环,count减少1,相当于倒计时速度变为原来的1/17。 |
3.设置LED_0为低电平,LED_1为高电平,P2端口输出对应count的十位数码管的值,延时30ms。 |
4.设置LED_0为高电平,LED_1为低电平,P2端口输出对应count的个位数码管的值,延时30ms。 |
5.循环重复步骤2-4,实现倒计时的显示效果。 |
实验结果分析:通过以上逻辑,数码管将会从99开始逐渐倒计时至00,并且在每次倒计时过程中,数码管会显示相应的数字。当倒计时完成后,又会重新开始倒计时。
【电路原理图】
该电路包含一个8051系列单片机、两个数码管、两个NPN型晶体管、两个电阻和一个电容。其中,P2口连接了两个数码管的a~g、dp引脚,P3口连接了两个晶体管的基极。
当单片机工作时,输出控制信号使得LED_0和LED_1分别处于低电平和高电平状态。同时,将P2口输出对应count数码管对应的值,实现数码管的显示效果。在延时的过程中,通过调用delay()函数,使程序暂停一段时间,从而实现倒计时的效果。最后,通过两个晶体管的控制,实现对数码管的开关控制。
【程序代码】
#include <reg51.h> |