毕业设计-基于单片机的12864时钟显示_第1页
毕业设计-基于单片机的12864时钟显示_第2页
毕业设计-基于单片机的12864时钟显示_第3页
毕业设计-基于单片机的12864时钟显示_第4页
毕业设计-基于单片机的12864时钟显示_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

学士学位毕业论文(设计)题目:基于单片机的12864时钟显示摘要电子时钟是一种非常广泛日常计时工具,给人们的带来了很大的方便,在社会上越来越流行。它可以对年、月、日、星期、时、分、秒进行计时,采用直观的数字显示,可以同时显示年月日时分秒等信息,还有时间校准等功能。该电子时钟主要采用STC89C52单片机作为主控核心,用DS1302时钟芯片作为时钟、液晶12864显示屏显示。STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的12864液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。此外,该电子时钟还具有时间校准等功能。关键词:STC89C51单片机,DS1302时钟芯片,液晶12864AbstractElectronicclockisaveryextensivedailytimingtool,tothepeoplehasbroughtgreatconvenience,moreandmorepopularinthecommunity.Itcanbetheyear,month,date,day,hour,minute,secondforatime,usingintuitivedigitaldisplay,candisplayinformationsuchasyear,month,day,hour,andtimealignmentfunctions.TheelectronicclockisusedmainlyasamasterSTC89C52microcontrollercore,withtheDS1302clockchipasaclock,LCDdisplay12864.STC89C52SCMisaShenzhenHongCrystalTechnologyhasintroduced,powerconsumption,voltagecanbeselected4~6Vvoltagepowersupply;DS1302clockchipisAmericanDALLAScompanylaunchedwithafinecurrentcharginglow-powerreal-timeclockchip,itcanyear,month,date,day,hour,minute,secondforatime,alsohasaleapyearcompensationandotherfunctions,DS1302andlonglife,smallerror;12864LCDdigitaldisplayisusedtodisplaythatcandisplayyear,month,date,day,hour,minute,secondandsoon.Inaddition,theelectronicclockalsohasatimecalibrationfunction.KeyWords:STC89C51microcontroller,DS1302clockchip,LCD12864目录1绪论 11.1时钟开展史 11.2目前的研究现状 21.3研究目的及意义 22总体方案设计 32.1方案的选择 32.1.1设计要求 32.1.2方案的选择 32.2总体方案组成框图 43系统硬件设计 43.1主芯片模块 43.1.1中断系统 6常用存放器 63.2晶振和复位电路 8晶振电路 8复位电路 93.3DS1302时钟芯片电路 93.3.1DS1302引脚图 93.3.2DS1302存放器 103.3.3DS1302外围电路 113.4LCD12864显示模块 113.4.1LCD12864引脚功能 113.4.2LCD12864指令说明 123.4.3LCD12864电路接线 143.5红外遥控模块 144系统软件设计 154.1主程序设计 154.2LCD12864驱动程序 174.3DS1302驱动程序 194.4红外遥控程序 225调试结果 245.1正常显示日期时间画面 245.2进入调整时间日期画面 245.3图片显示画面 256总结 26致谢 27参考文献 28附录一 29附录二 301绪论1.1时钟开展史很早以前,人类主要是利用天文现象和流动物质的连续运动来计时。例如,日晷是利用日影的方位计时,阴雨天和夜里没法使用且测量误差较大;漏壶和沙漏是利用水流和沙流的流量计时,虽然晚上可以使用,但是水容易结冰,误差还是大。后来人们创造了机械钟,以机械振动系统为时间基准,实现对时间的计量,误差到达一天一分钟左右。而如今的数字钟用数字电路实现时、分、秒,精度较高,一天的误差不到一秒。目前精度最高的时钟要属原子钟,其每天的误差小于一亿分之一秒。随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的创造,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,创造了走时精度更高的石英电子钟表,使钟表的走时和月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用〔电子万年历〕,使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式开展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。1.2目前的研究现状我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等根本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改良电子万年历的设计,使其更加的具有市场。在国内,电子钟因LCD数字显示效用直接有效,所以大多运用在城市的主要营业场所,以及车站、码头等公共场所。在对公共场所的电子钟设定的时候,使用者还可根据周边的气候、温度等对LCD屏进行设置。同时,因为LCD的显示耗电量很省,所以能够保持持续的工作效果。1.3研究目的及意义电子钟亦称数字显示钟,是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。相对于其他时钟类型,它的特点可归结为“两强一弱”:比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显示较为单调。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时播送、自动起闭路灯、定时开关烘箱、通断动力设备甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为根底的。因此,研究数字钟及扩大其应用,有着非常现实的意义。除了采用集成化的时钟芯片外,还有采用MCU的方案,利用STC89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。STC89C51是由深圳宏晶科技公司推出的一种小型单片机。其主要特点为采用Flash存贮器技术,降低了制造本钱,其软件、硬件与MCS-51完全兼容,可以很快被广阔用户接受。本文介绍了基于STC89C51单片机设计的电子时钟。可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间红外校准等功能。2总体方案设计2.1方案的选择2.1.1设计要求A.具有年、月、日、周、时、分、秒的显示功能;B.具有年、月、日、周、时、分、秒的校准功能;C.具有图片显示功能;D.具有红外遥控功能。2.1.2方案的选择本课题是基于单片机控制的电子时钟设计,MCS-51系列的单片机集成了8位CPU、4K字节ROM、128字节RAM、2个16位定时器/计数器和4个8位I/O口等根本功能部件,根本能满足本课题的研究,所以主控芯片选择STC89C51单片机。时钟的显示功能用128*64LCD来实现,其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不管硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。为了更精确的显示时间,需要一时钟芯片来进行计时。DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。对于红外遥控功能,主要用来调整时间和切换显示页面。本课题中选用通用红外遥控器和红外接收头。2.2总体方案组成框图根据以上硬件的选择,系统的硬件框图2.1所示。时钟芯片DS1302红外遥控STC89C51主控芯片时钟芯片DS1302红外遥控STC89C51主控芯片12864LCD12864LCD复位电路晶振电路复位电路晶振电路图2.1系统硬件框图3系统硬件设计3.1主芯片模块STC89C51单片的引脚功能图如图3.1所示,逻辑符号如图3.2所示,它有40个引脚。图3.1STC89C51引脚图图3.2STC89C51逻辑图电源引脚VCC〔40〕:电源正端,外接+5V。VSS〔20〕:接地。时钟电路引脚XTAL1(18)、XTAL2(19):XTAL1为片内振荡电路的输入端,XTAL2为片内振荡电路的输出端。8051的时钟有两种方式,一种是片内振荡方式,需在这两个脚外接石英晶体和振荡电容,振荡电容一般取10p~30p;另一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。控制引脚ALE/PROG(30):地址锁存控制信号/编程脉冲输入端。PSEN〔29〕:外部程序存储器的选通信号。EA/VPP〔31〕:外部程序存储器地址允许输入端/编程电压输入端。RESET/VPT〔9〕:复位/备用电源输入引脚。在该引脚上输入24个时钟周期以上的高电平,系统即复位。输入/输出引脚P0.0~P0.7(39~32):8位双向并行I/O口,P0口可作为通用双向I/O口。在外接数据、程序存储器时,可作为低8位地址/数据总线复用引脚。P1.0~P1.7〔1~8〕:8位双向并行I/O口。P2.0~P2.7〔21~28〕:8位双向并行I/O口。P0口可作为通用双向I/O口。在外接数据、程序存储器时,可作为高8位地址输出引脚。P3.0~P3.7〔10~17〕:8位双向并行I/O口。P3口除了作为通用I/O口使用外,每一个引脚都可以复用。3.1.1中断系统8051单片机允许5个中断源:〔1〕外部中断源〔2个〕由INT0〔P3.2〕引脚和INT1〔P3.3〕引脚引入。这两个中断源的请求方式有两种:低电平触发或下降沿触发。〔2〕内部中断源〔2个〕T0:定时/计数器0中断,由T0溢出引起。T1:定时/计数器1中断,由T1溢出引起。〔3〕TI/RI〔1个〕串行I/O口中断,由一帧字符发送/接收完后引起。3.1.2常用存放器〔1〕定时器方式控制存放器TMODTMOD〔89H〕D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0工作方式选择位M1、M0定义如下:M1M0工作方式功能描述00方式0初值存放器TL的低5位与TH的8位构成13位计数器01方式116位计数器10方式2自动重装初值的8位计数器11方式3仅用于T0,分为两个8位计数器,T1停止工作GATE=0:软件启动定时器,使TRx置“1”即可启动定时器;=1:软件和硬件共同启动定时器,除了要使TRx置“1”外,外部中断请求信号输入端INTx还必须输入高电平才能启动定时器。C/T=0:定时器方式工作;=1:计数器方式工作。〔2〕定时控制存放器TCONTCON(88H)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:定时器溢出中断申请标志位〔由硬件自动置位〕。TF0/TF1=0:定时器未溢出;=1:定时器溢出时硬件自动置位,申请中断。TR0/TR1:定时器启动/停止控制位。TR0/TR1=0:定时器停止;=1:定时器启动。IE0/IE1:外部中断申请标志位〔由硬件自动置位,中断响应后转向中断效劳程序时,由由硬件自动清零〕IE0/IE1=0:没有外部中断申请;=1:有外部中断申请。IT0/IT1:外部中断请求的触发方式控制位。IT0/IT1=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号下降沿有效。〔3〕中断允许存放器IE。IE〔A8H〕D7D6D5D4D3D2D1D0EA-ET2ESET1EX1ET0EX0ES——串行口中断允许位。=0:禁止中断;=1允许中断。ET1——定时/计数器T1的溢出中断允许位。=0:禁止中断;=1允许中断EX1——外部中断1中断允许位。=0:禁止中断;=1允许中断ET0——定时/计数器T0的溢出中断允许位。=0:禁止中断;=1允许中断EX0——外部中断0中断允许位。=0:禁止中断;=1允许中断EA——总的中断允许控制位〔总开关〕。=0:禁止所有中断;=1:允许中断。3.2晶振和复位电路晶振电路如图3.3所示,STC89C51单片机的内部有一个用于构成振荡器的高增益反相放大器,它的输入端为XTAL1引脚,输出端为XTAL2引脚,两个跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容器通常取30pF左右。图3.3晶振电路图3.4复位电路复位电路往单片机的复位引脚上输入24个时钟周期以上的高电平,即执行复位操作。按键复位是指系统在运行时,按下一个开关,就能在RST引脚产生一段时间的高电平,使系统复位,常见的按键复位电路如图3.4所示。对12MHz晶振频率而言,电路中C取10pF,R取1KΩ。3.3DS1302时钟芯片电路3.3.1DS1302引脚图如图3.5为DS1302的引脚图,图3.6为逻辑图。图3.5DS1302引脚图图3.6DS1302逻辑图各引脚的功能为:

Vcc1:主电源;Vcc2:备用电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<

Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:双向数据线;X1、X2:晶振引脚;

CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位存放器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。3.3.2DS1302存放器DS1302有关日历、时间的存放器共有12个,其中有7个存放器〔读时81H~8DH,写时80H~8CH〕,存放的数据格式为BCD码形式,如图3.7所示。图3.7DS1302日历、时间存放器小时存放器〔85h、84h〕的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM。在24小时模式时,位5是第二个10小时位。秒存放器〔81h、80h〕的位7定义为时钟暂停标志〔CH〕。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。控制存放器〔8Fh、8Eh〕的位7是写保护位〔WP〕,其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一存放器的写操作。3.3.3DS1302外围电路图3.8DS1302外围电路DS1302只有3个引脚与单片机相连,分别是RST〔5〕、SCLK〔7〕和I/O〔6〕,其2、3引脚接32768Hz晶振,如图3.8。3.4LCD12864显示模块3.4.1LCD12864引脚功能管脚号管脚名称管脚功能1VSS接地2VDD电源+5V3V0比照度调整4RSRS=H,DB0-DB7为数据RS=L,DB0-DB7为指令5R/WR/W=H,E=H,读数据R/W=L,E=H→L,写数据6E使能端7--14DB0—DB78位数据口15PSBPSB=H,并行方式PSB=L,串行方式16NC空脚17RST复位端,低电平有效18VoutLCD驱动电压输出端19A背光源正端+520K背光源负端表3.1LCD12864引脚说明图3.912864引脚图图3.9所示为带中文字库LCD12864引脚图,表3.1为引脚说明。该液晶显示模块由128*64点阵组成,可显示汉字及图形,内置8192个中文汉字〔16*16点阵〕、128个字符〔8*16〕点阵,8位并行及串行连接方式。控制引脚说明RS、R/W四种模式RSR/W功能说明LLMPU写指令到指令暂存器〔IR〕LH读出忙标志〔BF〕及地址计数器〔AC〕状态HLMPU写入数据到数据暂存器〔DR〕HHMPU从数据暂存器〔DR〕中读出数据E信号E状态功能H→L配合/W进行写数据或指令H配合R进行读数据或指令L/L→H无动作说明:BF标志提供内部工作情况BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据。LCD12864指令说明〔1〕显示开/关设置R/WR/SDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHHHHH/L功能:设置屏幕显示开/关。DB0=H,开显示;DB0=L,关显示。〔2〕设置显示起始行R/WR/SDB7DB6DB5DB4DB3DB2DB1DB0LLHH行地址〔0~63〕功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。〔3〕设置列地址R/WR/SDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址〔0~63〕功能:

DDRAM

的列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DDRAM进行读写操作后,Y地址自动加一。〔4〕状态检测R/WR/SDB7DB6DB5DB4DB3DB2DB1DB0HLBFLON/OFFRSTLLLL功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位

(ON/OFF)。BF=H:内部正在执行操作;BF=L:空闲状态。RST=H:正处于复位初始化状态;RST=L:正常状态。ON/OFF=H:表示显示关闭;ON/OFF=L:表示显示开。〔5〕写显示数据R/WR/SDB7DB6DB5DB4DB3DB2DB1DB0LHD7D6D5D4D3D2D1D0功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。〔6〕读显示数据R/WR/SDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能:从DDRAM读数据,读指令执行后Y地址计数器自动加1。3.4.3LCD12864电路接线单片机P2口作为指令/数据接口,右DB0-DB7输入,数据命令选择端RS接单片机P1.2,读写控制信号端R/W接单片机P1.1,使能端E接单片机P1.0,串/并行方式选择端PSB接P1.6,复位端RST接P1.7,16、18号引脚可以不接,如图3.10所示。图3.10LCD12864电路图3.5红外遥控模块本课题采用红外遥控功能对时钟进行校准,包括年、月、日、周、时、分秒的加减操作,还有切换显示、复位的功能。红外遥控装置包括红外发送〔即遥控器〕和红外接收两局部组成。发射机一般由指令按键、指令编码系统、调制电路、驱动电路、发射电路等几局部组成。当按下指令键时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路等几局部组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即复原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制。其大致工作过程如图3.11所示。图3.11红外工作原理红外遥控器采用通用遥控器,接收器为红外接收头,如图3.11所示。图3.12为红外接收头电路,其信号输出端接单片机引脚P3.2。图3.11红外遥控器和接收头图3.12红外接收头电路4系统软件设计4.1主程序设计本课题程序编写为C语言,编译软件为Keil5,程序分为4个模块,分别是主函数main.c、LCD12864程序LCD12864.h、时钟芯片DS1302程序DS1302.h和红外遥控程序IRIN.h。程序流程图如图4.1所示。开始判断按键进入调时模式判断按键12864显示时间DS1302写数据12864开始判断按键进入调时模式判断按键12864显示时间DS1302写数据12864初始化DS1302初始化1286412864显示图片结束结束图4.1程序流程图4.2LCD12864驱动程序图4.212864写操作时序根据以上写时序,可以写出写指令函数和写数据函数。〔1〕写指令voidlcd_wcmd(ucharcmd)//写指令函数{while(lcd_busy());//判忙LCD_RS=0;//RS=LLCD_RW=0;//RW=LLCD_EN=0;//EN上升沿_nop_();_nop_();P2=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}〔2〕写显示数据voidlcd_wdat(uchardat)//写显示数据函数{while(lcd_busy());//判忙LCD_RS=1;//RS=HLCD_RW=0;//RW=LLCD_EN=0;//EN上升沿P2=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}〔3〕设定显示位置voidlcd_pos(ucharX,ucharY){ucharpos;if(X==1){X=0x80;}//第一行首地址elseif(X==2){X=0x90;}//第二行首地址elseif(X==3){X=0x88;}//第三行首地址elseif(X==4){X=0x98;}//第四行首地址pos=X+Y;lcd_wcmd(pos);//显示地址,行地址加列地址}〔4〕图形显示voidphotodisplay(uchar*bmp){uchari,j;lcd_wcmd(0x34);//写数据时,关闭图形显示for(i=0;i<32;i++){lcd_wcmd(0x80+i);//写入垂直坐标值lcd_wcmd(0x80);//先写入水平坐标值for(j=0;j<16;j++)//再写入两个8位元的数据lcd_wdat(*bmp++);delay1(1);}for(i=0;i<32;i++){lcd_wcmd(0x80+i);lcd_wcmd(0x88);for(j=0;j<16;j++)lcd_wdat(*bmp++); delay1(1);}lcd_wcmd(0x36);//写完数据,开图形显示}4.3DS1302驱动程序DS1302读写时序如下图,图4.4为单字节读时序,图4.5为单字节写时序。图4.4DS1302单字节读时序图4.5DS1302单字节写时序〔1〕DS1302写一个字节voidWrite_Ds1302_Byte(unsignedchartemp){unsignedchari;for(i=0;i<8;i++)//循环8次写入数据{SCK=0;//SCK为上升沿IO=temp&0x01;//每次传输低字节temp>>=1;//右移一位SCK=1;}}〔2〕写入DS1302voidWrite_Ds1302(unsignedcharaddress,unsignedchardat){RST=0;_nop_();SCK=0;_nop_();RST=1;_nop_();//启动Write_Ds1302_Byte(address);//发送地址Write_Ds1302_Byte(dat);//发送数据RST=0;//恢复}〔3〕读出DS1302数据unsignedcharRead_Ds1302(unsignedcharaddress){unsignedchari,temp=0x00;RST=0;_nop_();_nop_();SCK=0;_nop_();_nop_();RST=1;_nop_();_nop_();Write_Ds1302_Byte(address);for(i=0;i<8;i++)//循环8次读取数据{if(IO)temp|=0x80;//每次传输低字节SCK=0;temp>>=1;//右移一位_nop_();_nop_();_nop_();SCK=1;}RST=0;return(temp);//返回}4.4红外遥控程序红外遥控结合单片机P3.2口外部中断INT0来执行命令,红外遥控器共21个按键,其键值分别为45464744404307150916190D0C185E081C5A42524AvoidIR_IN(void)interrupt0//外部中断0{unsignedcharj,k,N=0;EX0=0;IRdelay(15);if(IRIN==1){EX0=1;return;}//确认IR信号出现while(!IRIN)//等IR变为高电平,跳过9ms的前导低电平信号。{IRdelay(1);}for(j=0;j<4;j++)//收集四组数据{for(k=0;k<8;k++)//每组数据有8位{while(IRIN)//等IR变为低电平,跳过4.5ms的前导高电平信号。{IRdelay(1);}while(!IRIN)//等IR变为高电平{IRdelay(1);}while(IRIN)//计算IR高电平时长{IRdelay(1);N++;if(N>=50){EX0=1;return;}//0.14ms计数过长自动离开。}//高电平计数完毕IRCOM[j]=IRCOM[j]>>1;//数据最高位补“0”if(N>=8){IRCOM[j]=IRCOM[j]|0x80;}//数据最高位补“1”N=0;}}5调试结果5.1正常显示日期时间画面5.2进入调整时间日期画面5.3图片显示画面6总结本课题研究的主要内容是以STC89C51单片机为核心、DS1302为计时芯片、LCD12864液晶为显示局部的一个电子日历,可显示年、月、日、周、时、分、秒及图形显示,并采用红外遥控技术,来实现对日期和时间的调整。本次毕业设计的制作,从最初的方案设计,材料选择,板子焊接到最终的程序编写

温馨提示

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

评论

0/150

提交评论