数字钟的设计毕业设计

上传人:沈*** 文档编号:41254794 上传时间:2021-11-19 格式:DOC 页数:28 大小:262.50KB
收藏 版权申诉 举报 下载
数字钟的设计毕业设计_第1页
第1页 / 共28页
数字钟的设计毕业设计_第2页
第2页 / 共28页
数字钟的设计毕业设计_第3页
第3页 / 共28页
资源描述:

《数字钟的设计毕业设计》由会员分享,可在线阅读,更多相关《数字钟的设计毕业设计(28页珍藏版)》请在装配图网上搜索。

1、数字钟的设计摘要:随着电子工业的发展,电子产品日新月异。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的功能。诸如数字钟、万年历、电子表、定时自动报警、定时启闭电路、通断动力设备,甚至各种定时电气的自动启用、通信、网络等众多领域,所有这些都是以钟表数字化为基础的。由于其功能的不断增加,使用方便性不断提高,很多产品已经成为人类日常生活中不可或缺的助手。本文是基于单片机控制的数字钟系统的设计。该系统主要以单片机芯片AT89C51为核心结合按键选择模块来控制数码管显示模块和蜂鸣器模块工作,从而实现时钟和闹钟功能,并可对时钟及闹钟的时、分、秒进行单独校对,使其校正到标准时间。此设

2、计以软件控制硬件及软硬件结合为指导思想,充分发挥单片机功能。同时,该数字钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统实现的功能简单,因此具有一定的可扩展性。关键词:AT89C51单片机;数码管显示; The design of digital clock AbstractWith the development of the electronics industry, electronic products are different from before day by day. Watches digital has brought great convenience to

3、 peoples production and living, and greatly expanded the original watch function. Such as digital clock, calendar, electronic watches, timed automatic alarm, timed to open and close circuits, open and close the power equipment, even a variety of timed electrical auto-enabled, communications, network

4、ing and many other fields, all of which are based on watches digital. Increasing its functionality, ease of use continue to increase, many products have become an indispensable assistant to human daily life. This article is based on single chip microcomputer control of digital clock system design. T

5、his system mainly by the single-chip microcomputer AT89C51 as the core in combination with key choice module to control the digital tube display and buzzer module work, so as to realize the clock and alarm clock function, and can be on the clock and alarm clock, minutes and seconds to individually c

6、heck, make the correction to standard time. This design in order to control the hardware and software and hardware combined with software as the guiding ideology, give full play to the MCU function. At the same time, the digital clock system also has the characteristics of low consumption, low cost,

7、 strong practicability. Due to the function of the system is simple, thus has certain extensibility. Key words: AT89C51 single chip microcomputer; Digital tube display; 目 录 摘要 .i Abstract .ii第一章 绪 论 .- 1 - 1.1 课题研究的背景.- 1 - 1.2课题研究的内容 . - 2 - 第二章 KEIL集成开发环境的应用. - 3 - 2.1AT89C51单片机概述 .- 3 - 2.2 KEIL集

8、成开发环境的应用与操作 . - 3 - 2.2.1KEIL集成开发环境简介 . - 3 - 2.2.2 KEIL集成开发环境的基本仿真流程 . - 4 - 第三章 数字钟系统的原理与设计 . - 6 - 3.1 数字钟系统的总体方案设计 .- 6 - 3.2 数字钟系统的硬件设计 . - 6 - 3.2.1 复位电路的设计 . - 7 - 3.2.2 振荡电路的设计 . - 8 - 3.2.3 按键选择电路的设计 . - 10 - 3.2.4 数码管显示电路的设计. - 11 - 3.2.4.1 数码管的显示原理. - 13 - 3.2.4.2数码管的连接 . - 14 - 3.2.5蜂鸣器电

