单片机液晶构成的电子时钟毕业论文_第1页
单片机液晶构成的电子时钟毕业论文_第2页
单片机液晶构成的电子时钟毕业论文_第3页
单片机液晶构成的电子时钟毕业论文_第4页
单片机液晶构成的电子时钟毕业论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计论文基于51单片机的电子钟设计部门:电气工程系专业:电机和电器摘要随着单片机技术的飞速发展,现代电子产品几乎渗透到了社会的各个领域,有力地促进了社会生产力的发展和社会信息化的提高,也进一步提高了现代电子产品的性能。 .时间就是金钱,时间就是生命,时间就是胜利准确掌握和分配时间对人来说至关重要,而时钟是我们生活中必不可少的工具。电子钟的设计方法很多,但基于单片机、LCD显示的电子钟具有编程灵活、精度高、携带方便、显示直观等特点。使用STC89C52单片机对DS1302时钟芯片进行读写,通过1602字液晶显示实时时钟信息,从而形成单片机电子时钟。关键词:微控制器,电子钟,STC89C52

2、目录TOC o 1-3 h z u HYPERLINK l _Toc292297214 HYPERLINK l _Toc292297217 简介 PAGEREF _Toc292297217 h 1 HYPERLINK l _Toc292297218 概述 PAGEREF _Toc292297218 h 1 HYPERLINK l _Toc292297219 研究目的 PAGEREF _Toc292297219 h 1 HYPERLINK l _Toc292297220 第一章设计要求及方案论证 PAGEREF _Toc292297220 h 2 HYPERLINK l _Toc29229722

3、1 1.1设计要求: PAGEREF _Toc292297221 h 2 HYPERLINK l _Toc292297222 1.2系统基本方案选择与论证 PAGEREF _Toc292297222 h 2 HYPERLINK l _Toc292297223 1.2.1 MCU芯片选型方案及演示: PAGEREF _Toc292297223 h 2 HYPERLINK l _Toc292297224 1.2.2显示模块选择方案及理由: PAGEREF _Toc292297224 h 2 HYPERLINK l _Toc292297225 1.2.3时钟芯片选型方案及演示: PAGEREF _T

4、oc292297225 h 3 HYPERLINK l _Toc292297226 1.3电路设计的最终决定 PAGEREF _Toc292297226 h 3 HYPERLINK l _Toc292297227 第二章主要部件介绍 PAGEREF _Toc292297227 h 4 HYPERLINK l _Toc292297228 2.1 STC89C52介绍 PAGEREF _Toc292297228 h 4 HYPERLINK l _Toc292297229 2.1.1 STC89C52主要功能及PDIP封装 PAGEREF _Toc292297229 h 4 HYPERLINK l

5、_Toc292297230 2.1.2 STC89C52管脚介绍 PAGEREF _Toc292297230 h 4 HYPERLINK l _Toc292297231 2.1.3 STC89C52最小系统 PAGEREF _Toc292297231 h 5 HYPERLINK l _Toc292297232 2.2 DS1302时钟芯片介绍 PAGEREF _Toc292297232 h 7 HYPERLINK l _Toc292297233 22.1 DS1302概述 PAGEREF _Toc292297233 h 7 HYPERLINK l _Toc292297234 2.2.2 DS1

6、302管脚介绍 PAGEREF _Toc292297234 h 7 HYPERLINK l _Toc292297235 使用 PAGEREF _Toc292297235 h DS1302 7 HYPERLINK l _Toc292297236 2.3 1602字符LCD介绍 PAGEREF _Toc292297236 h 9 HYPERLINK l _Toc292297237 2.3.1 1602液晶概述 PAGEREF _Toc292297237 h 9 HYPERLINK l _Toc292297238 2.3.2 1602管脚介绍 PAGEREF _Toc292297238 h 10 H

7、YPERLINK l _Toc292297239 2.3.3 1602字符液晶使用方法 PAGEREF _Toc292297239 h 11 HYPERLINK l _Toc292297240 第3章系统硬件设计 PAGEREF _Toc292297240 h 14 HYPERLINK l _Toc292297241 3.1电路设计框图 PAGEREF _Toc292297241 h 14 HYPERLINK l _Toc292297242 3.2系统硬件概述 PAGEREF _Toc292297242 h 14 HYPERLINK l _Toc292297243 第4章系统的软件设计 PAG

