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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

081250138陈姣.docx

1、081250138陈姣单片机课程设计报告书课题名称 数码管显示系统设计姓 名陈姣学 号 081250138院 系物理与电信工程系专 业电子科学与技术指导教师肖卫初副教授2011年 6月10日 一、设计任务及要求:设计一个基于单片机MCS-51的显示系统,要求实现以下功能:1.在单片机系统与硬件开发过程中,有数码管与液晶显示器等等显示仪器,本课程设计采用的显示仪器为数码管。2.用Keil软件编写一个时间跑动程序,且用两位数码管显示时间。3.用单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间。当按下开始键时,开始指示灯亮,时间从0开始计时,当时间一秒产生时,秒计数自动加1,当秒计数到60

2、时,自动从0开始计数;这个过程中当按下复位键时,时间又从0开始计时;当按下暂停键时,时间停止计数;当按下加时键时,按一次时间自动加1;当按下减时键时,按一次时间自动减1;不工作时,开始指示灯不亮。指导教师签名: 2011年 6 月 10 日 二、指导教师评语:指导教师签名: 2011年 6 月 10日 三、成绩:验收盖章 2011年 6 月 10日 数码管显示系统的设计陈姣(湖南城市学院物理与电信工程系电子信息工程专业,益阳,413002)1 设计目的(1)用AT89C51单片机实现时间的显示。(2)用仿真软件Proteus设计实验仿真,仿真基于AT89C51单片机的显示系统。2 设计的主要内

3、容和要求(1)基于单片机实现对数码管的控制。(2)在开始,数码管是关闭的,什么也不显示,当把所编写的源程序下载到单片机中时,两位数码管会显示相应的时间。(3)通过按键控制时间的开始、暂停、复位、加时、减时、关闭与开始指示灯的亮灭。3 整体设计方案数码管显示系统设计模块是由时钟电路、复位电路、按键电路、时间显示电路以及开始指示灯组成。AT89C51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成方式的选择。同时,AT89C51有四个并行端口,分别命名为P0、P1、P2和P3

4、。用P1口控制各类按键,用P2口控制时间十位的输出,用P3口控制时间个位的输出。通过各类按键来控制时间的显示,即当按下开始键时,开始指示灯亮,时间从0开始计时,当时间一秒产生时,秒计数自动加1,当秒计数到60时,自动从0开始计数;按下复位键时,时间又从0开始计时;当按下暂停键时,时间停止计数;当按下加时键时,按一次时间自动加1;当按下减时键时,按一次时间自动减1;不工作时,开始指示灯不亮。图3.1 整体设计方框图4 硬件电路设计此设计采用AT89C51单片机作为微机处理器,外围电路由晶振、电阻、电容、 电源、数码管,按键等器件组成。 (a) 把“单片机系统”区域中的P3.0P3.7端口用杜邦线

5、连接到“八路静态数码显示模块”区域中的任一个ah端口上。要求:P3.0对应着a,P3.1对应着b,P3.7对应着h。 (b) 把“单片机系统”区域中的P2.0/A8P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ah端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,P2.7/A15对应着h。(c) 把“单片机系统”区域中的P1.0P1.7端口分别连接到不同的按键与指示灯上,要求:P1.0对应开始按键,P1.1对应复位按键,P1.2对应暂停按键,P1.3对应加时按键,P1.4对应减时按键,P1.7对应开始指示灯。其硬件连接原理图如下图4.1所示。图4.1 数

6、码管显示系统硬件连接原理图5 软件设计定时/计数器何时工作是通过软件来设定TCON特殊功能寄存器来完成的。现在我们选择16位定时工作方式,使用的晶振频率为12MHZ。对于T0来说,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,我们必须通过软件来处理这个问题。假设我们取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时,对于这20次我们就可以采用软件的方法来统计了。 因此,作初始化设计时我们设定TMOD00000001B,即TMOD01H 。下面我们要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算出: T=(21

7、6-计数初值)晶振周期12,即5010-3=(216-X)(1/12)10-612所以X=15536=3CB0H,即可得TH03CH ,TL0B0H。当T0在工作的时候,我们如何得知50ms的定时时间已到?这回我们通过检测TCON特殊功能寄存器中的TF0标志位,如果TF01表示定时时间已到,通过中断响应,使得时间每一秒自动加一,同时用软件将TF0清0,又重新开始1秒的计时。在计时的过程中,按下复位键时,将显示置0,否则按原来方式计数;按下复位键时,将显示置0,否则按原来方式计数;按下暂停键时,显示保持不变,否则按原来方式计数;按下加时键时,将显示的秒数加1,否则按原来方式计数;按下减时键时,将

8、显示的秒数减1,否则按原来方式计数;最终,当计时达到60秒时,又回到初始值,数码管显示为00。数码管显示系统设计的程序流程图如图5.1所示图5.1 数码管显示系统设计的程序流程图6 系统仿真在Proteus的ISIS 7 Professional软件环境下画出电路原理图,接下来就是将设计的程序在Keil C51 u Vision2开发集成环境上编译成机器语言,进入Proteus的ISIS,鼠标点击菜单“debug”,选中“use romotr debugger monitor”,便可实现Keilc与Proteus连接调试。首先在Proteus中双击单片机AT89C51,将Keil C下编程生成

9、的 smgmb.hex文件导入到 AT89C51中。可在Proteus中单击全速仿真运行按钮,等待现象的查看,同时能清楚地观察到芯片上每一个引脚的电平变化,红色代表高电平,蓝色代表低电平;如果现象不正确,则在Keil C中单步调试程序,并在Proteus观察现象,哪一步不正确则对该程序语句进行修改,调试。直到仿真完全成功为止,总过程仿真图如图6.1、6.2、6.3、6.4所示。 如下图6.1、6.2、6.3、6.4、6.5、6.6、6.7所示,该设计仿真验证的过程为,首先按下开始按钮,启动仿真。(1) 按下仿真开始按钮,启动仿真后的仿真图如下图6.1所示。图6.1 按下仿真开始按钮的电路仿真图

