数字电子钟完美终结版_第1页
数字电子钟完美终结版_第2页
数字电子钟完美终结版_第3页
数字电子钟完美终结版_第4页
数字电子钟完美终结版_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机技术课程设计说明书 数字电子钟院 、 部: 学生姓名: 指导教师: 职称 专 业: 班 级: 完成时间: 湖南工学院课程设计任务书课 程: 单片机技术 课程设计题目: 数字电子钟 数字频率计 数字电压表 交通灯 抢答器 密码锁 波形发生器 数字温度计 计算器 数字式秒表 适 用 班 级: 自动化卓越1201 时 间: 20142015学年第一学期 指 导 教 师: 凌 云 单片机技术课程设计任务书一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。二、适用班级:自动化卓越1201三、指导教师:王韧四、设计目的与任务:学生通

2、过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。五、设计内容与要求 设计内容1、数字电子钟设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。2、数字频率计设计一个能够测量周期性矩形波信号

3、的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。3、数字电压表设计一个能够测量直流电压的数字电压表。测量电压范围05V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。4、交通灯设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。按开始键则开始

4、工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。5、抢答器设计一个具有特定功能的抢答器。该抢答器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音

5、响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。6、密码锁设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该密码锁具有系统原始密码,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。7、波形发生器设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“

6、P.”, 进入准备工作状态。该波形发生器可以分别产生幅值05V、频率100Hz100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。8、数字温度计设计一个具有特定功能的数字温度计。该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度范围099,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。9、计算器设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。10、数字式秒表设计一个具

7、有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。设计要求1、以上课题可以任选其一或多选,学生也可以自拟课题;2、编程语言:汇编或C51;3、计算机打印单片机技术课程设计说明书一份;4、设计时间:一周;5、实物制作;6、人员分组:一人一组一实物。六、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主要内容”文件。七、单片机技术课程设计说明书书写规范格式 参照“单片机技术课程设计说明书书写规范格式”文件。八、参考资料1、马忠梅,单片机的C语言Windows环境编程宝典M,

8、北京:北京航空航天大学出版社,2003.6; 2、李光飞,单片机C程序设计指导M,北京:北京航空航天大学出版社,2003.01 ;3、李光飞,单片机课程设计实例指导M,北京:北京航空航天大学出版社,2004.9。电气自动化教研室 2014年9月10日摘 要数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有,体积小,功耗低,价格便宜,工作可靠,使用方便更长的使用寿命长等特点。因此数字电子钟广泛应用于工业,农业和商业等诸多领域中,具有重要的实用价值。本次课程设计是应用单片机芯片AT89S52设计出的数字时钟电路,整个系统以单片机作为中央控制器,硬件电路主要由三个部分构成,

9、即:单片机最小系统、数码管显示电路、键盘控制电路。设计完成的作品具有时间显示、校正功能,走时准确、显示直观、运行稳定等优点,达到课程设计的性能指标。 关键词:数字电子钟;AT89S52;数码管ABSTRACT Digital clock is a digital circuit technology, minutes and seconds, timing devices, and mechanical clock, compared with, small volume, low power consumption, low price, reliable work, convenient

10、operation and longer service life long and so on characteristics.So the digital electronic clock is widely used in industrial, agricultural and commercial fields, and it has important practical value. The curriculum design is the application of single chip AT89S52 design of digital clock circuit, th

11、e whole system with single chip microcomputer as the central controller, the hardware circuit mainly consists of three parts, namely: the smallest single-chip system, digital tube display circuit, a keyboard control circuit.Design work completed with time display function, correction, accurate, intu

12、itive display, stable operation and other advantages, the curriculum design performance. Key words Digital electric clock Stopwatch; AT89S52; Digital Tube目录1 设计课题介绍11.1 设计课题任务11.2 基本功能要求说明11.3 设计方案介绍及其工作原理说明12 数字电子钟的硬件系统设计32.1 硬件系统模块32.2 数字电子钟电路总原理图42.3 PCB图42.4 数字电子钟的元器件清单43 数字电子钟的软件系统的设计53.1 单片机资源