8、EREF _Toc292297243 h 15 HYPERLINK l _Toc292297244 4.1程序流程图 PAGEREF _Toc292297244 h 15 HYPERLINK l _Toc292297245 4.2源程序 PAGEREF _Toc292297245 h 17 HYPERLINK l _Toc292297246 总结 PAGEREF _Toc292297246 h 35 HYPERLINK l _Toc292297247 至 PAGEREF _Toc292297247 h 36介绍概述时间对人来说非常宝贵,准确把握和分配时间对人来说非常重要。因此,自从钟表发明以来

9、,它就成为了人类的好朋友。随着时间的推移和科学技术的不断发展和提高,人们对时间测量的准确性要求越来越高,应用也越来越广泛。如何让时钟更好、更方便、更准确地显示时间,这就需要人们不断地设计和开发新的时钟。大多数高精度计时工具使用石英晶体振荡器。由于电子钟、石英表、石英钟均采用石英工艺,走时精度高,稳定性好,使用方便,无需经常调校。数字电子钟采用集成电路计时,译码代替机械传动,LED显示屏代替指针显示时间,减少了计时误差。并且点数的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常运行编制依据。在单片机应用系统中,时钟有两层含义:一是保证系统正常工作的参考振荡定时信号,

10、主要由晶振和外围电路组成。晶振频率的大小决定了单片机系统的工作速度;二是指系统的标准计时时钟,即计时时间。它通常有两种实现方式:一种是使用软件实现,即使用单片机部分的可编程定时器/计数器来实现;另一种是使用专门的时钟芯片来实现。研究目的采用STC89C52单片机和DS1302芯片,外设按键和液晶显示器等元件,设计了一种基于单片机的电子时钟。设计的电子时钟显示在液晶显示屏上,按下按钮即可设置时间。第一章设计要求与方案论证1.1设计要求:具有年、月、日、周、时、分、秒显示功能具有年、月、日、周、时、分、秒校准功能具有12/24小时切换显示功能1.2系统基本方案的选择与论证1.2.1单片机芯片选型方

11、案及演示:选项一:硬件核心采用STC89C52芯片。 STC89C52 部分有 8KB ROM 存储空间、512 字节数据存储空间和 2K 字节 EEPROM 存储空间。它与 MCS-51 系列微控制器完全兼容。 STC89C52可以通过串口下载。选项二:使用 AT89S52。 AT89S52芯片具有8K字节的程序存储空间,256字节的数据存储空间,无需EEPROM存储空间,还与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。这两款单片机都能完全满足设计需求。 STC89C52比ATS89C52便宜,抗干扰能力强。考虑到成本因素,选择了STC89C52。1.2.2显示模块选择场景和参数

12、:选项一:采用点阵数码管显示。点阵数码管由八行八列的发光二极管组成。它更适合显示文本。如果是用来显示数字的,太浪费了,而且比较高,所以不作为显示器使用。选项二:LED数码管动态扫描。 LED数码管价格便宜,最适合显示数字,但是功耗大,显示容量不够,所以没有采用这种方案。第三种解决方案:采用LCD液晶显示。液晶屏的显示功能强大,可以显示大量文字,显示形式多样,清晰可见,价格适中,所以采用液晶数码管作为显示器。1.2.3时钟芯片的选型方案及演示:选项一:直接用单片机定时计数器提供秒信号,用程序计算年、月、日、周、时、分、秒。这种方案虽然减少了芯片的使用,节省了成本,但实现的时间误差比较大。所以不要

13、使用这个方案。选项二:DS1302时钟芯片用于实现时钟。 DS1302芯片是一款高性能时钟芯片,可自动计算秒、分、时、日、周、月、年、年,带闰年补偿,精度高。工作电压为2.5 V 5.5V范围,2.5V时功耗小于300 nA 。电路设计的最终决定基于上述方案,本工作方案选择:以STC89C52单片机为主控系统; DS1302用作时钟芯片; 1602 LCD用作显示设备。第二章主要部件介绍2.1 STC89C52简介2.1.1STC89C52主要功能及PDIP封装宏晶科技公司生产的兼容工业标准MCS-51指令集和输出引脚的单片机。 STC 89C52的主要功能如表1所示,其PDIP封装如图2所示