10、(2)按下开始按键后,启动时间显示,仿真图如下图6.2所示。图6.2 按下开始键后的时间电路仿真图(3) 按下复位按键后,启动时间清0,仿真图如下图6.3所示。图6.3 按下复位键后的时间电路仿真图(4)按下暂停按键后,使时间显示在原来数值,仿真图如下图6.4所示。图6.4 按下暂停键后的时间电路仿真图(5)按下加时按键时,使原来时间自动加1,仿真图如下图6.5所示图6.5 按下加时键后的时间电路仿真图(6)按下减时按键时,使原来时间自动减1,同时将减1后的数值显示出来,仿真图如下图6.6所示。图6.6 按下减时键后的时间电路仿真图(7)未按下任何仿真按钮时的电路图,如下图6.7所示。图6.7

11、 未按下任何仿真按钮时的电路图7 使用说明当按下开始键时,开始指示灯亮,时间从0开始计时,当时间一秒产生时,秒计数自动加1,当秒计数到60时,自动从0开始计数。这个过程中当按下复位键时,时间又从0开始计时;当按下暂停键时,时间停止计数;当按下加时键时,按一次时间自动加1;当按下减时键时,按一次时间自动减1;不工作时,开始指示灯不亮。8 设计总结 在本次课程设计中,我选的设计题目是:数码管显示系统的设计,在设计初期首先查找相关资料,同时学会Proteus软件的使用,从Proteus库中选取元器件,放置电源和地,连线,元器件属性设置,电器检测,所有操作都在ISIS平台中进行,感觉此软件功能强大,非

12、常好用。在设计的过程中,也遇到了很多问题,在同学和指导老师的帮助下,都一一得到了解决。从选题到定稿,从了解到熟悉,用了大概一个星期的时间,在这段时间内,苦恼、思考、喜悦、收获,感受颇多。当然此次设计也体现出我平时学习中有许多不足和欠缺之处,此后需通过学习来查漏补缺。最后,在此向给我帮助的同学和老师表示感谢,并以衷心的祝福。参考文献1 杨恢先,黄辉先.单片机原理及应用M.北京:人民邮电大学,2006:112-119.2 陈双全,宋谦.智能小区可视对讲系统设计J.武汉船舶职业技术学院学报,2003,20(3):36-39 3 赵建东,陈小乐.基于Internet的智能家庭网络控制器的实现J.电子技

13、术应用, 2002,34(12) :23-25.3 李强华,张根宝,段力基于单片机控制的楼宇对讲系统的设计J.电气应用,2007,12(01):04-06.5 李炳宇,萧蕴诗,李永东.AT89C51单片机在多层楼宇对讲系统中的应用J.自动化与仪表,2001,38(04):23-25. 附录由于采用中断方式来完成,因此,对于中断源必须先确定它的中断入口地址,对于定时/计数器T0来说,中断入口标志为0,因此在进行中断时,开启总中断和定时器中断,来执行相应的中断服务程序。书写C语言中断服务程序格式如下所示:void T0_time() interrupt 1 /定时器0中断服务函数 TH0=(655

14、35-45872)/256; /给定时器赋初始值 TL0=(65535-45872)%256; i+; /中间变量 if(i=20) i=0; a+; if(a=59) a=0; shi=a/10; ge=a%10;课程总程序设计:#include /51系列单片机头文件#define uchar unsigned char /宏定义#define uint unsigned intsbit kaishi= P10; /申明各个按键接口sbit fuwei=P11;sbit zanting=P12;sbit jiashi=P13;sbit jianshi=P14;sbit ld=P17;uch

15、ar i,shi,ge;uint a;uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴极数码管编码void delay(uint z) /延时子函数,延时1ms uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void display(uchar one,uchar two) /显示时间函数 P3=tableone; /送段数据 delay(1); /延时1ms P2=tabletwo; /送段数据 delay(1); /延时1msvoid main() /主函数 a=0;

16、/变量赋初始值 ge=0; shi=0; TMOD=0x01; /设置定时器0为工作方式0 TH0=(65535-45872)/256; /给定时器赋初始值 TL0=(65535-45872)%256; EA=1; /开启总中断 TR0=0; /启动定时器0 ET0=1; /开启定时器0中断 while(1) if(kaishi=0) /开始功能 delay(5); if(kaishi=0) ld=0; /开始指示灯 TR0=1; /开启定时器 if(zanting=0) /暂停功能 delay(5); if(zanting=0) TR0=0; if(fuwei=0) /复位功能 delay(

17、5); if(fuwei=0) a=0; shi=a/10; ge=a%10; display(ge,shi); TR0=0; if(jiashi=0) /快加键功能 delay(5); if(jiashi=0) TR0=0; a+; delay(300); if(a=59) a=0; shi=a/10; ge=a%10; display(ge,shi); if(jianshi=0) /快减键功能 delay(5); if(jianshi=0) TR0=0; a-; delay(300); if(a=0) a=59; shi=a/10; ge=a%10; display(ge,shi); display(ge,shi); void T0_time() interrupt 1 /定时器0中断服务函数 TH0=(65535-45872)/256; /给定时器赋初始值 TL0=(65535-45872)%256; i+; /中间变了 if(i=20) i=0; a+; if(a=59) a=0; shi=a/10; ge=a%10;

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

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