简易时钟课程设计报告
基于单片机的简易电子时钟设计_毕业设计论文 精品

论文题目基于单片机的简易电子时钟设计班级:xxxxxx专业:电子信息工程学生姓名:xxxx指导教师:xxxx日期:xxxx-xx-xx摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
关键字:单片机,数字时钟。
AbstractDigital clock has become an indispensable necessities in People's Daily life, widely used in personal family and office and other public places, to people's life, study, work, entertainment, bring great convenience. Due to the development of the digital integrated circuit technology and adopts the advanced quartz technology, walking make digital clock has advantages of accurate, stable performance, easy to carry, it is also used in timing, automatic feed and automatic control and other fields. Although already on the market at present the ready-made digital clock chip for sale, cheap, use is convenient, but in view of the single chip microcomputer timer function also can complete the design of the digital clock circuit, therefore is necessary for the design of digital clock. Here we will have learned more fragmented knowledge of digital circuit of the organic link, the system used in practice, to develop our comprehensive analysis and circuit design, programming, debugging circuit ability.SCM has small volume and powerful function, high reliability, low price and a series of advantages, not only has become widely used in the field of industrial measurement and control intelligent control instruments, and has penetrated into every corner of the people work and life, effectively promote the industry's technological transformation and upgrading of products, the wide prospect of application.Keywords: Single chip microcomputer,Digital clock.目录第一章设计方案 (1)1.1 课程设计目的 (1)1.2 设计要求 (1)1.3 实现时钟计时的基本方法 (1)1.4 电子钟的时间显示 (1)1.5 电子钟的时间调整 (2)1.6 总体方案介绍 (2)1.6.1 计时方案 (2)1.6.2 控制方案 (2)第二章系统硬件电路设计 (3)2.1 单片机模块设计 (3)2.1.1 芯片分析 (3)2.1.2 晶振电路 (4)2.1.3 复位电路 (5)2.2 数码显示模块设计 (5)2.3 按键模块 (8)第三章系统软件设计 (9)3.1 软件设计分析 (9)3.2 系统软件设计流程图 (9)3.2.1 主程序流程图 (9)3.2.2 定时器流程图 (9)3.2.3 按键检测流程图 (10)3.2.4 时间显示流程图 (10)3.3 源程序清单 (11)第四章系统仿真与实验测试 (16)4.1 系统仿真 (16)4.2 实验测试 (16)小结 (17)致谢 (18)参考文献 (19)附录 (20)第一章设计方案1.1 课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
EDA课程设计报告--24小时时钟

课程设计报告课程名称EDA课题名称24小时时钟专业自动化年级09级学号姓名1)课题的主要功能设计一个24小时的时钟,要有时分秒,分别用六位数码管显示,用两个拨码开关分别当做RST,EN用来控制时钟的复位和使能。
2)功能模块的划分图1 时钟功能模块图该智能时钟分为六个模块,分别为:计数器分频模块、三进制加法计数器模块、六进制加法计数器模块、十进制加法计数器模块、数码管动态显示模块、分频器模块。
3)主要功能的实现3.1、计数器分频功能计数器分频COUNTER如图2模块所示,计数器分频到0-22次,最后分出来的OUT[22]时间是0.8秒,近似于1秒。
3.2、三进制加法计数器功能三进制加法计数器模块DSQSAN如图4模块所示,CLK为计数时钟,RST 为1时,数码管上显示00,RST为0时EN为1时计数开始,每3个数,COUT 输出一个1。
3.3、六进制加法计数器功能六进制加法计数器模块DSQLIU如图3模块所示,CLK为计数时钟,RST 为1时,数码管上显示00,RST为0时EN为1时计数开始,每6个数,COUT输出一个1。
3.4、十进制加法计数器功能十进制加法计数器模块DSQSHI如图5模块所示,CLK为计数时钟,RST 为1时,数码管上显示00,RST为0时EN为1时计数开始,每10个数,COUT 输出一个1。
3.5、数码管动态显示功能数码管动态显示模块SMGM如图6模块所示,每一个数码管都有一个对应的CLK10到CLK5,CLK为数码管的扫描周期接COUT[10],SG接数码管的段码,BT接数码管的位码。
3.6、分频功能分频器模块FPQ如图7模块所示,对机器中自带的时钟频率进行分频由50MHZ分到10MHZ。
图2 COUNTER模块图3 DSQLIU模块图4 DSQSAN模块图5 DSQSHI模块图6 SMGM模块图7 FPQ模块4)各模块连接在一起最终图形解释:用COUT[22]当第一个十进制的CLK用这个十进制加法计数器当做秒钟的个位,然后用第一个十进制计数器的COUT当做第一个六进制加法计数器的CLK,用这个六进制加法计数器当做秒钟的十位,以此类推,上一个计数器的COUT接下一个计数器的CLK,用一个十进制加法计数器当做分钟的个位,一个六进制加法计数器当做分钟的十位,一个十进制加法计数器当做小时的个位,一个三进制加法计数器当做小时的十位,所有的计数器的RST和EN接在一起,实现同时复位和使能。
单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
简易数字钟实验报告

