



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子万年历的仿真与设计方案一、方案论证1、 技术可行性随着国超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时 / 计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机Microcomputer )。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如( Single-ChipA/D、D/A转换器、调制解调器、通信控制器、锁相环、 DMA、浮点运算单元、 PWM控制输出单元、 PWM输出时的死区可编程控制功能等。 因此,只要外加一些扩展电路及必要的通道接口就可以构成
2、各种计算机应用系统,如工业流水线控制系统、 作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。单片机的出现, 并在各技术领域中得到如此迅猛的发展, 与单片机构成计算机应用系统所形成的下述特点有关:(1)单片机构成的应用系统有较大的可靠性。 这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。(2)系统扩展、系统配置较典型、规,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。(3)由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件
3、系统就能适当地改变系统功能。(4)有优异的性能、价格比。2、 单片机的选择方案一:采用传统的AT89C52作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。方案二:采用 FTC10F04单片机,还带有非易失性Flash 程序存储器。它是一种高性能、低功耗的 8 位 CMOS微处理芯片,市场应用最多。其主要特点如下:8KB Flash ROM,可以擦除1000 次以上,数据保存10 年。由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计
4、,方案二运算速度高,性能好,所以两种方案都有可取之处。选用方案一作为主方案,方案二作为备用方案。3、时钟模块的选择方案一:用单片机的定时器产生 1S 的时基信号,然后用程序来实现时钟的时、分、秒计时,同时用程序来产生年、月、日。该方案优点是减少使用外设芯片;缺点是用单片机模拟时钟,使编程量增大,且用定时器产生时基信号,精度不高。方案二:使用时钟芯片DS12C887。优点是 8 位数据线并行控制,控制简单;自带有锂电池,外部掉电时,其部时间信息还能够保持10 年之久。缺点是并行控制,占用太多的IO 口,且价格很高,不适合一般的电子制作。方案三:采用 DS1302时钟芯片实现时钟, DS1302芯
5、片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的 RAM作为数据暂存区,工作电压 2.5V-5.5V 围, 2.5V 时耗电小于 300Ma。仅使用 3 个 IO 口,占用最少的单片机资源;其部功能强大。更重要的是其价格便宜,具有非常高的性价比。缺点是串行通信,控制比较复杂。综上,由于本设计对时间要求较精准,且具闰年计算功能,因此本设计选择方案三,采用时钟芯片 DS1302。4、 显示模块的选择方案一:采用 LED数码管动态扫描, LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机相连接时, 占用的单片机口线少, 但所需要
6、的数码管数量太多,焊接困难极易出错,所以不采用 LED数码管作为显示。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成, 对于显示文字比较合适,如果用在显示数字显得太浪费, 且价格也相对较高,所以也不用此种作为显示。方案三:采用 LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多。本设计所需显示较多且需要文字,又基于设计要求, 所以在本次设计中采用方案三,使用LCD1602液晶显示屏。5 、温度检测模块的选择方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变
7、化的特性, 采集这两个电阻变化的分压值, 并进行 A/D 转换,此设计方案需要 A/D 转换电路,增加了硬件成本而且热敏电阻的感温特性曲线并不是严格性的, 会产生较大的测量误差。方案二:采用数字式温度传感器DS18B20,此类传感器为数字式传感器,而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D 模块,降低了硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高,测量围广等优点。根据上述论述,本设计采用方案二,选择数字式温度传感器DS18B20。6、 设置模块的选择在对日期、温度和闹钟进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。方案
8、一:使用独立式键盘。独立式键盘是指直接用I/O 口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。根据以上的论述,因本系统需要的按键不多,日期加加减,月数加减,年数加减,分数加减,时数加减,设置切换键,要求简单,只需要四个按键即可满足要求。所以采用方案一独立式键盘。7、闹钟模块此模块采用无源蜂鸣器实现,只要编写相应的程序即可实现发出不同频率的声音。8、最终方案决定综上各方案所述 , 对此次设计的方案选定:采用
9、AT89C52作为主控制系统; DS1302提供时钟; LCD1602液晶显示器作为显示;以 DS18B20作为检测温度的传感器;用蜂鸣器实现闹钟响铃。二、仿真系统硬件设计1、电路设计框图1602 液晶显示模设置模块块AT89C52闹钟模块主控制模块DS1302时钟模块DS18B20温度检测图( 1) 总体设计框图2、单片机控制系统单片机中央处理系统的方案设计,选用AT89C52单片机作为中央处理器,如图(2)所示。该单片机除了拥有MCS-51系列单片机的所有优点外, 部还具有 8K 的在系统可编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定时器、程序存储器、数
10、据存储器等硬件,其硬件能符合整个控制系统的要求, 不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。3、DS1302时钟电路时钟电路主要由时钟芯片 DS1302、晶振等几部分组成,如下图所示。 DS1302采用 3 线串行接口,占用引脚少, 部集成了可编程日历时钟,用户可以根据需要通过单片机的控制来自行设置,支持双电源供电,可以使用外部主电源和备用电源, 备份电源能够使时钟芯片继续工作。图( 3) DS1302 管脚图DS1302各引脚的功能为:图( 4) DS1302 时钟电路8: Vcc1 :备用电池端;1: Vcc2 :5V 电源。当
11、Vcc2>Vcc1+0.2V 时,由 Vcc2 向 DS1302供电,当 Vcc2< Vcc1 时,由 Vcc1 向 DS1302供电;7: SCLK :串行时钟,输入;6: I/O :数据输入输出口;5: CE/RST :复位脚;2、3: X1 、 X2 是外接晶振脚( 32.768KHZ的晶振);4: 地( GND)。DS1302有关日历、时间的寄存器:图( 5) DS1302有关日历、时间的寄存器1、秒寄存器( 81h、80h)的位 7 定义为时钟暂停标志( CH)。当初始上电时该位置为 1,时钟振荡器停止, DS1302处于低功耗状态;只有将秒寄器的该位置改写为 0 时,时
12、钟才能开始运行。2、小时寄存器( 85h、84h)的位 7 用于定义 DS1302是运行于 12 小时模式还是 24 小时模式。当为高时,选择 12 小时模式。在 12 小时模式时,位 5 是 ,当为 1 时,表示 PM。在 24小时模式时,位5 是第二个 10 小时位3、控制寄存器( 8Fh、8Eh)的位 7 是写保护位( WP),其它 7 位均置为 0。在对任何的时钟和 RAM的写操作之前, WP位必须为 0。当 WP位为 1 时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态 WP是 1,这时是不能改写上面任何一个时间寄存器的,只有首先将 WP改写为 0,才能进行其它寄存器
13、的写操作。DS1302读写时序DS1302是 SPI 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。 DS1302的控制字如图( 6):图( 6) DS1302的控制字图控制字的最高有效位(位7)必须是逻辑 1,如果它为 0,则不能把数据写入到DS1302中。位 6:如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM数据;位 5 至位 1(A4A0):指示操作单元的地址;位 0(最低有效位):如为 0,表示要进行写操作,为 1 表示进行读操作。读数据:读数据时在紧跟8 位的控制字指令后的下一个SCLK脉冲的下降沿, 读出 DS1302的数据,读出的数据是从最低
14、位到最高位。写数据:控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入 DS1302,数据输入也是从最低位(0 位)开始。4、显示电路1602 液晶也叫 1602 字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符。显示电路采用LCD1602液晶显示,如图(7) 所示,图中只画出了其相应的接口,3 脚用于调节LCD1602的背光 ,4 、 5、 6 为 LCD1602的控制口,用于控制其写入或是读出指令,7 至14 脚为LCD1602的数据口,将数传送到LC
15、D1602中。图( 7) LCD1602显示电路LCD1602的特性:+5V 电压,对比度可调;含复位电路;提供各种控制命令 , 如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有 80 字节显示数据存储器DDRAM;建有 160 个 5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器 CGRAM;基本操作时序:读状态:输入: RS=L,RW=H,E=H;输出: DB0 DB7=状态字 ;写指令:输入: RS=L,RW=L,E=下降沿脉冲, DB0 DB7=指令码 ;输出:无。读数据:输入: RS=H,RW=H,E=H;输出: DB0 DB7=数据 ;写数据:输入
16、: RS=H,RW=L,E=下降沿脉冲, DB0 DB7=数据 ;输出:无。LCD1602的各种指令不再一一说明。5、DS18B20温度检测电路通过 1820 进行读数据,将读出来的数据进行进制转换,转换后送到12864 显示。工作原理介绍: DS18B20是单总线的数字温度传感器。其与单片机的接口只需要一根数据线即可。当然连线简单意味着软件处理上可能要麻烦一点。DS18B20的部存储器分为以下几部分ROM:存放该器件的编码。 前 8 位为单线系列的编码 (DS18B20的编码是 19H)后面 48 位为芯片的唯一序列号。在出场的时候就已经设置好,用户无法更改。最后8 位是以上 56 位的 C
17、RC码。RAM:DS18B20的部暂存器共 9 个字节。其中第一个和第二个字节存放转换后的温度值。第二个和第三个字节分别存放高温和低温告警值。 ( 可以用 RAM指令将其拷贝到 EEPROM中) 第四个字节为配置寄存器。第 57 个字节保留。第 9 个字节为前 8 个字节的 CRC 码。图( 8) DS18B20的温度存放图( 9)DS18B20电路其中 S 位符号位。当温度值为负值时,S = 1,反之则 S = 0。我们把得到的温度数据乘上对应的分辨率即可以得到转换后的温度值。DS18B20的通讯协议:在对 DS18B20进行读写编程时,必须严格保证读写的时序。否则将无法读取测温结果。 根据
18、 DS18B20的通讯协议,主机控制 DS18B20完成温度转换必须经过 3 个步骤 : 每一次读写之前都要对 DS18B20进行复位,复位成功后发送一条 ROM指令,最后发送 RAM指令。这样才能对DS18B20进行预定的操作。复位要求主机将数据线下拉500us,然后释放, DS18B20收到信号后等待16160us 然后发出60240us 的存在低脉冲,主机收到此信号表示复位成功。图( 10)DS18B20的复位时序图。图( 11)读操作的时序图图( 12) 写操作的时序图6、按键电路按键电路由四个轻触开关组成,如图(12) 所示。按键用来调整时间,其一端直接接到单片机的端口,另一端接地,
19、当按下按键时,相应的端口变为低电平,通过与个各键相连的端口P1.4 ,P1.5 ,P1.6 ,P1.7 可以判断是哪个键按下,从而作相应的操作。图( 13) 按键电路7、蜂鸣器电路闹钟模块采用单片机输出一定频率的方波从而使蜂鸣器发出声音。图( 14) 方波信号图( 15) 蜂鸣器电路三、仿真系统软件设计软件设计是本设计的关键, 软件程序编写的好坏直接影响着系统运行情况的良好。 因本程序涉及的模块较多,所以程序编写也采用模块化设计, C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用 C51 编写。整个软件系统采用规模化的程序设计方法,共分为时间设定、闹铃设定、 倒计时和温
20、度检测系统。软件系统的主要特点是整个过程完全在键盘的控制之下, 实现了完全的友好的人机交互功能。程序框图如下:开始初始化DS1302,1602时间、日期、温度、闹钟和倒计时设置模块从 DS1302读取信息1602 液晶显示相关信息判断是否有按键按温度检测模块四、调试结果及分析没有按键按下电路设计中单片机采用 AT89C52,编译环境为 keil ,程序使用 C语言进行编写,使用 proteus 仿真软件进行仿真调试,设计硬件制作比较顺利,很快就把硬件电路做好。接着,主要是程序的调试。程序调试的难点在于设计的功能模块过多,程序结构比较复杂,使得调试起来比较费时间。在软件调试过程中,当调节时间和日
21、期后,单片机上电后更新的是 PC的时间,后来查找资料发现,是设置 ds1302 的问题,还有一个问题,在按键操作时有时会出现功能不稳定,这是由于按键存在抖动,所以后来加个去抖动的延时后在判断,基本就可以解决问题。仿真正确显示了时间, 在 LCD1602中正确显示了当前日期、 时间,通过按按键 K1,就可以开始设置时间或闹铃 , 依次按 K1 依次在年、月、日、时、分之间切换,按 K2 键用于加 1 操作 ,K3 键用于减 1 操作, K4是取消按钮,单独按加减按键可以显示温度和进入倒计时。通过调试和仿真,基本实现了设计所要求的所有功能。1:显示年、月、日、时、分、秒信息。2:具有可调整日期和时
22、间功能。3: DS1302自带闰年补偿功能,可自动判断平闰年,正确显示时间。4:实现闹钟提醒功能,且闹钟可设置至年,月,日,时,分,秒。5:实时显示环境温度。6:显示 60 秒倒计时功能。但唯一不足的是不能实现一年的温度记忆功能,我用AT2404调了很长时间,还是不能实现温度的存储和显示, 可能是我不太会用那个芯片, 看了它的资料,还是不能写出正确的程序。结束语本系统以 AT89C52为核心部件,使用串行时钟芯片 DS1302,实现时间和闹钟的功能设置,用温度传感器 DS18B20实现对环境实时温度的检测。通过键盘和液晶显示屏可方便地校对时钟、设置闹钟时间和显示温度, 本系统基本完成了实用电子
23、钟的功能, 并添加了许多附加功能,使电子万年历更具多样化, 特色化。尽量做到了硬件电路简单稳定,减少电磁干扰和其他环境干扰。在该系统设计,调试完成之后,对最后的成功进行分析,同时结合在调试过程中出现的错误和不足进行综合分析, 总结在实际系统设计和调试过程中的宝贵经验。 虽然还有一点功能不能实现,但我不会放弃,在以后的业余时间里我会多查资料,多分析,多请教老师同学,争取把它做完善。同时也希望各位老师批评指正,提供你们的宝贵经验,我相信我会做得更好。在本次专业方向设计过程当中,收获知识的同时,还收获了阅历,收获了成熟,通过查找大量资料,请教老师同学,以及不懈的努力,不仅培养了独立思考、 动手制作的
24、能力,在各种其它能力上也都有了提高。 更重要的是, 我们学会了很多学习的方法,知道了理论和实践的巨大差别。而这是以后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。同时在与老师和同学的交流过程中,互动学习,将知识融会贯通。通过自己的努力,做出了一个万年历, 对以后的学习是一个莫大的鼓舞,激起了我的学习兴趣和开发创新思维。致感学院给我们提供了一个展现自己的舞台, 给我们一次难得煅炼的机会, 使得我们的动手能力和专业技能都有了很大的提高。感提供相关技术帮助的老师和同学, 你们的支持和鼓励使我对这次的作品完成有了信心和动力,也给了我们很多无私的帮助和支持,我在此深表
25、意。【参考文献】【 1】 于永学、健, 1-WIRE总线数字温度传感器DS18B20及应用 J ,电子产品世界 2003(4)16-24【 2】 马云峰、子夫、全培,数字温度传感器 DS18B20的原理与应用 EB/OL1-25【 3】 胡振宇、鲁源、杜振辉, DS18B20接口的 C 语言程序设计 J ,单片机与嵌入式系统应用, 2002-24-43【 4】钢,1-WIRE总线数字温度传感器 DS18B20原理及应用,现代电子技术 J ,2005(8)21-23【 5】 明义,电工电子技术课程设计指导 M ,中南大学, 2002【 6】 郭天祥,新概念 51 单片机 c 语言教程,电子工业,
26、 2009【 7】 跃东, DS18B20集成温度传感器原理与应用 J ,教育, 2002( 4) 5-23【 8】 广弟,单片机基础 M ,航空航天大学, 1994,1-56【 9】 谭浩强, C程序设计(第二版) M ,清华大学 ,2003【 10】 付家才,单片机控制工程实践技术 M ,化学工业 ,2004附录一仿真电路图图(16)电路原理图图(17)显示实时时间图(18)调整日期图 (19)调整时间图(20)进入后台日期时间调整图 (21)闹钟设置界面图 (22)实时温度显示图 (23)倒计时显示附录二源程序代码#include<reg52.h>#include<in
27、trins.h>unsigned char code digit="0123456789"/数字代码unsigned char mode,TH,TL,TN,TD,length,amode,alarmmode,count=60,minutes,hours, minutea,seconda,seconds,houra=12,yeara=12,montha=01,daya=01,years,months,days;sbit SCLK=P10; /DS1302时钟输入sbit DATE=P11; /DS1302数据输入sbit REST=P12; /DS1302复位端口sbi
28、t SET=P14;/DS1302设置模式选择位sbit ADD=P15;/ 增加sbit RED=P16;/ 减小sbit CANL=P17;int down_flag=0;void delay1ms(int i)/1毫秒延时int j,k;while(i-)for(j=76;j>1;j-);for(k=29;k>1;k-);void delaynus(unsigned char n) /延时若干微秒unsigned char i;for(i=0;i<n;i+);/*蜂鸣器模块 */sbit beep=P36;/ 位定义,定义P.6位fmpvoid dely500(void
29、)unsigned char i;for(i=250;i>0;i-)_nop_();void xiangling(unsigned char n)unsigned char x,i;while(n-)for(i=0;i<5;i+)for(x=0;x<200;x+)beep=beep;dely500();for(i=0;i<3;i+)for(x=0;x<200;x+)beep=beep;dely500();dely500();/*DS1302模块 */void Write1302(unsigned char date)/向 1302 写数据unsigned char
30、 i;SCLK=0;delaynus(2);for(i=0;i<8;i+)DATE=date&0x01;SCLK=1;delaynus(2);SCLK=0;delaynus(2);date>>=1;void WriteSet1302(unsigned char cmd,unsigned char date) /根据相应的命令输入相应的数据REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(5);Write1302(date);SCLK=1;REST=0;unsigned char Read1302(void)/ 读取 1302 数
31、据unsigned char i,date;delaynus(2);for(i=0;i<8;i+)date>>=1;if(DATE=1)date|=0x80;SCLK=1;delaynus(2);SCLK=0;delaynus(2);return date;unsigned char ReadSet1302(unsigned char cmd)/根据命令读取1302 相应的值unsigned char date;REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(2);date=Read1302();SCLK=1;REST=0;retur
32、n date;void IntDS1302(void) /DS1302 初始化unsigned char flag;flag= ReadSet1302(0x81);if(flag&0x80)/判断时钟芯片是否关闭WriteSet1302(0x8E,0x00);/根据写状态寄存器命令字,写入不保护指令WriteSet1302(0x80,(0/10)<<4|(0%10);/根据写秒寄存器命令字,写入秒的初始值WriteSet1302(0x82,(0/10)<<4|(0%10);/根据写分寄存器命令字,写入分的初始值WriteSet1302(0x84,(0/10)&l
33、t;<4|(0%10); /根据写小时寄存器命令字,写入小时的初始值WriteSet1302(0x86,(0/10)<<4|(0%10); /根据写日寄存器命令字,写入日的初始值WriteSet1302(0x88,(0/10)<<4|(0%10); /根据写月寄存器命令字,写入月的初始值WriteSet1302(0x8c,(10/10)<<4|(10%10); /根据写年寄存器命令字,写入年的初始值WriteSet1302(0x90,0xa5);/打开充电功能选择 2K 电阻充电方式WriteSet1302(0x8E,0x80);/根据写状态寄存器命令
34、字,写入保护指令/*液晶显示模块*/sbit RS=P25;sbit RW=P26;sbit E=P27;sbit BF=P07;/*液晶忙检测 */bit BusyTest(void)bit result;RS=0;RW=1;E=1;_nop_();_nop_();_nop_();result=BF;_nop_();_nop_();_nop_();E=0;return result;/* 写指令 */void Write_(unsigned char command)while(BusyTest()!=0);RS=0;RW=0;E=0;_nop_();_nop_();_nop_();P0=c
35、ommand;_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();E=0;/* 写地址 */void Write_Address(unsigned char address)Write_(address|0x80);delay1ms(1);/* 写数据 */void Write_Date(unsigned char date)RS=1;RW=0;E=0;_nop_();_nop_();_nop_();P0=date;_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();E=0;delay1ms
36、(1);/* 初始化 */void Lcd_Int(void)Write_(0x38);delay1ms(1);Write_(0x38);delay1ms(1);Write_(0x06);delay1ms(1);Write_(0x0c);delay1ms(1);Write_(0x01);void displaymainpart(void)/显示液晶主要部分(不变化部分)Write_Address(0x01);delay1ms(1);Write_Date('D');Write_Date('A');Write_Date('T');Write_Date
37、('E');/Write_Date(':');delay1ms(1);Write_Address(0x0A);delay1ms(1);Write_Date('-');Write_Address(0x0D);Write_Date('-');Write_Address(0x41);Write_Date('T');Write_Date('I');Write_Date('M');Write_Date('E');Write_Address(0x48);Write_Date(
38、39;:');Write_Address(0x4B);Write_Date(':');Write_Address(0x06);Write_Date('2');Write_Date('0');void display_Second(unsigned char second) /在液晶上显示秒unsigned char i,j;i=second/10;j=second%10;Write_Address(0x4C);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void display_Mi
39、nute(unsigned char minute)unsigned char i,j;i=minute/10;j=minute%10;Write_Address(0x49);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void display_Hour(unsigned char hour) /在液晶上显示时unsigned char i,j;i=hour/10;j=hour%10;Write_Address(0x46);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void dis
40、play_Day(unsigned char day) /在液晶上显示日unsigned char i,j;i=day/10;j=day%10;Write_Address(0x0E);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void display_Month(unsigned char month) /在液晶上显示月unsigned char i,j;i=month/10;j=month%10;Write_Address(0x0B);Write_Date(digiti);Write_Date(digitj);delay1ms(1);
41、void display_Year(unsigned char year) /在液晶上显示年unsigned char i,j;i=year/10;j=year%10;Write_Address(0x08);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void display_Daya(unsigned char x) /闹钟日数显示unsigned char i,j;i=x/10;j=x%10;Write_Address(0x0E);Write_Date(digiti);Write_Date(digitj);delay1ms(1);vo
42、id display_Montha(unsigned char x)/ 闹钟月份显示unsigned char i,j;i=x/10;j=x%10;Write_Address(0x0B);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void display_Yeara(unsigned char x) /闹钟年显示unsigned char i,j;i=x/10;j=x%10;Write_Address(0x08);Write_Date(digiti);Write_Date(digitj);delay1ms(1);void display
43、_houra(unsigned char x) /闹钟小时部分显示unsigned char i,j;i=x/10;j=x%10;Write_Address(0x44);Write_Date(digiti);Write_Date(digitj);void display_minutea(unsigned char x)/闹钟分钟部分显示unsigned char i,j;i=x/10;j=x%10;Write_Address(0x47);Write_Date(digiti);Write_Date(digitj);void display_seconda(unsigned char x)/闹钟秒
44、针部分显示unsigned char i,j;i=x/10;j=x%10;Write_Address(0x4A);Write_Date(digiti);Write_Date(digitj);void display_Time(void) /显示实时时间unsigned char value;/days,months,years;Write_(0x0c);value=ReadSet1302(0x81);seconds=(value&0x70)>>4)*10+(value&0x0f);display_Second(seconds);value=ReadSet1302(0x83);minutes=(value&0x70)>>4)*10+(value&0x0f);display_Minute(minutes);value=ReadSet1302(0x85);hours=(value&0x70)>>4)*10+(value&0x0f);display_Hour(hours);value=ReadSet1302(0x87);days=(value&0x70)>>4)*10+(value&0x0f);displa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025网站开发合作合同书
- 2025年土地增值合同范本
- 2025外贸代理合同范本
- 2025资金信托合同(B)信托合同
- 2025高空作业车租赁合同协议
- 2025房产赠与合同范本
- 2025年版个人借款合同范本
- 2025普通班的店面租赁合同书
- 电池成品采购合同协议
- 现场调试合同协议书模板
- 《结膜炎诊断与治疗》课件
- 期中测试(范围:第1-4章)(A卷·夯实基础)-北师大版七年级数学下册(解析版)
- 智慧广场《移多补少问题》(教学设计)-2024-2025学年一年级数学上册青岛版
- 2025东风汽车校招人才测评题库
- 木制品幼儿园课程
- 2024年四川宜宾五粮液股份有限公司招聘笔试真题
- 吉林2025年03月长春新区面向社会公开选聘8名各产业招商办公室负责人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 微风发电项目可行报告
- 2025年中小学生安全教育日知识竞赛考试题(附答案)
- 2024年初级会计实务考试真题及答案(5套)
- 垃圾焚烧飞灰处理行业深度调研及发展战略咨询报告
评论
0/150
提交评论