基于单片机的电子万年历设计原.doc

上传人:scccc 文档编号:12060728 上传时间:2021-12-01 格式:DOC 页数:14 大小:409KB
返回 下载 相关 举报
基于单片机的电子万年历设计原.doc_第1页
第1页 / 共14页
基于单片机的电子万年历设计原.doc_第2页
第2页 / 共14页
基于单片机的电子万年历设计原.doc_第3页
第3页 / 共14页
基于单片机的电子万年历设计原.doc_第4页
第4页 / 共14页
基于单片机的电子万年历设计原.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《基于单片机的电子万年历设计原.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子万年历设计原.doc(14页珍藏版)》请在三一文库上搜索。

1、本文由rockman6x贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。摘要单片机使用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上 各种仪表的控制,从计算机的网络通讯和数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC 卡,电子 宠物等,这些都离不开单片机单片机是集CPU,RAM,ROM,定时,计数和多 种接口于一体的微控制器.它体积小,成本低,功能强, 广泛使用于智能产业和工业自动化上而51系列单片机是各单片机中最为典型和最有代表性的一种.这次毕业设计通过对它的学习,使用,从而达到学习,设计,开

2、发软,硬的能力本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达 到学习,了解单片机相关指令在各方面的使用系统由主控制器 AT89C51,时 钟电路DS1302,显示电路,按键电路, 和复位电路等部分构成,能实现时钟日 历显示的功能,能进行时,分,秒的显示.关键词:单 片机,农历查询,万年历25AbstractSCM applicati ontech no logy develop rapidly, look ing around us now in all spheresof life, from missiles, navigation equipment, to the v

3、arious instruments on the aircraft con trol from a computer n etwork com muni cati ons and data tran smissi on, in dustrialautomati on to real-time process con troland data process ing,and our livesexte nsive use of the smart card, electro nic pets, which is in separable from the microcontroller. Mo

4、nolithic single-chip is the set of CPU, RAM, ROM, the timing, nu mber and variety of in terfacein tegratedmicroc on trollers.Its small size, low cost,high performa nee, which are widely used in smart in dustries,and in dustrialautomation. And 51 Series SCM is the most typical and the most representa

5、tive one. The graduati on desig n Through the study, and thereby achieve the study, desig n, development hardware and software capabilities. Based on a microcontrollerbased onthe will to achieve cale ndar of a multi-fu ncti onal electr onic clock desig n, Thereby achieve study ing and un dersta ndin

6、g the releva nt directives SCMn all aspects of the application.By main controlAT89C51,clock circuit DS1302,display circuit,keystrokecircuit and restore circuitcomponented, to achieve clock calendar display functioncan be carried out, hours seconds of the show and real-time temperature display.Keywor

7、ds : Mono lithic sin gle-chip,l unar cale ndar dema nd, perpetual cale ndars25目录第一章引言3 4第二章设计方案论证 2.1 方案论证和设计 4 2.1.1 控制部分的方案选择 4 2.1.2显示部分的方案选择 42.1.3系统基本方案选择和论证 4 2.2 单片机原5 2.3 LED 显示数码6第三章计算部分3.1主要单元电路的器件 6 3.1.1单片机主控制模块 6 3.1.2 时钟电路模块 73.2其他模块器件8 3.2.174LS164 83.2.2C0N8 9 3.2.3 其他元器件 9结构设计部分 10第

8、四章 结构设计部分 4.1显示部分设计 104.1.1 万年历优化算法 114.2 实现时钟,日历显示设计 12 4.2.1 DS1302 的寄存器 12 4.2.2 DS1302 实时显示时间的软硬件 12 4.2.3DS1302和 CPU的连接 12 4.3 整体设计 13 4.4 系统软件设计 144.4.1程序流程框图 14 18第五章 实验测试部分 5.1 硬件测试 185.2 软件测试 18 5.3 测试结果分析和结论 185.3.1测试结果分析 18 5.3.2 测试结论 19 20第六章结论参考文献 20附录一:系统 程 序 清 单附 录 一 : 系 统 程 序 清单 21第七

9、章谢辞 2525第一章引言随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用.单片机以体积小,功能全,性价比高等诸多优点,在工业控制,家用电器,通信设备,信息处理,尖端武 器等各种测控领域的使用中独占鳌头,单片机开发 技术已成为电子信息,电气,通信,自动化,机电一体化等专业技术人员必须掌握的技术.而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目.因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的使用 而且在操作的 设计上要力求简洁,功能上尽量齐全,显示界面也要出色.数字显示的日历钟已