14、表1:STC89C52 的主要功能主要功能特点兼容MCS51指挥系统8K可重写闪存 ROM32个双向I/O端口256x8 位内存三个 16 位可编程定时器/计数器中断时钟频率 0-24MHz2个串行中断可编程 UART 串行通道2个外部中断源共6个中断源2条读写中断线3 级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2.1.2STC89C52引脚介绍主电源引脚(2个)VCC(Pin40):电源输入,接+5V电源GND(Pin20):地线外部晶振引脚(2)XTAL1(Pin19):芯片振荡电路的输入端XTAL2(Pin20):芯片振荡电路的输出端控制销(4个)RST/VPP(Pin9):复位

15、引脚,引脚高电平2个机器周期将复位单片机。ALE/PROG(Pin30):地址锁存使能信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的外部选通,接低电平时从外部程序存储器读取指令,接高电平时从内部程序存储器读取指令。可编程输入/输出引脚(32)STC 89C52单片机有4组8位可编程I/O口,分别为P0、P1、P2、P3口。每个端口有 8 位(8 个引脚),共 32 个端口。P0口(Pin39Pin32):8位双向I/O口线,命名为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,命名为P1.0P1.7P2口(Pin21Pin28):8位

16、准双向I/O口线,命名为P2.0P2.7P3口(Pin10Pin17):8位准双向I/O口线,命名为P3.0P3.7图2:STC89C52 PDIP封装图2.1.3STC89C52 最小系统最小系统是可以正常工作的最简单的电路。 STC89C52的最小应用系统电路如图3所示。它包含五个电路部分:电源电路、时钟电路、复位电路、片外程序存储器选择电路、输入/输出接口电路。其中,电源电路、时钟电路和复位电路是保证单片机系统正常工作的最基本的三部分电路,缺一不可。电源电路芯片的管脚VCC一般接直流稳压电源+5V,管脚GND接电源+5V的负极。电源电压在45.5之间,可以保证单片机系统正常工作。为了提高

17、电路的抗干扰性能,通常在超前角Vcc和GND之间连接一个10uF的电解电容和一个0.1uF的贴片电容,可以抑制杂波串扰,有效保证电路的稳定性。时钟电路MCU的18脚和19脚外接晶振和电容。 STC89C52芯片的工作频率可以在233MHz之间选择。 MCU的工作频率取决于晶振XT的频率,通常选用11.0592MHz晶振。这两个小电容的值通常为3pF,以保证振荡电路的稳定性和快速性。一般情况下,如果复位电路在引脚RST上保持24个主频周期的高电平,单片机就可以完成复位,但为保证系统可靠复位,复位电路应保持引脚RST高电平超过 10ms。如图所示,复位电路具有上电自动复位功能。电路上电时,由于C1

18、电容两端的电压值不能突变,+5V电源会通过电容给RST提供充电电流,所以RST引脚上会产生高电压。电平,使单片机进入复位状态。随着电容 C1 的充电,其两端的电压上升,RST 电位下降,最后单片机退出复位状态。正常工作时,可以按复位键复位单片机图 3:STC89C52 最小系统2.2 DS1302时钟芯片介绍22.1 DS1302概述DS1302是美国DALLAS公司推出的一款高性能、低功耗、基于RAM的实时时钟芯片。它可以对年、月、日、星期日、小时、分钟和秒进行计时。具有闰年补偿功能。为2.5V5.5V。它采用双电源(主电源和备用电源),并提供对后电源进行涓流充电的能力。使用三线接口与 CP

