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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的多功能秒表毕设论文.docx

1、基于单片机的多功能秒表毕设论文单片机课程设计 题 目 基于单片机的 多功能秒表 目 录1 设计概述 11.1 设计目的 11.2 设计要求 11.3 设计意义 12 系统总体方案及硬件设计 22.1 系统总体方案 22.2 硬件设计 22.3 时钟电路 32.4 复位电路 42.5 按键电路 52.6 显示电路 63 软件设计 73.1 设计思路 73.2 程序流程框图设计 74 PROTEUS软件仿真 95 课程设计体会 10参考文献 12附录1:总体电路原理图 13附录2:元器件清单 14附录3:实物图 15附录4:源程序 161 设计概述 1.1 设计目的设计一个单片机控制的秒表系统。利

2、用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停,记录,上翻下翻,清零等功能。1.2 设计要求(1)共四位LED显示,显示时间为00:0059.99(2)共五个按键,分别是开始/暂停,记录,上翻,下翻,清零键;(3)能同时记录多个相对独立的时间并分别显示;(4)按上下翻按钮查看多个不同的计时值;1.3 设计意义(1)通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。(2)通过利用AT89C51单片机,理解单片机在自动化仪表中的

3、作用以及掌握单片机的编程方法。(3)通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。 (4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能同时记录多个相对独立的时间利用翻页按钮查看多个不同的计时值,该种秒表在现实生活中应用广泛,具有现实意义。 2 系统总体方案及硬件设计2.1 系统总体方案本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采

4、用汇编语言编写程序,包括显示,计数,中断,延时,按键消抖程序等,并在编程软件中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。 2.2 硬件设计MCS-51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分:(1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器(2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序(3)RAM:256B的片内数据存储器,容量小,但作用大(4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线(5)中断系统:共5个中断源,3个内部中断

5、,2个外部中断(6)定时器/计数器:2个16位的可编程定时器/计数器(7)通用串行口:全双工通用异步接收器/发送器(8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号(9)总线控制:89C51对外提供若干控制总线,便于系统扩展 89C51单片机引脚图如图2-1所示:图2-1 89C51单片机引脚图2.3 时钟电路89C51芯片内部有一个高增益反相放大器,用于构成振荡器。引线 XTAL1和XTAL2分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1,C2起稳定振荡频率,并对振荡频率有微调

6、作用,C1和C2可在20-100PF之间取值,这里取33P,则时钟电路图如图2-2所示:图2-2 时钟电路图2.4 复位电路采用上电加按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电加按键复位的操作。复位电路如图2-3所示:图2-3 复位电路2.5 按键电路在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序

7、简化,我们采用按键电路,用部分P1口做开关,P1.0开始/暂停,P1.1记录,P1.2上翻,P1.3下翻,P1.4清零。对于按键的设计,采用了防抖动的程序设计,使系统的性能得到进一步的提升。当按键被按下时,相应的引脚被拉低,经扫描后,获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。按键电路图如图2-4所示:图2-4 按键电路图2.6 显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用四个共阴极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和

8、动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。显示电路图如图2-5所示:图2-5 显示电路图3 软件设计3.1 设计思路在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完

9、成一个明确的任务,实现某个具体的功能,如:计数、延时、和显示等,在具体需要时调用相应的模块即可。用四位LED数码管显示时间。一个开始/暂停键,一个复位键,一个“记录”键,可同时记录八个相对独立的时间;一个“上翻”键,一个“下翻”键,查看八个不同的计时值。五个按键分别通过五个端口控制秒表的五个功能。3.2 程序流程框图设计程序流程框图如图3-1所示 图3-1 程序流程框图4 PROTEUS软件仿真将以上程序清单导入先前做好的Proteus仿真电路中,汇编之后,按仿真键开始进行仿真。仿真结果如图4-1所示:图4-1 仿真结果图仿真结果描述:按“开始”键,秒表开始计时;按“暂停”键,秒表暂停计时;按

10、记录键,秒表记录时间,共可记录八个数值;按上翻下翻键,可查看这八个不同的计时值。结论及进一步设想:根据实验要求,本次课设基本完成了设计要求,由于秒表系统并不一定仅仅局限于计时,定时等功能,还可以进行多项的扩展,可以利用AT89C51强大的扩展功能,进一步丰富秒表的功能,例如可设定计时时间,倒计时等等众多功能。单片机以其强大的功能和良好的兼容性可以更好地为我们服务,通过查阅各种资料,多了解一些单片机有关知识,可以为以后的工作和学习生活创造更多的便利条件。5 课程设计体会通过本次课程设计,我深刻地认识到自己有很多不足之处,比如在自主学习能力方面的不足,实际动手操作能力的不足等。 这次的单片机课程设

11、计是理论与实践相结合的范例。该设计从头到尾都要自己参与进来,熟悉了整个设计流程才能更快地设计出方案并完成设计。本次课程设计我主要负责硬件电路的设计和查阅相关资料。单片机课程早已结束,相关的知识已经很模糊,导致我在设计硬件电路中遇到了不少麻烦。首先是不知从何入手。虽然小组讨论后确定了秒表要实现的功能,可是没有相关理论知识的熟知和实践操作,画出硬件设计图对我而言毫无头绪。查阅了与89C51单片机相关的资料也阅读了其他人单片机数字秒表的设计,慢慢地我开始了解其中原理,一步步设计出了硬件电路的各个部分,如晶体振荡电路,复位电路,按键电路,显示电路。完成设计后需要运用PROTEUS软件进行设计仿真,由于

12、这是第一次接触这个软件,还不知怎样运用它,查阅该软件的相关资料及看过网上的视频后便开始着手画图,接触后觉得还是挺简单的。这次的课程设计我与小组同学进行了交流和讨论,我们分工进行设计,从搜索资料到硬件、软件的调试,每一步、每一个细节都经过我们自己的思考,我们共同讨论各方案的比较选择、硬件、软件的设计和调试,最终拿出了我们的成果。在做的过程中不但加深了我们对单片机理论知识的认识和理解还认识到了这门学科在应用方面的广阔前景。实践是最有高度也是最能体现整体水平的整个设计过程中,我们不断地探索,设计出了很多不一样的硬件电路图,写过了很多不一样的程序,正如设计中如何能使硬件电路图简单明了,程序简单而准确,

13、如何能准确的运行,都是通过与同学老师的交流,慢慢摸索出来的。以上的不断探索,使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。通过利用AT89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。我们设计的这种具有记录,上翻下翻功能的秒表在现实生活中应用广泛,如体育项目,因此本次课程设计具有现实意义,我很开心能将知识运用到实践中并在自主学习中收获到那么多。参考文献1 余发山编著. 单片机原理及应用技术. 中国矿业大学出版社, 2003年2 杨凌霄编著.

14、 微型计算机原理及应用. 中国矿业大学出版社,2004年3 杨宁编著. 单片机与控制技术. 北京航空航天大学出版社,2004年4 李群芳主编. 单片机原理、接口及应用. 清华大学出版社,2005年5 胡汉才. 单片机原理及其接口技术(第二版). 清华大学出版社,2004 6 李邓化. 智能检测技术及仪表. 科学出版社,20077 戴佳. 单片机C51语言应用程序设计. 电子工业出版社,20068 朱民雄. 计算机语言技术. 北京航空航天大学出版社,20029 李鸿. 单片机原理及应用. 湖南大学出版社,200410 刘建清. 单片机技术. 国防工业出版社, 2006 附录1:总体电路原理图附录

15、2:元器件清单序号名称型号规格数量1单片机AT89C5112数码管7SEG-MPX4-CC13电阻200R1800R11K54电容33pF222uf15排阻PESPACK-816晶振XTAL1817按键开关6附录3:实物图附录4:源程序/*1、程序目的:使用定时器学习秒表计时,记录8组数据,通过上翻、下翻键查看记录的数据2、硬件要求:数码管、晶振12MHz*/#include Code unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管 0-9 code unsigned char tab1=0

16、xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF ;/共阴数码管0-9带小数点sbit key1 = P10; /开始、暂停sbit key2 = P11; /记数sbit key3 = P12; /上翻sbit key4 = P13; /下翻sbit key5 = P14; /清零static unsigned char ms,sec;static unsigned char Sec8,Ms8;static int i ,j;void delay(unsigned int cnt) /延时程序 while(-cnt); void main()

17、unsigned char key3_flag=0,key4_flag=0; TMOD |=0x01;/定时器0 10ms in 12M crystal 用于计时 TH0=0xd8; TL0=0xf0; ET0=1; TR0=0; TMOD |=0x10; /定时器1用于动态扫描 TH1=0xF8; TL1=0xf0; ET1=1; TR1=1; EA =1; sec=0; /初始化 ms=0; P1=0xff; i=0; j=0;start: while(1) /开始、暂停 if(!key1) /判断是否按下 delay(50); /去抖 if(!key1) while(!key1) /等待

18、按键释放 ; TR0=!TR0; /记录 if(!key2) /判断是否按下 delay(50); /去抖 if(!key2) while(!key2) /等待按键释放 ; if(i=8) /8组数据记录完毕 TR0=0; goto start; Seci= sec; /将数据存入数组 Msi= ms; i+; /上翻 if(!key3) delay(50); if(!key3) while(!key3) ; TR0=0; key3_flag=1; /按键3标志 if(j=i) goto start; else if(key4_flag) j+=2; key4_flag=0; sec=Secj

19、;ms=Msj; /显示数组里的内容 j+; /下翻 if(!key4) delay(50); if(!key4) while(!key4) ; TR0=0; key4_flag=1; /按键4标志 if(j0) goto start; else if(key3_flag) j-=2; key3_flag=0; sec=Secj;ms=Msj; /显示数组里的内容 j-; /清零 if(!key5) delay(50); if(!key5) while(!key5) ; TR0=0; ms=0; sec=0; for(i=0;i8;i+) Seci=0;Msi=0; i=0; /*/* 定时中

20、断1 */*/void time1_isr(void) interrupt 3 using 0/定时器1用来动态扫描 static unsigned char num; TH1=0xF8;/重入初值 TL1=0xf0; switch(num) case 0: P2=0xfe;P0=tabsec/10;break;/显示秒十位 case 1: P2=0xfd;P0=tab1sec%10;break; /显示秒个位 case 2: P2=0xfb;P0=tabms/10;break;/显示十位 case 3: P2=0xf7;P0=tabms%10;break; /显示个位 default:break; num+; if(num=4) num=0;/*/* 定时中断0 */*/void tim(void) interrupt 1 using 1TH0=0xd8;/重新赋值TL0=0xf0; ms+;/毫秒单元加1 if(ms=100) ms=0;/等于100时归零 sec+;/秒加1 if(sec=60) sec=0;/秒等于60时归零

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2