10、 经越来越流行,特别是适合在家庭居室,办公室,大厅,会议室,车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎丄ED数字显示的日历 钟显示清晰直观,走时准确,可以进行夜视,并且还可以扩展出多种功能.所 以,电子万年历无论作为比赛题目还是练 习题目都是很有价值.25第二章设计方案论证2.1 方案论证和设计2.1.1.2.1.1. 控制部分的方案选择 a)用可编程逻辑器件设计.可采用ALTERA公司的FLEX10K系列PLD器件.设计起来结构 清晰,各个模块,从硬件上设计起来相对简单 ,控制和 显示的模块间的连接也会比较方便但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且

11、EDA占用的资源也相对多一些 .从成本上来讲,用可编程逻辑器件来设计也没有什 么优势 b)用凌阳16位单片机设计.凌阳16位单片机有丰富的中断源和时基,方便本实验的设计它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归 调用.I/O口功能也比较强大,方便使用用凌阳16位单片机做控制器最有特色的就是它的可编程音频 处理,可完成语音的录制播放和识别这些都方便对设计进行扩展,使设计更加完善.成本也 相对低一些 2.1 2.1.2 显示部分的方案选择 a)液晶显示方式液晶显示效果出 众,可以运用菜单项来方便操作,但是在显示时,特别是使 用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁

12、而且由于61板的存储空间有限,液晶 显示就不能和语音播抱程序同时 实现这些大大影响了电子万年历的性能 b)相比液晶显示,采用8段数码管既经济实惠,在效果上也可以加入语音报时功能,操作比较液晶显示来说虽然略显繁琐,但总体也还可以做 到比较人性化所以,最后选择LED数码管显 示方案 21 213系统基本方案选择和论证1. 单片机芯片的选择方案和论证:方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM存储空间,能于3V的超低压工作,而且和MCS-51系列单片机完全兼容, 但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或

13、对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏方案二:采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时 也和MCS-51系列单片机完全该芯片内部存储器为8KB ROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序 的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏所以选择采用AT89S52作为主控制系统 2.显示模块选择方案和论证:方案一:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示 多样,清晰可见,但是价格昂贵,需要的接

14、口线多,所以在此设计中不采用 LED液晶显示屏.方案二:采用点阵式数码管显 示,点阵式数码管是由八行八列的发光二极管组成,对于显 示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示方案三:采用LED数码管动态扫描丄ED数码管价格适中,对于显示数字最合适,而且采用 动态扫描法和单片机连接时,占用的单片机口线少25所以采用了 LED数码管作为显示.3.时钟芯片的选择方案和论证:方案一:直接采用单 片机定时计数器提供秒信号,使用程序实现年,月,日,星期,时,分,秒计数采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大所以不采用此方案方案二:采用 DS

15、1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动 对秒,分,时,日,周,月,年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据 暂存区,工作电压2.5V5.5V范围内,2.5V 时耗电小于300nA. 4.电路设计最终方案决定综上各方案所述,对此次作品的方案选定:采用AT89S52作为主控制系统;DS1302提供时钟;数字式温度传 感器;LED数码管动态扫描作为显示2.2 单片机原理单片机就是简化的微型计算机 .CPU中本身自带存储器 ROM和RAM.CPU片内也有总线 IC(集成电路)技术是将电路通过特殊工艺做在一块硅基片上封装成芯片,比如CPU,片外存储器等

16、等将单片机CPU(比如51系列),晶振,存储器,地址锁存器,逻辑门,七段译码器(显 示器),按钮(类似键盘),扩展芯片,接口等通过PCB工艺(比如SMT贴片,或者插装)做在环 氧树 脂板上这样才是一个完整的单片(做在一块PCB板上)的微型计算机.2.3 2.3 LED显示数码管常见的LED显示具有清晰明亮的特点 是显示接口也是绝大多数单片机使用系统必备的部 件之一 发光二极管组成的显示器是单片机使用产品中最常用的廉价输出设备它由若干个发光二极管按一定的规律排列而成当某一个发光二极管导通时,相应的一个点或一笔画被点亮,控制不同组合的二极管导通,就能显出各种字符 1.显示器的结构常用的7 段显示器

