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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实时时钟设计报告Word格式文档下载.docx

1、3.设计方案根据系统设计的功能的要求,初步确定设计系统由主控模块、时钟电路、显示电路、键盘输入电路及蜂鸣器电路组成。电路系统框图如图所示。键盘输入电路显示电路蜂鸣器图系统设计框图其中,主控芯片使用51系列AT89C52单片机,时钟芯片使用DS1302,晶振为11.0592MHz,显示电路由四位共阳LED数码管完成,键盘采用线性连接,使用查询法实现调整功能,蜂鸣器电路由有源蜂鸣器完成。原理简述1.主控模块2管脚图是低功耗、高性能的CMOS8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外,AT89C52的指令系统和引脚与80C52完全兼容。管脚功能如下:VCC:

2、供电电压;GND:接地;P0口:口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。;P1口是一个内部提供上拉电阻的位双向口,P1口缓冲器能接收输出4TTL门电流;P2口为一个内部上拉电阻的口,P2口缓冲器可接收,输出4个TTL门电流,当口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流;P3口管脚是个带内部上拉电阻的双向口,可接收输出个当口写入“1”后,它们被内部上拉为高电平,并用作输入;口管脚功能:P3.0RXD(串行输入口);P3.1TXD(串行输出口);P3.2是/INT0(外部中断0);P3.3是/INT1(外部中断1)