13、使用情况53.2 软件系统各模块功能介绍53.3 软件系统各程序模块流程图63.4 软件系统程序清单84 设计总结94.1 数字电子钟使用说明94.2 设计结论94.3 实物图及误差分析94.4 设计体会9结束语11致 谢12参考文献13附录141 设计课题介绍1.1 设计课题任务设计一个简单的数字电子时钟。具有时间显示的功能,并有时间设定和调整的功能。1.2 基本功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时

14、钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.3 设计方案介绍及其工作原理说明本系统主要设计思想是:整个系统用单片机为中央控制器,由单片机执行采集时钟电路的时间信号并通过显示模块来输出信号及相关的控制功能。时钟电路产生的时钟信号,利用单片机的I/O口传送给单片机;并通过P0口和P2口控制数码管显示时间,通过P1口外接4个按键对时间进行调整。定时设计:利用AT89S52单片机内部的定时/计数器进行中断定时,由于采用12MHZ的晶振提供时钟频率,可选择定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒。采用中断方式进行溢出

15、次数累计,计满20次为秒计时(1秒),从秒到分和从分到时的计时是通过累加和数值比较实现。此方案利用了单片机的定时功能,不过对定时器须非常熟悉,初值设定正确,否则误差很大,计时不准。本系统采用的单片机芯片是AT89S52,它具有的特点:40个引脚,4k Bytes Flash片内程序存储器,32个外部双向输入/输出(I/O)口,所以采用这种设计方案。本系统总的设计框图如图1所示。 图1 系统整体框图关于电子钟的时钟时间在八位数码管上进行显示,由于我们采用的是非压缩BCD,即时显示数字放在一个单元里面,同理分、秒。在内部RAM中设置显示缓冲区共4个单元,其中一个作为50ms到1s的中转缓存区,其余

16、作为时、分、秒的缓冲区。而程序中我们采用的是赋值命令。具体分布单元如表1所示: 表1 数码管的数据存储表LED显示 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 地址 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H显示位数 时十位 时个位 间隔符 分十位 分个位 间隔符 秒个位 秒个位2 数字电子钟的硬件系统设计AT89s52单片机是一种低功耗,高性能的片内含有4KB可编程/擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储

17、技术制造,并且与AT89C52引脚和指令系统完全兼容。芯片上的FLASH允许在线编程或采用通用的非易失存储编程器对存储器重复编程。AT89S52各引脚功能介绍:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“ 1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口是一个具有内部上拉电阻的8 位双向I/O口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对

18、P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P2 口是一个具有内部上拉电阻的8位双向I/O口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口是一个具有内部上拉电阻的8 位双向I/O 口

19、,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。 P3口亦作为AT89S52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。2.1 硬件系统模块(1) 时钟电路:由振荡电路和分频电路组成。其中振荡电路由高增益反相器以及并联外接的石英晶体和电容构成产生振荡脉冲。而分频电路则用于把振荡脉冲分频,已得到所需的时钟信号。振荡电路由单片机芯片的XTAL1端输入,XTAL2端输出。通过这两个引脚并接一个石英晶体振荡器和两个电容。而AT89S52中自带有分频电路所以不需要外接电路对脉冲信号进行分频。晶振

20、频率是指晶体振荡器的振荡频率,也就是振荡电路的脉冲频率,也称振荡频率。晶振频率是12MHz。(2) 复位电路:共有上电复位、按键电平复位和按键脉冲复位3种。其中上电自动复位是通过电容充电来实现的;手动复位是通过按键来实现的,有电平方式和脉冲方式两种。其中按键电平复位端经电阻与Vcc电源接通而实现的,本设计中采用相对简单而实用的按键电平复位方式。(3) 电源电路:主要由、发光二极管、电阻、导线组成。其发光二极管主要是观察电源是否一直保持稳定以及通电是否正常。采用的是5V直流稳压电源对整个系统进行供电。(4)数码管显示电路:数码管采用的是两个4位1体的共阳极数码管,P0口接段控线,并加接限流电阻,

