




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字时钟计时器的设计摘要本文介绍了基于单片机技术原理完成对数字时钟计时器的设计。系统以单片机芯片AT89C52为核心控制器,由单片机控制LCD1602的显示,修改设置时间采用操作方便的按键开关,通过硬件电路的制作和软件程序的编制来实现数字时钟计时器的设计。论文详细叙述了系统硬件、软件设计的具体实现过程,重点阐述了时钟模块、显示模块及相关控制模块等模块化设计思路与制作。软件部分同样也采用模块化的设计思路,包括中断模块、时间调整模块设计,并采用简单流通性强的C语言编程实现。该系统能实现对日期、时、分、秒24小时制输出显示,使用按键进行时、分、秒的调整等功能。关键词:AT89C52单片机 数字钟 时间Digital clock timerAbstract: This paper introduces the technical principle based on single chip microcomputer to complete digital clock timer design. Based on the single chip computer chip system as the core of AT89C52 controller, the single-chip computer control LCD1602 display, modify set a time of the convenient operation button switches, through the hardware circuit and software production procedure formulation to realize digital clock timer design. Paper narrates the system hardware and software design of the implementation, and expounds the clock display module, and related control module module design and modular production. Software is also part of the modular design, including interrupt module, time to adjust module design, and using simple liquidity strong to realize the C programming language. The system can realize to the date, time, minutes and seconds 24 hours to make the output shown, the use of buttons, minutes and seconds adjustment etc. Function. Key Words:AT89C52 microcontroller Digital clock time目 录一、绪论11.1课题的目的和意义11.2单片机的应用11.3小组成员及分工2二、方案论证与选择22.1方案论证22.2各模块方案论证与选择32.2.1单片机控制模块32.2.2时钟信号电路32.2.3电源电路32.2.4显示电路4三、设计过程论述43.1主要硬件介绍43.1.1 AT89C52单片机43.2硬件电路设计及工作原理63.2.1单片机主控模块的设计时钟信号电路63.2.2复位电路63.2.3独立按键电路73.2.4 1602LCD显示电路73.2.5电源电路103.2.6蜂鸣器电路113.3电子元器件的安装与焊接123.3.1安装与焊接工艺要求123.3.2焊接后的检测与调试133.4系统程序的设计133.4.1主程序的设计133.4.2液晶驱动子程序143.4.3按键控制子程序15四、结果分析16五、总结16六、致谢17七、附录18八、参考文献25安徽财贸职业学院毕业设计一、绪论1.1课题的目的和意义单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。作为微型计算机的一个分支,经过二三十年的发展,在各行各业中已经得到广泛应用。单片机体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。由于具有上述优点,在我国,单片机已广泛的应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,传统的机械表,由于做工的高精细要求,造价的昂贵,材料的限制,时间指示精度的限制,以及使用寿命等方面的限制,已不能满足人们的要求。如今,高精度的计时工具大多数都使用了石英晶体振荡器。由于电子钟、石英表、石英钟都采用了石英技术,由此走时精度高,稳定性好,使用方便,不需要经常调校。这次毕业设计,通过对它的学习、应用,以AT89C52芯片为核心,外加辅助电路,设计和制作了一个简易的电子时钟,它由直流电源供电,通过LCD准确显示时间。数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,以及我们每个人的日常生活中都发挥着重要的作用。本系统是基于AT89C52单片机设计的一个具有LCD1602显示的数字时钟计时器,该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。另外单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须使用数字电路和模拟电路实现的大部分功能,现在都可以用单片机通过软件方法来实现了。1.2单片机的应用(1)单片机在智能仪表中的应用单片机广泛的应用于各种仪表仪器,使仪表仪器智能化,提高它们的测量速度、精度,加强控制功能。(2)单片机在机电一体化的应用单片机的出现促进了机电一体化,它作为机电产品的控制器,充分的发挥了体积小、可靠性高、功能强、现场安装灵活方便等优点,大大强化了机器的功能,提高了机器的精度,自动化和智能化的水平。(3)单片机在实时控制中的应用对于过程控制中的各种物理参数,如转速、流量、位移、压力、温度、湿度、化学成分的测量和控制。将测量技术、自动控制技术和计算机技术相结合,充分发挥数据处理和实时控制功能,是系统工作在最佳状态。(4)单片机在分布式多机系统中的应用单片机在这种多机系统中,往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制。随着科学技术的进步,单片机的功能也会日益增强,那么数字电子时钟也可以发展成一项新的技术。时钟也可以由单一的定时、计数、报警等功能,开发成低成本、通用应用及高性能数据通信、光纤网络和存储系统应用的各类高级时钟。1.3小组成员及分工我们小组由彭会平和董昉琦两人组成,按照指导老师给的计划,在九月二十五号之前,我们确定了选题以及所需要的元器件和相关资料。和同学一起购买元器件后,由我们两人共同完成了电路板的焊接。之后,彭会平负责查询资料以及对程序的设计,董昉琦负责编写设计报告和排版。在完成电路板的焊接后,再对电路板进行了检测及调试。二、方案论证与选择2.1方案论证该课题主要有两种方案:一种是用数字电路通过硬件实现,另一种是用单片机通过软件编程实现。在以上两种方案中:第一种直接采用的是数字电路,但是在外围电路和控制比较麻烦,需要比较多的器件来控制。它的功能都由硬件实现,几乎没有软件编程,但电路复杂、芯片多及硬件调试麻烦而且成本高。第二种是采用软件来实现一些特定功能,硬件电路只需要一些显示部件和控制部件,其它的都有软件来实现,而且电路简单、芯片少、成本低。所以选择使用单片机方案来实现。2.2各模块方案论证与选择2.2.1单片机控制模块方案一:采用AT89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机安全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89C52,片内ROM全部采用FlashROM;能以3V的超低压工作;该芯片内部存储器为8KBROM存储空间,同样具有AT89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次插拔,所以不会对芯片造成损坏。所以选择采用AT89C52作为主控制系统。2.2.2时钟信号电路方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对分、秒、时、日、周、月、年以及闰年补偿的年进行技术,精度高,但是价格较高,所以不采用此方案。方案二:用软件编程实现设计中的时钟控制功能,实现时、分、秒计数。此种方案够减少芯片的使用,节约成本,而且可以在编写程序的过程中学到更多,故采用这种方案。2.2.3电源电路在电源设计中我们可以有以下两种选择:方案一:用可调稳压电路,主要有4007二极管、稳压管和电位器组成,或者是通过用稳压集成块LM723,内部含有启动电路、恒流源、基准稳压源、过流保护等电路。配合大功率调整管,可输出020V连续可调的稳定电压,最大输出电流可达2A,并且具有过流保护功能。这种稳压集成块价格昂贵,所以不采用此方案。方案二:做一个固定直流稳压电源,因为本次设计需要的只是+5V直流电压。查看相关资料后我们选择通过LM7805芯片得到+5V电压,此电路首先要通过变压器降压,再通过整流桥得到直流电压,最后通过LM7805得到+5V电压。方案二与方案一相比,方案二的电源显得简单、稳定、实用,所以采用此方案。2.2.4显示电路为了实现对测量数据的观察,需要一个显示模块便于观察。方案一:采用数码管。此方法接线复杂,而且不美观,不易于控制,容易出错。所以不采用此方案。方案二:采用1602液晶显示,可以直接显示字符,便于观察所需要的数值,直观、明了,接线比较简单,具有减少功耗的特点。故选用此方案。三、设计过程论述3.1主要硬件介绍3.1.1 AT89C52单片机AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256k bytes的随机存取数据存储器(RAM),兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用,如图3-1。图3-1AT89C52单片机主要功能特性:(1)兼容MCS51指令系统;(2)8k可反复擦写(大于1000次)FlashROM;(3)32个双向I/O口;(4)2568bit内部ROM;(5)3个16位可编程定时、计数器中断;(6)时钟频率0-24MHz;(7)2个串行中断,可编程UART串行通道;(8)2个外部中断源,共8个中断源;(9)2个读写中断口线,3级加密位;(10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。引脚功能:AT89C52单片机采用40条引脚双列直插式器件,引脚除5V(Vcc40脚)接地(GND20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分。如图3-1所示。(1)VCC:供电电压;(2)GND:接地;(3)时钟电路;XTAL1(19脚)芯片内部振荡电路输入端;XTAL2(18脚)芯片内部振荡电路输出端;(4)控制信号RST(9脚)复位信号:时钟电路工作后,在此引脚上将出现两个机器周期的高电平,芯片内部进行初始复位,P0口P3口输出高电平,将初值07H写入堆栈指针。(5)I/O引脚共有4个8位并行I/O端口,共32个可编程I/O引脚。4个I/O口各有各的功能,在一般情况下,P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号,P3口大部分时间用于第二功能。当然所有的I/O口都可以作为普通的输入/输出端口用。3.2硬件电路设计及工作原理3.2.1单片机主控模块的设计时钟信号电路单片机的时钟电路是产生CPU校准时序,是单片机的控制核心。AT89C52的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。外部振荡器再通过一个2分频的触发器来形成内部时钟所需要的信号。在电容器C1、C2选择时方面,一般选择其值为530pF。本系统中所使用的电容值为22pF,具体电路如图3-2所示。图3-2 时钟电路3.2.2复位电路复位是单片机的初始化操作,只要给RESET引脚加上两个机器周期以上的高电平信号,就可以使AT89C52单片机复位。复位的主要功能是把程序计数器(PC)初始化0000H,使单片机从0000H单元开始执行程序,同时复位操作还对一些寄存器有影响。AT89C52的复位是由外部的按键复位方式来实现的。其电路图如图3-3所示。图3-3 复位电路3.2.3独立按键电路此部分是按键扫描控制部分,用来控制时间的调整、闹钟的设定。采用独立按键控制方式,且所用按键均为弹性小按键,即按下为低电平接通,松手时即弹起变为高电平,每个按键依据其按下的次数有不同的作用。独立按键电路如图3-4所示。图3-4独立按键电路3.2.4 1602LCD显示电路为了实现对测量数据的观察,需要一个显示模块,便于观察。LCD1602显示电路如图3-5所示。下面简单介绍一下1602LCD:液晶显示模块是一种专门用于显示字母、数字、符号等的点阵式LCD,目前常用16*1,16*2,20*2和40*2行等模块。1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表3-1所示:表3-1编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱, 接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址, 当 RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W 为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602LCD的指令说明及时序:1602液晶模块内部的控制器共有11条控制指令,如表3-2所示:表3-2序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。图3-5LCD1602显示3.2.5电源电路要想电子钟正常工作得到+5V的输出电压,就需要将220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分来实现,电源电路如图3-7所示。电源电路框图如图3-6所示:交流电源变压器整流电路滤波电路稳压电路图3-6 直流稳压电源基本电路框图图3-7 电源电路3.2.6蜂鸣器电路蜂鸣器与普通扬声器相比,最重要一个特点是,只要按照极性要求加上合适的直流压,就可以发出固有频率的声音,因此使用起来比较简单。蜂鸣器是一个感性负载,一般不建议用单片机I/O口直接对它进行操作,所以通常加一个驱动三极管,在要求较高的场合还会加上反相保护二极管。通过硬件原理图可知,三极管用了PNP型,所以要使蜂鸣器发声只要给单片机P2.7置低电平就可。这就是单片机系统中的蜂鸣器的编程原理。下图3-8是该蜂鸣器电路。图3-8蜂鸣器电路3.3电子元器件的安装与焊接3.3.1安装与焊接工艺要求安装元器件时,要遵循先安装低矮的和耐热的元件(如电阻),然后在安装大一点的元件,最后安装怕热的元件(如三极管、集成电路等)。在安装电阻时,要注意根据两孔的距离确定电阻是卧式安装还是立式安装,尽量保持色环方向一致。对于二极管主要辨别其正负极方向,二极管带有色环的一端为负极。晶体三极管安装时要注意E、B、C三级的对应方向,不可倒置。对于无极性电容,可直接插在电路板上,而对电解电容要注意其方向性,引脚长的一端为电解电容的的正极。按键开关没有方向,可以自由安装。所有焊接的元器件全部插入电路板对应的位置,要注意立式安装和卧式安装的元件,并对它们在焊接前的高度进行调整,以使安装和焊接的效果达到最佳。在焊接前要准备2040W的电烙铁一把,松香、锡条、剪刀、镊子 、尖嘴钳、吸锡器等,在焊接前要把元器件的引线刮干净。焊点上的焊料要适量,不能过多或过少,焊料过多,既增加成本,又容易造成焊点桥连(短路),过少会使强度不够,导电性较弱,受外力时元器件容易短路。焊点的表面应光亮且色泽均匀,无针孔、无夹渣,而且不应有毛刺、空隙,因为焊点表面存在毛刺、空隙,不仅不美观,还会给电子产品带来危害,另外焊点的表面也要清洁。3.3.2焊接后的检测与调试焊接完成后,将焊点周围的焊剂清洁干净,并对焊接好的电路板进行目测检查有无漏焊、虚焊、错焊等现象,可用镊子将每一个元器件拉一拉,看有无松动现象。还要参照电路原理图检查元件的接地和接电源是否接对,是否漏接等,确保所有的引脚连线正常连接,再用数字万用表检查各个引脚之间是否连通。硬件调试很重要也很麻烦,由于本次设计硬件非PCB制板,而是手工焊板,焊点质量、布线是否合理等对系统的影响比较大,这无疑增加硬件调试的难度。由于此前没有很多的练习,本次设计我所制作的液晶显示电子钟在质量工艺上很难达到满意程度。在确保检查无误后,再接入电源进行调试,将烧录入程序的芯片插在电路板上,看结果的显示情况。如果未达到想要的结果,再进行调试,直到输出结果正确。3.4系统程序的设计3.4.1主程序的设计本设计中主程序循环调用显示子程序和按键子程序,当端口有按键按下时,转入相应功能程序。其主程序流程图如图3-9所示。开始初始化读时间显示子程序开关控制子程序时间修改子程序显示结果返回图3-9主程序流程图3.4.2液晶驱动子程序LCD使用之前须它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下:(1)清屏。将显示缓冲区DDRAM的内容全部写入空格(ASC1120H)。(2)功能设置。(3)开/关显示控制。控制显示的开关,当D=1时显示,D=0时不显示。控制光标开关,当C=1时光标显示,C=0时光标不显示。控制字符是否闪烁,当B=0时字符闪烁,当B=1时字符不闪烁。(4)输入方式设置。本系统中液晶显示的初始化程序流程图如图3-10所示。初始化过程:(1)延时15ms;(2)写指令38H(不检测忙信号);(3)延时5ms;(4)写指令38H(不检测忙信号);(5)延时5ms;(6)写指令38H(不检测忙信号);(7)以后每次写指令、读/写数据操作均需要检测忙信号;(8)写指令38H:显示模式设置(9)写指令08H:显示关闭;(10)写指令01H:显示清屏;(11)写指令06H:显示光标移动设置;(12)写指令0CH:显示开及光标设置。子程序入口设置第一行显示位置写指令数据显示第二行内容设置显示位置显示第一行内容子程序退出图3-10显示子程序3.4.3按键控制子程序本程序的三个独立按键,用于模式的设置选择和时间的调整,程序流程图如图3-11所示。子程序入口控制键有效,进入小时调整程序等待按键程序加键有效减键有效小时加一小时减一控制键有效,进入分钟调整程序等待按键程序加键有效减键有效分钟加一分钟减一控制键有效,进入秒调整程序等待按键程序加键有效减键有效秒加一秒减一按键有效,跳出时间调整程序,进入主循环程序图3-11按键控制子程序四、结果分析在设计完成后,进行调试,包括硬件和软件的调试。调试结果完成后,也可以进行仿真。开始我们是使用6位数码管显示,但是数码管焊接完成后,数码管无法显示。在多次检查后,发现电路连接有错误。重新修改连接后,数码管可以正常显示。由于只有6位数码管,不能实现多位数据的显示,所以使用1602液晶显示。在测试中也遇到LCD液晶显示屏不显示,要对电路进行检测。检测电路的元器件是否连接好,观察是否存在漏焊,虚焊或者元器件的损坏等,检查电路的连接是否存在问题。电路连接没有问题,也会出现液晶显示屏无法显示的情况,在不断的调试后,LCD可以正常显示。该程序主要实现了日期、时、分、秒的显示,对时间的调整,在对程序的编写和调试中,也会遇到很多问题,由于C语言的知识薄弱及程序的繁琐,所以在编写程序的时候会出现许多程序编写语法上的错误,需要我们耐心的寻找错误根源并改正;在调试的过程中也会遇到很多问题,可能因为少接入一根电源线,就让我浪费很多时间来查找原因。所以在焊接的时候一定要细心,否则会给后来的工作带来很多麻烦。经过多次的调试和分析,我们对电路的原理更加熟悉,同时对所学的编程知识有所提高。程序该系统实现的功能相对较简单,只能实现时间的显示,好多功能不能正常使用,在以后的学习中,还可以利用它实现更多的功能。五、总结这次设计的课题是数字时钟计时器,虽然毕业设计的内容繁多、过程繁琐,做的数字时钟比其他同学做的较简单,但我们从中收获了很多。通过这次对数字钟的设计,摆脱了单纯的理论知识学习状态,通过自己购买元器件、动手焊接电路板,学习了许多焊接方面的知识,在焊接的过程中,我们不断地学习和总结,理论与实际的结合锻炼了我们。通过综合运用所学的专业基础知识,解决实际操作过程中存在的问题,同时也提高了我查阅文献资料、设计规范以及利用Protel99se绘制电路原理图等其他专业能力水平。通过整体的设计,局部的取舍,以及对细节的斟酌处理,都使我们的能力得到锻炼,并且使我们的意志力、耐力都得到不同程度的提升。我们是小组合作,一个设计的完成,需要我们的共同努力,在设计期间,遇到问题我们会相互讨论,也增强了我们的团结合作能力。通过对系统的分析与设计,让我知道了自己的不足和知识的欠缺,在程序的编写和调试过程中遇到很多问题,通过共同的努力,反复的分析和总结,学到了许多新的知识,并且使学过的电子方面的专业知识得到巩固。在以后的工作学习中,会注意增加专业知识的学习。本次毕业设计的顺利完成,让我们对本专业的发展前景更加充满信心。毕业设计完成后,我们就要踏上工作的路,在以后工作的过程中,会巩固专业知识,增强和别人的合作能力,在工作中使自己不断得到提高。六、致谢本课题在选题以及研究的过程中得到了陈祥生和张世平老师的悉心指导。在设计的开始,我们通过查阅资料,在老师的指引下,确定元器件清单,然后购买,最后完成电路板的焊接。在焊接电路板的过程中,遇到问题同学之间相互讨论,使电路板顺利焊接完成。在这期间,也得到了同学的帮助。程序的编写和调试的过程比较繁琐,其中遇到很多问题,在同学的帮助下顺利完成。在完成论文的初稿,交由老师修改,给我们提出一些宝贵的建议。在他们的帮助下,论文得到不断的完善,最终完成了整个论文。在做毕业设计期间,学校也给我们提供了好的环境和氛围,在实验室里我们顺利完成了电路板的焊接和调试。在此,感谢我们的老师和同学!七、附录1、电路原理图2、数字时钟计时器元器件清单序号元件名称型号及规格数量单位1LCD16021只2电阻R1 R6:1K6只R8 R12:1K5只R24 变位器1只R7:10K1只3晶振Y1:12MHz1只4单片机芯片AT89C521只5按键SWPB5只6电容C1-C2:22PF2只C:0.1uF4只7电解电容C:10uF3只C:2200uF2只9蜂鸣器1只10发光二极管LED2只11三端稳压块LM7805CT1只LM7905CT1只12万能板2块13二极管40074只14变压器输入220V输出9V1只3、源程序代码#include #define uchar unsigned char#define uint unsigned intsbit RS=P20; sbit RW=P21; sbit EN=P22; sbit key1=P30; sbit key2=P31; sbit key3=P32; uchar num,t0,keynum,hour,min,sec; uchar code line1= 2011-10-21;uchar code line2= Time-13:00:00;/*延时子程序*/void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); /*写命令*/void write_com(cmd) RS=0; RW=0; EN=0; P1=cmd; EN=1; delay(15); EN=0; /*写数据*/void write_data(dat) RS=1; RW=0; EN=0; P1=dat; EN=1; delay(15); EN=0; /*初始化程序*/void init() delay(15); write_com(0x38); delay(5); write_com(0x0c); delay(5); write_com(0x06); delay(5); write_com(0x01); delay(5); write_com(0x80); delay(5); for(num=0;num第二行 for(num=0;num14;num+) write_data(line2num); /显示第二行 delay(20); /*定时器初始化*/ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; /*显示位*/ void write_clock(uchar add,uchar dat) uchar first,second; second=dat/10; first=dat%10; write_com(0x80+0x40+add); write_data(0x30+second); write_data(0x30+first);/*键控*/void keyscan() if(key1=0) /时钟设置/key1按下 delay(5); if(key1=0) /key1真的按下 keynum+; while(!key1) /去键抖 TR0=0; /时钟暂停 if(keynum=1) /key1按下第一次 write_com(0x80+0x40+13); write_com(0x0f); if(keynum=2) /key1按下第二次 write_com(0x80+0x40+10); if(keynum=3) /key1按下第三次 write_com(0x80+0x40+7); if(keynum=4) /key1按下第四次 keynum=0; /按键次数清零 TR0=1; /继续运行时钟 /*按键加*/ if(keynum!=0) /秒加设置/key1是否按下 if(key2=0&keynum=1) /key2按下并且key1按下第一次 delay(5); if(key2=0&keynum=1) /key2是否真的按下并且key1按下第一次 sec+; while(!key2); /去键抖 if(sec=60) sec=0; write_clock(12,sec); write_com(0x80+0x40+13); if(key2=0&keynum=2) /分加设置/key2真的按下并且key1按第二次 delay(5); if(key2=0&keynum=2) /key2是否真的按下并且key1按下第二次 min+; while(!key2); /去键抖 if(min=60) min=0; write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit4Hands-onfun句型语音语法知识点清单译林版八年级英语上册
- 机械基本知识培训课件教学
- 机械厂消防知识培训课件记录
- 化妆品配料员培训课件
- 网商相关面试题目及答案
- 外勤城管面试题目及答案
- 新解读《GB-T 36599-2018电子商务交易产品信息描述 家具》
- 同济设计面试题目及答案
- 灵璧一中小升初数学试卷
- 罗山招教题目数学试卷
- 中国现代国防教学课件
- 基于SSM的在线办公平台系统设计与实现
- 航天器再入轨道的实时监测与数据处理技术-洞察阐释
- 2025届江苏省苏州地区学校英语八年级第二学期期末联考试题含答案
- 信息化项目监理规划
- TAOPA《固定式无人机反制设备技术规范》
- 新生儿院感管理
- 保洁用品采购管理制度
- 中国石油独山子石化分公司32万吨-年苯乙烯装置扩能改造项目环评报告
- 英语教师遴选试题及答案
- 胸痹的中医治疗
评论
0/150
提交评论