17、的结构如图所示,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的成为共阴显示器位显示器由8个发光二极管组成,1其中7个发光二极管ag控 制7个笔画的亮或暗,另一个控制一个小数点的亮和暗,这种笔画的七段显示器能显示的字 符较少,字符的形状有些失真,但失控简单,使用方便25第三章计算部分3.1 主要单元电路的器件主要单元电路的器件3.1.1 3.1.1单片机主控制模块 AT89S52单片机为40引脚双列直插芯片,有四个I/O口 P0,P1,P2,P3, MCS-51 单片机共有 4 个 8 位的 I/O 口(P0,P1,P2,P3), 每一条 I/O 线 都能独立地作输出或输入.如图所示

18、 1.内部结构 按功能分为8部分:CUP,程序存储器,数据存储器,时钟电路,串行口,并行I/O 口,中断系统,定时/计数器.2.引脚定义及功能1). 电源及时钟引脚 Vcc:接+5V电源Vss:接地XTAL1和XTAL2:时钟引脚,外接晶体引线端.当 使用芯片内部时钟时,此两引脚端用于 外接石英晶体和微调电容;当使用外部时钟时,用于接 外部时钟脉冲信号.2).控制引脚RST/Vpq:RST是复位信号输入端,Vpd是备用电源输入端. 当RST输入端保持2个机器周 期以上高电平时,单片机完成复位初始化操作.当主电源Vcc发生故障而突然下降到一定低电压或断电时,第2功能Vpd将为片内RAM提供电源以

19、保护片内RAM中的信息不丢失.ALE/PROG:地址锁存允许信号输入端.在存取外存储器时,用 于锁存低8位地址信号.当单片机正常工作后,ALE端就周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号.此引脚的第2功能PROG是对片内带有4K字节EPROM的 8751固外程序时,作为编程脉冲输入端.PSEN:程序存储器允许输出端.当片外程序存储器的读选通信号,低电平有效.CPU从外 部程序存储器取指令时,PSEN信号会自动产生负脉冲, 作为外部程序存储器的选通信号.EA/Vpp:程序存储器地址允许输入端.当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转

20、向执行片外程 序存储器指令;当EA为低电平时,CPU只执行片外程序存储器指令.3).I/O 口引脚P0.0P0.7:P0 口 8 位双向 I/O 口 ; P1.0P1.7:P1 口 8 位准双向 I/O 口 ; P2.0P2.7:P2口 8位准双向I/O 口 ; P3.0P3.7:P3 口 8 位准双向I/O 口 . 3.片外总线结构 分为三部 分:数据总线 Data Bus(DB), 地址总线 Address Bus (AB),控制总线 Control Bus(CB).25AT89S52 3.1.2 3.1.2时钟电路模块 1. DS1302的结构及工作原理DS1302是美国DALLAS公司

21、推出的一种高性能,低功耗,RAM的实时时钟电路,带 它可以对年,月,日,周 日,时,分,秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V.采用三 线接口和CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据.DS1302内部有一个31 X 8的用于临时性存放数据的RAM寄存器.DS1302是DS1202的升级产品,和DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流 充电的能力.2.引脚功能及结构图1所示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源.在主电源关闭的情况下,也能保持时钟的连续运行.DS130

22、2由Vcc1或Vcc2两者中的较大者供电.当Vcc2 大于VCC1+0.2V 时,Vcc2 给DS1302供电.Vcc2 小 于Vcc1时,当DS1302由Vcc1供电.和X1 X2 是振荡源,外接32.768kHz 晶振.RST是 复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送.RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列 送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段当RST为高电平时,所有的数据传送被初始化,允许对DS1302进 行操作如果在传送过程中 RST置为低电平,则 会终止此次数据传送,1/0 引脚变为高阻态 上电运行时,在

23、Vcc > 2.5V之前,RST必须保 持低电平只有在SCLK为低电平时,才能将 RST置为高电平.I/O为串行数据输入输出端(双向),后面有详细说明.SCLK始终是输入端253.数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位 0位到高位7.其他模块模块器件32其他模块器件321 74LS LS164 321 74LS164它是个串入并出的 8位移位寄存器,它常用于单片机系统中,下面结束一下这个元件的基本知识:74LS

24、164 引脚图74LS164_ 内部功能图2574LS164_逻辑符合表串行输入带锁存时钟输入,串行输入带缓冲异步清除最高时钟频率可高达36Mhz功耗:10mW/bit 74 系列工作温度:0 ° C to 70 ° C Vcc最高电压:7V输入最高电压:7V高电 平:-0.4mA低电平:8mA 3.2.2 3.2.2 CON8它是一个排插符号,也就是一个插座,可以通过 一个插头将89C51的P0 口引到外面的有关电路作扩展用,也可以作为备用.3.2.3 3.2.3 其他元器件 电阻,电容,发光二极管,三极管若干.25第四章 结构设计部分4.1 显示部分设计基本显示原理:时

