版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计数字钟的设计摘要:随着电子工业的发展,电子产品日新月异。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的功能。诸如数字钟、万年历、电子表、定时自动报警、定时启闭电路、通断动力设备,甚至各种定时电气的自动启用、通信、网络等众多领域,所有这些都是以钟表数字化为基础的。由于其功能的不断增加,使用方便性不断提高,很多产品已经成为人类日常生活中不可或缺的助手。本文是基于单片机控制的数字钟系统的设计。该系统主要以单片机芯片AT89C51为核心结合按键选择模块来控制数码管显示模块和蜂鸣器模块工作,从而实现时钟和闹钟功能,并可对时钟及闹钟的时、分、秒进行单独校对,使其校正到标准时间。此设计以软件控制硬件及软硬件结合为指导思想,充分发挥单片机功能。同时,该数字钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统实现的功能简单,因此具有一定的可扩展性。关键词:AT89C51单片机;数码管显示;ThedesignofdigitalclockAbstractWiththedevelopmentoftheelectronicsindustry,electronicproductsaredifferentfrombeforedaybyday.Watchesdigitalhasbroughtgreatconveniencetopeople'sproductionandliving,andgreatlyexpandedtheoriginalwatchfunction.Suchasdigitalclock,calendar,electronicwatches,timedautomaticalarm,timedtoopenandclosecircuits,openandclosethepowerequipment,evenavarietyoftimedelectricalauto-enabled,communications,networkingandmanyotherfields,allofwhicharebasedonwatchesdigital.Increasingitsfunctionality,easeofusecontinuetoincrease,manyproductshavebecomeanindispensableassistanttohumandailylife.Thisarticleisbasedonsinglechipmicrocomputercontrolofdigitalclocksystemdesign.Thissystemmainlybythesingle-chipmicrocomputerAT89C51asthecoreincombinationwithkeychoicemoduletocontrolthedigitaltubedisplayandbuzzermodulework,soastorealizetheclockandalarmclockfunction,andcanbeontheclockandalarmclock,minutesandsecondstoindividuallycheck,makethecorrectiontostandardtime.Thisdesigninordertocontrolthehardwareandsoftwareandhardwarecombinedwithsoftwareastheguidingideology,givefullplaytotheMCUfunction.Atthesametime,thedigitalclocksystemalsohasthecharacteristicsoflowconsumption,lowcost,strongpracticability.Duetothefunctionofthesystemissimple,thushascertainextensibility.Keywords:AT89C51singlechipmicrocomputer;Digitaltubedisplay;目录摘要..........................................................................................................................................iAbstract.....................................................................................................................................ii第一章绪论.....................................................................................................................-1-1.1课题研究的背景....................................................................................................-1-1.2课题研究的内容.................................................................................................-2-第二章KEIL集成开发环境的应用..................................................................................-3-2.1AT89C51单片机概述............................................................................................-3-2.2KEIL集成开发环境的应用与操作....................................................................-3-2.2.1KEIL集成开发环境简介.............................................................................-3-2.2.2KEIL集成开发环境的基本仿真流程......................................................-4-第三章数字钟系统的原理与设计..................................................................................-6-3.1数字钟系统的总体方案设计..............................................................................-6-3.2数字钟系统的硬件设计.....................................................................................-6-3.2.1复位电路的设计3.2.2振荡电路的设计3.2.3按键选择电路的设计............................................................................-10-3.2.4数码管的连接...............................................3.2.5蜂鸣器电路设计3.3数字钟系统的软件设计.....................................................................................-16-3.3.1初始化参数设置3.3.2时钟计时程序3.3.3按键处理程序.................................时钟调时程序闹钟调时程序.............................................................................-13.3.4数码管显示程序时钟当前值显示程序闹钟调时显示程序....................................第四章系统实现与分析................................................................................................-20-4.1系统总体电路原理图的设计..........................................................................-20-4.2系统整体软件设计............................................................................................-21第五章总结与展望.......................................................................................................-26-5.1工作总结............................................................................................................-26-5.2技术展望.............................................................................................................-27-参考文献......................................................绪论1.1课题研究的背景近年来随着科技的发展,任何设备和产品的自动化、数字化和智能化都离不开单片机,单片机已成为人类生活中不可或缺的助手。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。单片机的应用的重要意义在于,它从根本上改变了传统意义设计理念和设计方法。数字钟已经成为人们日常生活中不可缺少的生活用品,广泛的应用于各种场所。给我们生活、学习、工作、娱乐带来了极大的方便。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时功能也可以完成数字钟的电路设计,因此进行数字钟的设计是必要的。1.2课题研究的内容本次设计的多功能数字钟就是应用单片机的计时功能为设计核心,采用定时器中断提供准确的计时,由键盘调整数字钟的功能,并利用软件编程通过数码管把时间数字显示出来,通过蜂鸣器提醒时间。本文内容结构安排如下:第一章主要介绍本文的研究背景,及本文的主要研究内容。第二章是对KEIL集成开发环境的应用的介绍,包括AT89C51单片机概述,KEIL集成开发环境简介及KEIL集成开发环境的基本仿真流程。第三章主要介绍数字时钟的原理与设计,分别介绍了数字钟系统的总体方案设计,数字钟系统的硬件设计,数字钟系统的软件设计。第四章是系统的实现与分析,分别介绍了系统总体电路原理图的设计,系统整体软件设计,将各个模块整合到一起,进行仿真、分析,以实现数字钟系统的整体功能。第五章是对本文的总结,以及对本设计的技术展望。第二章KEIL集成开发环境的应用2.1AT89C51单片机概述单片机是计算机、自动控制和大规模集成电路技术相结合的产物,融计算机结构和控制功能于一体,集成在一个芯片上的计算机,全称单片微型计算机。AT89C51是8位单片机中一个最基本、最典型的芯片型号,它主要由中央处理器CPU、内部数据存储器、内部程序存储器、定时器/计数器、并行I/O口、串行口、中断控制电路、时钟电路、位处理器、内部总线等组成。2.2KEIL集成开发环境的应用与操作2.2.1KEIL集成开发环境简介KeilC51是KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。。在Keil中使用C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势。2.2.2KEIL集成开发环境的基本仿真流程1.新建与保存源程序第一步:双击KEILuVision3的桌面快捷方式,启动KEIL集成开发软件。第二步:新建文本编辑界面或加入原有的程序文件。选择“File(文件)”→“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”。第三步:在“Text1”中输入C语言源程序。第四步:保存源程序。保存文件时必须加上文件的扩展名并选择路径和文件名进行保存,C语言程序文件的扩展名为“.C”。2.建立新工程第五步:新建KEIL工程。选择“Project(工程)”→“NewProject(新建工程)”命令,将出现保存对话框。在保存工程对话框中输入工程文件名,工程名称不用输入扩展名。输入名称后保存,将出现“SelectDeviceforTarget”对话框。第六步:选择CPU型号。在对话框中选择“公司(Atmel)”→“CPU型号”,单击“确定”按钮返回主界面。3.加入源程序到工程中1总体方案设计针对本课题的设计任务,进行分析得到:本次设计以单片机芯片AT89C51为核心进行控制,并由4个按键及一个开关键进行时间的调整和闹铃的设定。最终由6个数码管显示时间,1个蜂鸣器提醒时间。根据设计的要求,该多功能数字钟的设计总体上大致可分为以下几个部分:1.复位电路;2.振荡电路;3.按键选择电路;4.数码管显示电路;5.蜂鸣器电路。系统原理框图如下图所示。复位电路复位电路数码管显示电路蜂鸣器电路按键选择电路AT89C512硬件电路设计2.1复位电路设计单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出现混乱。对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定的。RST引脚是复位信号的输入端,高电平有效。常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路,而此数字钟系统复位电路采用按键电平复位电路,如下图所示。2.2振荡电路振荡电路由两个皆为30PF的C1,C2及振荡频率为12MHZ的晶振组成,并配合单片机定时器0实现准确计时。2.2按键选择电路按键选择电路主要通过按键及开关实现随时输入定时(闹钟)时间和随时对当前时间进行调整。本设计选择1个单刀单掷开关为闹钟时间调整开关,4个独立式键盘,分别为:秒钟调整按键、分钟调整按键、时钟调整按键及时钟运行按键。按键选择电路如下图所示。U1SW1其中,秒钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的秒位,反之对时间值的秒位进行调整,分钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的分位,反之对时间值的分位进行调整,时钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的时位,反之对时间值的时位进行调整。各按键每按一次+1,当秒位和分位加到60自动转化为0,当时位加到24自动转化为0。键盘的硬件电路设计只能保证八个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现。当时间值调整准确,按下时钟运行按键启动定时器中断开始准确计时。2.2数码管显示电路设计在目前的扫描显示电路中为了节省成本广泛使用七段数码管显示,其工业控制、仪表仪器等都应用七段数码管做显示输出。用十进制数码管直观显示数字系统的运行数据,常常是主要的显示手段,数码管每个线段都是一个发光二极管LED(LightEmittingDiode)组成的。因其驱动电压小、功耗低、寿命长和可靠性高等优点广泛显示电路中。2.2.1数码管的显示原理七段数码管显示就是将七个发光二极管LED(加小数点为八个)按一定的方式排列起来,七段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显示十六进制数的段码值如下图所示:显示数字七段共阴极段码八段共阴极段码八段共阴极倒置段码03FHBFHBFH106H86HB0H25BHDBHDBH34FHCFHF9H466HE6HF4H56DHEDHEDH67DHFDHEFH707H87HB8H87FHFFHFFH96FHEFHFDH本设计需设置6个数码管,其中时个位与倒置的分十位结合显示数字及“:”,分个位与秒十位结合显示数字及“:”。2.2.2数码管连接在使用中,为了给发光二极管加驱动电压,它们应有一个公共引脚,公共引脚共有共阴极和共阳极两种连接方法,如图下图所示。(a)共阳极接法(b)共阴极接法其中共阴极接法把发光二极管的阴极连在一起构成阴极公共引脚,使用时阴极公共引脚接地,这样阳极引脚上加高电平的发光二极管就导通点亮;共阳极接法则是把发光二极管的阳极连在一起作为阳极公共引脚,使用时阳极公共引脚接+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分钟,起到提醒时间的作用,给人们的工作、学习、生活带来方便。将蜂鸣器一端与P3.6相连,另一端与VCC相连,当P3.6=0时,蜂鸣器开始工作。具体连接电路如下图所示:3软件设计根据设计方案要求,应用Keil软件和Proteus软件对电路进行仿真,实现设计的要求,具备对时间即时的显示,对时间和闹铃的设定。该课题的软件设计采用模块化设计的思想即将程序划分为若干个相对独立的功能模块,画出每一个功能模块的详细流程图,并根据流程图编写程序,最后按照软件设计的总体结构框图,将各模块连接成一个完整的主程序。本设计中主要模块包括初始化参数设置、按键处理、数码管显示模块及蜂鸣器工作模块,下面对软件各部分程序进行简要介绍:初始化参数设置如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};ucharcodetable3[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd};uchardis[6]={0,0,0,0,0,0};ucharshihao,second,minite,hour,bsel;uchartsecond=0;uchartminite=0;ucharthour=0;uinti,j,m,n;sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_2=P1^2;sbitP1_3=P1^3;sbitP1_4=P1^4;sbitbeep=P3^6;voiddisplay();voidndisplay();voidtiaoshi();voidntiaoshi();定时器0服务程序定时器0服务程序毫秒计数10ms定时器计数+1毫秒计数到100次=1s?重装定时常数,秒计数+1秒计数=60s?秒计数=0,分计数+1分计数=60min?分计数=0,时计数+1时计数=0中断返回时计数=24h?NY时钟计时程序流程图本程序利用定时器中断实现数字钟的时钟计时。1.时钟计时程序如下:程序分析一次10ms定时结束,增加一个计数变量shihao(0——100);当shihao增加到100,second+1,shihao清零;当second增加到60,minite+1,second清零;当minite增加到60,hour+1,minite清零;当hour增加到24,hour清零;2.初始化TMOD:定时器T0方式1,TMOD=0x01。计算初值:fosc=12MHZ,机器周期为1us。一次定时时间=10ms,T0定时10ms=10ms/1us=10000,即TH0=(65536-10000)/256;TH1=(65536-10000)%256;中断方式:允许定时器T0中断。EA=1;ET0=1;具体程序如下:voidtimer0(void)interrupt1using1{TH0=(65536-10000)/256;//定时时间为10ms/次TL0=(65536-10000)%256;shihao++;if(shihao>100){shihao=0;//定时=1ssecond++;if(second>=60){ second=0;//定时=1分钟minite++; if(minite>=60) {minite=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是否按下;若分钟调整按键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); }}voidtiaoshi(){while(1){if(P1_0==0){delay(100,100);if(P1_0==0){second++;if(second>=60)second=0;while(P1_0==0);}}elseif(P1_1==0){delay(100,100);if(P1_1==0){minite++;if(minite>=60)minite=0;while(P1_1==1);}}elseif(P1_2==0){delay(100,100);if(P1_2==0){hour++;if(hour>=24)hour=0;while(P1_2==0);}}}}闹钟程序入口闹钟程序入口开机初始化,清零T0中断初始化,送显示数据00:00:00秒调整键按下了吗?分调整键按下了吗?时调整键按下了吗?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皆没按下,返回主程序。uchartsecond=0;uchartminite=0;ucharthour=0;while(1){if(P1_4==0){delay(100,100);if(P1_4==0)ndisplay();ntiaoshi();}voidntiaoshi(){while(1){if(P1_0==0){delay(100,100);if(P1_0==0){tsecond++;if(tsecond>=60)tsecond=0;while(P1_0==0);}}elseif(P1_1==0){delay(100,100);if(P1_1==0){tminite++;if(tminite>=60)tminite=0;while(P1_1==1);}}elseif(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分钟。ucharcodetable1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};ucharcodetable3[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd};uchardis[6]={0,0,0,0,0,0};voiddisplay(){dis[0]=second%10;dis[1]=second/10;dis[2]=minite%10;dis[3]=minite/10;dis[4]=hour%10;dis[5]=hour/10;P3=bsel;bsel=0xfe;P2=table1[dis[0]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[1]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[2]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[3]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[4]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table1[dis[5]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;if(hour==thour&&minite==tminite)beep=0;elsebeep=1;delay(500,1000);P3=0xff;delay(500,1000);}2.本程序在闹钟调时开关P1.4闭合的前提下实现闹钟调时的显示。voidndisplay(){dis[0]=tsecond%10;dis[1]=tsecond/10;dis[2]=tminite%10;dis[3]=tminite/10;dis[4]=thour%10;dis[5]=thour/10;P3=bsel;bsel=0xfe;P2=table1[dis[0]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[1]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[2]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[3]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[4]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table1[dis[5]];bsel=(bsel<<1)|1;delay(10,100);P2=0x00;}附录1电路原理图附录2程序清单//按下运行按键,启动定时器0,开始计时;//当闹钟调时开关P1.4闭合时,可通过时分秒调整按键实现闹钟预设值的调整;//当闹钟调时开关P1.4断开时时,可通过时分秒调整按键实现时钟当前时间的调整;//在进行闹钟调时过程中,数码管只显示闹钟预设值,不显示时钟当前时间,直到闹钟调时开关P1.4闭合;//不可以在设置闹铃的过程中设置时间;//每当设置闹铃时,闹钟时间需在之前的基础上修改;//可通过开关控制闹钟的运行;#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9数字ucharcodetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9数字及小数点ucharcodetable3[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd};//数码管倒置后显示小数点及正立的数字uchardis[6]={0,0,0,0,0,0};//对各数码管显示的数初始化ucharshihao,second,minite,hour,bsel;uchartsecond=0;uchartminite=0;ucharthour=0;uinti,j,m,n;sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_2=P1^2;sbitP1_3=P1^3;sbitP1_4=P1^4;sbitbeep=P3^6;voiddisplay();voidndisplay();voidtiaoshi();voidntiaoshi();delay(m,n){for(i=m;i>0;i--)for(j=n;j>0;j--);}//可调延时程序voidmain(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==0)ndisplay();ntiaoshi();}elseif(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); }}}}voidtimer0(void)interrupt1using1//T0中断服务程序{TH0=(65536-10000)/256;//定时时间10ms/次TL0=(65536-10000)%256;shihao++;if(shihao>100){shihao=0;second++;if(second>=60){ second=0; minite++; if(minite>=60) {minite=0;hour++;if(hour>=24)hour=0;}}}}voiddisplay(){dis[0]=second%10;//秒个位dis[1]=second/10;//秒十位dis[2]=minite%10;//分个位dis[3]=minite/10;//分十位dis[4]=hour%10;//时个位dis[5]=hour/10;//时十位P3=bsel;bsel=0xfe;P2=table1[dis[0]];//送秒个位bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[1]];//送秒十位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[2]];//送分个位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[3]];//送分十位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[4]];//送时个位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table1[dis[5]];//送时十位bsel=(bsel<<1)|1;delay(10,100);P2=0x00;if(hour==thour&&minite==tminite)//判断是否满足驱动蜂鸣器的条件beep=0;//驱动蜂鸣器elsebeep=1;delay(500,1000);//延时0.5sP3=0xff;//数码管熄灭delay(500,1000);//延时0.5s}voidndisplay(){dis[0]=tsecond%10;//闹钟秒个位dis[1]=tsecond/10;//闹钟秒十位dis[2]=tminite%10;//闹钟分个位dis[3]=tminite/10;//闹钟分十位dis[4]=thour%10;//闹钟时个位dis[5]=thour/10;//闹钟时十位P3=bsel;bsel=0xfe;P2=table1[dis[0]];送闹钟秒个位bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[1]];//送闹钟秒十位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[2]];//送闹钟分个位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table3[dis[3]];//送闹钟分十位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table2[dis[4]];//送闹钟时个位和小数点bsel=(bsel<<1)|1;delay(10,100);P2=0x00;P2=table1[dis[5]];//送闹钟时十位bsel=(bsel<<1)|1;delay(10,100);P2=0x00;}voidtiaoshi(){while(1){if(P1_0==0)//判断秒调整键{delay(100,100);//软件消抖动if(P1_0==0){second++;//秒位加1if(second>=60)//判断是否超过秒钟最大值second=0;//清零while(P1_0==0);//判断按键松开}}elseif(P1_1==0)//判断分调整键{delay(100,100);//软件消抖动if(P1_1==0){minite++;//分位加1if(minite>=60)//判断是否超过分钟最大值minite=0;//清零while(P1_1==1);//判断按键松开}}elseif(P1_2==0){delay(100,100);//软件消抖动 if(P1_2==0){hour++;//时位加1if(hour>=24)//判断是否超过时钟最大值hour=0;//清零while(P1_2==0);//判断按键松开}}}}voidntiaoshi(){while(1){if(P1_0==0){delay(100,100);if(P1_0==0){tsecond++;if(tsecond>=60)tsecond=0;while(P1_0==0);}}elseif(P1_1==0){delay(100,100);if(P1_1==0){tminite++;if(tminite>=60)tminite=0;while(P1_1==1);}}elseif(P1_2==0){delay(100,100);if(P1_2==0){thour++;if(thour>=24)thour=0;while(P1_2==0);}}}}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演出经纪人之《演出经纪实务》测试卷附答案详解
- PETS一级笔试模拟试题(含详细答案解析)
- 广东省河源市东源县2027届数学九上期末达标检测模拟试题含解析
- 轨道交通运营期施工防护方案
- 髂静脉压迫综合征弹力袜穿戴日常指导规范共识
- 2027届广东省深圳高级中学数学九上期末经典模拟试题含解析
- Oracle数据库工程师面试题及详细答案(实操完整版)
- 车间安全教育培训试题及答案
- 管廊突发事件调度处置规程
- 2026年安管人员继续教育试题及答案
- 直读光谱仪培训课件
- T/CECS 10270-2023混凝土抑温抗裂防水剂
- 《足太阴脾经络》课件
- 2024年版高校助教聘请合约3篇
- 肇庆市2025届高中毕业班第一次模拟考试(一模)生物试卷(含答案详解)
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 路灯基础现浇混凝土检验批质量验收记录
- 盐酸青藤碱的稳定性和溶解性研究
- 《田螺姑娘》儿童故事ppt课件(图文演讲)
- 食品有限公司生产车间安全风险分级清单
- 体格检查评分标准(心脏)
评论
0/150
提交评论