基于STC89C52RC万年历毕业设计.docx

上传人:李司机 文档编号:6680073 上传时间:2023-12-24 格式:DOCX 页数:25 大小:90.48KB
返回 下载 相关 举报
基于STC89C52RC万年历毕业设计.docx_第1页
第1页 / 共25页
基于STC89C52RC万年历毕业设计.docx_第2页
第2页 / 共25页
基于STC89C52RC万年历毕业设计.docx_第3页
第3页 / 共25页
基于STC89C52RC万年历毕业设计.docx_第4页
第4页 / 共25页
基于STC89C52RC万年历毕业设计.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《基于STC89C52RC万年历毕业设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C52RC万年历毕业设计.docx(25页珍藏版)》请在三一办公上搜索。

1、成都理工大学学生毕业设计论文题目名称基于STC89C52RC万年历设计学院名称专业名称应用电子技术学生姓名班级指导教师2013年2月24日学生毕业设计论文诚信承诺书本人郑重声明所呈交的毕业设计(论文)是本人在指导教师指导下进行研究撰写的成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同学及其他技术人员对本文研究所做的奉献均已在论文中作了明确的说明并表示谢意。学生本人签名:年月日学生毕业设计论文任务书学生姓名:学号:专业名称:题目类型:拟定题目:指导教师姓名:耿称:题目来源:根本任务与要求拟解决主要问题及预期目标阶段工作方案选题年月

2、日月日实施研究、收集资料年月日月日开题报告年月日月日撰写论文、完成初稿年月日月日完成修改、定稿年月日月日辩论年月日月I;接受任务时间:年月日:要求完成时间:年月日学生(签名):指导教师(签名):专业部门审核意见:专业部负责人(签字):年月日填表说明:1 .题目来源:填“教师科研课题、“教师拟定、学生自拟、“其它.:题目类型:填理论研究、应用研究、技术升发、其它。2 .本任务书一式二份,学生、指导教师各一份,作为毕业设计(论文)中期检查及完成后检查的依据。学生毕业设计论文指导教师评语对学院专业同学所完成的题目为:的毕业设计(论文)选题、论文结构、论据论点、工作量、工作态度、论文质量及存在缺乏的综

3、合评语:是否同意设计论文)提交辩论:同意;不同意口指导教师:(签名)年月日学生毕业设计论文评审教师评审意见书对学院(本科、专科、专科起点本科、高职、大专)专业所完成的题目为:的毕、Ik设计(论文)选题、论文结构、论点论据、工作量、论文质量及存在缺乏的综合评审意见:评审教师评审成绩:是否同意设计(论文)提交辩论:同意;修改后辩论;不同意评审教师:(签名)年月日学生毕业设计论文辩论委员会决议书学生(专业)题目为:的毕业设计(论文)向专业辩论委员会提供以下材料:1 .毕业设计(论文)共页:文中插图张:附图幅。2 .指导老师对本毕业设计(论文)的评语一份。专业辩论委员会意见(论文、报告、答复下列问题等

4、情况):专业辩论委员会决议:该学生的毕业设计(论文)总评成绩:专业辩论委员会主任(签字):年月日摘要随着社会、科技的开展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间,能够了解与人类密切相关的信息,比方星期、日期等,电子时钟诞生了,它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的开展趋势,具有广阔的市场前景。该电子时钟主要采用STC89C52RC单片机作为主控核心,由DS1302时钟芯片提供时钟、LCD液晶显示,DSI8B20采集温度,HSOO38B接收红外遥控器发送的信号。STC89C52RC单片机是由宏晶

5、公司推出的,功耗小,电压可选用4-6V电压供电:DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;温度采集是采用数字式温度传感器DS18B2O,红外遥控的信号采集是采用一体化接收头HSOO38B来将红外光信号转化为电信号,数字显示是采用的LCD1602来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子时钟还可用红外遥控器进行时间校准、闹铃设置等功能。关键词:时钟电路;时钟芯片DS1302;LCDI602液晶;单片机STC8