9、路设计 . - 14 - 3.3 数字钟系统的软件设计.- 16 - 3.3.1 初始化参数设置. - 17 3.3.2 时钟计时程序. - 17 - 3.3.3 按键处理程序. - 17 - 3.3.3.1 时钟调时程序. - 17 - 3.3.3.2 闹钟调时程序. - 17 - 3.3.4 数码管显示程序. - 17 - 3.3.4.1 时钟当前值显示程序. - 17 - 3.3.4.2 闹钟调时显示程序. - 17 - 第四章 系统实现与分析 . - 20 - 4.1 系统总体电路原理图的设计 . - 20 - 4.2 系统整体软件设计 . - 21 第五章 总结与展望 . - 26

10、- 5.1 工作总结. - 26 - 5.2 技术展望. - 27 - 参考文献 . 第一章 绪 论1.1 课题研究的背景近年来随着科技的发展,任何设备和产品的自动化、数字化和智能化都离不开单片机,单片机已成为人类生活中不可或缺的助手。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。单片机的应用的重要意义在于,它从根本上改变了传统意义设计理念和设计方法。数字钟已经成为人们日常生活中不可缺少的生活用品,广泛的应用于各种场所。给我们生活、学习、工作、娱乐带来了极大的方便。尽管目前市场上已有现成的数字钟集

11、成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时功能也可以完成数字钟的电路设计,因此进行数字钟的设计是必要的。1.2课题研究的内容本次设计的多功能数字钟就是应用单片机的计时功能为设计核心,采用定时器中断提供准确的计时,由键盘调整数字钟的功能,并利用软件编程通过数码管把时间数字显示出来,通过蜂鸣器提醒时间。本文内容结构安排如下:第一章主要介绍本文的研究背景,及本文的主要研究内容。 第二章是对KEIL集成开发环境的应用的介绍,包括AT89C51单片机概述,KEIL集成开发环境简介及KEIL集成开发环境的基本仿真流程。 第三章主要介绍数字时钟的原理与设计,分别介绍了数字钟系统的总体方案设计,

12、数字钟系统的硬件设计,数字钟系统的软件设计。第四章是系统的实现与分析,分别介绍了系统总体电路原理图的设计,系统整体软件设计,将各个模块整合到一起,进行仿真、分析,以实现数字钟系统的整体功能。 第五章是对本文的总结,以及对本设计的技术展望。 第二章 KEIL集成开发环境的应用 2.1 AT89C51单片机概述 单片机是计算机、自动控制和大规模集成电路技术相结合的产物,融计算机结构和控制功能于一体,集成在一个芯片上的计算机,全称单片微型计算机。 AT89C51是8位单片机中一个最基本、最典型的芯片型号,它主要由中央处理器CPU、内部数据存储器、内部程序存储器、定时器/计数器、并行I/O口、串行口、

13、中断控制电路、时钟电路、位处理器、内部总线等组成。2.2 KEIL集成开发环境的应用与操作 2.2.1KEIL集成开发环境简介 Keil C51是Keil Software公司出品的51系列兼容单片机C语言软件开发系统。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。在Keil中使用C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势。2.2.2 KEIL集成开发环境的基本仿真流程1.新建与保存源程序第一步:双击KEIL uVision3的桌面快捷方式,启动KEIL集成开发软

14、件。第二步:新建文本编辑界面或加入原有的程序文件。选择“File(文件)”“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”。第三步:在“Text1”中输入C语言源程序。第四步:保存源程序。保存文件时必须加上文件的扩展名并选择路径和文件名进行保存,C语言程序文件的扩展名为“.C”。2.建立新工程第五步:新建KEIL工程。选择“Project(工程)” “New Project(新建工程)”命令,将出现保存对话框。在保存工程对话框中输入工程文件名,工程名称不用输入扩展名。输入名称后保存,将出现“Select Device for T

