基于51单片机——LED数码管秒表的制作

本文介绍了如何使用51单片机设计一个LED数码管秒表,该秒表能显示0.1~9.9s的时间,最小计时单位为百毫秒。通过按键操作实现计时的开始、暂停和清零功能,详细阐述了外部硬件电路连接及程序设计思路。

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

设计要求:

制作一个LED数码管显示的秒表,用2位数码管显示时间,最小计时单位为“百毫秒”,计时范围0.1~9.9s。第一次按下并松开按键,开启计时功能;第二次按下并松开按键,停止计时,数码管显示当前计数值;第三次按下,秒表清零,等待下一次按下按键再一次开启计时功能。

外部硬件电路连接

程序设计

#include<reg52.h>

sbit key = P3^7;

unsigned char code table0[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,
                              0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1}; //共阴段码表(含点)

unsigned char code table2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                              0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴段码表(不含点)

//count1对小数点前变换次数进行计数判断,count2对小数点后变换次数进行计数判断,timer单次定时时间次数
unsigned char timer;  
unsigned char count,num;

void delay(unsigned char xms)		
{
	unsigned char i, j;
    while(xms)
    {
        i =
电气与自动化工程学院 卓越工程师培养计划 暑期实训报告 题 目 秒表系统的设计 年 级 11级 专 业 自动化 班 级 卓越班 学 号 160111126 姓 名 俞雷 地 点 大学生创新实验室 日 期 2012年8月12日~2012年8月20日 目录 单片机简介 - 2 - 二、设计目标 - 3 - 1、设计目的: - 3 - 2、具体操作: - 3 - 三、硬件设计 - 4 - 原理图: - 4 - 四、系统的软件设计 - 5 - 1、软件整体设计思路: - 5 - 2、软件流程图: - 5 - 3、程序: - 6 - (1数码管秒表显示程序: - 6 - (21602液晶秒表显示程序: - 13 - 五、系统的调试及设计结果 - 18 - 1602液晶——秒表显示效果图: - 18 - LED数码管——秒表显示效果图: - 18 - 六、创新实验室课程设计小结 - 19 - 单片机简介 单片机以其高可靠性、高性价比、低电压、低功耗等系列优点,近几年得到迅猛发 展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯 设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的 各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电) 等。 管脚图如图1.1所示。 图1.1 AT89C52单片机引脚图 (1) 电源地组Vcc和Vss;VCC—(40)脚接+5V电压;VSS—(20)脚接地 (2) 时钟电路组XTAL1和XTAL2 (3) 控制信号组RST/ALE/PSEN和EA (4) I/O端口P0, P1, P2和P3 二、设计目标 1、设计目的: 1.利用单片机定时器中断实现秒表计时功能。 2.方案:通过LED显示程序的调整,熟悉LED动态显示的控制过程。 方案二: 通过对1602设置,熟悉1602液晶显示的控制过程。 3.通过键盘程序的调整,熟悉矩阵式键盘的控制,熟悉键盘扫描原理。 4.通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示1602液晶的显 示、键盘扫描和定时器中断等多种功能的综合程序。 2、具体操作: 方案:用AT89C51设计个6数码管显示作为"秒表",显示时间范围0.00~65 5.36秒(此处可以通过设置两个变量进行进操作来达到最大计数9999.99秒),计时精 度达到0.01秒。利用其定时器的原理,数码管以及定时器中断来设计计时器。将软硬件 结合起来,使得系统能实现0.00~655.36秒的计时。另外,通过独立按键的设计来对秒表 进行控制。key1键控制计时的开始与暂停、key2键控制计时时的保存数据然后可以通过 key4键控制数据的输出(可以保存十个,保存十个时秒表可以停止,该功能可用于赛跑 中的计时)、key3键控制"清零"和保存按下清零键前的最后次所计时间。(特别声明 :每次处于"暂停状态"的时间都可以在此基础之上进行计时)。 方案二:用AT89C51设计1602液晶显示的"秒表",显示时间范围0.00~655.36秒 (此处可以通过设置两个变量进行进操作来达到最大计数9999.99秒),计时精度达到 0.01秒。利用其定时器的原理,1602液晶以及定时器中断来设计计时器。将软硬件结合 起来,使得系统能实现0.00~655.36秒的计时。另外,通过独立按键的设计来对秒表进行 控制。key1键控制计时的开始与暂停、key3键控制"清零"和保存按下清零键前的最后 次所计时间。(特别声明:每次处于"暂停状态"的时间都可以在此基础之上进行计时) 。注:由于开发板的键盘对液晶显示有影响,顾放弃数码管秒表显示中的部分功能。 三、硬件设计 原理图:(程序可用于在下图在软件中仿真也可以用于开发板) 四、系统的软件设计 1、软件整体设计思路: 将程序模块化与功能,含有多个子程序的调用与嵌套。通过对按键的是否按下来对秒 表进行操作,按键功能在设计目标的具体操作中已经展现。10毫秒秒定时采用定时器T0 中断的工作方式1进行,中断及计数的开启与关闭受控于按键处理程序。 2、软件流程图: 如图所示。(注:用1602液晶的方案中无key2与key4) 3、程序: (1数码管秒表显示程序: /********************************** 数码管显示秒表计时 **********************************/ /********************************** 头文件 宏定义 定义 **********************************/ #include<reg52.h> #define uint unsigned int #def
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

单片机学习之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值