万秒计时器的设计实验_第1页
万秒计时器的设计实验_第2页
万秒计时器的设计实验_第3页
万秒计时器的设计实验_第4页
万秒计时器的设计实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与接口技术实验报告第2页共6页实验五万秒计时器的设计一、实验目的掌握数码管动态显示的基本方法;掌握键盘按键控制的实现方法; 根据已知电路和设计要求在实验板上实现万秒计时器。根据已知电路和设计要求在PROTEUS平台仿真实现控制系统。二、实验内容 1、在STC89C52实验平台的4位数码管上实现动态显示0000→0001→0002→…→9998→9999→0000→0001→0002→…不断反复,每隔1s切换显示内容。 2、应用键盘控制时间的显示。键盘按键控制“停止计时”、“启动计时”、“加个位显示内容”、“加十位显示内容”、“加百位显示内容”、“加千位显示内容”。3、思考:如何实现当4位数码管显示的内容为“9999”时,蜂鸣器蜂鸣。三、实验原理PS:电路原理图(可局部图)、实验实现控制的原理叙述。参照《单片机实验板电路原理图》四、实验方法与步骤设计思路和方法:根据电路图,分析交通灯的设计思路针对电路图及设计要求给出交通灯的程序框图。设计步骤:1、按照电路图上的MCU芯片与LED、7段数码管的连接方式,绘制交通灯控制系统电路图。2、编写源代码。…3、编译与调试。…4、Proteus仿真运行及验证。…五、实验结果与分析(实验程序设计必需先有程序框图,程序框图体现在实验报告中)软件设计过程a)源代码(汇编语言设计)ORG00H…ENDb)编译、调试过程c)编译结果分析控制系统设计实现过程、结果及分析a)控制系统电路图b)实现过程c)结果分析及结论(…没有完成的过程或步骤请说明原因所在,实验结果偏差要分析原因,并给出可行的实验解决方案或建议,得出正确的结果)六、实验结论(实验总结与实验心得)…(给出实验的总结)…(这是实验的心得)实验过程中经过对Wave6000仿真平台的操作,对软件仿真有了XXXX的认识。其中,在进行编译时,刚开始没有成功,后来重新打开软件再进行修改、编译就此解决了问题。不过最后虽然输入了XXXX并进行了保存,但是不知道如何检测XXXX是否保存到XXXX中。对于XXXX平台的设定,在这次实验中XXXX…。注意:1、此模板框架、字体大小不要修改,框架下的具体内容请按照各自试验自己认真完成。2、试验电路图是《单片机实验电路板原理图》。3、进实验室前请准备好程序流程框图和程序!请重视实验!喜欢实验!/***************************************************************************标题: 定时器中断-秒表汇编语言效果: 按1键启动或按2键停止数码管做精确的秒计数说明: 板使用12M晶振******************************************************************************/;脚功能定义 SMG_qEQUP1.0 ;定义数码管阳级控制脚,千位 SMG_bEQUP1.1 ;定义数码管阳级控制脚,百位 SMG_sEQUP1.2 ;定义数码管阳级控制脚,十位 SMG_gEQUP1.3 ;定义数码管阳级控制脚,个位 KEY1EQUP3.7 ;定义按键1 KEY2EQUP3.6 ;定义按键2 ;定义数据RAM空间 LMSEQU37H ;定义一个变量存放计数值毫秒 LMIAOEQU38H ;定义一个变量存放计数值秒;数据存放ORG0100TABLE: DB0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H ;表:共阳数码管0-9ORG0000HLJMPMAINORG000BH ;中断入口LJMPTIMERORG0200HMAIN: MOVTMOD,#01H ;设置定时器1为1模式,即16位计算模式 MOVTH0,#0D8H ;给计数寄存器赋值,10毫秒时间 MOVTL0,#0F0H MOVIE,#82H ;开总中断和T0中断 CLRTR0 ; CLRA MOVLMS,A ;计数缓冲清0 MOVLMIAO,AM01: JBKEY1,M02 ;按下1键启动计数 CLRA MOVLMS,A MOVLMIAO,A ; SETBTR0 ; SJMPM1M02: JBKEY2,M1 ;按下2键停止计数 CLRTR0 ;M1: MOVA,LMS CJNEA,#100,M2 ;以10毫秒计数,100次即为1秒 MOVLMS,#0 MOVA,LMIAO ; INCA MOVLMIAO,A ; CJNEA,#100,M2 ;如果加到100秒,则清0 MOVLMIAO,#0M2: LCALLDISPLAY ;显示 LJMPM01 TIMER: INCLMS ;定时中断产生,以10毫秒计数加1 MOVTH0,#0D8H ;重新装入定时器值10毫秒 MOVTL0,#0F0H RETI DISPLAY:MOVDPTR,#TABLE ;数码管显示子程序 MOVA,LMIAO ; MOVB,#10 DIVAB CLRSMG_q ;千位数码管 MOVCA,@A+DPTR ; MOVP0,A LCALLDELAY ; MOVP0,#0FFH ; SETBSMG_q ; CLRSMG_b ;百位数码管 MOVA,B ; MOVCA,@A+DPTR ; ANLA,#0X7F ;加入小数点 MOVP0,A LCALLDELAY ; MOVP0,#0FFH ; SETBSMG_b ; MOVA,LMS ; MOVB,#10 DIVAB CLRSMG_s ;十位数码管 MOVCA,@A+DPTR ; MOVP0,A LCALLDELAY ; MOVP0,#0FFH ; SETBSMG_s ; CLRSMG_g ;个位数码管 MOVA,B ; MOVCA,@A+DPTR ; MOVP0,A LCALLDELAY ; MOVP0,#0FFH ; SETBSMG_g ; RETDELAY: MOVR7,#10 ;延时子程序 DJNZR7,$ RETEND/***************************************************************************标题: 定时器中断秒计数C语言效果: 数码管做精确的秒计数00-99说明: 板使用12M晶振******************************************************************************///头文件:#include"reg51.h"//变量定义:codeunsignedchartable[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //表:共阳数码管0-9unsignedcharl_posit=0; //显示位置unsignedchartt=0; //作为计数时间量//引脚定义: sbitSMG_q=P1^0; //定义数码管阳级控制脚(千位)sbitSMG_b=P1^1; //定义数码管阳级控制脚(百位)sbitSMG_s=P1^2; //定义数码管阳级控制脚(十位)sbitSMG_g=P1^3; //定义数码管阳级控制脚(个位)//函数声明:voiddisplay(unsignedintda);//定义显示函数,参数为显示内容voiddelay(unsignedinttimer);voidinit(); //初如化函数//主函数,C语言的入口函数: voidmain(){ unsignedcharbb=0; //作为显示变量 init(); //初始化中断控制寄存器 while(1){ if(tt==20){ //20*50MS定时时间为1秒 tt=0; bb++; //计数变量加1 if(bb==100){ //99秒后清0 bb=0; } } display(bb); //显示变量内容 delay(100); }}//初始化函数voidinit(){ tt=0; TMOD=0X01; //设置定时器1为模式一,即16位计算模式 TH0=(65536-50000)/256; //给计数寄存器赋值,50毫秒时间 TL0=(65536-50000)%256; EA=1; //开启总中断 ET0=1; //开启定时器0中断 TR0=1; //启定定时器0}//中断函数,关键字"interrupt",这是C语言的中断函数表示法,1表时定地器0voidtimer()interrupt1{ TH0=(65536-50000)/256; //重新赋值 TL0=(65536-50000)%256; tt++; //50毫秒加1,加20次为一秒}//显示函数,参数为显示内容voiddisplay(unsignedintda){ P0=0XFF; // da=da%10000; switch(l_posit){ case0: //选择千位数码管,关闭其它位 SMG_q=0; SMG_b=1; SMG_s=1; SMG_g=1; P0=0xff;//table[da/1000]; //输出显示内容 break; case1: //选择百位数码管,关闭其它位 SMG_q=1; SMG_b=0; SMG_s=1; SMG_g=1; P0=0xff;//table[da%1000/100]; break; case2: //选择十位数码管,关闭其它位 SMG_q=1; SMG_b=1; SMG_s=0; SMG_g=1; P0=table[da%100/10];

温馨提示

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

评论

0/150

提交评论