6、9C52RC;数字式温度传感器DS18B20;一体化接收头HSoO38B:目录第一章前言51. 1引言512功能要求6第二章系统硬件电路的设计91.1 电路设计92. 2系统硬件概述9第三章系统软件设计123. 1程序设计124. 2程序流程图13结论13致谢13参考文献14附录主程序源代码14第一章前言随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的创造,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆

7、轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,创造了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用,使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指标计时的方式开展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期的显示功能,它更符合消费者的生活需求!因此,电子时钟的出现带来了钟表计时业界跨跃性的进步我国生产的电子时钟有很多种,总体上来说以研究多功能电子时钟为主,使万年历除了原有的显示时间,日期等根本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改良电子时钟的

8、设计,使其更加的具有市场。本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件局部有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。根本的要了解-些主要器件的根本功能和作用。除了采用集成化的时钟芯片外,还有采用MCU的方案,利用STC89系列单片机制成电子控制电路,采用软件和硬件结合的方法,控制LCD液晶显示,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。STC89C52RC是由宏晶公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用FIaSh存贮器技术,降低了制造本钱,其软件、硬件与MCS-51完全兼容,

9、可以很快被中国广阔用户接受。本文介绍了基于STC89C52RC单片机设计的电子时钟。首先我们在绪论中简单介绍了单片机的开展与其在中低端领域中的优势以及课题的开发意义;接着介绍了STC89C52RC单片机的硬件结构和本毕业设计所要外扩的LED液晶显示方法,并在此根底上实现了时钟根本电路的设计:然后使用单片机C语言进行时钟程序的设计,程序采用模块化结构,使得逻辑关系简单明了,维护方便。1.1 引言随着电子技术的开展,人类不断研究,不断创新纪录。目前万年历己经不再局限于以书本形式出现。以计算机软件或者电子产品形式出现的万年历被称为电子万年历。与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应

10、用,采用电子时钟作为时间显示己经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。本文提出了一种基于STC89C52RC单片机的万年历设计方案,本方案以STC89C52RC单片机作为主控核心,与时钟芯片DS1302、红外接收管HSOO38B,LCD显示等模块组成硬件系统。在硬件系统中设有温度检测模块和LCD显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、本钱低廉等诸多优点,符合电子仪器仪表的开展趋势,具有广阔的市场前景。1.2 功能要求本设计准备

11、实现的功能:(1)显示公历日期功能1年、月、日、时、分、秒以及星期)(2)可通过红外遥控切换年、月、日及时、分、秒的显示状态(3)可随时调校年、月、日或时、分、秒(4)可每次增、减1进行时间调节(5)可动态完整显示年份,实现真正的万年历显示1.3方案论证技术可行性随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的开展。集成技术的最新开展之一是将CPU和外围芯片,如程序内存、数据存储器、并行Do口、串行I/O口、定时/计数器、中断控制器及其它控制部件集成在一个芯片之中,制成单片计算机。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器

12、、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的信道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。单片机的出现,并在各技术领域中得到如此迅猛的开展,与单片机构成计算机应用系统所形成的下述特点有关:1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。2、系统配置、系统扩展较典型、标准,容易构成各种规模的应用系统,应用

13、系统有较高的软、硬件利用系数。3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。4、具有优异的性能、价格比。单片机的选择方案一:采用传统的STC89C52RC作为万年历的控制核心。单片机算术运算功能强,软件编程灵活、自由度比拟大,可用软件编程实现各种算法和逻辑控制,并且由于其体积小、功耗低、技术成熟和本钱低等优点,使其在各个领域应用广泛。方案二:采用STClOF04单片机,还带有非易失性FIaSh程序内存。它是一种高性能、低功耗的8位CMoS微处理芯片,市场应用最多。其主要特点如下:8KBFLASHROM,可以擦除10

14、000次以上,数据保存10年。由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一本钱比拟低,适合做设计,方案二运算速度高、性能好,所以两种方案都有可取之处。选用方案一作为主方案,方窠二作为备用方案。显示模块的选择方案一:使用传统的LED数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比拟高,称重轻,精确可靠,操作简单。数码管采用BCD编码显示数字,程序编译容易,资源占用较少。方案二:使用液晶显示屏显示时间数字。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等

