(精品)单片机课程设计精品多功能电脑时钟设计(2013年优秀毕业设计)_第1页
(精品)单片机课程设计精品多功能电脑时钟设计(2013年优秀毕业设计)_第2页
(精品)单片机课程设计精品多功能电脑时钟设计(2013年优秀毕业设计)_第3页
(精品)单片机课程设计精品多功能电脑时钟设计(2013年优秀毕业设计)_第4页
(精品)单片机课程设计精品多功能电脑时钟设计(2013年优秀毕业设计)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆科技学院单片机课程设计报告多功能电脑时钟设计1多功能电脑时钟的功能规划要求设计的多功能电脑时钟完成以下功能:Case 0:显示秒表功能,LED灯全部熄灭;Case 1:跑表的设定,只有P23灯亮;Case 2:调试秒表,只有P24灯亮;Case 3:调试分钟,只有P25灯亮;Case 4:调试小时,只有P16灯亮;Case 5:设定闹钟,P23与P24灯亮,P25灭,P26灭时闹钟打开; Case 6:倒计时的设定,LED灯全亮。 值初始化Mode0Mode1Mode2Mode3Mode4Mode5Mode6LED全灭LDE1亮LED2亮LED3亮LED4亮LED3灭LED全亮1.1基本功能要求(1)按MODE健切换显示模式。(2)按UP、DN健修改当前时钟。(3)UP、DN键设置闹钟时间(两组)(4)按MODE键切换到秒表模式,按ENT键秒表开始计时,再按ENT键秒表计时停止。(5)UP、DN键设定倒计时初值,按MODE键切换到倒计时模式,自动开始倒计时。2方案设计STC89C51RC40I-PDIP0533RB4469.1D蜂鸣器4个数码管显示4个LED指示灯MAX232芯片电源开关4个独立式的按键电源指示灯2.1硬件方案设计 图 2.1.1 系统硬件结构框图MCS-51内部有4KB闪烁储存器,芯片本身就是一个最小系统,该设计是一个多功能显示的最小系统,MCS-51能够满足该系统的性能要求。而且用这种芯片简单可靠,只需要接上时钟电路和复位电路即可,省去了外部扩展程序存储器的工作,从而减少了芯片的数目,缩小了产品的体积。单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和IO接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。单片机应用系统中键盘一般用的比较多的是矩阵键盘,显示器用的比较多的是LED数码管还LCD显示器。按键的设置:设置4个按键:MODE键:0 模式:显示秒表1模式:设定跑表 2模式:设定秒 3模式:设定分钟 4模式:设定小时5模式:设定闹钟6模式:设定的倒计时功能UP键:修改模式:+1操作;(不在同的模式下)DN键:修改模式:-1操作;(不在同的模式下)ENT键:设置模式与正常显示模式切换按钮原理图见附录1。2.2软件方案设计此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理程序、时钟程序、通讯程序和倒计时程序,系统软件流程图图如图 2.2.1所示:开始系统初始化While (1)MODE模式选择按键的扫描及处理A主程序开始现场保护,重置初值启动下一个5ms5ms 计数器加1秒单元加1,50ms计数器清0,秒写入秒个位和秒十位5ms 计数器=200?否是分单元加1,秒单元清0,分写入分个位和分十位秒单元=60?时单元加1,分单元清0,时写入时个位和时十位分单元=60?时单元清0时单元=24?中断返回否否否是是是B定时中断程序图 2.2.1 系统软件流程图3硬件电路设计与分析3.1时钟电路时钟电路用于产生MCS-51单片机工作时所需要的时钟控制信号。MCS-51单片机的内部电路在时钟信号控制下,严格地按照时序执行指令进行工作。而时序所研究的是指令执行中各个信号在时间上的关系。MCS-51单片机个功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种方式为外部时钟方式。图3.1.1所示:图3.1.1时钟电路3.2数码管显示电路如图所示,数码管主要是用于数字的显示。数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同。四位数码管循环电路是由1K的电阻、IN4148二极管和数码管组成,电源+5V通过560的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位DP,P1.0,P1.1,P1.2,P1.3接位码。有四位共阴极的七段数码管,在不同的模式下显示不同的内容,例如在模式0下显示北京时间,在模式3下显示跑表等,P0口送段码,P1口的低四位送位码,小数点1秒亮,1秒灭,用来指示秒。当相应的端口变成高电平时,驱动相应的PNPS8550三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示需要的数字。如图3.2.1所示:3.3按键接口电路如图3.3.1所示,时间设定模块设计的设计要点是按键的去抖动处理与“一键多态”的处理。软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否保持着,如是则作为按键处理,否则,视为抖动,不予理睬。图3.3.1按键接口电路图3.2.1 显示电路3.4LED指示电路图3.4.1LED指示电路如图3.4.1所示,四个共阴极的发光二极管,用来指示模式,另外还有一个发光二极管用来指示电源,若通电,发光二极管亮,否则,发光二极管灭。3.5蜂鸣器接口电路蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的。因此需要一定的电流才能驱动它,单片机IO口输出的电流较小,其TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。程序中通过改变单片机对应IO口输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。我们可以通过程序控制IO口输出的电平来使蜂鸣器发出声音和关闭,从而实现各种可能音响的产生。如图3.5.1为蜂鸣器的原理图。4软件设计4.1控制程序的结构及模块划分实现多功能电脑时钟的程序包含以下部分:(1)初始化程序(2)数码管扫描程序(3)时钟程序(4)设定时钟小时程序(5)设定时钟分钟程序(6)跑表程序(7)闹钟程序(8)倒计时设定程序(9) 倒计时执行程序(10)扫描键盘程序 4.2初始化程序定义一个长度为4的数组来存放数码管显示的数。我们采用查表的方法来求得对应的段码,故而我们仍需要定义一个长度为11的数组。定义P2.0位为MODE键、P2.1位为UP键、P2.2位为DOWN键、P3.2为ENT键。闹铃接在P1.4脚。定modle0-6分别来表示表示当前的模式。 其次在程序中使用了定时5ms的定时器,故而需要进行初始化,其对应的初始化程序如下:TMOD=0x11; /设置定时器0工作模式,16位计数模式 TH0=THCO; TL0=TLCO; TR0=1; /启动定时器 ET0=1; /使能定时器中断IT0=1; /外部中断0连沿触发方式EX0=1; /使能外部中断0 EA=1; /开总中断4.3数码管扫描程序在程序中我们把模式定义为:显示当前时间(小时和分钟),显示跑表的秒和百分秒,显示闹铃的小时分钟,显示倒计时的分钟和秒。修改当前小时和分钟,分别进入模式1和2,当修改小时时,只显示小时位;修改分钟时,只显示分钟位;在剩下的模式中,各种模式对应修改闹铃的小时和分钟,倒计时的分钟和秒等,故而在显示时也区分这几种显示情况。用LED灯的亮灭显示情况来表示工作在不同的模式情况下。当模式处在模式0的时候,即当前时间模式,所有LED灯熄灭;进入模式1,即跑表模式,LED1亮起;进入模式2,设定秒表,LED2亮起;进入模式3,设定分钟,LED3亮起;进入模式4,即设定小时,LED4亮起;进入模式5,设定闹钟,LED1与LED2亮起,LED3灭,当LED4灭时闹钟打开;进入模式6,LED1、LED2、LED3与LED4亮起。用来显示数字的数码管采用动态显示的方法,每隔5ms送一个位选码到接有数码管的P1端口,并用四只LED灯来动态显示当前处在的模式功能状态。4.4时钟程序有按键按下Sec+Count=0结束Count+Count=0NONOYESYESCount=30Sec=60Min+Min=0Hour+Sec=0Min=604.5设定时钟的小时程序在程序中定义#define UpKey ;#define DownKey,当模式切换进入模式1,就开始了当前小时的设定,在按键扫描函数中:if (UpKey) HOUR+; if (HOUR=24) HOUR=0;if (DownKey) HOUR-;if(HOUR=60) MIN =0;if (DownKey) MIN -;if(MIN =60Min=200Daosec-Daosec=0-Dsoflaj5调试与测试5.1软件调试步骤1、打开软件后,在Project菜单中选择New Project命令,打开一个新项目。保存此项目,输入工程文件名后,并保存工程文件的目录。2、为项目文件选择一个目标器件,即选择8051的类型。在Data base 列表框中选择“ATML 89C52”,确定。3、上述设置好后,创建源程序文件并输入程序代码。输入好代码后点击“文件/保存”。4、把源文件添加到项目中,用鼠标指在目标工作区的目标1,点击右键在弹出的菜单中选择添加文件到源代码组,在弹出的添加文件框中,选择需要添加到项目中的文件。5、开始编译,对项目文件进行编译。若没有错误后进行硬件调试5.2程序调试步骤程序调试应一个模块一个模块地进行,首先单独调试各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来进行总调试。故调试步骤如下:a、显示程序调试 显示程序是整个程序的基础,我们必须保证其正确。调试方法:先一位显示,然后实现走马显示。为此完成了显示程序的调试。此显示可以用软件来模拟进行,在实验中已得到了应用。在定义的时候,修改显示缓冲区的内容,屏蔽其它子程序,调试动态扫描显示功能。例如将 case0:led0=0;break;case1:led1=0;break;case2:led0=2;break;case3:led3=0;break;4个语句里分别赋值,即led0=1,led1=2,led2=3,led3=4,检查LED上是否能正确显示1234。若显示不正确,则在相应子程序位置设置断点,进行调试检查,直至可以实现该功能为止。b、按键程序调试 按键程序的调试可以先从单个按键开始,比如:用了一个简单的按键程序,及按一下显示1000在按一下显示1001,逐渐修改程序到实现功能为止。在调试按键程序时要注意,由于按键是机械开关,在按下和松开时必然会存在抖动,所以在调节时我们要采用去抖动技术。可以定义另一个变量来控制CPU对键盘的扫描次数。来降低抖动对程序结果的影响。先用延时1500ms的子程序代替显示子程序延时去抖动,在求取键号后设置断点,中断后观察累加器的键号是否正确;然后恢复用显示子程序延时去抖动,检查与按键模块能否正确连接。在调试程序时,需要在void keyset(void)函数里设置按键去抖动,使按键按一下后,在数码管上可以进行加1或减1的操作,然后下载调试即可以实现预定功能。5.3测试方法及测试结果5.3.1测试方法测试与调试相比很简单,只需要找一个准确的时钟和一个秒表既可。具体测试方法如下:a、对时钟的测试在时钟模式下,将其与能够工作正常的时钟进行比较,如两时钟的步伐一致,则正确,如不一致,则需要进行改进。b、按键程序的测试直接按照程序编程时规定的诸多功能说明进行操作,如果操作结果跟程序设定的功能相同,则按键程序达到其功能要求,即程序是好的;若不能达到程序预先设定的功能,则需要对程序进行改进,以达到最终所期望的效果。5.3.2测试结果虽然我们对程序做了较为细致的调试,但是在测试中仍然发现了不少问题,比如,当前时间无法显示到秒位;闹钟报时持续时间没有达到预先规定的要求;跑表每次及时完毕,没有设定清零,必须用MODE键再次切换回来才能清零。故应该对程序进行进一步的调试,以求排除了问题。最终圆满完成了任务。6技术小结该课程设计中应用到了蜂鸣器、LED流水灯、数码管,并且要求在一个电路板上将各个功能集成在一起,也就是能实现LED灯流水工作,数码管计时以及蜂鸣器发生。以前我们做试验都是一个功能一个功能的完成,从来没有一起实现过,这样问题就来了,比如三种程序放在一起相互冲突怎么办?经过老师的讲解和分析,我们可以用键盘扫描的程序来解决,将各个功能设置在不同的模块作为子程序一一调试,这样就可以实现全部功能并互不干扰。之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论