25、钟开始显示为 0时0分0秒,也就是数码管显示000000,然后每秒秒 位加1 ,到9后,10秒位加1,秒位回0.10秒位到5后,即59秒,分钟加1,10 秒 位回0.依次类推,时钟最大的显示值为 23小时59分59秒.这里只要确定了 1秒的定 时时间,其他位均以此为基准往上累加.同时时钟达到最大值的时候天数也增加一位 ,知道 显示了 7后再 变为1,同时阴历和阳历的天数也加1,根据不同的月份显示的天数阳历有28,29,30,31 天,阴历就要经过计算得到,到了 12个月后,年数自动增加1,以此类推,显示 万年历的现 实.另外,连接方式总电路图上可以看到,这里就不做说明了 ,下图为显示部分的电路

26、图.显示部分电路图254.1.1 万年历优化算法1.阳历算法 阳历的算法比较简单,每十月的总的天数相对来说是固定的.只有2月份,在闰年是29天,在非闰年是28天.每个月的日历排法.主要是 确定每个月第一天是星期几.我们知道1901年1月1日是星期二,星期的变化是7天一个周期,比如说要计算1901年2月1日是星期几,可以这样推算:1901 年1月1 日到1901年2月1日总共经过了 31天(从表1可看出),从31对7取模是3:i901 年1月1日是星期二,加三后,是星期五.因此1901年2月1日是星期 五.同理,可以推 算出从1901 2100年任何一天是星期几.表 1 月份 闰年 非闰年 1

27、31 31 2 29 28 3 31 31 4 30 30 5 31 31 6 30 30 7 31 318 31 31 9 30 30 10 31 31 11 30 30 12 31 312. 阴历算法 阴历的算法比较复杂,它包含两个部分.一部分是阳历日和阴历日的对应关系;另一部分 则是阳历日和农历节气的对应关系下面只介绍和设计有关的阴历和阳历的关系.表2比特数数据250 !1 !2 !3 !4 !5 16 !7 !8 !9 110 !11 112 x13 x14 x15 x我们先要做一个数据表,这个数据表里面每2个字节,表示T 一个阴所年彝个月份的 天教2个字节(共16bit)的具体意义如

28、表 2.其中”!(0/1)中"0"表示30天,”1"表示29 天."x x x x(4个比特可表示数值范围015)"表示该年中是否有闰月,数值"0"表示无闰月,"112"表示某一个闰月.闰月一般是 29天;在200年中(19012100年),闰月是 30天的,可用一个特殊语句来解决.这里2OO年需要200 x 2=400个字节,构成阴历压缩数 据表.有了阴历的数据表后,主要是要确定阳历日和胡历日的对应关系.我们知道阳历年1901年1月1日,对应的阴历年是对应的阴历日,可用以下算法:(1)从阳历年1901年

29、1月1日到1901年2月1日,计算出经过了 31无(2)根据阴历数据表知道阴历年1900年11月有29天,因此31 29=2天.原来阳历年1901年1月1日对应的阴历日是 11 日,则有11 + 1=13; (3) 因为阴历1901年12月份有30天,而13<=30,所以阳历年1901 年2月1日对应的阴历 年是1900年12月13日.如果上一步相加得出的散大于当前阴 历月的总的天敢,别应该继续减去当前阴历月的总的天数,直到符合条件.对于月份增加时, 还要通过数据表查看是否要经过闰月.对于其他任何一个阳历日和阴历日的对应关系,都可以通过以上算法求得结果.实现时钟,4.2 实现时钟,日历显

30、示设计DS1302 可以对年,月,日,周日,时,分,秒进行计时,且具有闰年补偿等多种功能.4.2.1DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器和日历,时钟相关,存放的数 据位为BCD码形式,其日历,时间寄存器及其控制字见表1.25此外,DS1302还有年份寄存器,控制寄存器,充电寄存器,时钟突发寄存器及和RAM相关的寄存器等.时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内 容.DS1302和RAM相关的寄存器分为两类:一类是单个 RAM单元,共31个,每个单元组态 为一个8位 的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;另一类 为突发

31、方式 下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写),FFH(读).422 DS1302实时显示时间的软硬件DS1302和CPU的连接需要三条线,即SCLK(7),I/O(6),RST(5).图3示出DS1302和89C2051的连接图,其中,时钟的显示用LCD. 4.2.3 DS1302和CPU的连接 实际上,在调试程序时可以不加电容器,只加一个32.768kHz的晶振即可.只是选择晶 振时,不同的晶振,误差也较大另外,还可以在上面的电 路中加入DS18B20,同时显示实时 温度.只要占用CPU 一个口线即可.LCD还可以换成LED, 还可以使用北京