15、arget ”对话框。第六步:选择CPU型号。在对话框中选择“公司(Atmel)” “CPU型号”,单击“确定”按钮返回主界面。3.加入源程序到工程中1 总体方案设计 针对本课题的设计任务,进行分析得到:本次设计以单片机芯片AT89C51为核心进行控制,并由4个按键及一个开关键进行时间的调整和闹铃的设定。最终由6个数码管显示时间,1个蜂鸣器提醒时间。根据设计的要求,该多功能数字钟的设计总体上大致可分为以下几个部分:1.复位电路;2.振荡电路;3.按键选择电路;4.数码管显示电路; 5. 蜂鸣器电路。系统原理框图如下图所示。 复位电路数码管显示电路蜂鸣器电路按键选择电路AT89C512硬件电路设

16、计2.1复位电路设计 单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出现混乱。对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定的。RST引脚是复位信号的输入端,高电平有效。常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路,而此数字钟系统复位电路采用按键电平复位电路,如下图所示。2.2振荡电路振荡电路由两个皆为30PF的C1,C2及振荡频率为12MHZ的晶振组成,并配合单片机定时器0实现准确计时。2.2按键选择电路 按键选择电路主要通过按键及开关实现随时输入定时(闹钟)时

17、间和随时对当前时间进行调整。本设计选择1个单刀单掷开关为闹钟时间调整开关,4个独立式键盘,分别为:秒钟调整按键、分钟调整按键、时钟调整按键及时钟运行按键。按键选择电路如下图所示。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

18、17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51SW1SW-SPST其中,秒钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的秒位,反之对时间值的秒位进行调整,分钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的分位,反之对时间值的分位进行调整,时钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的时位,反之对时间值的时位进行调整。各按键每按一次+1,当秒位和分位加到60自动转化为0,当时位加到24自动转化为0。键

19、盘的硬件电路设计只能保证八个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现。当时间值调整准确,按下时钟运行按键启动定时器中断开始准确计时。2.2 数码管显示电路设计在目前的扫描显示电路中为了节省成本广泛使用七段数码管显示,其工业控制、仪表仪器等都应用七段数码管做显示输出。用十进制数码管直观显示数字系统的运行数据,常常是主要的显示手段,数码管每个线段都是一个发光二极管LED(Light Emitting Diode)组成的。因其驱动电压小、功耗低、寿命长和可靠性高等优点广泛显示电路中。2.2.1数码管的显示原理七段数码管显示就是将七个发光二极管LED(加小数点为八个)按一定

20、的方式排列起来,七段a、b、c、d、e、f、g(小数点DP)各对应一个发光二极管,利用不同发光段的组合,显示不同的阿拉伯数字或字符,要使数码管显示,必须具备两个条件:1.要使COM端接地;2. 要使(a,b,c,d,e,f,g,dp)某些端口接高电。(a) 显示器 (b) 段组合图 图2.2.1 八段数字显示器及发光段组合图以共阴极数码管为例7段数码管的段码为7位,8段数码管的段码为8位,用一个字节即可表示。段码字节中代码位与各段发光二极管的对应关系如下:段码D7D6D5D4D3D2D1D0段名dpgfedcba显示十六进制数的段码值如下图所示: 显示数字七段共阴极段码八段共阴极段码八段共阴极

21、倒置段码03FHBFHBFH106H86HB0H25BHDBHDBH34FHCFHF9H466HE6HF4H56DHEDHEDH67DHFDHEFH707H87HB8H87FHFFHFFH96FHEFHFDH 本设计需设置6个数码管,其中时个位与倒置的分十位结合显示数字及“:”,分个位与秒十位结合显示数字及“:”。2.2.2数码管连接 在使用中,为了给发光二极管加驱动电压,它们应有一个公共引脚,公共引脚共有共阴极和共阳极两种连接方法,如图下图所示。 (a)共阳极接法 (b) 共阴极接法 其中共阴极接法把发光二极管的阴极连在一起构成阴极公共引脚,使用时阴极公共引脚接地,这样阳极引脚上加高电平的发