15、优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创立字符库,编程工作量大,控制器的资源占用较多,其本钱稍微偏高。在使用时,不能有静电干扰,否那么易烧坏液晶的显示芯片,不易维护。根据以上的论述,采用方案二。在本系统中,我们采用了1602液晶显示。时钟芯片的选择方案与论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时一、分、秒计数。采用此种方案虽然减少芯片的使用,节约本钱,但是,实现的时间误差较大,所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是美国DALLAS公司推出的一

16、种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,而且精度高,工作电压为2.5V5.5V,2.5V时电流小于300nAo采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。根据以上的论述,采用方案二。在本系统中,我采用了DS1302时钟芯片。键盘模块的选择在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生鼓励电流,因此需要用按键。方案一:使用红外遥控键盘。红外遥控键盘是指直接一个I/O口与红外接收管输出端相连构成红外接收电路。再配以红外遥控板构成一个红外收发系统,硬件配置简单灵活,软件

17、结构复杂。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加本钱,这种键盘适合按键数量较多的场合。根据以上的论述,因本系统需要外观简化、使用方便,所以采用方案一红外遥控键盘。总体方案论证与选择按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示模块、红外接收模块和闹铃模块共5个模块组成,电路系统构成框图如图IT所示。图1-1电子万年历电路系统构成框图主控芯片使用51系列STC89C52RC单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。采用DS130

18、2作为计时芯片,可以做到计时准确。更重要的是,DS13O2可以在很小电流的后备电源(2.55.5V电源,在2.5V时耗电小于300nA),而且DS13O2可以编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源根本不耗电。显示模块采用普通的LCD1602显示屏。第二章系统硬件电路的设计2.1 电路设计电子万年历电路原理图为如图2-1所示,系统由主控制器STC89C52RC,时钟电路DSI3O2、1602液晶显示电路、闹铃控制电路及红外接收电路组成。图2T电子万年历电路原理图2.2 系统硬件概述主控制器STC89C52RCSTC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超

19、强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟、机器周期和6时钟、机器周期可以任意选择。主要特性如下:1、增强型8051单片机,6时钟、机器周期和12时钟、机器周期可以任意选择,指令代码完全兼容传统8051单片机。2,工作电压:5.5V-3.3V3、工作频率范围:044MHz。4、用户应用程序空间为8K字节5,片上集成512字节RAM6、ISP(在系统可编程)/1AP(再应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXDP3.O,TXDP3.1)直接下载用户程序,数秒即可完成一片。7、具有看门狗功能8,共3个16位定时器/计数器。及定时器TO、Tl、T29、工作温

20、度范围:-40+85度(工业级)075度(商业级)时钟电路DS1302DS1302的性能特性:1、实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行比拟;2,用于高速资料暂存的31*8位RAM;3、最少引脚的串行I/O;4, 2.55.5V电压工作范围;5、2.5V时电流小于300nA;6、用于时钟或RAM数据读/写的单字节或多字节数据传送方式;7、简单的三线接口;8、可选的慢速充电(至VCCl)的能力。DS1302工作方式简介及数据操作原理DS1302可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。采用三线接口与CPU进行同步通信,并可采用

21、突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个33*8的用于临时性存放数据的RAM存放器。DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24小时或带AM/PM的12小时格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多字节的时钟信号或RAM数据。显示模块显示局部采用普通的1602液晶显示,如图2T,以减少硬件电路。1602液晶模块采用hd44780控制器,hd447

