基于51单片机的数字时钟的设计毕业论文_第1页
基于51单片机的数字时钟的设计毕业论文_第2页
基于51单片机的数字时钟的设计毕业论文_第3页
基于51单片机的数字时钟的设计毕业论文_第4页
基于51单片机的数字时钟的设计毕业论文_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

青岛农业大学基于51单片机的数字时钟的设计11年6月18日毕业论文(设计)诚信声明毕业论文(设计)版权使用授权书送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署1 1 1绪论 12硬件总体设计方案 22.1系统功能实现总体设计思路 22.2各部分功能实现 22.3系统工作原理 22.4电路功能使用说明 32.5系统的设计方案 42.5.1系统的电路图和原理图 42.5.2单片机概述 62.5.3键盘电路 92.5.4显示电路 2.6硬件焊接准备 2.6.1电路板的布线 2.6.2硬件电路元件明细表 3软件总体设计方案 3.1程序流程图 3.1.1主程序流程图 3.1.2按键处理流程图 3.1.3定时器中断流程图 3.1.4时间显示流程图 3.2调试结果说明 4总结 参考文献 1 11基于51单片机的数字时钟的设计电子信息科学与技术专业摘要:自诞生以来,单片机的应用日趋广泛,应用领域日趋扩展,而MCS-51系列单片机是各单片机中最为典型的一种。这次毕业设计,以AT89C51芯片为核心,通过必要的电路,构成简单的电子时钟。数字时钟系统的主要任务是:采用单片机为核心器件产生24h(24小时)时间,并用LED显示器将他显示出来。另外本设计具有闹铃的功能,通过拉蜂鸣器来做提醒。这样简单的设计,直观反映单片机的应用。软件和硬件的开发是这次设计必不可少的。1ElectronicInformationScienceandTechnologySunBinTutorCheXiaoYanAbstract:Theapplicationsofsingle-chiphavebeenspreadwidely,andtheareasofitsapplicationmicrocontrolleristhemosttypicalone.Inthegraduation-design,AT89C51chipisthecoreofthenecessarycircuitrytoformasimsystem:asthecoredevice,Single-chipcreates24h(24hour)timewhichwillhedisplayedbyreminder.Thissimpledesigncanreflecttheintuitiveapplicationsofthemicrocontroller1数字时钟作为人们日常生活中的必需品,给人们的学习、工作、生活带来极大的便利。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。在这里我们将已学过的专业知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。单片机具有体积小、功能强可靠性高、价格低廉、走时准确、性能稳定、携带方便等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及2独独立键盘2硬件总体设计方案本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。2.1系统功能实现总体设计思路此设计原理框图如图2-1所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。数码管显示51单片机闹铃电路图2-1设计原理框图2.2各部分功能实现(1)单片机发送的信号通过程序控制最终在数码管上显示出来。(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。(4)单片机通过控制闹铃电路来完成定时闹钟的功能。2.3系统工作原理设计的电路主要由四模块构成:单片机控制电路,显示电路、闹铃电路以及校正电路。详细电路功能图下图所示:3图2-2详细电路功能图本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。2.4电路功能使用说明(1)各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。(2)AT89C51单片机,通过编写程序对数码显示进行控制。(3)八个7段数码管显示时钟和秒表信号。42.5系统的设计方案2.5.1系统的电路图和原理图图2-3数字时钟电路图5APOVvCCN21Rd1上4衣VCC1APOVvCCN21Rd1上4衣VCC1CbI9R7AFMB一9R7AF5B旦+u+否a公u4n君n吕B2123456789SWTCH4M.0PH.IPL.2PI.3P1.4PI.5P1.6P1.7ycc年人人AFBE)CGRST(AFJ7)P0.75P33(INTI)(A15)P2.7P3.S(TI)(AL3)P25P3.0(WR)(A12)P2.4XTAL.2XTAL1srcaxCssrcaxCs巴 cd热e口edc图2-4数字时钟电路原理图6VCCP0.0/(VCCP0.0/(ADO)P0.1/(ADDP0.2/(AD2)还P₀,3/(AD3)P0.4/(AD4)P0,5/(ADS)P0.6/(AD6)Pa.?/(AD7)EA/VPP]ALE/PRECFSERP2.7/(AIS)P2,6/(A14)]P2,5/(A13))P2.4(A12)P2.0/(A8)(8XD)P3.0[O(ISTT)P3.3[(TU)P₃*(TJ)P3.5[(KR)P3.6BP1.1|P1.3P1.4[XTAL2BXTAL1[AT89C51(1)单片机型号的选择:AT89C511FPLP1P16可APF.E:ETTWF.PO1P02P03P04P05P0sPo?P22P23P242345883 (2)单片机的主要特点AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机[2。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:·4K字节可编程FLASH存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM7·32可编程I/O线·两个16位定时器/计数器·低功耗的闲置和掉电模式·片内振荡器和时钟电路(3)管脚说明:个8位漏级开路双向I/0口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/0口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/0口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/0口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由8于上拉的缘故。也可作为AT89C51的一些特殊口,如下表所示:表2-1:P3口的功能口管脚备选功能RXD(串行输入口)TXD(串行输出口)/INTO(外部中断0)/INT1(外部中断1)T0(记时器0外部输入)T1(记时器1外部输入)/WR(外部数据存储器写选通)/RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出92.5.3键盘电路(1)键盘电路的描述:作为整个系统中最简单的部分,可以根据功能要求,进行时间设置键、闹钟设置键、时间加键、时间减键等操作,并采用独立式按键。图2-6键盘电路(3)键盘的工作原理:键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms³]。独立式按键的软件常采用查询式结构。诸位查询每根I/0口线的输入状态,如某一根I/0线输入为低电平,则可确认该I/0口线所对应的按键已按下,然后,再转向该键的功能处理程序。连击功能的实现:按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。利用连击功能,能实现快速调时操作。(4)键盘电路应注意的问题:1)开关状态的可靠输入,必须消除键抖动,可以采用硬件和软件两种方法,硬件方法就是在按键输入通道上贴加去抖动电路,软件方法采用延迟2)键盘状态的检测方法——中断方式还是查询方式。3)键盘编码方法。4)键盘控制程序的编制。2.5.4显示电路(1)LED数码显示管简介数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极。通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理。基本的半导体数码管是由7个条状的发光二极管(LED)排列而成的,可实现数字”0~9”及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成。(2)数码管的分类:数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种。7段共阳极LED数码管是由7个条形发光二极管和一个小数点位构成,其引脚配置,如图所示,其内部结构,如图所示。从图中可以看出,其中7个发光二极管构成字形“8”,可以用来显示数字,另一个发光二极管构成小数点。图2-7共阳极7段LED引脚设置和内部结构共阴极7段LED数码管和共阳极LED数码管结构类似,其引脚配置,如图所示。从图中可以看出7段LED数码管同样由8个发光二极管组成,其中7个发光二极管构成字形“8”,另一个发光二极管构成小数点。共阴极7段LED数码管的内部结构,如图所示。其中所有发光二极管的阴极为公共端,接GND⁶]。如果发光二极管的阳极极为高电平的时候,发光二极管导通,该字段发光;反之,如果发光二极管的阳极为低电平的时候,发光二极管截止,该字段不发光。共期极7段LED引脚配置共阴极7段LED内解结构,图2-8共阴极7段LED引脚设置和内部结构(3)数码管的显示方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两1)动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/0线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/0端口,而且功耗更低。2)静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/0端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/0端口多,如驱动5个数码管静态显示则需要5×8=40根I/0端口来驱动,要知道一个89S51单片机可用的I/0端口才32个。),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。(4)LED数码管的选择:四位一体共阴数码管。2.6硬件焊接准备2.6.1电路板的布线图2-9电路板的布线通过电路板的布线设计,初步掌握焊接硬件的必要准备,也能够在实际的数字时钟焊接中,做好元器件的布局,使更美观。2.6.2硬件电路元件明细表表3-1硬件电路原件编号元件参数1单片机240PIC座3万用板4LED数码管四位一体共阴0.36寸2只5排阻1K1只6晶振7电容22P2只8蜂鸣器1个9三极管S85501只电阻4.7K2只按键5个DC座1个USB电源线3软件总体设计方案单片机软件的设计也是工具系统功能的设计,对于数字时钟的实现和正常运行也是非常重要的9。为提高软件的可行性,可以根据各部分的功能件软件划分为若干相对独立的部分,使软件开发结构更合理,流程更清晰。建立正确的数学模型,绘制流程图对软件工程的实施会有很大帮助。3.1程序流程图3.1.1主程序流程图主程序是先开始,然后启动定时器,再进行检测,完成之后,就能显示时间。开始定时器及中断定时器初始化定参数执行显示程序NY图3-1主程序流程图3.1.2按键处理流程图按键处理时先检测秒按键是否按下,如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分加1;如果没有就检测时按键,如果按下就加1,如果没有,时间显示。流程图如图3-1所示。3.1.3定时器中断流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单位就加1;如果没有到,就检测1分钟是否到,1分钟如果到,分单元就加1.如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。流程图如3-2示。开始开始1秒时间到?N秒按键按下?N秒按键按下?秒单元加1秒加1N60秒时间到?NN分按键按下?N秒单元清零,分单元加1分加1↓分加1N60分钟到?N时按键按下?Y时按键按下?Y分单位清零,时单元加1时加124小时到?显示时间时单元清零结束显示时间中断返回图3-2按键处理流程图图3-3定时器中断流程图3.1.4时间显示流程图时间显示是先秒个位计算显示,然后是秒十位计算、依次分个位计算、分十位计算、时个位计算、时十位计算。分十位计算显示分十位计算显示时个位计算显示秒个位计算显示时十位计算显示结束开始秒十位计算显示分个位计算显示图3-4时间显示流程图3.2调试结果说明在调试的过程中出现拉很多的问题,真对这些问题我进行拉系统的分析。(1)数据与代码转换。由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,给CD4511译码后去驱动数码管显示。具体转换过程如下:先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,再放回A中,然后将A中的值输出。如:有一个单元存储了45这样一位数,则需转换成四位的BCD码:(0100)(0101)然后放入A中。A中BCD码,高位四位代表4低四位代表5同时送给两个译码器中,译码后45字就在两个LED中显示出来。(2)计时功能的实现与中断服务程序时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器进入计时,满100毫秒后,重装定时。中断一次,满一秒后秒进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位,24小时满后,天单元进位。这样然后根据进率,得到时、分、秒存储单元的值,并经译码后,通过扫描程序送LED中显示出来,实现时钟计时功能。累加是用指令INC来实现的。进入中断服务程序以后,执行PUSHPSW和PUSHA将程序状态寄存器PSW的内容和累加器A中的数据保存起来,这便是所谓的保护现场,以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈的数据存取与一般的RAM存取又有区别,对它的操作要遵循后进先出的原则。(3)时钟误差分析开启定时器/计数器0,使之开始计时,中断后进入中断程序。自停止计数到、计数又开始,中间执行了7条指令,也就是延迟了13个单周期共用时间26us,这样,每个中断的总时间应为为100.026sm,而原来定时是100ms,所以,也就是说每次中断定时多了26um。这样,可改变计数重装值,使每次中断定时时间为99.974sm,加上原来的7条指令所用的时间,正好100sm.计数10次得1s.这样就可得到较精确的计时秒数,然后根据进率,得到时、分的值。(4)时间控制功能与比较指令系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先将执行设备开启的时间和关闭时间置入RAM某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR指令,将对应的那路P3置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNEA,#direct,rel,其转移条件是累加器A中的值与立即数不等则转移。4总结这次对数字钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念。在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。在连接单片机与其他外部电路的实验中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了。在设计电路中,对单片机的编程的进一步的熟悉与学习让我明白拉许多自己没有掌握的功能,对单片机有拉更深刻的理解。再就是电路的连接中的一些小的的注意的问题像极性电容器其“+”与“一”极不能接错,例如电容器上的标记方向要易看可见。在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。接线的时候一定要细心,不要接错,同时也要学会如何判别芯片的好坏,要是芯片坏了即使接线再正确也出不来结果。对自己的设计图要仔细考虑,反复调试只有这样我们才能找到自己的不足从不足中学习。通过这次数字钟的设计,让我对各种电路都有了大概的了解,也学会了常用绘图软件的使用。所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解,才会有收获。当然我做出这样的文章也是离不开老师对我的细心指导的,所以在这里我感谢老师感谢帮助过我的所有的人。致谢毕业设计是培养我们工作能力的最后一个实践性的学习环节。它不但是我们三年大学学习中所学知识的一次综合复习与考查,同时也是理论联系实际的一个过程,为以后从事专业技术工作的一次准备。通过此次毕业设计,培养了我综合运用所学的基础理论课、技术基础课、专业课的知识和实践技能去分析和解决实际工作中的一般工程技术问题的能力,使我建立了正确的设计思想,学会了如何把三年所学的理论知识运用到实践当中去。掌握了单片机的数字时钟设计的一般程序、规范和方法,并进一步巩固、扩大和深化了我所学的基本理论,基本知识和基本技能,提高了我设计计算、计算机制图、设计说明书、正确使用技术资料,标准手册等工具书的能力。在毕业设计的过程中,虽然本人在指导老师的帮助下对所设计的问题有初步的实习调研。但由于本人缺少实际工作经验,遇到了一些设计和实际加工中的问题,受到师傅和指导老师的指导与帮助,从而得到了全面的解决同时也受到各位并树立了正确的生产观、经济观和全局观。在设计中,由于个人能力有限,设计中漏洞和错误在所难免,敬请各位老师指正批评,以使我对自己的不足得到及时发现并修正。通过此次毕业设计,希望能把所学的知识有机的联系起来,培养自己分析问题,解决问题的能力,为充实自己,并在未来工作岗位上好好工作打下坚实的基础。在这里,向在这次毕业设计中给予过帮助我的老师表示衷心的谢意。参考文献[1]彭为,黄科.单片机典型系统设计实例精讲.电子工业出版社,2006[2]梅丽凤,王艳秋.单片机原理及接口技术(修订本).清华大学出版社,2007[3]毛敏.MCS-51系列单片机系统及应用实践教程.高等教育出版社,2009[4]胡杰,吴磊,赵鸣.51单片机C语言应用与开发.北京航空航天大学出版社,2008[5]谭浩强.C程序设计(第二版)[M].清华大学出版社,2003[6]马轲瀛.八路数字抢答器系统[J].北京,2007[7]蔡朝阳.单片机控制实习与专题制作[M].北京:北京航空航天大学出版社,2006[8]李增生.对抢答器的改进[J].电子制作,2000[9]高伟.AT89单片机原理及应用[M].北京:国防工业出版社,2008[10]GordonMcComb.ConstructingRobotBases.北京:机械工业出版社,2006.附录控制电路的源程序#include<reg51.h>#definet1Oxba;#definethOx3c;time=P1^0;//时间设置timer=P1^1;//闹钟设置//加dec=P1^3;speaker=P3^5;//闹钟输出bit//数码管闪动显示标志位bit//数码管显示时间/闹钟标志位bit//数码管闪动间隔反转标志位bitzhengdian=0;//整点报时标志位//unsignedcharcodeled[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数字0-9的编码led[]={0x5F,0x44,0x9D,OxD5,0xC6,0xD3,OxDB,0x45,0xDF,OxD7,};//数字0-9的编码unsignedunsignedunsignedchartime_cc,timer_cc;charcount0,count1,second,minit,hour;charsecondl,minitl,hourl;unsignedcharhourzd;//调时计数器//时间时分秒//闹钟时分秒//整点小时记录voiddelay(void){unsignedinti;for(i=0;i<100;i++);voiddisplay(void){{lPO=led[hour/10];2P2=0xFE;delay();P2=0xFD;delay();P2=0xFB;delay();P2=0xFF;P2=0xF7;delay();P2=0xFF;P2=0xEF;delay();P2=0xFF;P0=0x80;P2=0xDF;delay();P2=0xFF;PO=led[second/10];P2=0xBF;delay();P2=0xFF;PO=led[second%10];P2=0x7F;delay();if(dispsdt==1)3PO=led[hour/10];delay();P2=0xFF;delay();PO=led[hour/10];PO=led[hour%10];P2=0xFD;delay();P2=0xFF;delay();P2=0xFF;ʃdelay();P2=0xFF;4delay();delay();delay();delay();if(timecc==0x03)PO=led[second/10];delay();PO=led[second%10];delay();5PO=led[second/10];P2=0xBF;P2=0xFF;P2=0xFF;{PO=led[hour1/10];P2=0xFE;P2=0xFF;PO=led[hour1%10];P2=0xFD;P2=0xFF;P2=0xFF;P2=0xF7;P2=0xFF;P2=0xFF;6PO=led[second1/10];P2=0xFF;P2=0x7F;P2=0xFF;{PO=led[hour1/10];PO=led[hour1%10];7delay();if(timercc==

温馨提示

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

评论

0/150

提交评论