一、设计要求
设计一个2位LED数码显示“秒表”:显示时间为00-99秒,每秒自动加1,还设计一个“开始”按钮和一个“复位”按钮。
2、方案论证
选项一:
使用数字电路实现秒表的设计。 由NE555定时器组成的多谐振荡器受开关控制,将脉冲送入计数器,由计数器计数,送至译码器进行译码,最后送至数码管显示。 框图如下:
(见附件)
优点:利用之前所学的数字电子方面的知识,可以使用NE555等一系列芯片来实现秒表的数字电路。 显示直观、易读、精度高、无需软件编程。
缺点:使用了大量的硬件,使用的空间很大,电路很复杂,经济上不太划算。
选项二:
它是利用单片机控制秒表来实现的。 它以AT89C51单片机为中心器件,利用其定时器/计数器的定时和计数原理,结合电源电路、晶振电路、复位电路、显示电路和一些按钮电路等硬件电路,设计出定时器与软件相结合的定时器。硬件。 软件部分采用C语言编写程序,包括显示程序、中断、延时程序等。硬件部分采用Proteus软件连接秒表电路,主要采用AT80C51芯片、晶振、电容等基本器件。 框图如下:(见附件)
优点:利用单片机的计时功能,只需要少量的连线和软件编程控制即可实现秒表的设计电路,节省成本,提高技术的准确性,并且更容易修改。
缺点:除了连接硬件电路外,还增加了软件编程。 需要额外的软件编程技能,并且编程时还必须考虑硬件连接。
通过对比以上两种方案可以发现,单片机使用的硬件较少,定时精度较高,节省了大量的空间。 修改时,只需修改部分程序和部分接线即可改变计数方式和技术范围。 因此,本次的秒表设计应选择单片机设计的第二种方案。
3 理论设计
五金零件
1、按键电路:
1.1 当按下K1键时,给P1.6接口低电平,单片机工作,数码管开始显示,执行启动功能。
1.2 当按下K2键时,给P1.7接口低电平,单片机工作,数码管清零,执行复位功能。
2.复位电路:
2.1 按下按钮,使单片机的RST接口为高电平,使单片机系统复位。
3、晶振电路:
3.1晶振电路是为单片机提供合格的时钟信号流,为整个电路的时序提供基础时钟。 这里的晶振频率为11.0592MHz。
4、显示电路:
4.1 使用两个共阳极LED数码管通过单片机的P0接口和P3接口驱动显示秒的个位和十位。
软件部分
(见附件)
4.电路仿真及仿真结果分析
仿真结果:由Keil生成。 将hex文件添加到AT80C51后,运行如图所示的仿真电路,会显示00到99s的秒表功能,系统可以正常工作。
5. 经验
通过这次课程设计,我认识到自己还有很多不足。 我需要根据课程的设计要求找到合适的解决方案,设计一个程序流程图,用它来编写相应的程序,同时还添加一些额外的程序来测试系统。 为了变得更加稳定,程序应该由各种子程序组成并添加注释,这样当程序出错或模拟没有显示正确的结果时,更容易找到发生错误的地方。 这个秒表的设计和硬件电路的仿真都不是很麻烦。 最主要的是编写合适且正确的程序来驱动它。 通过这次课程设计,我更加系统地锻炼了自己。
单片机源程序:
#包括
typedef 无符号字符 uint8;
typedef 无符号 intuint16;
/*七段共阴极管显示定义*/
uint8 代码 dispcode[ ]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
/*定义并初始化变量*/
uint8 secondarye=0;//第二次调整定义
uint16mscnt=0;//微小调整定义
sbit key1=P1^6; //定义P1.6端口为按键1
sbit key2=P1^7;//定义p1.7端口为key 2