22、光二极管就导通点亮;共阳极接法则是把发光二极管的阳极连在一起作为阳极公共引脚,使用时阳极公共引脚接+5V,这样阴极引脚上加低电平的发光二极管即可导通点亮。 此图各数码管的a,b,c,d,e,f,g,DP端分别接P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7。自秒个位,秒十位,分个位,分十位,时个位,时十位起数码管的COM端分别接P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,对应数码管连接方法如下:2.3蜂鸣器电路设计本设计中当闹钟预设时间与当前显示时间值相同时驱动蜂鸣器连续工作1分钟,起到提醒时间的作用,给人们的工作、学习、生活带来方便。将蜂鸣器一

23、端与P3.6相连,另一端与VCC相连,当P3.6=0时,蜂鸣器开始工作。具体连接电路如下图所示:3软件设计根据设计方案要求,应用Keil软件和Proteus软件对电路进行仿真,实现设计的要求,具备对时间即时的显示,对时间和闹铃的设定。 该课题的软件设计采用模块化设计的思想即将程序划分为若干个相对独立的功能模块,画出每一个功能模块的详细流程图,并根据流程图编写程序,最后按照软件设计的总体结构框图,将各模块连接成一个完整的主程序。本设计中主要模块包括初始化参数设置、按键处理、数码管显示模块及蜂鸣器工作模块,下面对软件各部分程序进行简要介绍:初始化参数设置如下:#include#define uch

24、ar unsigned char#define uint unsigned intuchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code table2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar code table3=0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd;uchar dis6 =0,0,0,0,0,0; uchar shihao, second,minite,ho

25、ur,bsel;uchar tsecond=0; uchar tminite=0; uchar thour=0; uint i,j,m,n;sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12; sbit P1_3=P13;sbit P1_4=P14;sbit beep=P36;void display(); void ndisplay(); void tiaoshi(); void ntiaoshi();定时器0服务程序毫秒计数10ms定时器计数+1毫秒计数到100次=1s?重装定时常数,秒计数+1秒计数=60s?秒计数=0,分计数+1分计数=60min?分计数

26、=0,时计数+1时计数=0中断返回时计数=24h?NY时钟计时程序流程图本程序利用定时器中断实现数字钟的时钟计时。1.时钟计时程序如下:程序分析一次10ms定时结束,增加一个计数变量shihao(0100);当shihao增加到100,second+1,shihao清零;当second增加到60,minite+1,second清零;当minite增加到60,hour+1,minite清零;当hour增加到24, hour清零;2.初始化(1) TMOD:定时器T0方式1,TMOD=0x01。(2) 计算初值:fosc=12MHZ,机器周期为1us。 一次定时时间=10ms,T0定时10ms=1

27、0ms/1us=10000,即 TH0=(65536-10000)/256; TH1=(65536-10000)%256;(3) 中断方式:允许定时器T0中断。EA=1;ET0=1;具体程序如下:void timer0(void) interrupt 1 using 1 TH0=(65536-10000)/256; /定时时间为10ms/次 TL0=(65536-10000)%256; shihao+; if(shihao100) shihao=0;/定时=1s second+; if(second=60) second=0; /定时=1分钟minite+;if(minite=60) mini

28、te=0; /定时=1小时 hour+; if(hour=24) hour=0; 2.按键处理程序如下:时钟程序入口开机初始化,清零T0中断初始化,送显示数据00:00:00运行键按下了吗?秒调整键按下了吗?分调整键按下了吗?时调整键按下了吗?N启动定时器工作second+1minite+1hour+1闹钟调时开关闭合了吗?N调用显示函数Y本程序主要在闹钟调时开关断开的前提下实现时钟当前显示时间的可调性。程序分析当闹钟调时开关P1.4断开时,首先判断秒钟调整按键P1.0是否按下;若秒钟调整按键P1.0按下,按下一次second+1;若P1.0没有按下,判断分钟调整按键P1.1是否按下;若分钟调