22、80具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,1602与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位存放器,指令存放器(IR)和数据存放器(DR)忙标志(BF),显示数RAMDDRAM),字符发生器RoM(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(A0。IR用于存放指令码,只能写入不能读出,DR用于存放数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDRAM用来存储显示的字符,能存储80个字符码,CGROM由

23、8位字符码生成5*7点阵字符160中和5*10点阵字符32种8位字符编码和字符的对应关系。红外接收模块红外接收电路采用HS0038B红外接收头接受红外线信号,硬件电路如图2-1所示,HS0038B是标准IR遥控接收器系列,支持所有主要的传输码,主要特点如下:1、光检测器及前置放大器包装在一起2、低功耗3、TTL和CMOS兼容性4、改良对电场的屏蔽干扰5、连续数据传输可能(800比特/每秒)6、对环境光抗干扰能力强HS0038B内部框图如图2-3所示图2-3HS0038B内部框图红外线遥控简介红外线遥控就是将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射波长为0.761.5Um之间的

24、近红外线来传送控制信号的。红外发光二极管一般有黑色、深蓝、透明三种颜色。我们所使用的遥控器为普通车载遥控器,采用NEC协议传输信号NEC协议标准:遥控载波的频率为38KHZ(占空比为1:3);当某个按键按下时,系统首先发射一个完整的全码,如果键按下超过108ms仍未松开,视为按键-直按下,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。一个完整的全码=引导码+用户码+用户反码+数据码+数据反码。其中,引导码高电平4.5ms,低电平4.5ms;系统码8位,数据码8位,共32位;其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为

25、8位的操作码和8位的操作反码,用于核对数据是否接收准确。收端根据资料码做出应该执行什么动作的判断。其发射码值格式为图2-4所示图2-4NEC标准下的发射码表示图发射资料时O用0.56ms高电平+0.565ms低电平=1.125ms表示,资料1用高电平0.56ms+低电平1.69ms=2.25ms表示即发射码0表示发射38khz的红外线0.56ms,停止发射0.565ms,发射码1表示发射38khz的红外线0.56ms,停止发射1.69ms温度采集模块温度采集电路采用DS18B20作为温度检测传感器,硬件电路如图2-1所示,DS18B20特点如下1、“一线总线数字化温度传感器2、3V到5.5V的

26、宽电压工作范围3、分辨率972位可设定,即精度可以设定0.5,025,0.125,0.0625闹铃控制模块闹铃控制电路采用,商业闹钟的闹铃芯片作为发声主芯片,只需将闹铃芯片输出端与扬声器相连,触发端与单片机I/O口相连,由单片机控制其触发,硬件电路如图2-1所示。电源模块电源模块采用78系列集成稳压器之7805作为主芯片,硬件电路如图2-1所示,其电路原理为由变压器将市电降为AC7.5V,再经桥式整流,电容滤波,7805稳压,及得到系统工作电压DC5V。第三章系统软件设计3.1 程序设计电子万年历的程序主要包括4个方面的内容:一是DS1302从单片机中读取数据进行计数,二是利用外部中断检测红外

27、接收头接收到的数据进行时间的调整,三是控制1602显示时间,四是读取DS18B20的温度检测信号。STC89C52RC单片机主要I/O口的分配,P2.5P2.7分别接1602的RS,RW,E三个功能端,PO口接1602的8位数据总线,P2.0接闹铃芯片触发端,P2.1-P2.3分别接DS1302的10,SCLK,RST端,P2.4接DS18B20输出端,P3.3接HSOO38输出端。本系统采用多C文件编写,*.h文件用来声明,*.c文件用来实现功能,具有较强的模块化。3.2 程序流程图程序结构图主程序流程图中断流程图结论在三月份,我开始了我的毕业论文工作,时至今日,论文根本完成。从最初的茫然,

28、到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经了一个多月的努力,紧张而又充实的毕业设计终于落下了帷幕。回想这段日子的经历和感受,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。在设计过程中,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了设计,到达了预期的目的,完了最初的设想。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同学讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我的耐心,做什么

29、事都在有耐心。此次毕业设计中学到了很多很多东西,这是最重要的。总之,这次毕业设计使我的能力得到了全方位的提高,使得我的操作能力和专业技能都有了很大的提高。这次毕业设计的制作过程是我的一次再学习,再提高的过程。在论文中我充分地运用了大学期间所学到的知识。致谢通过这次毕业设计使我对电子技术的领悟更上一层楼了,在这里要非常感谢金沙滩工作室以及我的指导老师李老师,是你的细心指导和关心,使我能够顺利的完成毕业论文。在此我要向李老师致以最衷心的感谢和深深的敬意。在今后的学习生活中我将更加勤奋努力,不辜负老师和同学们的一片期望和关心。本设计在李老师的悉心指导和严格要求下完成,从课题选择、方案论证到具体设计,

30、无不凝聚着李老师的心血和汗水。在此向李老师表示深深的感谢和崇高的敬意。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力和自信心。通过这次设计使我能力有了很大的提高,最后在老师的指导下完成了自己的设计任务,但由于自己的知识水平有限,有许多缺乏之处,恳请老师多多指教!参考文献1刘建辉,翼常Blfi等单片机智能控制技术M.国防工业大学出版社,2007.42李朝青.单片机&DSP外围数字IC技术手册M.北京航空航天大学出版社,2005.103关德新,冯文全单片机外围器件实用手册电源分册M.北京航空航天大学出版社,1998.64蔡美琴等.1k:5-51单片机系统及其应用m.高等教育出版

31、社,1992.35HellDaleChipWeemsMarkHeadingtonM.PROGRAMMINGINCFF6陈明荧.8051单片机课程设计实训教程M.清华大学出版社.7郁慧娣.微机系统及其接口技术M.东南大学出版社,19998何立民.单片机高级教程M.北京航空航天大学出版社,20039王毓银.数字电路逻辑设计M.高等教育出版社.10陈志旺.51系列单片机系统设计与实践M|.电子工业出版社,2023.0111李广弟单片机原理及应用M.北京航空航天大学出版社,200412谢嘉奎.电子线路M.高等教育出版社,199913谭浩强.C程序设计M.清华大学出版社2004.6附录主程序源代码MAI

32、N.C文件代码如下/* *时间:2013年2月4日22:45:02* *产品:万年历* *功能说明:红外遥控设定当前时间、日期;可设置闹铃,可显示当前温度值*CPU作用:51读写1302、1602、18B2O、检测HSOo38B上下电平变换;对所读取的数据进行处理#include”main.h”uint8show_1602_addr=20-MON:);/1602第一排显示初始化uint8show_1602_addrl=:TEMP:;/1602第二排显示初始化uint8show_Alarm_Clock=AlarmClock:,;uint8ShoW_Alarm_Clock1=”:”;int8TIM

33、El7=55,59,23,31,12,7,12;初始化1302时间值12930星期日23:59:55int8clock2=0,0;Uint8USER=0;进入校时标志uint8IR.TIM=0;红外按键力口、减校时标志Uint8CLOCK_TIM=0;红外按键设置闹钟力口、减校时标志uint8CLOCK-MODE=0;进入闹钟校时标志uint8CLOCK_KG=0;闹钟开关标志voidtiming(void);时间校准模块voidAIarm_Qock(Void);闹铃时间校准模块voidCIOCk一On-Off(Void);闹铃开关模块,*模块名称:*功*输*输能:入:出:Ii外INT翻无无无

34、*全局变量:*/voidlNTl-init(void)TMOD=0X01;ITl=1;/下降沿触发中断EXl=1;EA=1;)voidmain(void)int8ans;INTlJnit();init_1602(show_1602_addr,show_1602_addr1);/1602初始化set_time(TIMEl);/1302初始化while(l)read-time(TlME1);读取时间值Start_temp();启动温度传感器show_time(Ox82,TIMEl6);送与1602显示年ShOWJime(x85,TlMEI);/送与1602显示月show_time(Ox88,T!M

35、El3);*。show_time(OxcO,TlME12J);/o东。皿。show_time(0xc3,TIME111J);/。oooooooshow_time(0xc6,T!ME1OJ);/ooooo*。show_mon(T!MEl5J);。*oooans=read-temp();读取温度值日时分秒jWrite602_temp(OXCe,ans);/将读取的温度值送与1602显示if(USER!=0)进入校时timing();)if(CLOCK_MODE!=0)/进入闹铃校时Alarm_Clock();if(CLOCK_KG!=0)/翻开或关闭闹钟clock_on_off();* *模块名称