题目计算机控制技术综合课程设计
简易数字钟
二级学院电子信息与自动化
专 业电气工程及其自动化
班 级107070403
学生姓名冉静学号20
指导教师贺娟 雷李
考核项目
设计50分
平时成绩20分
答辩30分
设计质量20分
创新设计15分
报告质量15分
熟练程度20分
个人素质10分
得分
总分
考核等级
教师签名
简易数字时钟实验报告
1.方案一
简易的时钟,具有,整点报时的功能。但是没有秒钟的显示。接通电源后,程序开始执行。K1为设置现在时间功能键;K2为小时调整,按一下小时加一;K3为分钟调整,按一下为分钟加一;K4为完成键,设置完成后按下时钟进入正常的走时状态。
其中,P0口接的电阻为限流电阻,选用的数码显示管所需电流比较小;4位LED数码管的共阳极引脚分别与V1-V4三极管的集电极相连,三极管的基极分别通过限流电阻与单片机的P2端口的P2.0-P2.3引脚上。4位数码管显示器分别由4只三极管控制,例如,P2.0输出为低电平时V4三极管导通,与其相连的共阳极数码管显示器开始工作;P2.0输出高电平时V4三极管截止,与其相连的数码管显示器停止工作。
disdata[5]=s%10;//秒钟低位
for(i=0;i<6;i++)//循环显示
{
P1=0xff;
P1=seg7[disdata[i]];
P2=disp[i];
Delayms(2);//显示延时
}
}
void time0(void)interrupt 1 using 0 //时间计数函数
{
TH0=0xfc;//(65536-20000)/256;
单片机课程设计_简易时钟的设计

大庆师范学院计算机组成原理课程设计总结报告设计题目:基本模型机的模拟设计与实现子题目:简易时钟学生姓名:许辛院别:计算机科学与技术学院专业:计算机科学与信息技术班级:计算机本科三班学号:201001041085指导教师:2011 年 7 月 8 日大庆师范学院课程设计任务书题目简易时钟主要内容:参考资料:完成期限:一周指导教师签名:年月日1 设计要求利用89S51单片机结合数码管和1602显示器设计一个电子时钟,由于用LED数码管显示年月日,1602第一行显示时分秒,第二行显示闹钟。
在夜晚或黑暗的场合里也可以使用,具有一定的使用性。
独立按键进行时间和闹钟的调整。
2 硬件设计及描述2.1 确定元器件型号及参数2.1.1 AT89S51单片机简介:AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system progRAMmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
功能特性:兼容MCS-51指令系统32个双向I/O口2个16位可编程定时/计数器全双工UART串行中断口线2个外部中断源中断唤醒省电模式看门狗(WDT)电路灵活的ISP字节和分页编程4k可反复擦写(>1000次)ISP Flash ROM4.5-5.5V工作电压时钟频率0-33MHz128x8bit内部RAM低功耗空闲和省电模式3级加密位软件设置空闲和省电功能双数据AT89S51相对于AT89C51增加的新功能包括:-- 新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!-- ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
单片机课程设计报告-电子时钟--完结篇

⑴ -芯片电源,接+5V;
⑵GND-接地端;
注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速
度没这么快而已,在某一个瞬间单片机引脚电压
仍保持在0或者5v。
2
XTAL1、XTAL2 -当使用芯片内部时钟时,此二引线用于外界石英晶体振荡器和电容。当使用外部时钟时,用于接外部时钟脉冲信号。
关键字:单片机;子时钟;键盘控制。
一
单片计算机即单片微型计算机。(Single-Chip Microcomputer),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬件的能力。
三、总体方案及硬件设计
简易电子钟硬件系统的设计,关键是其键盘、显示器接口电路的设计,本设计采用直接利用单片机AT89C52的并行I/O口构成电子钟的键盘、显示接口电路,其硬件系统原理框图如图3-1所示,主要包括单片机、时钟电路。复位电路。键盘及显示接口电路。
四
AT89C51有40个引脚,按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。
60s旋转时钟课程设计

60s旋转时钟课程设计一、课程目标知识目标:1. 学生能理解时钟的基本构造和旋转原理,掌握60秒旋转一周的时钟运行规律。
2. 学生能够运用所学知识,解释时钟指针运动与时间变化之间的关系。
3. 学生理解时钟的时间单位(时、分、秒)及其换算关系。
技能目标:1. 学生通过制作简易的60秒旋转时钟模型,提高动手操作能力和问题解决能力。
2. 学生能够运用数学知识,进行时钟指针角度的计算。
3. 学生通过小组合作,培养沟通协调能力和团队合作精神。
情感态度价值观目标:1. 学生培养对时间观念的重视,养成珍惜时间的好习惯。
2. 学生在探索时钟旋转原理的过程中,激发对数学和科学的好奇心和求知欲。
3. 学生通过学习时钟的制作,体会工匠精神,培养精益求精的态度。
课程性质:本课程为综合实践活动课程,结合数学、科学和工艺制作等多学科内容。
学生特点:五年级学生具有一定的数学基础、动手能力和合作意识。
教学要求:注重理论与实践相结合,鼓励学生动手实践、自主探索和合作交流,提高学生的综合素养。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 介绍时钟的基本结构,包括时针、分针、秒针的构造及其功能。
2. 讲解时钟的旋转原理,重点阐述秒针60秒旋转一周的运行规律。
3. 结合数学知识,引导学生学习时钟指针角度的计算方法。
4. 利用教材相关章节,组织学生进行时钟时间单位换算的练习。
5. 开展实践活动,指导学生制作简易的60秒旋转时钟模型。
6. 通过小组合作,让学生在实践中探索和解决时钟制作过程中遇到的问题。
7. 结合工艺制作课程,教授学生使用工具和材料,培养动手操作能力。
教学内容安排和进度:第一课时:介绍时钟的基本结构,学习旋转原理。
第二课时:学习时钟指针角度计算,进行时间单位换算练习。
第三课时:实践活动,制作简易60秒旋转时钟模型。
第四课时:小组合作,解决时钟制作过程中的问题,总结经验。
教学内容关联教材章节:数学:《角的度量》、《时间单位换算》科学:《简单机械》工艺制作:《模型设计与制作》教学内容确保科学性和系统性,注重理论与实践相结合,提高学生的综合运用能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、系统总体方案选择与说明 (1)二、设计框图与工作原理 (2)2.1设计框图 (2)2.2工作原理 (2)三、各单元硬件设计说明及计算方法35四、软件设计与说明 ............................................................................................................4.1程序设计流程图 (5)4.2程序设计步骤 (6)4.2.1延时程序 (6)4.2.2主程序的设计 (7)4.2.3中断服务程序的设计 (7)4.2.4显示控制子程序的设计 (7)4.2.5按键控制程序的设计 (7)五、调试结果及说明 (8)5.1软件调试 (8)5.2硬件调试 (9)六、各元件的使用说明 (10)6.1AT89C51 芯片 (10)6.2数码管 (10)6.3按键 (10)七、总结 (11)12八、参考文献 ......................................................................................................................九、附录 (13)13附录 A ...............................................................................................................................附录 B (14)系统总体方案选择与说明单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试 3 个过程。
如果采用单片机系统的虚拟仿真软件—— Proteus,则不用制作具体的电路板也能够完成以上工作。
基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。
从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。
另外,程序较为简洁,具有可靠性和较好的可读性。
针对要实现的功能,拟采用AT89C51 单片机进行设计, AT89C51 单片机是一款低功耗,高性能 CMOS8 位单片机,片内含 4KB 在线可编程(ISP)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准 MCS- 51 指令系统及 80C51 引脚结构 [7] 。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为显示程序、调时显示运用、时钟和跑表切换程序这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
这是前期准备工作。
本设计中我们采用的硬件是自己焊的单片机开发板,首先要先确认该板能够完成下载功能在开始编程;第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和段选电路等。
第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。
第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。
第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。
第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。
在下载到硬件中时确认程序的关键管脚与硬件电路一致。
设计框图与工作原理1、设计框图(如图一):熟悉硬件了解各引脚功能分块设计各部分电路完成整体电路图将分块的电路组合认真学习单片机汇编语言确定编程结构和思路综合各程序完成整体程序编辑各个程序模块调试程序,进行修改用 Proteus 画出电路图对仿真中出现的问题进行改正画出仿真图进行仿真仿真成功焊接单片机开发板软硬件结合,完成任务书验证硬件电路要求对设计进行总结和分析成功图一工作原理:在整个系统中首先要做的是将要实现功能的软件程序编写好,在程序编写好以后对其进行仿真调试,直到仿真结果和所需结果一致;其次要做的就是焊接出硬件即单片机开发板,在焊接好的开发板中对开发板进行检测看其是否能工作;在开发板能工作后,将软件程序下载到硬件开发板的芯片中,进行调试直到硬件中所示的结果和自己设计所需的结果一致。
各单元硬件设计说明及计算方法这部分介绍各模块电路的硬件设计方法和成果,主要分为:输入部分、输出部分、复位。
对于输入部分有时钟和跑表功能切换键,有对时钟的时、分、秒进行调整的按键;而输出部分则是电路的显示部分,将 AT89C51 的输出与数码管连接起来就构成了该硬件电路的显示部分。
对于硬件个元件的来源,我们先把单片机开发板焊接好,在焊接的过程中初步的了解一下开发板的内部结构以及各元件之间的关系,以便于在后续的下载连线工作中能够正确的、快速的连接好线,以便下载,焊接好开发板后,接下来就是测试开发的好坏,好的话就完成了硬件的设计,坏的话就将其原因查出重新焊接直到开发板能够下载程序,为后续的下载做好准备。
下面分别来介绍一下各个部分。
输入部分:在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的修改。
在选用输入端口时,将P1 引脚与按键相连进行输入。
设计的输入部分如图二:图二输出部分:在电子钟的输出部分,与数码管相连显示出时、分、秒,在显示中其数字的输出在 P0 口,数码管有共阳和共阴之分,根据自己的软件程序的编写来选择不同的数码管和数码管的个数,以及正确的连接数码管的驱动电路。
设计的输出部分如图三:图三硬件的计算是简单的计算,其要计算需要多少个数码管来显示,以及多少个开关来控制该电路,本硬件电路需要五个按键来控制对于时、分、秒的调整以及时钟和跑表的切换功能和复位键,对于数码管则只需要六个来分别显示时时:分分:秒秒或分分:秒秒:毫秒毫秒。
软件设计与说明程序设计流程图(如图四):初始化显示无按键判断按键按键 3按键 1按键2调时调分调秒显示所调时间显示所调时间显示所调时间调整时限到或其他输入跑表显示分显示秒显示毫秒结束图四结合电路,程序的总体思路分析:1、点复位键(即单片机的系统复位键)后,进行时钟时间显示,从0 时 0分 0 秒开始。
2、按下 SECOND 键时进行校时,当 SECOND 键按下 1 次对秒位进行调时,此时按下 1 次对秒位加 1;3、当 MINUTE 键按下 1 次时对分位进行调整 ,此时按下 1 次对分位加 1;4、当 HOUR 键按下 1 次时对时进行调整 ,此时按下 1 次久对时位加1;5、当 xuanze 键按下时,系统将切换到跑表功能,数码管显示分分:秒秒:毫秒毫秒。
在程序设计时,尽量改进算法,算法的改进可以使相对误差减小,或者可以使占用空间减小。
另外,分块的设计思想要贯穿始终,整个程序较为繁杂,某些程序段会反复用到,因此采取的方法是写出多个程序段,通过跳转指令进行调用。
程序设计步骤:在程序设计过程中,我遇到了很多困难,这部分也是让我学到很多东西的地方。
首先,我学习了定时器的相关知识,计数器的使用是很重要的组成部分,在这个设计中选择计数器 T0。
T0 的工作方式有:方式 1:16 位计数器,常用方式 2:自动重装初值的8 位定时 /计数器方式 3:T0 相当于两个独立的8 位定时 /计数器此程序采用方式 1,方式 1 的定时时间 t 为 t=(216-M)*12/fosc 。
其中 M 为定时器初值, fosc 为 12MHz ,若 M 为 0 则 t=65536*12/2*106=65.536ms。
因此可取 10ms 为计时单位,初值 M 应为( 216-M ) *2*10 -6=10*10-3。
M=55536=1101100011110000B=0D8F0H。
即定时器初值为 TH0=0D8H ,TL0=0F0H 。
定时器中断 100 次为一秒,这部分在中断程序中用到。
其次,我参看了文献中的设计思路,做到胸有成竹后再进行具体的程序书写工作。
认真学习了教科书中关于汇编语言编程的问题,熟悉了汇编语言的编程方法和语法习惯。
第三步就是进行具体的程序编写工作。
1、延时程序在动态扫描时,必然用到延迟程序,这里使用延迟 1ms 的程序,用它来消除抖动,在判断按键是否按下是也用到延时程序,来消除抖动,因此这个延时程序是来优化该程序的。
2、主程序的设计主程序的主要功能是进行定时器 T0 的初始化,并启动 T0,然后通过反复调用显示子程序,等待 10ms 定时中断的到来,器流程图如图五所示:主程序中是用来控制全局的,当有中断时则转向中断服务程序,中断服务程序执行完后又回到主程序中,等待下一次的中断来临,这样就形成了一个循环,知道系统暂停和复位。
3、中断服务程序的设计中断服务程序中,总体思路是:由于初值是 D8F0H ,所以装满定时器需要 10ms 的时间,从而 100 次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为 0,分加一,依次类推。
4、显示控制子程序的设计在显示子程序中所要显示的是当为时钟时显示时、分、秒,当为跑表时显示分、秒、毫秒,所以在显示模块中需要一条转至语句,通过按键来分别选择所需显示的方向。
设置 T0 为方式 1设中断次数为100清计时单元开中断启动 T0调用显示子程序图五5、按键控制程序的设计在按键控制程序中,首先要判断按键是否按下,若按下则执行按键按下所要执行的语句,若没按下则继续判断按键是否按下,对于按键还得需要消抖程序,使得按键更准确。
调试结果及说明软件调试:程序编写完成后需要对程序进行编译和调试,在编译过程中刚开始很大可能都有错误,因为这么多的程序很有可能自己的粗心而导致语句有错误,经过反复的编译和调试,程序才真正的正确,在程序调试完成后,需生成后缀名为 .HEX 文件,该文件是用来仿真加载到 AT89C51 芯片上的,在仿真过程中也遇到了很多的问题,比如说仿真结果和所需的不一致,这就得改程序,还有仿真时数码管没有显示,这又可能是仿真电路有问题,总之在软件调试过程中问题是很多的,我们得一一的解决。
仿真结果如图六所示:R6R510k10kC1U1U21nF19A0A02 39 B0 18X1XTAL1P0.0/AD0 3 A017 C2A1 A1 38 B1A2 P0.1/AD1 4 A1 16CRYSTALA2 37 B2 A3 P0.2/AD25 A215 18A3 36 B3 XTAL2P0.3/AD3 6 A3 14A4 A4 35 B4 1nFA5 P0.4/AD4 7 A4 13 A5 34 B5 A6 P0.5/AD5 8 A5 12A6 33 B69A7P0.6/AD6 9 A6 11A7 32 B7RSTP0.7/AD7 A719 21P2.0/A8 1 CEP2.1/A9 22AB/BAP2.2/A10 232974LS245PSENP2.3/A113025 R1 R2 R3 R4ALEP2.4/A12 3126EAP2.5/A1310k10k 10k 10kP2.6/A14 27P2.7/A1528SECOND1 P1.0 P3.0/RXD 10MINUTE 2 11P1.1 P3.1/TXD312 HOUR4 P1.2 P3.2/INT0 13P1.3 P3.3/INT1514SW16 P1.4 P3.4/T0 15P1.5 P3.5/T1 7 16P1.6 P3.6/WRSW-SPST817P1.7P3.7/RDAT89C51图六结果说明:图中所示从左至右数码管显示的是时、分、秒,图中左下角有四个按键,分别用来调整时、分、秒和时钟和跑表的选择。