29、整按键P1.1按下,按下一次minite+1;若P1.1没有按下,判断时钟调整按键P1.2是否按下;若时钟调整按键P1.2按下,按下一次hour+1;如若P1.0、P1.1、P1.2皆没按下,判断运行键P1.3是否按下。若P1.3按下启动T0工作;若P1.3没有按下,返回主程序。具体程序如下:if(P1_4=1) delay(100,100); if(P1_4=1) display(); tiaoshi(); if(P1_3=0) delay(100,100); if(P1_3=0) TR0=1; while (P1_0=0 ); void tiaoshi() while(1) if(P1_0

30、=0) delay(100,100); if(P1_0=0) second+; if(second=60) second=0;while (P1_0=0 ); else if(P1_1=0) delay(100,100); if(P1_1=0) minite+; if(minite=60) minite=0;while (P1_1=1 ); else if(P1_2=0) delay(100,100);if(P1_2=0) hour+; if(hour=24) hour=0;while (P1_2=0); 闹钟程序入口开机初始化,清零T0中断初始化,送显示数据00:00:00秒调整键按下了吗?

31、分调整键按下了吗?时调整键按下了吗?tsecond+1tminite+1thour+1闹钟调时开关闭合了吗?YN本程序主要在闹钟调时开关闭合的前提下实现闹钟时间的可调性。程序分析当闹钟调时开关P1.4闭合时,首先判断秒钟调整按键P1.0是否按下。若秒钟调整按键P1.0按下,按下一次tsecond+1;若P1.0没有按下,判断分钟调整按键P1.1是否按下。若分钟调整按键P1.1按下,按下一次tminite+1;若P1.1没有按下,判断时钟调整按键P1.2是否按下。若时钟调整按键P1.2按下,按下一次thour+1。如若P1.0、P1.1、P1.2皆没按下,返回主程序。uchar tsecond=

32、0;uchar tminite=0;uchar thour=0;while(1) if(P1_4=0) delay(100,100); if(P1_4=0) ndisplay(); ntiaoshi(); void ntiaoshi() while(1) if(P1_0=0) delay(100,100); if(P1_0=0) tsecond+; if(tsecond=60) tsecond=0;while (P1_0=0 ); else if(P1_1=0) delay(100,100); if(P1_1=0) tminite+;if(tminite=60) tminite=0;while

33、 (P1_1=1 ); else if(P1_2=0) delay(100,100);if(P1_2=0) thour+; if(thour=24) thour=0;while (P1_2=0); 3.数码管显示程序1.本程序在闹钟调时开关P1.4断开的前提下实现当前时间显示0.5s,熄灭0.5s及当闹钟预设时间与当前时间相等时实现蜂鸣器间断工作1分钟。uchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code table2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0

34、x87,0xff,0xef;uchar code table3=0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd;uchar dis6 =0,0,0,0,0,0;void display() dis0=second%10; dis1=second/10; dis2=minite%10; dis3=minite/10; dis4=hour%10; dis5=hour/10;P3=bsel; bsel=0xfe; P2= table1dis0;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis1;bs

35、el=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis2;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis3;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis4;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table1dis5;bsel=(bsel1)|1;delay(10,100);P2=0x00;if(hour=thour&minite=tminite)beep=0;else beep=1;delay(500,100

36、0);P3=0xff;delay(500,1000);2.本程序在闹钟调时开关P1.4闭合的前提下实现闹钟调时的显示。void ndisplay() dis0=tsecond%10; dis1=tsecond/10; dis2=tminite%10; dis3=tminite/10; dis4=thour%10; dis5=thour/10; P3=bsel; bsel=0xfe;P2= table1dis0;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis1;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=ta

37、ble2dis2;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis3;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis4;bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table1dis5;bsel=(bsel1)|1;delay(10,100);P2=0x00;附录1 电路原理图附录2 程序清单/按下运行按键,启动定时器0,开始计时;/当闹钟调时开关P1.4闭合时,可通过时分秒调整按键实现闹钟预设值的调整;/当闹钟调时开关P1.4断开时时,可通过时分秒调整按键

38、实现时钟当前时间的调整;/在进行闹钟调时过程中,数码管只显示闹钟预设值,不显示时钟当前时间,直到闹钟调时开关P1.4闭合;/不可以在设置闹铃的过程中设置时间;/每当设置闹铃时,闹钟时间需在之前的基础上修改;/可通过开关控制闹钟的运行;#include#define uchar unsigned char#define uint unsigned intuchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/显示09数字uchar code table2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,