19、U 同步通信图 4:DS1302 封装图2.2.2DS1302引脚介绍每个引脚的作用是:Vcc:主电源; Vcc2:备用电源。当Vcc2Vcc1+0.2V时,Vcc2给DS1302供电;当 Vcc2Vcc1 时,Vcc1 给 DS1302 供电。SCLK:串行时钟输入,控制数据输入输出I/O:三线接口双向数据线CE:输入信号,读写数据时必须为高电平2.2.3DS1302 使用方法(1)时钟芯片DS1302的工作原理:DS1302必须在每次读写程序前进行初始化,先将SCLK端设置为“ ” 0”,再将RST端设置为“ ” 1”,最后给出SCLK脉冲;读/写时序如图5所示。表2是DS1302的控制字

20、。此控制字的第 7 位必须设置为 1。如果为 0,则不能对 DS1302 进行数据读写。第 6 位,读/写程序时 RAM=1,读/写时间时 CK=0。位 1 到 5 指的是操作单元的地址。位 0 是读/写操作位。执行读操作时,该位为 1;当该位为 0 时,表示执行了写操作。控制字节总是从最低有效位开始输入/输出。 DS1302的日历和时间寄存器的内容如表6所示:“CH”为时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为 0 时,时钟开始运行。 “是写保护位,在对时钟和RAM进行任何写操作之前,WP必须为0。当“WP”为 1 时,写保护位防止写入任一寄存器。(2

21、) DS1302的控制字节DS1302的控制字如表所示。控制字节的最高有效位(第 7 位)必须为逻辑 1。如果为 0,则无法将数据写入 DS1302。如果bit 6为0,表示访问日历时钟数据,1表示访问RAM数据;位 5 到 1 表示运算单元的地址;如果最低位(bit 0)为0,表示进行写操作,1表示读操作,控制字节总是从最低位开始传送。1内存A4A3A2A1A0研发CK写表 2:DS1302 控制字(3) 数据输入输出(I/O)在输入控制指令字后的下一个 SCLK 时钟的上升沿,将数据写入 DS1302,数据输入从低位开始,即第 0 位。同理,读出 DS1302 的数据在 8 位控制命令字之

22、后的下一个 SCLK 脉冲的下降沿,从低位 0 到高位 7 读取数据。其读写时序如图图5:DS1302读写时序(4) DS1302寄存器DS1302中有12个与时间和日期相关的寄存器,其中7个以BCD格式存储数据,其读写地址如下表所示读寄存器写寄存器位7位7位7位7位7位7位7位7环绕81H80H甲烷10 秒第二00-5983H82H10点分钟00-5985H84小时12010时间时间0-2324上午下午1-1287H86H第十名天1-3189H88H十月月亮1-128BH8AH00000星期1-78DH8通道10年年00-998FH8EH可湿性粉剂0000000表 3:DS1302 时钟寄存

23、器第二个寄存器第一行, CH为时钟暂停标志位,为1时时钟停止,为0时时钟运行第二行子寄存器,bit0bit6代表分钟数,因为使用了BCD编码,低四位能表示的最大数为9,计数满到高三位。第三行时间寄存器 12/24 用于定义 DS1302 小时的工作模式。在 12 小时制模式下,bit5 为 1 表示 PM 下午,bit5 到 0 表示 AM 早上。控制寄存器第8行,bit7为写保护位WP,当WP为1时,写保护位可以防止对任何寄存器的写操作,在对时钟和RAM进行任何写操作之前,WP位必须为0此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器和RAM相关寄存器。时钟突发寄存器

24、可以一次顺序读取和写入除充电寄存器之外的所有寄存器内容。 DS1302的RAM相关寄存器分为两类:一类是单个RAM单元,共31个,每个单元配置为8位字节,其命令控制字为C0HFDH,其中奇数是读操作,偶数是写操作;另一种是突发模式下的 RAM 寄存器。在这种模式下,可以一次对所有 31 个字节的 RAM 进行读写,命令控制字为 FEH(写)和 FFH(读)。2. 3 1602字符液晶介绍2.3.11602液晶概述工业字符液晶, 1602表示显示容量为16*2,即可以同时显示两行,每行16个字符。常见的 1602 字符 LCD 有两种,一种显示黑色字体,绿色背光,另一种显示白色字体,蓝色背光。目

