版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 目录摘 要31 系统总体设计31.1 系统设计的主要内容和具体要求31.1.1主要内容:31.1.2 具体技术要求:31.2 方案论证32 系统硬件电路设计42.1单片机控制系统包括STC89C52单片机以及它的外围电路(晶振电路和复位电路)。42.1.1晶振电路52.1.2 复位电路52.2 DS12C887时钟电路62.2.1 器件介绍62.2.2 DS12C887与单片机的连接72.3 1602液晶显示屏72.4 USB供电电路82.5 键盘电路92.6闹铃电路103 系统软件程序设计103.1 主程序运行说明及流程图103.2 DS12C887使用说明及流程图123.3 1602操作
2、说明及流程图123.4 键盘控制说明及流程图134 系统调试145 结论156 谢辞157 参考文献168 附录A:实时日历电子钟设计电路原理图169 附录B: 实时日历电子钟设计程序代码16摘 要 在日新月异的21世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。 本文设计的电子万年历属于小型智能家用电子产品。利用单片机进行控制,实时时钟芯片DS12C887时钟芯片进行记时及掉
3、电存储,外加键盘电路和显示电路,可实现时间的调整和显示。电子万年历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相当重要的现实意义和实用价值。 关键词:单片机;DS12C887;智能 1 系统总体设计 1.1 系统设计的主要内容和具体要求1.1.1主要内容:本次设计的题目是基于ds12c887的高精度时钟的设计,可以正常的显示年、月、日、星期、时、分、秒。本系统利用单片机实现具有计时校时等功能的数字时钟,是以单片机STC89C52为核心元件,同时采用1602液晶显示“时”、“分”、“秒”的现代计时装置。与传统
4、机械表相比它具有走时精确,显示直观等特点。另外具有校时功能,编程灵活,便于扩充等优点。本次设计可分为两部分:硬件部分,软件部分。硬件部分包括:STC89C52、DS12C887时钟芯片、1602LCD液晶显示器。主要由STC89C52单片机、实时时钟芯片电路、液晶显示输出电路、键盘输入电路等几大部分组成。 软件部分包括:主程序模块,DS12C887模块,LCD1602模块,键盘控制模块。1.1.2 具体技术要求: (1)在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。(2)具有闹铃设定及到时报警功能, 报警响起时按任意键可取消报警。(3)能够通过按键随时调节各个参数,按
5、键可设计4个有效键,分别为功能选择键、数值增大键、数值减小键、和闹铃查看键。(4)每次有键按下时,蜂鸣器都以短“滴”声报警。(5)利用DS12C887自身掉电可继续走时的特性,设计实现断电时间不停,再次上电时间仍然准确显示在液晶上的功能。1.2 方案论证时钟电路有各种各样的,在不同的要求和条件下有着各自的优势,本设计的题目是高精度时钟的设计,根据设计要求时钟显示正常的年、月、日、星期、时、分、秒。要想实现上述功能,所以设计要从电路设计的性价比、显示时间的精确以及稳定性为前提。本设计是要将硬件系统和软件系统有机的结合在一起,方可实现我们设计任务中的各项要求。在以单片机为核心构成的装置中,经常需要
6、一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。DS12C887是一个综合性能较好且价格便宜的并行接口实时时钟芯片。利用单片机进行控制,采用DS12C887作为实时时钟芯片,并与单片机进行同步通信,外加显示电路、键盘电路、闹铃电路,即构成一个基本的电子万年历系统。若还要添加其他功能,在这基础上外扩电路即可。2 系统硬件电路设计 按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、供电模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构成框图如图2-1所示。图2-1实时日历时钟电路系统构成框图 2.1单片机控制系统包括STC89C5
7、2单片机以及它的外围电路(晶振电路和复位电路)。图2-2单片机控制系统2.1.1晶振电路晶振的作用是为系统提供基本的时钟信号。晶振电路中接在晶振旁的两个电容,叫负载电容。一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C2、C3可在30pF时振荡器有较高的频率稳定性。 图2-3 单片机晶振电路2.1.2 复位电路 单片机复位的条件是当单片机振荡器工作时,RST引脚上出现持续两个机器周期的高电平,从而实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,RST引脚上高电平
8、必须持续10ms以上才能保证有效复位。STC89C52的复位是由外部的复位电路来实现的: 图2-4 单片机复位电路2.2 DS12C887时钟电路 本次设计采用实时时钟芯片是DS12C887,这种实时时钟芯片具备年、月、日、星期、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。2.2.1 器件介绍 (1) 器件特性 DS12C887 实时时钟芯片功能丰富,可 以用来直接代替 IBM PC 上的时钟日历芯片 DS12887,同时,它的管脚也和 MC146818B、DS12887 相兼容。由于 DS12C887 能够自动产生世纪、 年、月、日、时、分、秒等时间信息,
9、其内 部又增加了世纪寄存器,从而利用硬件电路 解决子“千年”问题;DS12C887 中自带有锂电 池,外部掉电时,其内部时间信息还能够保 持 10 年之久;对于一天内的时间记录,有12 小时制和 24 小时制两种模式。在 12 小时 制模式中,用 AM 和 PM 区分上午和下午; 时间的表示方法也有两种,一种用二进制数 表示,一种是用 BCD 码表示;DS12C887 中 带有 128 字节 RAM,其中有 11 字节 RAM 用来存储时间信息,4 字节 RAM 用来存储 DS12C887 的控制信息,称为控制寄存器,113 字节通用 RAM 使用户使用;此外用户还 可对 DS12C887 进
10、行编程以实现多种方波输 出,并可对其内部的三路中断通过软件进行 屏蔽。(2) 引脚功能 DS12C887 的引脚排列如图 2-5所示,各管脚的功能说明如下:GND、VCC:直流电源,其中 VCC 接+5V 输入,GND 接地,当 VCC 输入为+5V 时,用 户可以访问 DS12C887 内 RAM 中的数据,并可对其进行读、写操作;当 VCC 的输入小于+4.25V 时,禁止用户对内部 RAM 进行读、写操作,此时用户不能正确获取芯片内的时间信 息;当 VCC 的输入小于+3V 时,DS12C887 会自动将电源发换到内部自带的锂电池上,以保证 内部的电路能够正常工作1)MOT:模式选择脚,
11、DS12C887 有两种工作模式,即 Motorola 模式和 Intel 模式,当 MOT 接 VCC 时,选用的工作模式是 Motorola 模式,当 MOT 接 GND 时,选用的是 Intel 模式。本 文主要讨论 Intel 模式。23)SQW:方波输出脚,当供电电压 VCC 大于 4.25V 时,SQW 脚可进行方波输出,此时用 户可以通过对控制寄存器编程来得到 13 种方波信号的输出。AD0AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出 现在 AD0AD7 上的是地址信息,可用以选通 DS12C887 内的 RAM,总线周期的后半部分出 现在 AD0A
12、D7 上 的数据信息。14)AS:地址选通输入脚,在进行读写操作时,AS 的上升沿将 AD0AD7 上出现的地址信 息锁存到 DS12C887 上,而下一个下降沿清除 AD0AD7 上的地址信息,不论是否有效, DS12C887 都将执行该操作。17)DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当 MOT 接 VCC 时,选用 Motorola 工作模式,在这种工作模式中,每个总线周期的后一部分的 DS 为高电平,被称为数 据选通。在读操作中,DS 的上升沿使 DS12C887 将内部数据送往总线 AD0AD7 上,以供外 部读取。在写操作中,DS 的下降沿将使总线 AD0AD7 上
13、的数据锁存在 DS12C887 中;当 MOT 接 GND 时,选用 Intel 工作模式,在该模式中,该引脚是读允许输入脚,即 Read Enable。15)R/W:读/写输入端,该管脚也有 2 种工作模式,当 MOT 接 VCC 时,R/W 工作在 Motorola 模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当 R/W 为高电平时 为读操作,R/W 为低电平时为写操作;当 MOT 接 GND 时,该脚工作在 Intel 模式,此时该作 为写允许输入,即 Write Enable。13):片选输入,低电平有效。19):中断请求输入,低电平有效,该脚有效对 DS12C887 内的
14、时钟、日历和 RAM 中的 内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET 可以直接接 VCC,这样可以保证 DS12C887 在掉电时,其内部控制寄存器不受影响。2.2.2 DS12C887与单片机的连接 DS12C887是一款纯数字式的芯片,只要它与单片机的I/O口直接相连就可以操作。操作DS12C887时钟芯片共需要13条信号线,分别是并行数据地址复用线AD0AD7、CS、AS、R/W、DS、和IRQ。然后将RESET引脚固定接高电平,再将DS12C887芯片的VCC和GND引脚正确连接即可。DS12C887的管脚如图2-4所示。 图2-5 DS12C887与单
15、片机的连接2.3 1602液晶显示屏 液晶显示器简称为LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特征实现显示信息的。液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中得到日益广泛的应用。下面是1602字符型LCD引脚说明: 第1脚:VSS为电源地,接GND。第2脚:VDD接5V正电源。 第3脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读
16、操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:EN端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7为8位双向数据线。 第15脚:BLA背光电源正极(+5V)输入引脚。 第16脚:BLK背光电源负极,接GND。 图2-6 1602与单片机连接图2.4 USB供电电路 由于当Vcc输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读/写操作;当Vcc输入小于+4.25V时,禁止用户对内部RAM进行读/写操作,此时用户不
17、能正确获取芯片内的时间信息。故本设计采用USB接口外加+5V充电器供电。 图2-7USB供电电路2.5 键盘电路 本设计共采用按键4个,分别是功能选择键、数值增大键、数值减小键和闹铃查看键。分别与单片机的P2.1、P2.2、P2.3、P2.4相连。在时间调节中可按功能选择键,配合数值增大、减小功能键分别对日期、星期、时间进行调节。在调节过程中,显示器光标会在对应调节项目上游走,分别是:“秒、分、时、年、月、日、星期”。在闹铃设置中,可按闹铃查看键,配合数值增大、减小功能键对闹铃时间进行设置。图2-8键盘电路 2.6闹铃电路 随着闹铃时间的设定,当实时时间达到闹钟的时间时,P12会输出一个低电平
18、,如图2-8所示,此时三极管导通,蜂鸣器持续发声。当P2输出一个高电平时,三极管截止,蜂鸣器停止发声。 图2-9闹铃电路3 系统软件程序设计 在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制实现想要的结果。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定
19、功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:单个模块比起一个完整的程序易编写及调试;模块可以共存,一个模块可以被多个任务在不同条件下调用;模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,主要由主程序DS12C887子程序、LCD1602子程序及键盘控制子程序构成。3.1 主程序运行说明及流程图在这个设计中,STC89C52主要功能是存储程序、根据程序的内容对各个端口进行判断并做出相应的处理;DS12C887主要的功能是控制年、月、日、星期、时、分、秒的变化及存储,以便让单片机读取;LCD1602主要的功能是将时间内
20、容显示出来。主程序主要实现了从DS12C887各时间单元中读出数据并送到LCD1602中显示的功能,同时检测有没有按键按下,如果有键被按下,则执行按键处理子程序。首先进行DS12C887时钟芯片和LCD1602的初始化函数,然后进行按键扫描,不断地检测按键是否按下,读取DS12C887时钟芯片的数据,并且送到液晶显示器显示;当数据发生变化的时候,重新进行扫描写入。主程序流程图如图3-1所示。 图3-1主程序流程图3.2 DS12C887使用说明及流程图 进入主程序后,DS12C887首先进行初始化设置,若串行口有数据,最后则调用函数从日历时钟芯片获取日历时钟信息,调用显示函数显示日历时钟信息显
21、示出来,重复进行。这部分包括对DS12C887某个单元写、读DS12C887某个单元的内容和对DS12C887设定时间。 DS12C887的流程图如图3-2所示。 图3-2 DS12C887的流程图3.3 1602操作说明及流程图 显示主要是通过从芯片中读入程序,分别对秒、分、时、星期、日、月、年进行显示,并且通过键盘的操作,对时间进行加减操作,使时间更新显示。 1602LCD的流程图如图3-3所示。 图3-3 1602LCD的流程图3.4 键盘控制说明及流程图 当功能键按下时,秒位置闪烁。每次按下功能键按下时,分别在秒、分、时、星期、日、月、年处闪烁。当功能键再次按下时,加一或减一键有效并在
22、相应位置加一或减一。如选定秒位,按下增大键,调整显示位秒的增加,当秒增加至满60后,自动清零,同时调节一次送至下一位显示,显示位置重新回到调节处;当按下减小键时,调整显示位秒的减小,当秒减至0后,自动跳转为59,同时调节一次送至下一位显示,显示位置重新回到调节处;年月日时分的调节原理相同。键盘加一减一流程图如图3-4所示。图3-4键盘加一减一流程图4 系统调试 系统调试共分为两大部分:一个是软件调试,另一个是硬件调试。其中软件调试通过Keil uVision4实现;硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。由于本系统线路连接比较简单,加之本人焊接技术过硬,故本系统硬件调试一次通过,没
23、有硬件故障。难度主要在软件调试上。本人原先的构思是闹铃采用播放音乐的形式,但发现闹铃音乐播放时,液晶上不能实时显示时间,即处于时间停滞状态。经分析主函数程序执行过程后,得出闹铃采用播放音乐的方案不能实现。因为单片机至多每隔一秒就要从DS12C887中读取时间并送液晶显示,这样才能保证液晶上的时间是一秒一秒跳动的。也就是说单片机要执行别的任务(闹铃)必须要在一秒的时间间隙内完成,否则时间就无法实时显示。而一首音乐的播放时间不可能少于一秒,故闹铃声音只能采用 “滴”声。设计调试完成后,给系统上电,液晶显示屏显示结果如图4-1所示:图4-15 结论 本设计硬件电路较简单,所用器件较少,电路中使用了S
24、TC89C52单片机、DS12C887时钟芯片、1602液晶显示器等主要器件,实现计时、校时和闹铃功能。在对芯片的管脚功能和用法有充分的了解后,根据设计要求设计硬件电路,包括单片机控制电路、时钟电路、显示电路、供电电路、键盘电路和闹铃电路。然后通过软件编程,实现了对年、月、日、时、分、秒、星期、闰年和阴历的自动调整,用按键进行控制,用液晶模块进行显示,并具有闹铃功能。实时日历电子钟可以正常显示时间并进行时间调整,基本完成了预期要实现的目标。6 谢辞 首先,在这里感谢学校给我们安排这次课程设计,使我有一个可以自己动手学习的机会。在此之前,我还没有设计过什么像样的硬件电路,通过这次实践,使我初步掌
25、握了Altium Designer的使用方法,锻炼了电路板制作的能力,包括洗板子,焊接,调试等,另一方面,该设计的软件是我写的第一个实用性软件,而且软件规模较大,功能较为齐全,这大大锻炼了我写软件的能力,在软件编程过程中,遇到了这样那样的问题,有些问题至今还没有解决,但是大部分的问题都在我的认真思考,不断尝试中得以解决,这也对我以后调试软件很有帮助,而且在软件的书写过程中,也暴露出了我基础知识不牢导致一些很低级但又很严重的问题,我以后一定会加强基础知识的巩固,为将来做更大的项目打下坚实的基础。其次,在这要感谢我们可敬可爱的朱卫华老师,虽然老师工作繁忙,但还是会时常关注学生的课设进展,并给出很多
26、宝贵的点拨,帮助我们解决了很多技术上难题。可以说,没有老师的悉心指导,就不会有我今天的作品。 最后,我还要感谢这次课程设计中给我帮助的同学,在我调试软件最失望的时候,是你们给了我安慰,让我重新坚定了我的信念。在我对Altium Designer的使用不太熟悉的情况下,是你们的悉心指导,使我克服了重重困难,并学会了很多操作方法,最终完成了原理图的设计是你们的帮助,我才能顺利的完成课程设计任务。谢谢你们的帮助!7 参考文献 1 郭天祥. 新概念51单片机C语言教程.北京:电子工业出版社,2009. 2 谭浩强. C语言程序设计. 北京:清华大学出版社,1999.3 康华光.电子技术基础(第五版).
27、 数字部分/模拟部分.北京:高等教育出版社,2006.8 附录A:实时日历电子钟设计电路原理图9 附录B: 实时日历电子钟设计程序代码 #include"define.h"void delay(uint z) uint j;for(;z>0;z-)for(j=110;j>0;j-);void write_com(uchar com) /液晶写命令函数en=0;rs=0;P0=com;en=1;delay(1);en=0;void write_data(uchar date) /液晶写内容en=0;rs=1;P0=date;en=1;delay(1);en=0;v
28、oid write_ds(uchar add,uchar date) /芯片写指令dscs=0;dsas=1;dsds=1;dsrw=1;P0=add;dsas=0;dsrw=0;P0=date;dsrw=1;dsas=1;dscs=1;read_ds(uchar add) /芯片读指令uchar ds_date;dscs=0;dsas=1;dsds=1;dsrw=1;P0=add; /写地址dsas=0;dsds=0;P0=0xff;ds_date=P0;dsds=1;dsas=1;dscs=1;return ds_date;void set_alarm(uchar ashi,uchar a
29、fen,uchar amiao)/闹钟设初值write_ds(1,amiao);write_ds(3,afen);write_ds(5,ashi);void set_time()/时间设初值write_ds(0,10);write_ds(2,10);write_ds(4,10);write_ds(6,2);write_ds(7,10);write_ds(8,10);write_ds(9,10);void init()EA=1; EX1=1; /开外部中断1IT1=1; /设置负跳变沿触发中断dula=0; /关闭数码管,以免出现乱码wela=0; /关闭数码管,以免出现乱码en=0; /液晶使
30、能/alone_key=0; /把矩阵键盘化用为独立键盘 使用独立键盘则不需执行此项set_alarm(10,11,10); /设置闹钟 为什么分钟设置为08不可以set_time(); /首次上电初始化时间write_ds(0x0A,0x20); / 控制A寄存器来开启晶体振荡器且保持时钟运行。write_ds(0x0B,0x26); /设置24小时模式,数据二进制模式,开启闹铃中断。write_com(0x38); /液晶初始化write_com(0x0c); /开显示,不显示光标write_com(0x06); /写一个字符后地址指针自动加一write_com(0x01); /显示清零,
31、数据指针清零delay(5); write_com(0x81+0x10); /写到后16位上,再移过来形成特效 for(num=0;num<14;num+)/写液晶初始内容write_data(tablenum); delay(50);for(num=0;num<16;num+) /移位指令write_com(0x18);delay(50);write_com(0x83+0x50);/第二行写初始内容for(num=0;num<8;num+)write_data(table1num);delay(50); void write_sfm(uchar add,uchar date
32、)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x50+add);write_data(0x30+shi);write_data(0x30+ge);void write_nyr(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x10+add);write_data(0x30+shi);write_data(0x30+ge);void write_xq(uchar date)switch(date)case 0:write_com(0x80+
33、0x10+12);write_data('S');delay(5);write_data('U');delay(5);write_data('N');delay(5);break;case 1:write_com(0x80+0x10+12);write_data('M');delay(5);write_data('O');delay(5);write_data('N');delay(5);break;case 2:write_com(0x80+0x10+12);write_data('T
34、39;);delay(5);write_data('U');delay(5);write_data('E');delay(5);break;case 3:write_com(0x80+0x10+12);write_data('W');delay(5);write_data('E');delay(5);write_data('D');delay(5);break;case 4:write_com(0x80+0x10+12);write_data('T');delay(5);write_data(
35、9;H');delay(5);write_data('U');delay(5);break;case 5:write_com(0x80+0x10+12);write_data('F');delay(5);write_data('R');delay(5);write_data('I');delay(5);break;case 6:write_com(0x80+0x10+12);write_data('S');delay(5);write_data('A');delay(5);write_dat
36、a('T');delay(5);break;write_com(0x10);write_com(0x10);void key_scan() while(flag_alarm) /flag_alarm=1证明闹钟响了if(adj=0)|(up=0)|(down=0)|(nz=0) /按任意键关闭delay(5);if(adj=0)|(up=0)|(down=0)|(nz=0)flag_alarm=0;beep=1;while(!(adj&&up&&down&&nz);if(adj=0)delay(5);if(adj=0)beep=0
37、;while(!adj);beep=1;adjnum+;if(flag_nz=1)if(adjnum=4)adjnum=1;if(adjnum=1)flag_key=1; /当进入调试状态,不再执行芯片读写程序write_com(0x80+0x50+10);write_com(0x0f); /光标闪烁if(adjnum=2)write_com(0x80+0x50+7);if(adjnum=3)write_com(0x80+0x50+4);if(adjnum=4)write_com(0x80+0x10+4);if(adjnum=5)write_com(0x80+0x10+7);if(adjnum
38、=6)write_com(0x80+0x10+10);if(adjnum=7)write_com(0x80+0x10+13);if(adjnum=8)adjnum=0; write_com(0x0c); /退出调节模式就取消光标 flag_key=0; /执行芯片读写程序write_ds(0,miao); /时间调好后就保留所调时间write_ds(2,fen);write_ds(4,shi); write_ds(9,nian); /日期调好后就保留所调日期write_ds(8,yue);write_ds(7,ri);write_ds(6,xq); /星期调好就保留所调星期if(adjnum!
39、=0)if(up=0)delay(5);if(up=0)beep=0;while(!up);beep=1;if(adjnum=1)miao+;if(miao=60)miao=0;write_sfm(9,miao);write_com(0x10);if(adjnum=2)fen+;if(fen=60)fen=0;write_sfm(6,fen);write_com(0x10);if(adjnum=3) shi+;if(shi=24)shi=0;write_sfm(3,shi);write_com(0x10);if(adjnum=4) nian+;if(nian=100)nian=0;write_
40、nyr(3,nian);write_com(0x10);if(adjnum=5) yue+;if(yue=13)yue=1;write_nyr(6,yue);write_com(0x10);if(adjnum=6) ri+;switch(yue)case 1:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;case 2:if(ri=30)ri=1;write_nyr(9,ri);write_com(0x10);break;case 3:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;
41、case 4:if(ri=31)ri=1;write_nyr(9,ri);write_com(0x10);break;case 5:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;case 6:if(ri=31)ri=1;write_nyr(9,ri);write_com(0x10);break;case 7:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;case 8:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;case
42、9:if(ri=31)ri=1;write_nyr(9,ri);write_com(0x10);break;case 10:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;case 11:if(ri=31)ri=1;write_nyr(9,ri);write_com(0x10);break;case 12:if(ri=32)ri=1;write_nyr(9,ri);write_com(0x10);break;if(adjnum=7)xq+;if(xq=7)xq=0;write_xq(xq);if(down=0)delay(5);if(do
43、wn=0)beep=0;while(!down);beep=1;if(adjnum=1)miao-;if(miao=-1)miao=59;write_sfm(9,miao);write_com(0x10);if(adjnum=2) fen-;if(fen=-1)fen=59;write_sfm(6,fen);write_com(0x10);if(adjnum=3)shi-;if(shi=-1)shi=23;write_sfm(3,shi);write_com(0x10);if(adjnum=4)nian-;if(nian=-1)nian=99;write_nyr(3,nian);write_com(0x10);if(adjnum=5)yue-;if(yue=0)yue=12;write_nyr(6,yue);write_com(0x10);if(adjnum=6)ri-;if(ri=0)switch(yue)case 1:ri=31; break;case 2:ri=29; break;case 3:ri=31; break;case 4:ri=30; break;case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业行政总监委托管理协议3篇
- 2024年木材采伐与销售协议3篇
- 2024年珠宝店承包合同样本3篇
- 2024年劳动合同:职位描述与薪酬福利3篇
- 2024年大数据分析平台建设合同2篇
- 2024年汽车烤漆房租赁协议范本
- 2024年度职场健康与安全保卫合同
- 沙盘教学模型设计与制作合同20242篇
- 石头料物流与运输服务合同(2024年版)3篇
- 商业用途房子交易合同样本20242篇
- 《班级安全员培训》课件
- 2024-2030年中国风电运维行业发展现状规划分析报告
- 福建省福州第十八中学2023-2024学年八年级上学期期中语文试题
- 光伏项目达标投产实施细则-施工
- 2024年新疆(兵团)公务员考试《行测》真题及答案解析
- 完整审计合同模板
- 统编版(2024)七年级上册道德与法治第三单元《珍爱我们的生命》测试卷(含答案)
- 中金在线测评多少题
- 2024年新人教版道德与法治七年级上册全册教案(新版教材)
- 小学六年级数学100道题解分数方程
- 产前检查的操作评分标准
评论
0/150
提交评论