21、P2口接位控线,并加接三极管,以加大负载电流,提高显示亮度,数码管显示电路采用动态显示方式。(5)键盘电路:主要由4个按键和电阻组成。由于我们采用的是独立式键盘,使用的是低电平有效,为了确保为低电平有效,所有的键盘必须接上拉电阻,具体的设计是:P1口的P1.0作为启动/停止键,P1.1作为功能键,P1.2作为连加1键,P1.3作为连减1键。2.2 数字电子钟电路总原理图 电路总原理图见附录A。2.3 PCB图 PCB图见附录B。2.4 数字电子钟的元器件清单 数字电子钟的元器件单见附录C。3 数字电子钟的软件系统的设计3.1 单片机资源使用情况根据实际和需要,本次设计选用定时器0做时钟定时,按

22、方式1工作,每隔50ms溢出中断一次,计满20次为止。P0.0-P0.7段控线,接LED的显示段a,b,c,d,,e,f,g,dp;P2.0-P2.7位控线,(LED7,LED6,LE5,LED4,LED3,LED2,LED1,LED0)使用定时器/计数器0,定时功能,工作方式1,提供50毫秒的定时时间,以中断方式工作,计满20次即得到秒计时单位。3.2 软件系统各模块功能介绍 (1)主程序:主要建立堆栈和对PSW清零,显示。 (2)时钟运行程序:对定时器设置计数初值,开启定时器和中断,并调显示程序显示时钟的运行情况。 (3)时钟调整程序:关定时器,调键盘扫描程序,对时钟的时、分、秒进行加、减

23、的调整。 (4)键盘扫描程序:读P1口的数据,把按键的状态输入单片机。 (5)显示程序:把存放在显示缓冲区里的时钟数据通过查表得到所对应的段控码送到数码管上,以使数码管正确的显示时间。 (6)中断服务程序:进行计时操作用于完成对时、分、秒的加减操作,以使电子钟能够正常运行。 (7)时钟加1程序:使时钟时、分、或者秒完成加1的操作。 3.3 软件系统各程序模块流程图电子钟主程序程序流程框图如图2所示 图2 电子钟主程序程序流程框图中断服务程序流程图如图3所示 图3 中断服务程序流程图显示流程框图如图4所示,键盘扫描程序流程图如图5所示。 图4 显示程序流程图 图5 键盘扫描程序流程图3.4 软件

24、系统程序清单 程序清单见附录D。4 设计总结4.1 数字电子钟使用说明该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键即S3,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按S3,时钟停止运行,电子钟进入时钟调整状态,此时可利用各调整键即S4选择调整小时还是分钟还是秒钟,S5键为加一键,S6为减一键。由于我们采用的是连加调整固可按住键盘不放对时间进行调整,调整结束后可按启动/调整键即S3再次进入时钟运行状态。4.2 设计结论在本次设计中,我觉得重点和难点在于如何对电子钟进行时间的调整,对电子钟的调整有多种方案,选择在设计了个加1键和减1

25、键基础上,在这次设计中,关键是利用定时器中断来对时钟计时。利用定时器中断,一旦定时器中断请求已产生立即跳往中断服务程序,只要给定时器初值初始化恰当,计时产生的误差可以忽略。当在设计中还有很多地方有局限性,虽然实现了随意选择时、分、秒进行调整,但是不能实现整点报时的功能扩展。4.3 实物图及误差分析(1)实物图见附录E。 (2)误差分析产生时间误差额度原因主要有软件和硬件两个方面:软件方面是由中断程序中的指令执行时间导致误差的产生。对定时器T0定时50ms,每中断一次,对相应的单元加一,判断满20次就产生一秒的基准时间。在中断程序中,中断响应时间需要一定的机器周期,这种误差可以通过调整定时器0所

