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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机数字电子钟.docx

1、单片机数字电子钟1 课程设计目的与要求1.1 设计目的了解数字钟的原理,从而学会制作数字钟。通过数字钟的制作进一步的了解在制作中用到的各种中小规模集成电路的作用及使用方法。学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。学习并掌握单片机的使用和编程方法。1.2 设计要求可调整时间的数字时钟。只显示分、秒,采用动态显示模式。通过按键可对时钟进行选位和加减的时间调整,调整时选中位进行闪烁。可实现时间暂停和重新启动。计时精确。2 硬件设计2.1 方案设计数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。标准的频率时间信号必须做到准确稳定,通常使用石英晶体振荡电路构成数字钟。本次课程设计

2、的内容是设计一个数字钟,由单片机通过编辑的程序控制电路,实现显示秒、分的一个电子时钟。并且可以通过按键选择调整时钟时间,以及暂停的功能。电路原理图如图1图1 原理图2.2 电路设计本次设计中使用的主要元器件有AT89S52、三极管、数码管、晶体振荡器、按键、LED指示灯等。本次数字钟电路用到的模块主要由电源电路、单片机控制电路、晶体振荡电路、显示电路等组成。(1)电源电路采用外接5V直流电源驱动其运行。电源电路才用一个开关来打开关闭电源。另外时用一个发光二极管来指示电源的通断。(2)晶体振荡电路电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和

3、非门构成一个正反馈网络,实现了震荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。(3)单片机控制电路数字钟的核心原件为AT89S52,配合程序对整个电路进行控制。P1口输出时钟显示的数字,P0口对数码管进行片选,P0口时用需接上拉电阻和三极管,P2口接受按键信号,通过中断来实现对数字钟的时间的调整。复位按键可对单片机进行复位。(4)显示电路由数码管、电阻和三极管组成。(5)复位电路为手动复位,由一个开关,电解电容,电阻组成。(6)下载口电路下载模块:ISP下载功能,是通过单片机的SPI口实现的。89S系列的单片机都带ISP下载功能各种功能电路相互结合组成实现设

4、计功能要求的数字钟电路,配合根据电路编写的程序以实现设计要求的全部功能。2.3 原理图及PCB图使用protel绘制全部电路的原理图和PCB图,网络标号的使用可以让图看起来简洁清楚,方便绘图人的操作。详图请见附录。2.4 制板根据原理图在万用版上使用导线将各种器件连接成电路板。2.5 系统调试使用万用表对制作好的电路板进行电气检查,确保没个引脚的连接都符合原理图的设计,没有出现虚焊、漏焊或者短路的情况。通电状态下检查各器件的工作电压是否正常。3 软件设计3.1 流程图通过单片机来实现数字钟的功能。流程图2图2 数字钟总原理图定时器中断时,先检测50ms脉冲是否计数20次,计数到20次,秒就加1

5、;如果没计满60,就返回显示时间,如果秒计满60秒,就清零秒,给分加1;检测分钟,如果没计满60,继续计时,返回显示时间,如果满60,就清零分钟,给小时加1;检测小时,如果没计满24,就继续计时,返回显示时间,如果计满24,就清零,给秒加1,显示时间。时+1=24?3.2 程序清单根据原理图,写出相应的程序,程序清单详见附录A4 设计结果与调试4.1 软件调试软件为老师所提供提供,其原理在上面以作说明。软件部分是先参考书上的例子,然后自己根据硬件电路写程序,本次编程采用的是C语言。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。4.2 硬件调试把程序烧入单片机,上电后,按下开始停止

6、按键,时钟便从000000开始每秒加1计时,再次按下开始停止按键,时间暂停,进入调时状态。按秒按键,秒个位闪烁并加1;按下调分按键,分个为闪烁并加1;按下调时按键,分个为闪烁并加1。当再次按下开始停止按键时,时钟又运行。当按下复位键时,时间显示消失。经以上调试所要求的功能均以实现。4.3 误差分析在调试过程中,最初几次数码管显示有一定的问题,但最后发现是位控线和段控线的焊接存在问题。在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来实现。而你开启定时器和开启LED灯顺序上是有先后的,这个过程需时间的,所以就产生了一定的误差,当然这个误差是避免不了的

7、,其次还有硬件系统也有一定的影响。第三,设计用到12MHz的晶振,计算是满20次为一秒钟,但实际会慢很多。4.4 教学建议最开始学习单片机时,是对单片机不感兴趣的,上课也是一直只是抱着完成任务的心态,直到后来,上了第一次单片机实验课,王老师通过各种问题,让我们巩固上课所学知识,通过实际解决问题,才慢慢发现单片机是一门很有趣的课程,并且每当你解决一个问题时,你会充满成就感。希望王老师再接再厉,对我们之后的学弟学妹,也以同样的心态对待。相信,他们也会像我们一样,痛并快乐着!结束语这个学期即将结束,从刚开学,老师就说我们的课程设计从第一节课开始。在这个学期里,我学到了很多,对单片机有了更深刻的认识,