25、前市面上大部分字符液晶都是基于HD44780液晶芯片,控制原理完全一样。 .本项目使用的1602液晶模组为蓝色背光,白色字体。如图6所示图 6:1602 字符 LCD2.3.2 1602管脚介绍_ 编号象征引脚说明编号象征引脚说明1接地电源地2VCC正电源3VOLCD对比度调节端子4RS数据/命令选择器5读/写读写选择6乙使能信号7D0数据端口8D1数据端口9D2数据端口10D3数据端口11D4数据端口12D5数据端口13D6数据端口14D7数据端口15BLA背光电源为正16黑色背光电源负极表 4:1602 字符 LCD 引脚说明各个引脚的具体功能说明:引脚 1:GND 为地电源。引脚 2:V

26、CC 接 5V 正电源。3脚:VO是液晶显示器的对比度调节端。连接正电源时对比度最弱,电源接地时对比度最高。当对比度太高时,就会出现重影。使用 1K 电位器调节对比度。4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。5脚:R/W为读写信号线,读操作为高电平,写操作为低电平。引脚 6:E 端为使能端。当E端从高电平跳到低电平时,液晶模块执行指令。引脚 714:DB0DB7 为 8 位双向数据线。引脚 1516:背光电源。2.3.31602字符液晶显示器的使用方法(1) 基本操作时机操作进入输出读取状态RS=L,RW=H,E=HD0D7=状态字写命令RS=L, RW=L,

27、D0D7=指令码, E=高脉冲没有任何读取数据RS=H, RW=H, E=HD0D7=数据写入数据RS=H, RW=L, D0D7=数据, E=高脉冲没有任何图 7:1602 LCD 读取时序图图 8:1602 LCD 写时序图(2) 内存1602 LCD控制芯片有80个8位RAM缓冲区,其地址与屏幕对应关系如图7所示图 9(3) 1602字符液晶字库1602液晶模组的字符生成存储器(CGROM)存储了160个不同的点阵字符图形,如下表所示,这些字符分别是:阿拉伯数字、英文字母的大小写、常用符号、日文假名等,每个字符都有一个固定的代码。例如,大写英文字母“A”的代码为 01000001B (4

28、1H)。显示时,模块显示地址41H处的点阵字符图形,我们可以看到字母“A”。 .高的低的0000001000110100010101100111101010111100110111101111XXXX00000磷 p稻田米磷XXXX0001!1一个问一个QQ啊血液亩一个QQXXXX00102乙Rbbr胃津我bXXXX0011#3C小号Cs碲莫eXXXX0100$四D吨d吨乙门雅微米XXXX010119%五乙e你乙哦蔬菜你哦XXXX011010&6F五Fv直到力量D哟XXXX01117GWGw啊树怒一个XXXX1000(8HXHxx我九氖李FXXXXX1001(19)9我是一世年年野兔是的和-1

29、年年XXXX10106*: : : : : : : : : : : : : : : : : : : :Zjz工人单元C莱斯千XXXX10117+;哦仍然你好乙Kha 有动脉XXXX11007,n哟看干草CXXXX1111/?岛-岛罗岛第三章系统硬件设计3.1电路设计框图图 1:硬件框图3.2系统硬件概述本电路以STC89C52单片机的最小系统为控制核心。时钟电路由DS1302提供,精度高,功耗低。它使用三线接口与 CPU 进行同步通信。输入部分采用四个独立的按键S1、S2、S3、S4。 1602 LCD 在显示部分,D0-D7端口连接到单片机的P0端口。具体电路连接详见附录1。第四章系统软件设

30、计4.1程序流程图图 10:主程序框图图 11:关键程序图4.2源程序#include /52单片机头文件,指定52单片机的寄存器和IO口#include /_nop_null 指令和左右循环移位子函数库#define uchar unsigned char /宏定义#define uint unsigned int /宏定义sbit lcden=P27; /定义如下通过lcden、1602液晶使能控制端操作P27口sbit lcdwr=P25; /定义如下通过lcdrw操作P25端口,1602读写选择结束sbit lcdrs=P26; /定义选择数据寄存器选择指令寄存器的控制端sbit sd

