ImageVerifierCode 换一换
格式:DOCX , 页数:62 ,大小:93.69KB ,
资源ID:3755920      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3755920.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子专业毕业设计万年历制作.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子专业毕业设计万年历制作.docx

1、电子专业毕业设计万年历制作单片机课程设计说明书题 目:电子万年历的设计与制作专 业: 唐山工职院08级电子与技术班 级:11班姓 名: 郝彦龙学号:085223141指导教师:高松二 0一0 年 9 月 20日一、设计目的及意义(1)在学习了数字电子技术和单片机原理及接口技术课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的经验让学生接触专用时钟芯片DS1302,并会用DS1302芯片开发时钟模块,应用到其他系统中去。熟悉WAVE软件调试程序和仿真.(2)、通过实验提高对单片机的认识;(3)通过实验提高焊接、布局、电路检查能力;(4)、通过实验提高软件调

2、试能力;(5) 进一步熟悉和掌握单片机的结构及工作原理。(6) 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。(7)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。(8) 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。二、设计内容要求电子万年历能显示阳历年、月、日、星期、小时、分、秒和阴历月、日,在显示阴历时间时能标明是否为闰年。三、方案选择与实验基本原理。按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键盘接口模块共4个模块组成,电路系统构成框图如图L

3、1所示。主控芯片使用51系列AT89c52单片机,时钟芯片使用美国DALLAs公司推出的一种高性能、低功耗、带RAM的实时时钟DSl302。采用DSl 302作为主要计时芯片,可以做到计时准确。更重要的是,DSl302可以在很小电流的后备电源(2555v电源,在25v时耗电小于300 nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。 显示模块采用普通的共阳LED数码管,键输入采用查询法实现调整功能。 图1 电子万年历电路系统构成框图系统硬件电路的设计图2为电子万年历电路设计原理图,系统由主控制器AT89C52、时钟芯片DSl302、串口显示电路及

4、键扫描电路组成。 图2电子万年历电路设计原理图3.3.1 主控制器AT89C52 ATMEL公司生产的AT89C52单片机采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性F1ash程序存储器。它是一种高性能、低功耗的8位cMos微处理芯片,市场应用最多。主要性能特点有: 8KH F1ash ROM,可以擦除1000次以上,数据保存10年256字节内部RAM。电源控制模式 时钟可停止和恢复 空闲模式; 掉电模式。6个中断源。4个中断优先级。4个8位IO口。全双工增强型UART。3个16位定时计数器,To、T1(标准80c51)和增加的T2(捕获和比较)。全静态工作方式:0-24MH

5、 z。3.32 时钟电路DSl302 1ds1302的性能特性 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 用于高速数据暂存的318位RAM; 最少引脚的串行Io; 2555V电压工作范围; 25V时耗电小于300 nA; 用于时钟或RAM数据读写的单字节或多字节(脉冲方式)数据传送方式; 简单的3线接口; 可选的慢速充电(至Vcc1)的能力。 D51302时钟芯片包括实时时钟日历和3l字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟 日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月利月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可

6、以采用24H或带AM(上午)PM(下午)的12H格式。采用三线接口与cPu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。Dsl302有主电源后备电源双电源引脚:Vcc1在单电源与电他供电的系统中提供低电源,并提供低功率的电池备份;Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份电,以便在没有主电源的情况下能保存时间信息以及数据。Ds1302由Vcc1或vcc2中较大者供电。当vcc2大于Vcc1十o2v时,vcc2v给DSl302供电;当vcc2小于Vcc1时,DSl302由Vcc1供电。 2DSl302数据操作原理 Dsl 302在任何数据传送时

7、必须先初始化,把RsT脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在scLK的上升沿被输入。无论是读周期还是写周期,开始8位指定40个寄存器中哪个将被访问到。在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写人数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。 如果在传送过程中置RsT脚为低电平,则会终止本次数据传送,并且I()引脚变为高阻态。上电运行时,在 Vcc2.5 V之前 ,RsT脚必须保持低电平。只有在scLK为低电平时,才能将RsT置为高电平。D引302的引脚及内部结构图如图33所

8、示,表31为各引脚的功能图3 DS1302引脚及内部结构 表1 DS102引脚功能 Dsl302的控制字如图34所示。控制字节的最高有效位(位7)必须是逻辑1;如果它为0,则不能把数据写入到Dsl302中。位6如果为0,则表示存取日历时钟数据;为1表示存取RAM数据。位51(A4一A0)指示操作单元的地址。最低有效位(位0)如为0,表示要进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入输出。 为了提高对32个地址的寻址能力(地址命令位15逻辑1),可以把时钟日历或RAM寄存器规定为多字节(burst)方式。位6规定时钟或RAM,而位0规定读或写。在时钟日历寄存器中的地址931或RA

9、M寄存器中的地址31不能存储数据。在多字节方式中,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。小管是否写了全部31字节,所写的每一字节都将传送至RAM。 图4 DS1302的控制字 图5 DS1302数据读/写时序 Dsl302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其H历、时间寄存器及其控制字见表32,其中奇数为读操作,偶数为写操作。 时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止振荡,进入低功耗的备份方式.通常在对Dsl302进行写操作时(如

10、进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。 AMPM1224小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5是AMPM位,此位是高电平时表示PM,低电平表示AM。在24小时方式下,位5为第二个10小时位(20一23h)。 表2 内部寄存器地址和内容 Dsl302的品振选用32768kH z,电容推荐值为6PF,因为振荡频率较低,也可以不接电容对计时精度影响不大。333 显示电路的设计 显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路。考虑到一次扫描19位数的管显示时会出现闪烁情况,设计时19个数码管分3排同

11、时扫描。第一排6个数码管分别为千年、百年、十午、年、十月、月,第二排6位数码管分别为十时、时、十分、分、十秒、秒,第三排7位数码管分别为星期、阴历十月、阴历月、阴历十日、阴历日、十日、日。显示时采用串行口输出段码,用3片74ls164来驱动3排数码管,这样扫描一次只需7ms。 741ls164内部为8个D触发器,用以实现数据的串行移位,741ls164特性见表3。单片机以串行口方式0移仿寄存器方式)输山数据,3片74Lsl64作为3排共阳数码管的串并转换显示接口。 74ls164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑“与”

12、运算规律输入信号,共一个输入信号时可并接,共同作为输入脚。cP(第8脚)为时钟输入端,可连接到串行口的TxD端。每一个时钟信号的上升沿加到cP端时,移位寄存器移一位。8个时钟脉冲过后,8位二进制数全部移入74lsl 64中。MR脚(第9脚)为复位端,当该脚为低电平时,移位寄存器各位复0;只有当它为高电平时,时钟脉冲才起作用。Q1一Q8(第36和10一13引脚)并行输出端分别接数码管的ha(因为串行n从低位开始传送)各段对应的引脚上。在给出了8个脉冲后,最先进入741。s164的第1个字Ll数据到达厂最高位。再来1个脉冲,第1个脉冲就会从最高位移出,进入下个74L5164的第1位。3片741S1

13、64首尾相串,而时钟端则接在一起。这样,当输入8个脉冲时,从9片机RXD端输出的第1字节数据就进入了第1片74LSl64中,而当第2个8个脉冲到来后,第l字节数据就进入了第2片74Lsl64,而随后的第2字节的数据则进入了第1片74LS164。这样,当第3个8个脉冲完成后,首次送出的数据被送到了最下面的164(第3片)中,其它数据依次出现在第二和第一片74LS164中,实现了数据在74LS164中的串行输入、并行输出。表3 74LS164特性表 在方式0状态下,串行口为同步移位寄存器方式,其波特率是固定的,为fosc12。数据由RxD(P3.0)端输入或输出,同步移位脉冲由TxD(P3.1)端

14、输出。发送、接收数据时低位在先。所以,根据本小节下面提供的硬件电路图,在编写程序时,查共阳数码管的段码的二进制数据应该将正常的共阳数码管0一9的二进制值按位反序排序,如原来的二进制为11000000(C0H),要改为00000011(03H),就能使数码管正常显示。3.3.4 键盘接口的设计由于按键只有3个,用普通按钮接10kw上拉电阻,用查询法完成读键功能。3.4系统程序的设计 因为使用了时钟芯片Dsl302,阳历程序只需从Dsl302各寄存器中读出年、周、月、日、小时、分、秒等数据,再处理即可。在首次对Dsl302进行操作之前,必须对它进行初始化,然后从Dsl302中读出数据,再经过处理后

15、,送给显示缓冲单元。阳历程序流程图见图36所示。图6 阳历程序流程图342 时间调整程序设计 调整时间用2个调整按钮,1个作为移位、控制用,另外1个作为加和减用,分别定义为控制按钮、加按钮。在调整时间过程中,要调整的位与别的位应该有区别,所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定时间熄灭一次,比如说50 m s。利用定时器计时,当达到50 ms溢出时,就送给该位熄灭符,在下一次溢出时。再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进人下一位调整闪烁程序。时间调整程序程序流程图如图37所示。343 阴历程序设计 阴历程

16、序的实现是要靠阳历日期来推算的。要根据阳历来推算阴历日期,首先要设计算法。推算方法是,根据阳历当前日期在一年中的天数来计算阴历日期。阳历一个月不是30天就是3l天(2月除外,闰年2月为29天,平年2月为28天)。阴历一年有12个月或13个月(含闰月),一个月为30天或29天。如果把一个只有29天的月称为小月,用1为标志,把30天的月称为大月,用0为标志,那么12位二进制就能表示一年12个月的大小。如果有闰月,则把闰月的月份作为“一个字节的高4位,低4位表示闰月大小,大月为0,小月为1这样一个字节就包含了所有闰月的信息。阴历春节和阳历元旦相差的天数也用一个字节表示。总共用1字节就可以存储一年中任

17、何一天阳历和阴历的对应关系的有关数据,例如2004年的阴历和阳历对应关系如表34所列。 图7 时间调整程序流程图表4 2004年的阴历和阳历关系表 2004年的春节和元旦差20天,这样2004年的信息表示为:21,42H,52H,21H。其中表示12个月大小信息的字,第4位和第7位不用。第1个字节为十进制,其它的都为十六进制。按此方法,50年的阳历和阴历对应关系表总共使用200字节。 有了算法和数据以后,就可设计软件了。先要根据当前阳历的日期,算出阳历为该年中的第几天。图 3.8为计算阳历中任何一天在该年中为第几天的程序流程图。 计算出当前阳历日期为该年中的第几天后,再减去阳历该年春节和元旦的

18、日差,如果够减则相减的结果就是阴历在该年的总第几天了。根据该数据就可以推算出具体的当前阴历日期;如果不够减,则表示当的阴历年为阳历年的前一年。这种情况下,根据实际、当前阴历日期会处十阴历11月或12月,此时春节和元旦的日差减去前面计算出的当前阳历日期在阳历年为第几天的数据其结果表示当的阴历日期离春节的天数。计算出的阳历天数为该年的第几天,存放在寄存器只2和只3中。计算出天数后,如果大于FFH,则把#FFH存放在R2中,余值存放在R3中。也就是说在用寄存器R2和R3表示的天数信息中R2充当主寄存器,数据先存满R2,再存R3。整个转换程序中,这里面的数据不能被覆盖。 计算出阳历总天数后,就可以根据

19、它来推算阴历日期。推算方法是,先用总天数减去春节相元旦的日差,如果结果为1,则该天正好是春节(因为春节在元旦之后,在计算春节和几旦的日差0时,假设元旦为0天,春节为M天,则日差为M。而前面计算的阳历总天数是该天在该年中的第几天,是以元旦为1而得到的,与计算春节和元旦日差的这种方法相比,其数值少了1所以要在原来本应该以0作为该天就是春节的依据的基础上加1,所以以1作为该天是春节的标志);如果结果小于1,则阴历应该是阳历的前一年;如果结果大于1,说明阳历和阴历为同一年。再根据查表所得的该年的阴历的闰月和大小月的信息,就可以推算出该大的阴历日期了。图39为由总天数推算出阴历日期的程序流程图。图9 推

20、算阴历日期的程序流程图四、调试总结及改进(1)DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与

21、RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。 (2)在仿真头调试时候,我发现在LED显示板上能够正常显示数字,但是秒位不能记数,检查DS1302的连接(没有错,接触也良好),说明了这片DS1302不能记数,然后换掉DS1302后此时不但可以正常显示数字,而且可以正常记数,说明刚才那片是坏的。(3)(2M)晶振的调试,在调试晶振的时候发现,在没有给电路同电的时候,晶振两端输出波形是个不稳定的正弦波,而通电后也

22、是个正弦波,但是中间一个引脚接地时候,波形比较稳定,接示波器时间长了,发现DS1302很发烫(时间很短内温度达到很高),但是不接示波器,时间长点也不会出现发烫现象。我认为是示波器引脚上的电和电路板上的电相通的原因。五元器件主控器AT89C52一片、时钟芯片DS1302一片、10P瓷片电容2个、22P瓷片电容3个,32.768K(时钟晶体)1片、510欧排电阻3个、共阳LED 19片,9012三极管1片、8550三极管7个,2M晶体1片、74LS104三片、发光二极管一个、按钮开关2个、万能电路板(大小个1个),5V电源一个、导线若干。六、参考书目1、李振声实验电子技术(P182193).国防工

23、业大学出版社,2001年2 李飞光 单片机课程设计实例指导 北京航空航天大学出版社 2004年七程序调试SCLK EQU P3.2IO EQU P3.3RST EQU P3.4YEAR DATA 66HMONTH DATA 65HWEEK DATA 64HDAY DATA 63HHOUR DATA 62HMINTUE DATA 61HSECOND DATA 60HDS1302_ADDR DATA 32HDS1302_DATA DATA 31H ORG 0000H AJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH

24、LJMP INTT1 ORG 0023H RETI ORG 002BH RETISTART: SETB EA MOV SCON,#00H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#00H MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H LCALL WRITE MOV DS1302_ADDR,#90H MOV DS1302_DATA,#0A6H LCALL WRITEMAIN1: MOV DS1302_ADDR,#8DH LCALL READ MOV YEAR,DS1302_DATA MOV DS1302_ADDR,#8BH LC

25、ALL 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 MOV DS1302_ADDR,#83H LCALL READ MOV MINTUE,DS1302_DATA MOV DS1302_ADDR,#81H LCALL READ MOV SECOND,DS1302_DATA M

26、OV R0,YEAR LCALL DIVIDE MOV 7BH,R1 MOV 4BH,R1 MOV 7CH,R2 MOV 4CH,R2 MOV 78H,WEEK MOV 48H,WEEK MOV R0,MONTH LCALL DIVIDE MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2 MOV R0,DAY LCALL DIVIDE MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 MOV R0,HOUR LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2

27、 MOV R0,MINTUE LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 MOV R0,SECOND LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2 MOV 41H,R2 LCALL DISPLAY LCALL GENGXIAN JNB P1.2,NUM JNB P1.1,SETG JNB F0,SSS CLR P1.3 LJMP MAIN1SSS: SETB P1.3 LJMP MAIN1 NUM:MOV MONTH,#0AAH MOV HOUR,#0AAH MOV MINTUE

28、,#0AAH MOV SECOND,#04H MOV R0,MONTH LCALL DIVIDE MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2 MOV R0,HOUR LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 MOV R0,MINTUE LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 MOV R0,SECOND LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2 MOV 41H

29、,R2 LCALL DISPLAY JNB P1.2,NUM LJMP MAIN1SETG: SETB TR1 SETB ET1 CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH CLR 0DH CLR 0EH CLR 0FH MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H LCALL WRITE MOV DS1302_ADDR,#80H MOV DS1302_DATA,#80H LCALL WRITEGWAIT: LCALL DISPLAY JNB P1.1,GWAITSETG1: LCALL DISPLAY JNB P1.1

30、,SETG2 JNB P1.2,GADDYEAR AJMP SETG1GADDYEAR: MOV R7,66H LCALL ADD1 MOV 66H,A CJNE A,#51H,GADDYEAR1 MOV 66H,#01HGADDYEAR1: MOV DS1302_ADDR,#8CH MOV DS1302_DATA,66H LCALL WRITE MOV R0,66H LCALL DIVIDE MOV 4BH,R1 MOV 7BH,R1 MOV 4CH,R2 MOV 7CH,R2WAITT1: LCALL DISPLAY JNB P1.2,WAITT1 AJMP SETG1SETG2: SETB 0AHGWAIT2: LCALL DISPLAY JNB P1.1,GWAIT2SETG3: LCALL DISPLAY JNB P1.1,SETG4 JNB P1.2,GADDMONTH AJMP SETG3GADDMONTH: MOV R7,65H LCALL ADD1 MOV 65H,A CJNE A,#13H,GADDMONTH1 MOV 65H,#01HGADDMONTH1: MOV DS1302_ADDR,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1