8、也对自己的不足有了清醒的认识。虽然我在上课时,觉得理论很容易,但是当具体写程序时,发现还是有各种各样的问题出现。开学时画PCB图,一点都不熟练,出了不少错误。在焊接过程中,也出现了不少虚焊的情况。通过这次的课程设计,使我注意到了以上几点,应在以后的学习中加以注意。通过这次机会不但练习了编程,而且还对AT89S52单片机又加深了一些认识,练习了定时器,中断等。课程设计很快就这样过去了。我们每个人都学到了很多东西,同时也感觉到了自己的不足,它将对我们以后参加工作有很大的帮助,有利于我们以后走上工作岗位。致谢在整个课程射界的过程中,同学给予的帮助很重要,他们是我成功的关键,尤其在焊接时,一个人很容易

9、疏忽大意,而我们一起时,轻松愉快也不容易出问题,再就是遇到困难时,首先自己会仔细考虑,实在想不出来,我们会在一起思考找问题,每次问题的解决都会充满成就感。在设计过程中,老师给予了我们很多帮助,其实在每次单片机实验的时候,老师就是通过各种各样的问题,来让我们更加好的学习单片机。没有单片机实验带给我们扎实的基础,这次课程设计也不会这么顺利,取得成功。非常感谢老师的帮助!参考文献1、马忠梅,单片机的C语言Windows环境编程宝典M, 北京:北京航空航填天大学出版社,2003.6; 1, Ma Zhongmei, microcontroller C language Windows environm

10、ent programming book M, Beijing: Beijing University of Aeronautics aviation days Press, 2003.6;2、李光飞,单片机C程序设计指导M,北京:北京航空航天大学出版社,2003.01 ;2, Li Guangfei, microcontroller C program design the guidance M, Beijing: Beijing University of Aeronautics and Astronautics Press, 2003.01;3、李光飞,单片机课程设计实例指导M,北京:北

11、京航空航天大学出版社,2004.9。3, Li Guangfei, SCM curriculum design examples to guide M, Beijing: Beijing University of Aeronautics and Astronautics Press, 2004.9.附 录附录A:程序清单:#include#include /*共阳数码管字型码数组*/*0,1,2,3,4,5,6,7,8,9,p.,灭,-*/char code dis_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0xf

12、f,0xbf; /*显示缓冲数组(存放显示信息的字型码的序号)*/ char find_code8;char time;sbit p12=P12;/*/函数名: void DelayX1ms(uint count)/功能: 延时时间为1ms/调用函数:/输入参数:count,1ms计数/输出参数:/说明:总共延时时间为1ms乘以count,crystal=12Mhz/*/#define uchar unsigned char#define uint unsigned intuchar sec=0,min=0,hour=0; void DelayX1ms(uint count) uint j;

13、while(count-!=0) for(j=0;j80;j+); /*显示函数*/void disp() char i,j=0xfe; char k; for(i=0;i=20) /是否到1秒,到1秒,秒加1,否则函数返回 click=0; if(+sec=60) /加到60秒,秒清0 sec=0; if(+min=60) /分加1,是否到60分,否则函数返回 min=0; /加到60分,分清0 if(+hour=24) /时加1,是否到24小时,否则函数返回 hour=0; /加到24小时,时清0 find_code0=sec%10; find_code1=sec/10; find_cod

14、e2=12; find_code3=min%10; find_code4=min/10; find_code5=12; find_code6=hour%10;find_code7=hour/10; /LED显示缓冲区时间值更新 void main() while(1) find_code0=11; find_code1=11; find_code2=11; find_code3=11; find_code4=11; find_code5=11; find_code6=11; find_code7=10; disp(); switch(key() case 0x01: TMOD=0x01; /定

15、时器1,工作方式1 TH0 =0x3c; TL0 =0xb0; /50ms中断一次 EA=1; ET0=1; TR0=1; while(1) find_code0=0; find_code1=0; find_code2=12; find_code3=0; find_code4=0; find_code5=12; find_code6=0; find_code7=0; disp(); while(1) mm: disp(); if(key()=0x01)/进入调整状态 while(1) TR0=0; disp(); switch(key() case 0x01: TR0=1;goto mm;br

16、eak; /进入运行状态 case 0x02: / 时调整 hour+; if(hour=24) hour=0; break; case 0x04: / 分调整 min+; if(min=60) min=0; break; case 0x08: / 秒调整 sec+; if(sec=60) sec=0; break; default: disp(); break; find_code0=sec%10; find_code1=sec/10; find_code2=12; find_code3=min%10; find_code4=min/10; find_code5=12; find_code6

17、=hour%10; find_code7=hour/10; default: disp(); break; 附录B:图B1 电路原理图附录C:图C1 布局图图C2 底层图C3 PCB顶层图C4 实物仿真图附录D:元器件清单:名称数量参数单片机1个AT89S52共阳数码管2个共阳极4位1体底座3个晶振1个12MHz发光二极管9个单排插1个40PIN蜂鸣器1个按键9个排阻2个10K下载口座子1个10芯6脚按键开关1个USB电源线加接口1个电阻24个470电阻3个1K电阻1个200电解电容1个22f瓷片电容2个33pf短路帽3个PCB板1块电源插座1个杜邦线1个铜柱(带螺母)4个三极管9个PNP9012表D1

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

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