基于单片机C语言电子时钟完整版
《单片机技术》课程设计说明书
数字电子钟
系、部:电气与信息工程学院
学生姓名:
指导教师:职称专业:班级:
完成时间:2013-06-07
摘要
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用ATMEL 公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。
关键词电子钟;AT89S52;硬件设计;软件设计
ABSTRACT
Clock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL's as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours,
minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value. Key words Electronic clock;;AT89S52;Hardware Design;Software Design
目录
1设计课题任务、功能要求说明及方案介绍……………………………………1 1.1设计课题任务………………………………………………………………1 1.2功能要求说明………………………………………………………………1 1.3设计总体方案介绍及原理说明……………………………………………1 2设计课题硬件系统的设计………………………………………………………2 2.1设计课题硬件系统各模块功能简要介绍…………………………………2 2.2设计课题电路原理图、PCB图、元器件布局图…………………………2 2.3设计课题元器件清单………………………………………………………5 3设计课题软件系统的设计………………………………………………………6 3.1设计课题使用单片机资源的情况…………………………………………6 3.2设计课题软件系统各模块功能简要介绍…………………………………6 3.3设计课题软件系统程序流程框图…………………………………………6 3.4设计课题软件系统程序清单………………………………………………10 4设计结论、仿真结果、误差分析、教学建议…………………………………21 4.1设计课题的设计结论及使用说明…………………………………………21 4.2设计课题的仿真结果………………………………………………………21 4.3设计课题的误差分析………………………………………………………22 4.4设计体
会……………………………………………………………………22 4.5教学建议……………………………………………………………………22 结束
语 (2)
3 参考文献 (2)
4 致谢 (2)
5 附录 (2)
6
1 设计课题任务、功能要求说明及方案介绍
1.1 设计课题任务
设计一个具有特定功能的电子钟。具有时间显示,并有时间设定,时间调整功能。
1.2 功能要求说明
设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时0分0秒开始运行,进入时钟运行状态;按电子钟KEY1键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按KEY1键再次进入时钟运行状态。
1.3 设计课题总体方案介绍及工作原理说明
本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:
AT89S52复位电路晶振电路键盘下载数码管显示
图1-1 总体设计方案图
本电子钟的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM 中,
减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成
数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
2 设计课题硬件系统的设计
2.1设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。
(1)单片机最小系统模块:包括低功耗、高性能CMOS8位微控制器AT89S52;复位电路;晶振电路。本本模块AT89S52系统控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。
(2)输入模块:本模块共用到了4个按键,1个电源开关,一个复位键,单片机运行期间,利用按键完成复位操作。3个按键独立式键盘,KEY1键控制电子钟的启动,KEY2键为加1键,KEY3键为减1键,KEY1键第三次控制电子钟的调整状态。且KEY1、KEY2、KEY3、任一键都独自连一个I/O (P1.0、P1.1、P1.2、P1.3)口线,说明它们可以独立实现相应的电子钟功能。
(3)输出模块:本次设计显示为8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。数码管用8个PNP三极管驱动。
(4)电源模块:现在市面上销售的编程器有很多都是由PC机的USB口直
接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的USB供电及下载器。
2.2设计课题电路原理图、PCB图、元器件布局图
图2-1 电路原理图
总设计原理图见附录A 原理总设计图见附录附录B PCB图见附录C
2.3 设计课题元器件清单
3 设计课题软件系统的设计
3.1 设计课题使用单片机资源的情况
设计课题使用单片机资源的情况如下:
P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz;调整选择键KEY1:P1.0;通过选择键选择调整位,选中位闪烁;增加键KEY2:P1.1;按一次使选中位加1;减少键KEY3:P1.2;按一次使选中位减1;此数字钟可实现基本的走时和显示时间时、分、秒;时间的调整;闹钟的设定和调整;闹钟的开启和关闭功能,具体如下:
(1)实现基本的走时和显示时间的时、分、秒,上电自动显示初始时间12-00-00,且控制闹钟状态的的蓝色led灯为亮的状态。
(2)当第一次按下第一个弹性按键时进入时间的调节状态,此时实现对显示时间的小时调节,按下第二个按键时实现小时的加一调节,按下第三个按键时实现小时的减一调节。
(3)当第二次按下第一个弹性按键时进入显示时间的分钟调节状态,按下第二个按键时实现分钟的加一调节,按下第三个按键时实现分钟的减一调节。
(4)当第三次按下第一个弹性按键时进入闹钟的小时调节状态,按下第二个按键时实现闹钟小时的加一调节,按下第三个按键时实现闹钟小时的减一调节。
(5)当第四次按下第一个弹性按键时进入闹钟的分钟调节状态,按下第二个按键时实现闹钟分钟的加一调节,按下第三个按键时实现闹钟分钟的减一调节。
(6)当第五次按下第一个弹性按键时返回正常的显示时间走时状态。(7)当同时按下第二和第三个弹性按键时,关闭闹钟,且此时蓝色led 灯为灭,及定时时间到蜂鸣器并不响,若再次同时按下第二和第三个弹性按键,则开启闹钟,且此时蓝色led灯为亮,定时时间到蜂鸣器发出滴滴的闹铃声,同时按下第二和第三个弹性按键即可关闭闹铃。闹铃状态默认为开启。
3.2设计课题软件系统个模块功能简要介绍
本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。
主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程
序模块的运用及其控制。
中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。键盘输入程序模块:主要是用于确定按键并得到特定的键码值。
数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。
延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种是
长延时。
3.3 设计课题软件系统程序流程框图
系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程
序转变成十六进制程序语言,接着使用Proteous 进行仿真,读出显示数据。
主程序流程框图如3-1所示;时间处理子程序流程框图3-2所示;
中断服务程序程序如3=3所示;
图3-1 主程序流程框图
图3-2 时间处理子程序流程框图
图3-3 中断子程序
3.4 设计课题软件系统程序清单
;----------------------------------------------------------------------- ;项目名称:数字电子钟
;项目功能:本电子钟实现24小时制,8位数码管显示时分秒,显示格式:12-59-00 通过4只按键来调整时间,调整选择键KEY1:P1.0;通过选择键选
择调整位,选中位闪烁,增加键KEY2:P1.1;按一次使选中位加1。
减少键KEY3:P1.2;按一次使选中位减1,bear:P3.1;到了整点和闹
钟就会响,
如果长按KEY1第一次切换到正常时钟显示,按第二次切换到时的调整,
按第三次切换到分的调整,同时led:P1.2就会闪烁,
按第四次和第五次分别切换到闹钟的时分的调整,可进行调
时、调分快进快减,并停止闪烁。如果选中位是秒,
则按增加键或减少键可实现,但无调时快进和快减功能。P0口输出数
码管段选信号,P2口输出数码管位选信号;晶振12MHz。
编程作者:林炽逸
完成时间: 2013年06月8日
程序请清单如下:
#include
#define uchar unsigned char sbit KEY1=P1^1; //切换键
基于单片机的电子钟C语言程序
基于 5 1 单片机的电子钟 C 语言程序 #include
模拟电子时钟c语言程序
算法:将当前时间显示到屏幕,当时间发生变化时,清屏,显示新的时间(当有键盘操作时退出程序)。 显示时间格式:小时:分钟:秒 /* DEV C++ Win XP*/ #include
int print1(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); printf("%5s%c"," ",2); } return 0; } int print2(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); if(i==0||i==6||i==12) printf("%c%c%c%c%c%c",2,2,2,2,2,2); else if(i>0&&i<6) printf("%5s%c"," ",2); else printf("%c",2); } return 0; } int print3(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); if(i==0||i==6||i==12) printf("%c%c%c%c%c%c",2,2,2,2,2,2); else printf("%5s%c"," ",2); } return 0; } int print4(Point p) {
99.9s秒表代码c语言
#include
电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档)..
湖南人文科技学院 课程设计报告 课程名称:单片机原理及应用课程设计 设计题目:电子时钟的设计 系别:通信与控制工程系 专业:通信工程 班级:09级通信二班 学生姓名: 袁琦黄文付 学号: 09416230 09416227 起止日期:2011年12月20日~2011年12月30日 指导教师:王善伟姚毅谢四莲 教研室主任:刘建闽
指导教师评语: 指导教师签名:年月日 成绩评定 项目权重 成绩 袁琦黄文付 1、设计过程中出勤、学习态度等方面0.2 2、课程设计质量与答辩0.5 3、设计报告书写及图纸规范程度0.3 总成绩 教研室审核意见: 教研室主任签字:年月日教学系审核意见: 主任签字:年月日
摘要 时钟是人类日常生活必不可少的工具,本设计从日常生活中常见的事物入手,通过对电子时钟的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们对未知科学领域的探索。 本文利用单片机实现数字时钟计时功能的主要内容。它体积小,成本低、功能强、使用方便、可靠性高等一系列优点,广泛应用于智能产业和工业自动化上。本次设计采用独立式按键进行时间调整,其中STC89C52是核心元件,同时采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外利用DS1302具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。 关键词:STC89C52 ;LED数码管;8255芯片;DS1302芯片;
基于c语言单片机电子时钟课程设计报告书
课程设计报告 课程名称:单片机程序设计 报告题目:电子时钟 学生: 所在学院:信息科学与工程学院专业班级: 学生学号: 指导教师:
2013年12月25日课程设计任务书
摘要 单片计算机即单片微型计算机。由RAM、ROM、CPU构成。定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 本设计主要设计了一个基于AT89C51单片机的电子时钟。并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。 关键词:单片机;子时钟;键控制
目录 一、概述 (5) 1.1电子时钟简介 (5) 1.2电子时钟的基本特点 (5) 1.3电子时钟的原理 (5) 二、方案设计选择 (5) 2.1计时方案 (5) 2.2显示方案 (5) 三、硬件设计 (6) 3.1单片机型号选择 (6) 3.2数码管显示工作原理 (6) 3.3键盘电路设计 (7) 3.4电路原理图 (7) 四、软件设计 (7) 五、结论与心得 (15) 六、参考文献 (16)
一、概述 1.1 电子时钟简介 1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。 1.2 电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED
基于51单片机的跑表,秒表程序c语言程序
基于51单片机的跑表,秒表程序c语言程序#include
delay(10); en=1; delay(10); en=0; } void write_date(uchar date) { rs=1; P0=date; delay(10); en=1; delay(10); en=0; } void display(uchar com1,uchar date1) { uchar aa,bb; aa=date1/10; bb=date1%10; write_com(0x80+com1); write_date(0x30+aa);
write_date(0x30+bb); } void init() { TMOD=0x01; ET0=1; TR0=0; EA=1; TH0=(65536-10000)/256; TL0=(65536-10000)%256; en=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x40); for(num1=0;num1<17;num1++) { write_date(table[num1]); delay(5); }
秒表C语言程序
#include "reg52.h" #include "intrins.h" sbitStart_Stop = P3^2; sbit Clear = P3^3; sbit Sel_A1 = P1^0; sbit Sel_B1 = P1^1; sbit Sel_C1 = P1^2; sbit Sel_D1 = P1^3; #define LED P0 #define DP 0x80 bdata unsigned char flag; sbitStatus_Flag = flag^0; sbit Is_KeyS_Hold=flag^1; unsigned char xiaoshu1 = 0 , xiaoshu2 = 0 , miao1 = 0 ; miao2 = 0 ; code unsigned char table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,}; voidinit(); void display(); void delay(); void key(); void main() { init(); while(1) { key(); display(); } } void key() { if(Is_KeyS_Hold) if(Start_Stop) { Is_KeyS_Hold = 0 ; EX0 = 1 ; } }
void delay() { unsignedinti ; for(i = 0; i<300; i++); } void display() { Sel_A1 = 1; Sel_B1 = 1; Sel_C1 = 1; Sel_D1 = 0; LED = table[xiaoshu2];delay(); Sel_A1 = 1; Sel_B1 = 1; Sel_C1 = 0; Sel_D1 = 1; LED = table[xiaoshu1];delay(); Sel_A1 = 1; Sel_B1 = 0; Sel_C1 = 1; Sel_D1 = 1; LED=table[miao2]|DP;delay(); Sel_A1 = 0; Sel_B1 = 1; Sel_C1 = 1; Sel_D1 = 1; LED = table[miao1];delay(); voidKey_Start_Stop() interrupt 0 { EX0 = 0; Status_Flag = ~ Status_Flag ; Is_KeyS_Hold = 1; if(Status_Flag ) TR0 = 1; else TR0 = 0; } void time10ms() interrupt 1 { TL0 = 0XEF; TH0 = 0XD8; TR0 = 1 ; xiaoshu2+=1; if(xiaoshu2 == 10) { xiaoshu2 = 0 ; xiaoshu1 += 1;}
简易秒表
课程设计 题目简易数字秒表的设计与实现学院信息工程学院 专业通信工程 班级 姓名 指导教师撒继铭 2016 年 6 月26 日
课程设计任务书 学生姓名:专业班级: 指导教师:撒继铭工作单位:信息工程学院 题目: 简易数字秒表的设计与实现 初始条件: 本设计主要使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等来完成,用一组数码管显示时间计数值。 要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求) 1、课程设计工作量:1周。 2、技术要求: 1)设计一个能测量3名100米跑运动员短跑成绩的数字秒表。要求用一组四位数码管显示时间,格式为00.00s,最大计数时间是99.99秒。 2)秒表设置3个开关输入(清零开关1个、记录开关1个、成绩开关1个)。按下“记录”开关第一次,将记录并储存第一名运动员的成绩,以此类推。当“记录”开关按下3次后,成绩计数结束。3)成绩计数结束之后,连续按动“成绩”开关,可以把3个运动员的成绩循环显示在数码管上。4)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。 3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 1、年月日,布置课设具体实施计划与课程设计报告格式的要求说明。 2、年月日至年月日,方案选择和电路设计。 3、年月日至年月日,电路调试和设计说明书撰写。 4、年月日,上交课程设计成果及报告,同时进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日
C51单片机秒表计时(C语言)
南开大学滨海学院 C51嵌入式软件设计(C语言) 题目:计时秒表 功能描述:本设计实现在99秒内的秒表计时,一个按键实 现开始、暂停、复位。 原理概述:P1接四位七段数码管,P3.2接一按键产生外部中断0, P3.4-P3.7控制扫描显示。计时使用定时器0产生10ms 中断累计。按键不同次序决定了对应的控制功能,因为第一次按键必定为开始计时,所以第二次按键判断为暂停,依次第三次为置零。主程序调用显示程序,显示程序实时显示计时时间。 效果显示
图一(电路总图) 图二(效果显示) 注:第四位显示为单位:S 程序清单 #in clude /*电子钟显示时分秒*/ #include 晶振设置为:12MHz 机器周期为:12*(1/12MHz)=1μs 用Atmel89c52完成,LED显示 用定时器0工作方式2 简易秒表的keilC程序?/span> #include { if(cnt++==5000)//5000*200个机器周期=1S { cnt=0; second++; if(second==60) { second=0; minute++; if(minute==60) minute=0; } } } main() { TMOD=0x02;//工作方式2 TH0=256-200;//初值计算,200个机器周期 TL0=256-200; ET0=1; EA=1; TR0=1; while(1) { P3=0;//动态扫描 P2=led_code[second%10]; P3_3=1; delay(1); P3=0; P2=led_code[second/10]; P3_2=1; delay(1); P3=0; P2=led_code[minute%10]; P3_1=1; delay(1); P3=0; P2=led_code[minute/10]; P3_0=1; delay(1); } XXXXXX学院 51单片机系统设计课程设计报告 题目:秒表系统设计 专业、班级: 学生姓名: 学号: 指导教师: 分数 : [摘要]本设计是一个秒表计时器,采用51单片机实现。电路包括以下几部分:单片机最小系统部分,数码管显示部分,摁键开关部分部分。电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。当再次摁下开关时,数码管停止计时。摁下“清零”键后,系统重新回到初始状态。 [关键词] 单片机最小系统秒表计时摁键控制 任务书 1、任务 设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。 2、设计要求 (1)开始时显示00.0。每按下S1键一次,数值加1s; (2)每按下S2键一次,数值减1s; (3)每按下S3键一次,数值清零; (4)每按下S4键一次,启动定时器使数值开始自动每秒加1, 再次按下S4键,数值停止自动加1,保持显示原数。 3、发挥部分 (1)开关按键3:“复位60.0”按键(用来60秒倒计时)。按键按下去时数码管复位为“60.0”(用于倒计时)。 (2)开关按键4:倒计时“逐渐自减”按键。按键按下去则是数码管开始“逐渐自减”倒计时。 (3)开关按键5:倒计时初始值“增加”按键。 (4)开关按键6:倒计时初始值“减小”按键。 4、课程设计的难点 单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。 5、课程设计仪器 集成电路芯片STC89C52,八段数码管,MCS-51系列单片机微机仿真课程系统中的软件(keil uvision2)。 目录 摘要 (2) 关键词 (2) 任务书 (3) 1、设计任务目的 (5) 2、设计方案选取与论证 (5) 2.1 系统总体设计方案 (5) 2.2 系统整体框图 (5) 3、电路设计 (6) 3.1 单片机最小系统设计 (6) 3.2 数码管显示模块设计 (6) 3.3 摁键控制系统模块设计 (6) 3.4 程序设计 (6) 4、制作及调试过程 (11) 5、结果分析和总结 (12) 参考文献 (12) 附录a 秒表计时器原理图 (13) 附录b 元器件清单 (14) 附录c 秒表计时器实物图 (15) 1、设计任务目的 课程设计说明书 课程设计名称:专业课程设计 课程设计题目:电子钟的设计 学院名称:信息工程学院 专业:电子信息工程班级: XXXXXX 学号: XXXXXXXX 姓名: XXXX 评分:教师: XXXXXX 20 XX 年 X 月 X 日 当今信息科技高速发展,使用方便、低成本电子设备已逐步成为我们日常生活中电子产品的主力军。用软件代替硬件的电子设备能大大地节省成本,且有利于资源的节约,因此,以软代硬的设计必将成为我们现代设计的主流。本设计是利用MCS-51系列单片机内部的定时器/计数器进行中数年定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能够使设计者在定时/计数器的使用中及程序设计方面得到锻炼和提高,因此本系统将采用软件方法实现计时。 关键词:单片机计数器软件 第一章实验要求及设计思路 (4) 1.1 设计内容及要求 (4) 1.2 设计的目与和意义 (4) 1.3 设计的基本思路与主要内容 (5) 第二章系统组成及工作原理 (6) 2.1 系统组成 (6) 2.2工作原理 (7) 第三章硬件设计与分析 (9) 3.1 硬件设计原理 (9) 3.2 AT89C51单片机介绍 (9) 3.3单片机最小应用系统 (9) 3.4显示电路 (11) 3.5 键盘及其接口 (12) 第四章软件设计 (14) 4.1 主程序设计 (14) 4.2 定时中断程序 (17) 4.3 显示子程序 (17) 第五章调试与运行 (19) 第六章结论与体会 (20) 参考文献 (21) 附录一系统原理图 (22) 附录二元件清单 (23) 附录三程序清单 (24) 利用单片机制作秒表计时器 (c语言) #include m=SS/10; P2=0xfb; P0=sc[m]; delay_ms(1); n=SS%10; P2=0xf7; P0=sc[n]+0x80; delay_ms(1); m=MS/10; P2=0xef; P0=sc[m]; delay_ms(1); n=MS%10; P2=0xdf; P0=sc[n]; delay_ms(1); } } void ex0(void) interrupt 0 { ET0=1; } void ex2(void) interrupt 2 { if(ET0==1) { ET0=0; return ; } if(ET0==0) { MM=0; 基于51单片机的电子钟C语言程序 #include 源代码如下(作者:中南大学通信工程1602肖涛,qq:2391527690)#include sj.ho=0; return(sj); } void showtime(struct t sj) { system("cls"); printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t"); printf("秒表显示器:"); if(sj.se<10&&sj.ho<10&&sj.mi<10)//控制计时时时间显示格式printf("0%d:0%d:0%d\n",sj.ho,sj.mi,sj.se); if(sj.se>=10&&sj.ho<10&&sj.mi<10) printf("0%d:0%d:%d\n",sj.ho,sj.mi,sj.se); if(sj.se<10&&sj.mi>=10&&sj.se<10) printf("0%d:%d:0%d\n",sj.ho,sj.mi,sj.se); if(sj.se<10&&sj.mi<10&&sj.ho>=10) printf("0%d:0%d:%d\n",sj.ho,sj.mi,sj.se); if(sj.se>=10&&sj.mi>=10&&sj.ho<10) printf("0%d:%d:%d\n",sj.ho,sj.mi,sj.se); if(sj.se>=10&&sj.mi<10&&sj.ho>=10) printf("%d:0%d:%d\n",sj.ho,sj.mi,sj.se); if(sj.se<10&&sj.mi>=10&&sj.ho>=10) printf("%d:%d:0%d\n",sj.ho,sj.mi,sj.se); /************************************************************** ********二班第二组电子钟程序 ******** ***********************************************************/ #include //以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////以下是主文件main.c 的内容 /****************************************************************************** * * 实验名: 万年历实验 * 使用的IO : * 实验效果:1602显示时钟 * 注意: ******************************************************************************* / #include #include /*----------------------------------------------- 名称:数码管显示,按键控制秒表 论坛:https://www.360docs.net/doc/d86143537.html, 编写:shifang 日期:2009.5 修改:无 内容:中断按键控制,数码管显示,中断0控制计时和停止,中断1清零 ------------------------------------------------*/ #include电子钟显示时分秒c语言程序
简易秒表的keil C程序
51单片机秒表计时器课程设计报告(含C语言程序)
电子钟的设计 C语言编程
单片机制作秒表计时器(c语言)
51单片机电子钟C语言程序1
C语言实现秒表
C语言实现电子钟编程
51单片机数码管显示时钟(C语言)
简单的时钟程序(C语言)
秒表设计C语言程序