26、装的初值来弥补。硬件方面主要是晶振不够精确使得基本的机器周期不对,这种误差很小,可以买比较好的器材来弥补。还值得提到的就是,信号在硬件线路传输产生的延时可以使时钟变慢。4.4 设计体会本次课程设计虽然功能已完成了指导书的要求,但还存在很多不足之处。其重点和难点就是软件系统程序的编写,虽然分开几种程序模块来写没有太大问题,但是,程序串在一起就不行了,需要使用Keil软件反复调试,并把生成的代码写入芯片,反复调试。通过这次课程设计让我明白一点就是课程设计一定要学好理论知识,同时要经过实践来检验知识。硬件方面的设计是在老师的监督安排下顺利完成的,动手从画原理图到PCB图,然后转印、腐蚀以及焊元器件一

27、路做过来收获很多,明白了制作实物的大概流程。通过一学期的单片机学习,一步步从硬件到软件,学了不少,但是知道的越多,感觉不知道的地方越多。但设计过程中还是受益匪浅的,学到了很多书本上没有的东西,比如动手能力,克服困难的毅力。结束语 课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次的单片机课设,加深了对单片机理论知识的理解,并锻炼了编写程序的能力,具备了单片机简单程序的基本设计能力和基本调试能力。在设计程序之前,要对所用单片机芯片的内部结构有一个系统的了解,知道该用到单片机的哪些资源;要有一个清晰的思路和

28、一个完整的程序流程图,不要妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。回顾起此次单片机课程设计,至今我仍感慨颇多。从编程到实物验证,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。致 谢在本次课程设计中遇到了许多困难和问题,但好在都在老师和同学的帮助下解决了。在此要感谢凌云老师

29、,没有您的帮助和指导,我的课程设计难以成功。正是你的悉心教导和不厌其烦的解释给了我前进的方向和动力,让我顺利的完成此次课程设计。同时也要感谢我的同学们,你们的热情帮助是这次课程设计不可或缺的因素。再次感谢可亲可敬的凌云老师和热情耐心的同学们。参考文献1李广弟,朱月秀,等.单片机基础M.北京:北京航空航天大学出版社,2007 Li Guangdi, Zhu Yuexiu, et al. microcontroller based on M. Beijing: Beijing Aerospace University Press, 2007(in Chinese)2张洪润,兰清华.单片机原理与应用

30、M.北京:清华大学出版社,1997Zhanghong Run, Lan Qinghua. microcomputer application technology tutorial M. Beijing: Tsinghua University Press, 1997(in Chinese)3马忠梅.单片机C程序设计M.北京:北京航空航天大学出版社,2007Ma Zhongmei. microcontroller C programming M. Beijing: Beijing Aerospace University Press, 2007(in Chinese)附录附 录A:电路原理图附

31、 录B:PCB图附 录C:元器件清单元器件名称规 格数 目AT89S52单片机40P1AT89S52单片机芯片锁紧座40P1四位一体共阳数码管2四位一体共阳数码管插座40P174HC57320P174HC573芯片插座20P1晶振12MHz1发光二极管9单排插针40P3三极管90121蜂鸣器1小按键10下载口座子1六脚按键电源开关1USB电源线1USB电源线插座1电阻2001电阻4708电阻1K4电解电容22uf2瓷片电容33pf2排阻10k4排阻4701短路冒3杜邦线8P1PCB板子1固定螺钉螺帽3mm4USB下载线无需安装驱动程序1附 录D:程序清单/*项目名称:数字电子钟设计者名称:李熔

32、钢指导老师:凌云老师设计时间:2014/12/30功能:上电后数码管就全部显示“P.”字符。S3为启动/停止键,S4为功能键键,S5为加一键,S6为减一键。在系统提示符状态下,只有按启动键/停止键才能开启电子钟,电子钟进入运行状态,再次按下启动键/停止键,电子钟进入调整状态,此时,连加一键、连减一键、功能选择键才可以工作。调整结束后,按下启动键/停止键,电子钟由调整状态返回运行状态,紧跟着以调整以后的时间运行。时间是24小时制,显示范围0到23小时,0到59分,0到59秒。时、分、秒之间自设分隔符。使用说明:P1口连接独立式键盘;P0口,P2口分别控制数码管位和段;*/#include#inc

