简易秒表.doc
《简易秒表.doc》由会员分享,可在线阅读,更多相关《简易秒表.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、简易秒表简易秒表学号:课程名称:单片机与嵌入式系统基础与实训姓名:班级:上机内容:简易秒表上机实验性质:综合性实验设计性实验验证实验实验时间:202*年5月21日实验地点:实验设备:计算机实验报告:(包括:目的、方法、原理、结果或实验小结等)。一、实验目的:1、掌握单片机外部中断的原理及用法;2、掌握单片机定时器中断的原理及用法。二、实验内容:K5键做启动停止秒表(外部中断0),K6键做秒表归零(外部中断1),4位数码管动态扫描显示(定时器中断0),最大计数值9999秒。要求先进行仿真,而后下载到实验箱中观察实际效果。三、实验设备及器件1、ME850单片机实验箱(包含芯片及连接线等)2、PC机
2、四、实验步骤1、根据实验要求,设计出实验流程图如图1所示:2、用KeiluVision4根据实验要求写出相应程序,程序代码如下所示:#definecount_M2250#defineTH_M2(256-count_M2)#defineTL_M2(256-count_M2)intcount_T1=0;/计算T1中断次数/*声明七段数码管*/unsignedcharcodeTAB=0xc0,0xf9,0xa4,0xb0,0x99,/040x92,0x82,0xf8,0x80,0x90;chardisp4=0xc0,0xc0,0xc0,0xc0;/声明数码管显示四位,即0000unsignedcha
3、rcodeBIT=0xFE,0xfD,0xFB,0xF7/04;intseconds=0;/秒数intscan=0;/扫描信号charqw,bw,sw,gw;voidmain()IE=0x8f;/10001111,启用INT0/1、TF0/1中断TCON=0x05;/下降沿触发TMOD=0X21;/00100001,T1采用mode2、T0采用mode1TH0=TH_M1;TL0=TL_M1;/设置T0计数值高8位、低8位TR0=0;/不启动T0TH1=TH_M2;TL1=TL_M2;/设置T1自动加载值、计数值TR1=1;/启动T1P3=0xff;/设置K5/K6输入while(1);(接下
4、)开始声明变量设置中断、定时器,启动扫描定时器,开启Timer0定时nonoTR1=1TR0=1yesyes启动T0定时器启动T1定时器T0中断子程序T_IST1中断子程序T_4ms重设定时值no32次no次20yes重新计数yes重新计数,秒数加1no超过千位数?no60秒?yesyes从个位数开始秒数归0输出数字信号填入显示区输出扫描信号INT0中断子程序int_swINT1中断子程序int_RST秒数归0切换sw0图(接上)voidT0_1s(void)interrupt1TH0=TH_M1;TL0=TL_M1;if(+count_T0=20)count_T0=0;seconds+;if
5、(seconds=9999)seconds=0;qw=seconds/1000;bw=(seconds-qw*1000)/100;sw=(seconds-qw*1000-bw*100)/10;gw=seconds-qw*1000-bw*100-sw*10;disp3=TABqw;disp2=TABbw;disp1=TABsw;disp0=TABgw;voidT1_4ms(void)interrupt3if(+count_T1=16)count_T1=0;if(+scan=5)scan=1;SEG=0xff;SCANP=BITscan-1;SEG=dispscan-1;voidint0_sw(v
6、oid)interrupt0/int0中断子程序开始TR0=TR0;/切换T0为开始/暂停voidint1_RST(void)interrupt2/int0中断子程序开始seconds=0;/秒数归零disp0=disp1=disp2=disp3=0xc0;/显示4、把编译好的HEX文件下载到实验箱的单片机内,观察效果。显然,看到实验结果:数码管上的数字从1开始计数,直到计数到9999时返回为0。当按下K5键时开始计时,按下K6键时值归为0。五、实验小结:通过这次实验让我了解和掌握了单片机外部中断的原理及用法以及定时器中断的原理及用法。在这次试验中,我深刻感受到了使用中断来写程序,能给程序带来
7、巨大的好处。不仅能使程序简结,而且使程序的条理十分清楚。节省CPU的空间,加快程序的执行速度。任课教师评语:教师签字:年月日注:每学期至少有一次设计性实验。每学期结束请任课教师按时按量统一交到实验中心处。实验报告A4纸双面打印。扩展阅读:简易秒表的设计武汉理工大学能力拓展训练说明书简易秒表的设计1设计意义及要求1.1简易秒表的设计意义简易秒表的设计是在我们学习了单片机技术之后的一次检测。在已学内容的基础上熟练掌握,对未曾学习过的内容加以了解,从多个角度更加深刻理解和掌握单片机的理论与运用。通过本次设计,能够提高大家对自己电工电子设计的兴趣与了解,以更好的理解本专业,从而在今后的学习中打下一个很
8、好的基础。1.2简易秒表的设计要求1)利用单片机作为主控制器实现电子秒表,用4位LED数码管显示时间。2)设置外部按键SB,当按键SB第一次按下时启动秒表开始计时;当第二次按下按键S1时秒表停止计时,当第三次按下按键S1时秒表回零;即用一个按键S1来控制秒表的启动、停止和回零功能。武汉理工大学能力拓展训练说明书2简易秒表硬件电路设计采用ATMEL公司生产的AT89C51单片机控制器,用4位共阴LED数码管显示时间,为了节省单片机的I/O资源,LED数码管采用动态显示方式,由P2口的低4位输出位选信号,P1口输出LED数码管的显示段码。用非门来提高P2口的驱动能力,使LED管达到合适的亮度。完成
9、设计的仿真电路如图2-1所示。图2-1基于单片机控制的秒表仿真电路图武汉理工大学能力拓展训练说明书3程序设计采用主程序调用子程序的设计方法,主程序首先对定时器和有关寄存器及存储单元进行初始化,调用按键扫描子程序和显示子程序,判断计时时间是否到9分59秒。主程序设计流程图如图3-1所示。计时时间到了9分59秒吗?计数单元清零图3-1主程序设计流程图开始初始化定时器将计数单元3FH-42H清零,将存放按键次数的寄存器R7清零,将存放位选值的寄存器R2清零,关闭定时器。调用按键扫描子程序调用显示子程序N3.1定时初值的计算按12MHz的时钟频率计算,其机器周期为1s,选用定时/计数器工作方式1,定时
10、时间50ms。武汉理工大学能力拓展训练说明书计算初值如下:计数值N=定时/计数器最大值M定时/计数器初值X则初值X=MN机器周期为TM=121/osc=121/12106=1s采用定时器工作方式1,所以初值为X=21650ms/1us=15536=3CB0H所以TH0=3CH,TL0=B0H3.2初始化通过初始化设定定时器0工作方式为方式1,开放定时器0的中断及总中断,分别给存放毫秒、秒、分的计数单元3FH,40H,41H,42H清零。关闭定时/计数器T0。给存储按键次数的寄存器R1清零。3.3判断有无键按下,并进行按键处理因为只有一个与P3.0相连的接独立式按键,所以用JBP3.0,KEYE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 秒表
限制150内