32、卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置 显示RAM,可显示任意字段笔划,具有3-4线串行接口,可和任何单片机,IC接口 .功耗低,显示状态时电流为 2 卩A(典型值),省电模式时小于1卩A,工作电压为2.4V3.3V,显示清晰.4.3 整体设计实现过程:由串行的时钟芯片 DS1302,送给单片机,单片机处理后输出.而74LS164将 串行信号变成并行信号,每个164对应LED七段码,三个164对应三行LED数码管.单片 机25P2.6-P2.0连接七个三极管作列驱动,共七列数码管,(实际有两行是

33、六列)行列扫描共同形成万年历.其整个过程,如原理图所示.4.4 系统软件设计254.4.1 程序流程框图25图-C时间调整程序流程图2525实验测试测试部分第五章实验测试部分5.1 硬件测试电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一 处的错误,则会对检测造成很大的不便 ,而且电路的交线较多,对于各种锋利的引脚要注意 处 理,否则会刺被带有包皮的导线,则会对电路造成短路现象.在本成电子万年历的设计调试中遇到了很多的问题.回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1)LED数码管的断码错乱,原因出于没有认真看清a,b ,c等引脚信息.解决:重

34、新排列74LS47的输出端,相应接入LED数码管,即可解决出现在的断码或乱码.(2)对万年历修改时间或日期时,有时LED数码管被屏蔽掉,造成不亮现象.解决:根据仪器的测试,发现电 路的驱动能力不足,最后在DS1302时钟芯片的/CS, SCLK, RET端接入5.1K的上拉电阻后, 电路的驱动能力才能满足,即可解决不亮现象.5.2 软件测试电子成年历是多功能的数字型,可以看当前日期(阴,阳历),时间,还有温度的仪器.电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题.最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件.在软件的 调试过程中主要

35、遇到的问题如下:1.烧入程序后丄ED数码管显示闪动,而且亮度不均匀.解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题.其次,由于本作品使作 动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如 果不在反回 时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最 后解决了此问题.2.修改时间,日期时没有农历没有自动对应上.解决:把不相关的程序暂时屏蔽,地 农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱最后把相应的十进制进行修改,使得可以和 十六进制对应,最后解决了此问题5.3 测试结果分析和结论5

36、.3.1测试结果分析(1).在测试中遇到发光二极管丄ED数码管为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏.(2,LED数码管显示不正常,还有亮度不够,首先使用试测仪对电路进行测试,观察电 路是否存在短路现象.查看烧写的程序是否正确无误,对程序进行认真修改(3).DS1302 和微处理器进行数据交换时 ,首先 由微处理器向电路发送命令字节,命令字节最高位 MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟 数据,D6=1,指定RAM数据;D5D1指定输入或输出 的特定寄存器;最低位LSB(DO)为逻辑0,指定写操作(输

37、入),D0=1,指定读操作(输出).在 DS1302的时钟日历或 RAM进行数据传送时,DS1302必须首先发送命令字节若进行 单字节 传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节.DS1302和RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态25为一个8位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;再一 类为突发方式下的 RAM寄存器,在此方式下可一次性读,写所有的RAM的31个字节.要 特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上).虽然DS1302

38、在 主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池.可以 用老式电脑主板上的 3.6V 充电电池.如果断电时间较短(几小时或几天)时,就可以用漏电较 小 的普通电解电容器代替 100卩F就可以保证1小时的正常走时.DS1302在第一次加电后, 必须进行初始化操作.初始化后就可以按正常方法调整时间.5.3.2测试结论 经过多次的反复测试和分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力和及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所 学的知识得到很大的提高和巩固25第六章结论在整个设计过程中,充分发挥人的主观能动性,自主

39、学习,学到了许多没学到的知识,完成了对万年历的设计,达到了预期的目的.程序编写中,由于思路 不清晰,开始时遇到了很多 的问题,经过静下心来思考,理清了思路,终于能够 完成它.在此次设计中,知道了做凡事要有 一颗平常的心,不要想着走捷径,一步一脚印也练就了我们的耐心,做什么事都在有耐心.此 次设计中学到了很多很多东西,这是最重要的.参考文献1 刘勇编数字电路电子工业出版社2004 2 陈正振编电子电路设计和制作广西交 通职业技术学院信息工程系2007 3 杨子文编单片机原理及使用西安电子科技大学出版社2006 4 王法能 编 单片机原理及使用科学出版社2004 5 曹琳琳.单片机原理及接口技25