36、:timing(void)* *功能:数字钟校时* *输入:无* *输出:无* *全局变量:USERT1ME1IR.T1Mvoidtiming(void)int8val;while(USER!=O)/进入校时/*年校时*/if(USER=1)val=read-temp();读取温度值Write_1602_temp(OXCe,val);将读取的温度值送与1602显示twinkle_com(0x82);/校时对象闪烁)while(USER=1)校时对象为年Switch(IR-TlM)case1:if(T!MEl6J=99)TIME16J=0;加校时ShOW_time(OX82,+TlMEI6);1

37、R_T1M=0;break;default:break;)/*月校时*if(USER=2)val=read_temp();读取温度值Write602_temp(OXCe,val);/将读取的温度值送与1602显示twinkle_com(0x85);校时对象闪烁while(USER=2)/校时对象为月Switch(IR-TIM)case1:if(TIMEl4=l)TIMEl4=13;show_time(Ox85,-TIMEl4);/减校时IR_TIM=0;break;case2zif(TlMEl4=12)TlMEl4=0;加校时show_time(Ox85,+TlMEl4);IR_T1M=O;b

38、reak;default:break;)*=校时*米米米率米事*率事*军事事率五事*if(USER=3)val=read-temp();读取温度值Write_1602_temp(OXCe,val);将读取的温度值送与1602显示twinkle-com(0x88);/校时对象闪烁WhiIe(USER=3)校时对象为日Switch(IR-TIM)case1:if(TIMEl3=l)TIMEl3J=32;show_time(0x88,-TIMEl3J);/减校时IR_TIM=0;break;case2:if(TIMEl3=31)TlMEl13=0;加校时show-time(0x88,+TIMEl3)

39、;IR_TIM=O;break;default:break;)if(USER=4)fval=read-temp();读取温度值Write_1602_temp(OXCe,val);/将读取的温度值送与1602显示twinkle_com(0x8D;/校时对象闪烁)while(USER=4)校时对象为星期fSwitch(IR-TIM)case1:if(TIMEl5=l)TIME15=8;write_1602(0x8f,-TIMEl5);/减校时twinkle-com(0x8f);1R.T1M=0;break;case2:if(TIMEl5=7)加校时TIMElL5J=0;write.1602(0x8

40、f,+TIME15);1R_T1M=0;twinkle_com(0x8f);break;default:break;)if(USER=5)val=read-temp();读取温度值Write_1602_temp(OXCe,val);/将读取的温度值送与1602显示twinkle一Com(OXC0);校时对象闪烁while(USER=5)校时对象为小时SWitCh(IR-TIM)case1:if(-TIMEl2=24)TIME1(2J=0;加校时showJime(OxcO,TIME2);1R_TIM=0;break;default:break;if(USER=6)fval=read-temp()

41、;读取温度值Write602emp(0xce,val);将读取的温度值送与1602显示twinkle_com(0xc3);/校时对象闪烁while(USER=6)校时对象为分switch(lR.TlM)case1:if(-TlMEll=60)加校时TIMEl1=0;ShOW_time(OXC3,TIME11);1R_T1M=O;break;default:break;if(USER=7)val=read-temp();读取温度值Write_1602_temp(OXCe,val);将读取的温度值送与1602显示twinkle一COm(OXe6);校时对象闪烁)while(USER=7)校时对象为

42、秒SWitCh(IR-TIM)case1:if(-TIMElO=60)TIME1O=O;加校时show_time()xc6,TlME10);IR_T1M=O;break;default:break;)if(USER=8)USER=O;write_com()xOc);set_time(&TIMEl);return;)voidAlarm_Clock(VOid)闹铃时间设定if(CLOCK_MODE=1)show_clock_zfc(0x80,show_Alann_Clock):第一行显示为AlarnvClock:show_zfc(Oxca,show_Alarm_Clockl);/第二行显示为:ShOW_time(OXCA,clock0Ashow_time(OXCD,clock1);twinkle_com(Oxca);/校时对象闪烁)while(CLOCK,MODE=1)/闹铃小时设置Switch(CLOCK-TIM)case 1 :if(-clock0=24)clockOJ=0;加校时ShOWime(OXCa,clock。);CLOCK.TIM=O;break;default:break;)if(CLOCK_MODE=2)twinkle_com(Oxcd);校时对象闪烁while(CLOCK_MODE=2)闹铃分钟设置Switch(CLOCK-TIM)case1:if(clockl0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号