版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.z实验设计报告设计题目:51单片机外扩8155秒表计时班级:______计算机091班 姓名:学号:指导教师:日期:51单片机秒表计时一、设计目的〔1〕利用单片机定时器中断和定时器计数方式实现秒定时。〔2〕通过LED显示程序的调整,熟悉单片机与LED的接口技术,熟悉LED动态显示的控制过程。〔3〕掌握8155芯片的用法及口地址的计算方法。〔3〕通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示和定时器中断等多种功能的综合程序。〔4〕进一步学习单片机开发系统的整个流程。二、设计任务首先以89C51单片机的原理图为背景,利用51单片机的P0、P2口外扩一片8155芯片。将6个共阳极数码管的断码用8155的B口控制,位码用8155的A口控制。其次,用51单片机的P30、P31接两个独立的按键。最后用keilC编写软件,驱动各个外围设备。三、设计需求利用STC-89C52单片机作为系统核心控制局部,用外围6个数码管、两个独立按键实习秒表计时的功能。当接P30的按键按下时,秒表开场计时,当接P30的按键翻开时暂停,当接P31的按键按下时数码管清零。四、设计材料序号器件数量功能1STC-89C52单片机最小系统板1核心28155芯片1外扩I/O口3共阳极数码管6计时4开关2控制数码管的计时与暂停内容要求一、题目分析,功能要求。〔1〕要求:利用实训电路板,用6个共阳极数码管实现秒表计时显示。以一个按键开关实现启动、停顿,另一个实现清零功能。〔2〕方法:用单片机定时器T0中断方式,实现100毫秒定时;利用单片机定时器0方式1计数。〔3〕实验线路分析:采用实训电路板,其原理图参见附录。6个7段LED数码管分别由8155的A口和B口控制,使数码管显示00-00-00的字样。用一个开关控制数码管的启动与停顿,另外一个实现清零。另外再加上一个晶振电路就够成了整个秒表的电路。〔4〕软件设计:软件整体设计思路是主程序进展初始化,以开关的闭合与翻开判断秒表是否开场计时,LED通过定时计算器中断的方式进展显示。当开关闭合,定时器开场计时,并在数码管上显示。当开关翻开,定时器停顿工作并在数码管上继续显示前一时刻的时间。当另外一个开关闭合时,数码管清零。二、总体方案设计开场开场I/O口初始化定时器、中断初始化是否有键按下按键扫描程序P30==0P31==1P31==1Start()Pasue()Clear()是是否否是是否三、硬件设计电路图如下所示Protues仿真:四、软件设计*include<reg52.h>*include<absacc.h>*defineA8155*BYTE[0*FE21]*defineB8155*BYTE[0*FE22]*defineC8155*BYTE[0*FE23]*defineK8155*BYTE[0*FE20]sbitp30=P3^0;sbitp31=P3^1;charcodeshow[10]={0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90};charshowdata[6]={0*C0,0*bf,0*C0,0*C0,0*bf,0*C0};charshowdata_0[6]={0*C0,0*bf,0*C0,0*C0,0*bf,0*C0};intt,i,j;intflag=0,count=0,fen=0;voiddelay(intms);voidstart();voidpasue();voidclear();voidmain(){TMOD=0*01;TL0=(65536-50000)%256;TH0=(65536-50000)/256;EA=1;ET0=1;TR0=1;P=0*ff;K8155=0*03;while(p31==1){A8155=0*01;if(p30==0&&p31==1){start();}elseif(p30==1&&p31==1){pasue();}elseif(p30==1&&p31==0){clear();}}}voidpasue(){for(i=0;i<6;i++){B8155=showdata[i];delay(5);A8155=A8155<<1;if(A8155==0*40){A8155=0*01;}}}voidclear(){for(i=0;i<6;i++){B8155=showdata_0[i];delay(5);A8155=A8155<<1;if(A8155==0*40){A8155=0*01;}}}voidstart(){t=0;while(t<=2){for(i=0;i<6;i++){B8155=showdata[i];delay(5);A8155=A8155<<1;if(A8155==0*40){A8155=0*01;}}if(t==2){flag++;if(flag<=9){showdata[0]=show[flag];}else{flag=0;count++;if(count<=60){showdata[2]=show[count%10];showdata[3]=show[count/10];}else{fen++;count=0;showdata[5]=show[fen];}}}}}voiddelay(intms){intj,i;for(j=0;j<ms;j++){for(i=0;i<100;i++);}}voidtime0_int(void)interrupt1{TL0=(65536-50000)%256;//TH0=(65536-50000)/256;t++;}五、系统集成及测试调试程序(1)调试主程序。主程序运行后,在无任何按键输入时观察有无显示,时钟是否工作,其时、分、秒显示的变化过程是否正确。假设运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。例如:假设定时/计数器的初始化出错,则时钟将不能工作;假设显示程序出错,则将不能正确显示时钟单元内容;假设定时/计数器中断效劳子程序出错,则其显示数据的变化规律将不正常。(2)调试子程序。在调试主程序时,必然要调用相关的功能子程序。因此,首先应明确子程序的具体功能,通过对子程序的分析,确定子程序的入口、出口参数及相关标识位的状态,然后在满足入口条件的状态下,设法检查从主程序进入子程序,再由子程序返回到主程序的运行过程。可采用跟踪运行或运行至光标处的方法,检查从主程序进入子程序内部的运行过程,再通过单步运行等方法检查子程序内部的运行情况和返回主程序的过程。通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。六、总结通过本次秒表的实验,各方面又得到了进一步的提高。从整个单片机开发系统的把握上,感觉比以前更具有信心,当然,在焊接、调试的时候也显得更轻松,至少知道从哪些地方入手,怎样判断正确与否。尤其是在调试大型程序时,需先根据要求划分模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一村一法官工作制度
- 保荐人内核工作制度
- 乡镇经发办工作制度
- 人大代书室工作制度
- 加油站消防工作制度
- 匈牙利防疫工作制度
- 医保追溯码工作制度
- 医护办工作制度汇编
- 医院传染病工作制度
- 医院联系点工作制度
- (正式版)JBT 14581-2024 阀门用弹簧蓄能密封圈
- DB23-T 3625.2-2023 金属非金属矿山双重预防机制建设评定指南 第2部分:地下矿山
- 人民调解委员会开庭调解笔录
- (完整word版)身份证号码前6位表示的地区对照表
- 金属与石材幕墙工程技术规范-JGJ133-2013含条文说
- 初中生物各章节概念知识框架图
- 空调维保质量保障体系及措施方案
- 城市轨道交通工程监测技术规范讲解课件
- 旅游学第四版李天元课后习题答案
- 花篮拉杆式悬挑盘扣脚手架施工工法
- 民航概论各章习题详解答案分解
评论
0/150
提交评论