40、附录:附录:系统程序清单 * . *术【M】.北京:国防科技大学出版社,2000年.6许惠民.单片微型计算机原理,接口及使用 fM.北京:北京邮电大学出版社,2000年.7康华光.电子技术基础【M】北京:高等教育出 版社,2001年.万年历程序*;* 67H(高两位年 )66H(低两位年 )65H(月)64H(星期);63H(日)62H(小时)6伯(分)60H(秒)57H(农历月)56H(农历 日);显示缓冲单元 7CH7BH(4CH4BH年低位,7AH79H(4AH49H)月;78H(48H)星期,77H76H(47H46H)日,75H74H(45H44H)时;73H72H(43H42H)分

41、,71H70H(41H40H) 秒,5EH5DH(55H54H) 农历年;5CH5BH(53H52H)农历月,5AH59H(51H50H)农历日;闰年标志为 F0,定时器T1 为调整时候闪烁用SCLK EQU 10 RST YEAR WEEK DAY HOUR SECOND EQU EQUP3.2 P3.3 P3.4AJMP STARTORG0003H RETI ORG000BH RETI ORG0013H RETI ORG001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETIDATA 66H DATA 64H DATA 63H DATA 62H DATA

42、 60HMONTH DATA 65HMINTUE DATA 61H DS1302_ADDR DATA 32H DS1302_DATA DATA 31H ORG 0000H*START:SETB EA MOV SCON,#00H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#00H MOVDS1302_ADDR,#8EH MOV DS1302_DATA,#00H 25允许写 1302 ;串行输出,方式 0 ;计数器 1, 方式 1 LCALL WRITE MOV DS1302_ADDR,#90H MOV DS1302_DATA,#0A6H ;130充电,充电电流 1.1

43、mA LCALL WRITE MAIN1: MOV DS1302_ADDR,#8DH LCALL READ ;READ OUT YEARMOV YEAR,DS1302_DATA MOV DS1302_ADDR,#8BH LCALL READ MOV WEEK,DS1302_DATA MOV DS1302_ADDR,#89H LCALL READ MOV MONTH,DS1302_DATA MOV DS1302_ADDR,#87H LCALL READ MOV DAY,DS1302_DATA MOV DS1302_ADDR,#85H LCALL READ MOV HOUR,DS1302_DATA

44、MOV DS1302_ADDR,#83HLCALL READMOWINTUE,DS1302_DATA/IOVDS1302_ADDR,#81H_CALL READ MOVsECOND,DS1302_DATAOVR0,YEARLCALL DIVIDE MOV7BH,R1 MOV4BH,R1 MOV7CH,R2 MOV 4CH,R2 MOV 78H,WEEK MOV 48H,WEEK MOV R0,MON月分离,送显示缓存 LCALL DIVIDE MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2 SSS:;年分离,送显示缓存 ;READ OUTSECOND ;

45、READ OUT MINTUE ;READ OUT HOUR ;READ OUT DAY ;READ OUT MONTH ;READ OUT WEEKMOV R0,DAY LCALL DIVIDE MOV 76H,R1 MOV 46H,R1 MOV 77H,RMOV 47H,R2MOV R0,HOURLCALL DIVIDE MOV74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,RMOVR0,MINTUE LCALLDIVIDEMOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 MOV R0,SECOND LCALL DIVIDE

46、MOV 70H,R1MOV40H,R1 MOW1H,R2 MOV41H,R2 LCALLDISPLAYLCALLGENGXINJNB P1.1,SETG JNB F0,SSS;日分离,送显示缓存;小时分离,送显示缓存分分离,送显示缓存 秒分离,送显示缓存更新农历程序CLR P1.3 ; 闰月,则p1.3 清0,指示灯亮LJMP MAIN1 SETB P1.3 ;非闰月,则p1.3 置*位,指示灯灭LJMP MAIN1公 历 设 置 程*SETG:SETB TR1 SETB ET1 CLR 08H CLR 09H CLR 0AH CLR 0BHCLR 0CH CLR 0DH CLR 0EH CLR 0FH MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H ; 允许写130225LCALL WRITEMOVDS1302_ADDR,#80HMOVDS1302_DATA,#80HLCALL WRITEGWAIT: SETG1:LCALL DISPLAY JNB P1.1,G

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1