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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机课程设计最终版本.docx

1、单片机课程设计最终版本单片机课程设计报告题目:数字时钟 专 业: 生产过程自动化 班 级: 10自动化4班 姓 名: * 学 号:10* 指导教师: * 时 间: 2012年06月07日 目 录一、课程设计说明 21-1设计题目 21-2设计目的 21-3设计目标 21-4设计要求 21-4-1基本要求 21-4-2扩展部分 2二、系统概述 22-1概述 22-2原理框图 3三、原理概述 33-1硬件 33-1-1电源模块 33-1-2主控模块STC89C52 43-1-3键盘电路设计 43-1-4数码管显示模块及其驱动 53-1-5 LED结构原理图 63-1-6蜂鸣器驱动模块 63-2软件

2、 73-2-1程序流程图 73-2-2按键读取流程 83-2-3日历进位判断 93-2-5 P0口对应段码及数值 11四、附件 124-1原理图 124-2器件清单 134-3使用说明书 134-3-1功能说明 134-3-2按键说明 134-3-3时间设置说明 144-3-4闹钟设置说明 144-3-5整点报时开关说明 14五、实验总结及感想 15一、课程设计说明1-1设计题目:数字时钟1-2设计目的:应用单片机控制技术,以STC89C52单片机为核心的电子时钟。1-3设计目标:在数码管上显示相应的时间,并通过一个控制键来实现时间的调整。1-4设计要求1-4-1基本要求1. 在8位数码管上显

3、示当前时间。显示格式“时时-分分-秒秒”。 2. 利用按键可对时间及闹玲进行设置。1-4-2扩展部分1. 日历功能(能对年月日与星期进行显示,能自动进行分辨平,闰年以及确定各月天数,并自动调整当前的日期)。2. 闹铃(定时响铃)。3. 整点报时(在622点具有整点提示功能,响铃时间为5秒)。4. 贪睡功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)。5. 按键发音。二、系统概述2-1概述该电子时钟由STC89C52,八段数码管等构成,采用晶振电路作为驱动电路,中断产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天,然后根据平年与

4、闰年的不同确定日期,再根据当日的日期,计算出本日为星期几。从而达到计时的功能,是人民日常生活补课缺少的工具。现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。2-2原理框图三、原理概述3-1硬件3-1-1电源模块 从外部引入4.5V的直流电,为单片机、复位电路提供电源。3-1-2主控模块STC89C52 STC89C52

5、是一个8位单片机,片内ROM全部采用FLASH ROM技术,晶振时钟为12MHz。STC89C52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS。3-1-3键盘电路设计该设计只用了四个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键盘可以实现日期、时间和闹钟的调节以及控制是否闹钟模式。3-1-4数码管显示模块及其驱动本电路的输出信号为8段数码管的位选和段选信号。本实验的数码管是共阳的,为了防止段选信号不能驱动数码管,

6、故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在

7、一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。3-1-5 LED结构原理图LED为发光二极管的简称,起体积小,耗电低,常被用为微型计算机与数字电路的输出装置,以显示信号。本次试验LED的是以底电平驱动,共阳极的电路连接而成的。3-1-6蜂鸣器驱

8、动模块蜂鸣器是一种一体化结构的电子讯响器,蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。3-2软件3-2-1程序流程图3-2-2按键读取流程3-2-3日历进位判断流程图如下:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以10

9、0,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。3-2-4计算某一天是星期几的公式:星期制度是一种有古老传统的制度。据说因为圣经创世纪中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。从实际的角度来讲,以七天为一个周期,长短也比