39、0xfd,0x87,0xff,0xef;/显示09数字及小数点uchar code table3=0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd;/数码管倒置后显示小数点及正立的数字uchar dis6 =0,0,0,0,0,0;/对各数码管显示的数初始化uchar shihao, second,minite,hour,bsel;uchar tsecond=0;uchar tminite=0;uchar thour=0;uint i,j,m,n;sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12; sbit P

40、1_3=P13;sbit P1_4=P14;sbit beep=P36;void display();void ndisplay();void tiaoshi();void ntiaoshi();delay(m,n) for(i=m;i0;i-) for(j=n;j0;j-);/可调延时程序void main(void) TMOD=0x10;/T0方式1定时 TH0=(65536-10000)/256;/预置计数初值 TL0=(65536-10000)%256; ET0=1; EA=1;/开中断while(1) if(P1_4=0) delay(100,100);/软件消抖动 if(P1_4=

41、0) ndisplay(); ntiaoshi(); else if(P1_4=1) delay(100,100); if(P1_4=1) display(); tiaoshi(); if(P1_3=0) delay(100,100); if(P1_3=0) TR0=1;/启动定时 while (P1_0=0 ); void timer0(void) interrupt 1 using 1/T0中断服务程序 TH0=(65536-10000)/256;/定时时间10ms/次 TL0=(65536-10000)%256; shihao+; if(shihao100) shihao=0; seco

42、nd+; if(second=60) second=0;minite+;if(minite=60) minite=0; hour+; if(hour=24) hour=0; void display() dis0=second%10;/秒个位 dis1=second/10;/秒十位 dis2=minite%10;/分个位 dis3=minite/10;/分十位 dis4=hour%10;/时个位 dis5=hour/10;/时十位P3=bsel; bsel=0xfe; P2= table1dis0;/送秒个位bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=tab

43、le3dis1; /送秒十位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis2; /送分个位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis3; /送分十位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis4;/送时个位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table1dis5;/送时十位bsel=(bsel1)|1;delay(10,100);P2=0x00;if(hour

44、=thour&minite=tminite)/判断是否满足驱动蜂鸣器的条件beep=0;/ 驱动蜂鸣器else beep=1;delay(500,1000);/延时0.5sP3=0xff;/数码管熄灭delay(500,1000);/延时0.5svoid ndisplay() dis0=tsecond%10; /闹钟秒个位 dis1=tsecond/10; /闹钟秒十位dis2=tminite%10; /闹钟分个位 dis3=tminite/10; /闹钟分十位dis4=thour%10; /闹钟时个位dis5=thour/10; /闹钟时十位P3=bsel; bsel=0xfe;P2= ta

45、ble1dis0; 送闹钟秒个位bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis1; /送闹钟秒十位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis2; /送闹钟分个位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table3dis3; /送闹钟分十位和小数点bsel=(bsel1)|1;delay(10,100);P2=0x00;P2=table2dis4; /送闹钟时个位和小数点bsel=(bsel1)|1;delay(10,100);P2=

46、0x00;P2=table1dis5; /送闹钟时十位bsel=(bsel=60) /判断是否超过秒钟最大值 second=0; /清零while (P1_0=0 );/判断按键松开 else if(P1_1=0) /判断分调整键 delay(100,100); /软件消抖动 if(P1_1=0) minite+;/分位加1if(minite=60)/判断是否超过分钟最大值 minite=0;/清零while (P1_1=1 ); /判断按键松开 else if(P1_2=0) delay(100,100); /软件消抖动if(P1_2=0) hour+;/时位加1if(hour=24) /判断是否超过时钟最大值 hour=0; /清零while (P1_2=0); /判断按键松开 void ntiaoshi() while(1) if(P1_0=0) delay(100,100); if(P1_0=0) tsecond+; if(ts

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!