33、ludedelay.h#includedisplay.h#includekey.h#define uchar unsigned char#define uint unsigned intuchar num=0,v,a,b,c,i;signed char hour,min,sec;/*显示缓冲数组(存放显示信息的字形码的序号)*/uchar find_code8;/*/函数名:set_find/功能:设置缓冲数组初始值/调用函数:无/调用数组:find_code/输入参数; 无/输出参数:无/说明:按照程序定义额段选数组,按照须显示段选数,相应的设置缓冲数组的初始值*/void set_find

34、(m0,m1,m2,m3,m4,m5,m6,m7) find_code0=m0; find_code1=m1; find_code2=m2; find_code3=m3; find_code4=m4; find_code5=m5; find_code6=m6; find_code7=m7; /*主函数*/void main() EA=1; /打开总中断使能位 ET0=1; /打开定时器0使能位 TMOD=0x01; /设置定时0为工作方式 TH0=0x3c; /设置定时0为50ms计数初值 TL0=0xb0; v=key();/调键扫描函数 set_find(17,17,17,17,17,17

35、,17,17); /设置缓冲数组初始值“P.” while(1) /等待中断 display();/调显示函数 switch(v) case 0x00:display();v=key();break; case 0x01: b=1;a+; if(a=1) TR0=1;if(a=2) a=0; TR0=0; set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10);display(); v=key(); break; case 0x02: if(a=0&b=1) c+; if(c=4) c=1; set_find(sec%10,sec

36、/10,20,min%10,min/10,20,hour%10,hour/10); display(); v=key();break; case 0x04: if(a=0&b=1) if(c=1) hour+; if(hour=24) hour=0; if(c=2) min+; if(min=60) min=0; if(c=3) sec+; if(sec=60) min=0; set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10); display(); v=key();break; case 0x08: if(a=0&b=1)

37、if(c=1) hour-; if(hour=-1) hour=23; if(c=2) min-; if(min=-1) min=59; if(c=3) sec-; if(sec=-1) sec=59; set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10); v=key();break; default: if(b=1) set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10); display(); v=key();break; while(a=0&b=1)&c=1

38、)set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10);for(i=0;i50&(v=0&c=1);i+) display(); v=key(); set_find(sec%10,sec/10,20,min%10,min/10,20,21,21);for(i=0;i50&(v=0&c=1);i+) display(); v=key(); break;while(a=0&b=1)&c=2)set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10);for(i=0;i50&

39、(v=0&c=2);i+) display(); v=key(); set_find(sec%10,sec/10,20,21,21,20,hour%10,hour/10);for(i=0;i50&(v=0&c=2);i+) display(); v=key(); break;while(a=0&b=1)&c=3)set_find(sec%10,sec/10,20,min%10,min/10,20,hour%10,hour/10);for(i=0;i50&(v=0&c=3);i+) display(); v=key(); set_find(21,21,20,min%10,min/10,20,ho

40、ur%10,hour/10);for(i=0;i50&(v=0&c=3);i+) display(); v=key(); break; /*中断服务程序*/void timer_0() interrupt 1 num+; if(num=20) num=0; sec+; if(sec=60) min+; sec=0; if(min=60) hour+; min=0; if(hour=24) hour=0; TH0=0x3c;/重新设置定时0为50ms的计数初值 TL0=0xb0; find_code0=sec%10; find_code1=sec/10; find_code2=20; find_

41、code3=min%10; find_code4=min/10; find_code5=20; find_code6=hour%10; find_code7=hour/10;Display程序/*#include#include display.h#include delay.h#define uchar unsigned char#define uint unsigned int/*显示缓冲数组(存放显示信息的字型码的序号)*/ uchar find_code;/*数码管段控数字显示数组(显示数字0-9、字母A到F,Z、P.、P、.、-、灭)*/uchar code disp_DK=0xc0,0xf9,0xa4,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论