10、较合适。所以尽管中国的传统工作周期是十天(比如王勃滕王阁序中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。 在日常生活中,我们常常遇到要知道某一天是星期几的问题。有时候,我们还想知道历史上某一天是星期几。通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢?W = (Y-1)*365 + (Y-1)/4 - (Y-1)/100 + (Y-1)/400 +

11、D (1)其中D是这个日子在这一年中的累积天数。算出来的W就是公元前1年(或公元0年)12月31日到这一天之间的间隔日数。把W用7除,余数是几,这一天就是星期几。比如我们来算2004年5月1日:W = (2004-1)*365 + (2004-1)/4 - (2004-1)/100 + (2004-1)/400 +31+29+31+30+1)= 731702,731702 / 7 = 1045286,余数为六,说明这一天是星期六。这和事实是符合的。上面的公式(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便。仔细想想,其实这个间隔天数W的用处仅仅是为了得到它除以7之后的余数。这启发我

12、们是不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,用数论上的术语来说,就是找一个和它同余的较小的正整数,照样可以计算出准确的星期数。显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,(Y-1)*365 = (Y-1) * (364+1)= (Y-1) * (7*52+1)= 52 * (Y-1) * 7 + (Y-1)这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就等于Y-1除以7的余数。这个关系可以表示为:(Y-1)*365 Y-1 (mod 7)其中,是数论中表示同余的符号,mod 7的意思是指在用7作模数(也就

13、是除数)的情况下号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:W = (Y-1) + (Y-1)/4 - (Y-1)/100 + (Y-1)/400 + D (2)这个公式虽然好用多了。3-2-5 P0口对应段码及数值P0口对应段码及数值显示数字P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.016进制代码dpgfedcba0110000000xc01111110010xf92101001000xa43101100000xb04100110010x995100100100x926100000100

14、x827111110000xf88100000000x809100100000x90-101111110xbf空111111110xffP100011000x8c四、附件4-1原理图4-2器件清单 元件名称规格型号单位数量单片机芯片STC89C52片1晶振12MHz只1八段数码管7SEG-4IN1只2瓷片电容104只1瓷片电容22只2电阻4.7k只8电阻470只8电阻220只1电阻1K只2电阻10K只4电阻10k只4三极管9012个9二极管1N4148只9按键Tack Switch只5开关Pwr Switch个1电源座5.5DC个1电源线USB转DC5.5条1电源WWY-0510个1排阻9A1

15、03G排1蜂鸣器脉冲型个14-3使用说明书4-3-1功能说明1. 利用单片机内部的定时器,在两个4位数码管上显示日期,如20120510;时间08-45-20;星期-4(其中日期/时间/星期幻灯播放显示,间隔4秒)。2. 年月日、时间可设置,所有正在设置的项目间隔0.5秒闪烁显示3. 星期自动对应,闰年、大、小月份自动调整。4. 有四个按键:“设置/确定”、“+/整点报时开关”、“-”、“取消/闹铃”;按键具有优先级:“取消/闹铃”“设置/确定”“ +”、“”。即在设置时间时+、- 键有效;在任何状态“取消/闹铃”键都可以退出人为操作。5. 具有闹铃功能,闹铃每次响一分钟,也可手动关闭,闹钟时

16、间可设置。6. 具有贪睡的功能。7. 具有整点报时功能(622时).4-3-2按键说明1. 选择按键,选择对年、月、日、时、分等的选中操作,当其中一个被选中的时候,该项产生间隔0.5秒的闪烁,并可以进行时间的调整。2. 增加按键,对年、月、日、时、分的增加操作。3. 减少按键,对年、月、日、时、分的减少操作。4. 取消按键,对当前设置的内容不保存,并退出设置。4-3-3时间设置说明1. 第一次按下“设置/确定”键,“年”位开始闪烁,此时按“+”“-”键可调节年;2. 第二次按下“设置/确定”键,“月”位开始闪烁,此时按“+”“-”键可调节月;3. 第三次按下“设置/确定”键,“日”位开始闪烁,

17、此时按“+”“-”键可调节日;4. 第四次按下“设置/确定”键,“时”位开始闪烁,此时按“+”“-”键可调节时;5. 第五次按下“设置/确定”键,“分”位开始闪烁,此时按“+”“-”键可调节分;6. 第六次按下“设置/确定”键,设置完毕,时钟开始正常走动。在设置过程的任何时刻,“取消/闹铃”键都可以取消当前的设置操作并退出本次设置操作。4-3-4闹钟设置说明1. 闹钟设置:在日期/时间/星期幻灯播放显示的状态下: 第一次按下“取消/闹铃”键,进入闹钟设置模式,“闹钟时”开始闪烁,此时按“+”“-”键可调节闹钟时; 第二次按下“取消/闹铃”键,“闹钟分”位开始闪烁,此时按“+”“-”键可调节闹钟

18、分; 第三次按下“取消/闹铃”键,“闹钟开关”位开始闪烁,此时按“+”“-” 键切换P0/P1;P0为闹钟开,P1为闹钟关。 第四次按下“取消/闹铃”键,设置完毕,时钟开始正常走动。在此过程中,“设置/确定”键都可以保存本次的闹铃设定并退出设置。2. 关闭闹铃,当时间走到闹钟设置时间时,闹铃响起,持续一分钟后自动关闭,在此过程中,可按下“取消/闹铃”键来手动退出当前闹铃。闹铃会在下一次闹钟时间再次响起。3. 贪睡功能,在闹铃响的过程中,可按下“设置/确定”键。闹铃立即关闭并在五分钟后响起。4-3-5整点报时开关说明在非时间设置与非闹铃设置过程的时刻,“+/整点报时开关”键可以取消与打开整点报时

19、的功能。当开启整点报时功能是,P07端口的所接LED灯会亮起来;关闭整点报时功能P07端口的所接LED灯会不会亮起来。五、实验总结及感想一分耕耘,一分收获。通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。损耗了过多的内存资源。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。 我知道,今后我的路还是很长,我要学的东西也有很多。通过这次实习,我深刻的认识到计算机专业的路的不平坦,但 我会以一种良好的态度去迎接每一个挫折和挑战。

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

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