31、a=P34; /定义DS1302数据总线位 rst=P35; /DS1320复位sbit sck=P36; /定义时钟总线位 s1=P10; /定义设置按钮位 s2=P11; /定义定时按钮位 s3=P12; /定义确定按钮sbit s 4 =P1 3/12/24小时切换键char hour,fen,miao,ri,yue,nian,zhou,s1num, s2num, flag 1,flag2 ; /定义变量数据类型uchar码表= 20 - - ; /要写入1602 LCD的数据uchar 代码 table1= : : ; /字库中的字可以直接写成“”的形式/* * *延迟函数,z的值为该

32、函数的延迟毫秒数,如delay(200);大约 200 毫秒。延迟(500);约 500ms 延迟* * */无效延迟(单位 z)单位 x,y;对于(x=z;x0;x-)for(y=110;y0;y-);/*向1602 LCD写入命令* * */无效写入_(uchar)lcdw = 0; /lcdwr为读写控制端,lcdwr=0,这里可以不写lcdrs=0; /LCD rs接口为0时,写入指令,rs为1时,写入数据P0=; /分配要写入端口P0的命令,延迟(5); /从1602开始读写操作的时序图,先把命令分配给P0口,延时后才启用lcden=1;终端lcden置高,然后延时一会,然后lcde

33、n置低,这样命令延迟(5);被写入液晶显示器lcden=0;/*向 LCD 写入数据 * */void write_data(uchar date) ,类似于 write 命令,其中 lcdrs 设置为 1液晶显示器=1;P0=日期;延迟(5);lcden=1;延迟(5);lcden=0;/* 1602 LCD 初始化 * * */无效 init_1602()uchar 编号;lcdwr=0;lcden=0;写_(0 x38); /设置LCD为16*2显示,5*7点阵,8位数据接口模式写_(0 x 0c); /打开显示,不显示光标写_(0 x06); /写完一个字符后地址指针加1写_(0 x0

34、1); /显示清0写_(0 x80); /将指针指向初始位置for(num=0;num14;num+) /循环函数将“20 - -”写入液晶写入数据(表编号);write_(0 x80+0 x40+4); /将指针指向1602液晶的第二行第四场for(num=0;num8;num+) /函数同上,用来写“:”write_data(table1num);/*显示时间、日期子功能* * */void write_sfm(uchar add, uchar time) /用于在1602上显示年月日时分秒。add是显示位置,time是要显示的内容uchar shi,ge;时=时间/16; /将从DS13

35、02读取的BCD码数据转换为十进制单位和10ge=时间%16;小数位写_(添加+0 x80); /定义LCD上的显示位置write_data(0 x30+shi); /从1602液晶字库可以看出09的数据码分别对应0 x300 x39write_data(0 x30+ge); /初始设置中,写完一个字符后,地址指针加1,所以这里不要重新标记写入位/*显示周子函数* * */void write_zhou(uchar time1) ,用于显示1602的周信息,并显示时间和日期子功能类似充值;ge=time1%16; /一周七天,所以只有一位数write_(0 x80+13);write_data