3、;P3.4T0(记时器0外部输入);P3.5T1(记时器P3.6是/WR(外部数据存储器写选通);P3.7是/RD(外部数据存储器读选通);口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是

4、否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.时钟电路3硬件时钟电路时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多字节的时钟信号或RAM数据。在任何数据传送时必须先初始化,把脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上

5、升沿被输入。无论是读周期还是写周期,开始位指定40个寄存器中哪个被访问到。在开始个时钟周期,把命令装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲在单字节方式下为加8,在多字节方式下为8加字节数,最大可达248个字节数。如果在传送过程中置脚为低电平,则会中止本次数据传送,并且I/O引脚变为高阻态。相关代码如下:/*ds1302与at89s52引脚连接*/sbitT_RST=P36; /RST脚接P36T_CLK=P34; /CLKP34T_IO=P35; /IOP35ACC0=ACC0; /定义标志位ACC7=ACC7;/*DS1302:写入操作(上升沿)*/

6、voidwrite_byte(unsignedcharda)unsignedi;ACC=da;for(i=8;i0;i-)T_IO=ACC0;T_CLK=0;T_CLK=1;ACC=ACC1;读取操作(下降沿)*/read_byte(void)for(i=0;i8;i+)T_CLK=ACC7T_IO;return(ACC);/*DS1302:写入数据(先送地址,再写数据)*/write_1302(unsignedaddr,unsignedT_RST=0; /停止工作T_RST=1; /重新工作write_byte(addr); /写入地址write_byte(da);/*DS1302:读取数据

7、(先送地址,再读数据)*/read_1302(unsignedaddr)temp;temp=read_byte();return(temp);3.显示电路4 四位共阳数码管电路显示部分采用普通的共阳数码管显示,使用动态扫描,以便减少硬件电路。数码管里面有只发光二极管,与实验板端口所接的二极管是相同的。分别记作abcdefgdp,其中dp为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只引脚就连接在一起同样也引到外部引脚上。该数码管为共阳极,且通过P0=P2直接把按键状态给到上,并没有5中间变量,通过按键控制数码管的各管脚的高低电平接入情况。当数码管里面的发光二极管的阳极接在一起作

8、为公共引脚,在正常使用时此引脚接电源正极。发光二极管的阴极接低电平时,发光二极管被点亮,从而相应的数码段显示数字。接到单片机的口,若为低电平,可使亮起。发光二极管的亮、灭由内部程序控制,因为流水灯与数码管同时接在端口,所以流水灯的8发光二极管与数码管亮暗相同。相关程序如下:/*定义数码管显示引脚*/LED_0=P14; /数码管个控制引脚定义LED_1=P15;LED_2=P10;LED_3=P11;LED_4=P12;LED_5=P13;LED_6=P16;LED_7=P17;unsigned char seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

9、0x80,0x90;/09段码/*显示程序*/*动态扫描条件(单个在秒内):count=50次 /点亮次数 */* time=2ms /持续时间 */秒,分,时寄存器是BCD码形式:用16求商和余进行高位和低分离*/*/led_disp(unsigned*poi)P0=seg*(poi+1)%16; /第个数码管:显示分(个位);LED_5=0;delay(3);LED_5=1;/显示分(十位);LED_4=0;LED_4=1;P0=seg*(poi+2)16-(*poi%16)%2) /包含头文件buz=P37; /定义蜂鸣器引脚是P33Delay(unsignedinti) /最常用的延时

10、函数,已经反复使用过while(i-);main(void) /主函数开始for(;)/以下实现buzzer和relay以一定频率改变状态buz=0; /蜂鸣器响继电器开Delay(60000); /延时buz=1; /蜂鸣器不响继电器关调试过程硬件调试使用烙铁、焊锡、镊子等工具,根据原理图,将各种电子元件正确装配到电阻板上。焊接过程中注意电路板与原理图连接一致,分清电解电容、二极管、芯片、排阻、蜂鸣器、单片机接口等元件的引脚正反,避免虚焊、引脚短路现象。为了避免较低的元件焊接不便,焊接时元件需要从低往高焊,较低的元件如电阻、单排圆孔、排阻、晶振等,普通高度元件有瓷片电容、按键、LED、芯片座

11、、USB头、数码管、柱状晶振等,较高的元件有串口头、排针排孔、电源头等。完成电路板的焊接工作并检查无误后,借助测试程序测试电路板的好坏。在板子上正确下载实时时钟测试程序后,经测试电路板能够正确完成程序的功能,说明电路板焊接正确无误,可放心地进行下一步软件调试。软件调试实时时钟测试程序可以完成从12:00开始计时,并在数码管上显示相应时间,在此程序基础上进行修改,即可完成本项目的预期功能。在完成按键设置时间功能时,发现数码管显示数据出现时而正常,时而乱码该情况。研究程序代码后发现,由于中秒、分、时寄存器是码形式的,所以在进行加法运算时需要对码进行修正,当结果大于9时,要进行加操作,另外时和分的个

12、位满10进一,分满60进一归零,时满24归零的判断分支语句顺序不是任意的,必须遵守一定的顺序。在修改了上述错误后,发现由于按键消抖动不彻底,也导致了显示时间存在一定问题。通过修改延迟时间,发现设置为20000时按键不灵活,设置为15000时按键存在抖动。再通过一定调试后,最终将数值设置为18000。在完成整点报时功能时,会出现蜂鸣器鸣叫持续一分钟的情况,这与鸣叫次数与小时相同的设计初衷违背。研究发现是由于蜂鸣器相关语句位置太后,其中参数的值已经改变原有的值的原因,通过反复测试及分析,最终将蜂鸣器代码位置放在修改进位语句后面,从而完成了蜂鸣器整点报时的功能。主要程序*主程序*/delaysw(u

13、nsignedi)main(void)clk_time3=0x00,0x00,0x12; /秒,分,时寄存器初始值temp=0x80; /数组序号delay(300);write_1302(0x8e,0x00); /WP=0写操作3;write_1302(temp,clk_timei);temp+=2;/delay(300);write_1302(0x8e,0x80); /WP=1写保护while(1)if(sw0=0) /按键按下,时加delaysw(18000);if(sw0=0)clk_time2=read_1302(0x85);clk_time2=clk_time2+1;dflag=1

14、; /标志位置if(sw1=0) /按键按下,分加if(sw1=0)clk_time1=read_1302(0x83);clk_time1=clk_time1+1;if(dflag=1) /标志位为if(clk_time1%16=10)clk_time1=clk_time1+6; /分的个位满10,分的十位加if(clk_time1%96=0)clk_time1=0clk_time2+=1; /分满归零,时加if(clk_time2%16=10)clk_time2=clk_time2+6; /时的个位满10,时的十位加if(clk_time2%36=0)clk_time2=0 /时满if(cl

15、k_time1=0) /整点报时clk_time2;led_disp(clk_time);delay(60000);write_1302(0x8e,0x00);11dflag=0;if(sw2=0) /按键按下if(sw2=0)dflag=dflag;if(dflag=0) /发送时间到数码管显示elseled_disp1(clk_time);temp=0x81;clk_timei=read_1302(temp); /实现每秒读时间心得体会本次课程设计是对我们单片机学习的检验及对实际动手能力的又一次提高。回顾此次单片机课程设计,真是感慨颇多。期间不仅巩固了以前所学过的知识,还学到了很多在书本上

16、所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴地解决,而在解决的过程当中你会发现自己在飞速地提升。对于单片机设计,其硬件电路是比较简单的,只要实验板焊接正确就问题不大了,主要的还是解决程序设计中的问题。而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我发现单片机原理应用性极强,只有老师的讲解不行,光看不试也没用,只有自己动手去做才会发现

17、自己确实有太多的不足。许多的原理、程序看似简单,真正去做之后才会了解专业知识并没有自己想象中的那12样扎实,从而明白理论与实际相结合是很重要的。只有理论知识是远远不够的,只有将所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力,树立起对自己工作能力的信心,相信这会对今后的生活有非常重要的影响,而且大大提高了动手的能力,使我们充分体会到了在创造过程中探索的艰难和成功时的喜悦。当然这次课程设计会提高我们独立思考完成任务的能力,但同组之间遇到实在没有办法解决的问题时,也会相互咨询和讨论,这样加强了大家的合作精神及团结能力,对未来的学习工作也

18、有着极大的帮助。在本次课程设计中,我们感到过程决定结果,细节决定成败。整个过程中,从一开始的实验板焊接,到软件编程,再最后到程序调试,每一步我们都相当认真地去对待,每个细节都经过再三地分析确认。从中我们学会了很多,我们要对自己所正在进行的事情有着充分的耐心,因为程序的编写和调试会经历很多的挫折和困难,如果不够坚持,最终是不会得到预期的项目成果的,同时也了解到了一个项目的设计完成并不是将简单的理论知识的拼凑和组合,是需要将理论和实际有机结合的过程。在大学的这几年,我们接触到的都是基本的理论知识,极少会有机会在实践中运用这些知识,而本次课程就给我们这样的一次机会。通过此次课程设计中遇到的问题也让我们认识到了自己知识的欠缺,所以以后的时间要好好利用图书馆、专业网站等途径来学习更多知识武装自己,为以后走上工作岗位打下坚实的基础。我相信,在以后的单片机学习与使用中,本次课程设计学到的东西将会起着不可代替的作用。此次设计的顺利如期完成也给了我们很大的信心,让我们在了解专业知识的同时也对本专业的发展前景充满了信心。13

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

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