36、(0 x30+ge);/*写数据字节子函数* * */void write_1302_byte(uchar temp) /用于发送8位数据信息uchar我;for(i=0;i=1; /右移一位sck=1; /字节在SCK的上升沿写入DS1302/*1302 写数据子函数* * */void write_1302(uchar 添加,uchar dat)rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_1302_byte(添加); /发送地址write_1302_byte(dat); /发送数据rst=0;/*读取DS1302数据函数* * */uch

37、ar read_1302(uchar add)/输入地址add,返回读取的数据uchar i,温度=0 x00;rst=0;/ _nop_();/ _nop_();sck=0;/ _nop_();/ _nop_();rst=1;/ _nop_();/ _nop_();write_1302_byte(添加);for(i=0;i=1; /右移一位_nop_();_nop_();_nop_();sck=1;rst=0;_nop_(); /以下是DS1302复位的稳定时间_nop_();rst=0;sck=0;_nop_();_nop_();_nop_();_nop_();sck=1;_nop_();

38、_nop_();sda=0;_nop_();_nop_();sda=1;_nop_();_nop_();返回(温度); /返回温度值/*初始化DS1302子功能* * */无效 inital_1302()write_1302(0 x8e,0 x00); /禁用写保护write_1302(0 x80,0 x53);/seconds/下面的写初始化时间和日期: .week 11/05/01: 7. hourswrite_1302(0 x84,0 x13);/时间:23:59:55write_1302(0 x82,0 x43);/分钟write_1302(0 x 8c,0 x11);/年write_

39、1302(0 x88,0 x05);/月write_1302(0 x86,0 x01);/天write_1302(0 x 8a,07);/周write_1302(0 x8e,0 x80); /启用保护无效键扫描()/* * *键盘子功能S1功能键:在24小时显示模式下,第一次按键进入第二次调整模式,再按一次进入分钟调整模式,依次是时间调整模式、年调整模式、月调整模式、调整模式日模式、周模式,每按8次键退出S2 调整键:在调整模式下,每按一次该键,对应的时间或日期加1S3 Enter键:在调整模式下,按下该键后退出调整模式,将调整后的时间和日期写入DS1302S4显示模式调整键用于切换时间的12

40、/24小时模式* * */if(s1num=0&s4=0) / 12/24 小时切换键延迟(5);如果(s4=0)s2num+;而(!s4);if(s2num=1) /从24小时切换到12小时int ge,shi;标志1=1;小时=read_1302(0 x85);ge=小时%16;时=小时/16;if(shi=1&=1&ge=3&ge=6)x2=0;苗=x1+x2*16;write_sfm(10+0 x40,miao);write_(0 x80+0 x40+11);如果(s1num=2)整数 x3,x4;x3=分%16;x4=分/16;x3+;如果(x3=10)x3=0;x4+;如果(x4=

41、6)x4=0;分=x3+x4*16;write_sfm(7+0 x40,fen);write_(0 x80+0 x40+8);如果(s1num=3)整数 x5,x6;x5=小时%16;x6=小时/16;x5+;如果(x6=2&x5=4)x5=0;x6=0;小时=0;如果(x5=10)x5=0;x6+;小时=x5+x6*16;write_sfm(4+0 x40,小时);write_(0 x80+0 x40+5);如果(s1num=4)整数 x7,x8;x7=年%16;x8=年/16;x7+;如果(x7=10)x7=0;x8+;如果(x8=8)x8=1;年=x7+x8*16;write_sfm(3

42、,nian);write_(0 x80+4);如果(s1num=5)整数 x5,x6;x5=月%16;x6=月/16;x5+;如果(x6=1&x5=3)x5=1;x6=0;如果(x5=10)x5=0;x6+;月=x5+x6*16;write_sfm(6,yue);write_(0 x80+7);if(s1num=6) /本文判断一个月的天数,平年包括闰年int x5,x6,ge2,shi2,mon,ge1,shi1,year,leap;x5=ri%16;x6=ri/16;x5+;nian=read_1302(0 x8d);ge1=年%16;shi1=年/16;年=ge1+shi1*10;如果(

43、年%4=0)飞跃=1;否则飞跃=0;月=read_1302(0 x89);ge2=月%16;shi2=月/16;周一=ge2+shi2*10;如果(周一=2&飞跃=0) 如果(x6=2&x5=9)x5=1;x6=0;如果(x5=10)x5=0;x6+;如果(周一=2&飞跃=1)如果(x5=10)x5=0;x6+;如果(x6=3)x5=1;x6=0;if(mon=4|mon=6|mon=9|mon=11) 如果(x6=3&x5=1)x5=1;x6=0;如果(x5=10)x5=0;x6+;别的 如果(x6=3&x5=2)x5=1;x6=0;如果(x5=10)x5=0;x6+;ri=x5+x6*16;write_sfm(9,ri);write_(0 x80+10);如果(s1num=7)周+;如果(周=8)周=1;write_zhou(zhou);write_(0 x80+13);/*主功能* * */无效的主要()int ap;init_1602();初始_1302();而(1)键扫描();如果(标志=0)苗=read_1302(0 x81);分=read_1302(0 x83);小时=read_1302(0 x85);if(flag1=1) /当12小时显示模式标志为1时,

温馨提示

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

评论

0/150

提交评论