您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 动态显示秒表参考程序
5、秒表设计。设计要求:用表1提供的元件,设计一秒表,要求用完全部的材料。按键“SP1”连接在P3.2;一个2位共阴组合数码管显示器接在P0口,数码管的公共端分别接在P2.6、P2.7。功能要求:开始时,显示“00”;第一次按下SP1键后就从0.0~9.9秒计时,显示精度为0.1秒;第二次按SP1键后,计时停止,显示当前值;第三次按SP1键后,计时归零。程序要求:(1)用51汇编语言编写。(2)使用T0定时中断。表1秒表设计元器件清单序号元件名称型号/规格数量1单片机AT89C5112电容器22pF23晶体振荡器12MHz14电阻器10K1/4W15电容器10uF/25V16电阻器10K1/4W17轻触按钮---18电阻器330R1/4W897段显示器2位共阴组合数码管0.5吋;引脚号:a-7,b-6,c-4,d-1,e-3,f-8,g-9,dp-2,bit1-5,bit2-101评分标准:(1)根据设计要求,画出电路示意图(10分)(2)根据功能要求,画出主程序流程图(10分)(3)根据程序要求,编写源程序(10分)电路示意图:主程序流程图:源程序:TCNTAEQU30H;每250微秒加1TCNTBEQU31H;每25毫秒加1TCNTCEQU32H;每0.1秒加1KEYCNTEQU33H;按键次数记数SP1BITP3.2;按键GeWeiBITP2.7;个位位选ShiWeiBITP2.6;十位位选;--------------------------------------------------------------------------------------------------------ORG0000HLJMPSTART;主程序ORG0BHLJMPINT_T0;定时器T0中断服务程序ORG0030HSTART:MOVKEYCNT,#00H;按键次数计数置0MOVTCNTC,#00H;0.1计数置0MOVTMOD,#02H;中断设置:工作方式2,8位自动重装SETBET0NNNYYY开始初始化开始计数键盘扫描动态显示计时值第1次按键?第2次按键?第3次按键?暂停清零SETBEALOOP:LCALLDISPLCALLKS;----------------------------------------------------------------------------------------------------MOVA,KEYCNTCJNEA,#01H,KN1;第1次按键SETBTR0MOVTH0,#06H;计数250次,即250微秒MOVTL0,#06HMOVTCNTA,#00HMOVTCNTB,#00HLJMPDKNKN1:CJNEA,#02H,KN2;第2次按键CLRTR0LJMPDKNKN2:CJNEA,#03H,DKN;第3次按键MOVTCNTC,#00HLCALLDISPMOVKEYCNT,#00HDKN:LJMPLOOP;--------------------------------------------------------------------------------------------------------KS:JNBSP1,KS1;有按键RETKS1:LCALLDELAY;防抖动JNBSP1,KS2;有按键RETKS2:INCKEYCNT;按键次数加1RET;-------------------------------------------------------------------------------------------------------DISP:MOVA,TCNTCMOVB,#10DIVAB;A:商,十位数;B:余数,个位数MOVDPTR,#TABLEMOVCA,@A+DPTRADDA,#80H;添加小数点SETBGeWei;十位位选CLRShiWeiMOVP0,A;十位数送显LCALLDELAYMOVA,BMOVDPTR,#TABLEMOVCA,@A+DPTRCLRGeWei;个位位选SETBShiWeiMOVP0,A;个位数送显LCALLDELAYRET;--------------------------------------------------------------------------------------------------------DELAY:MOVR6,#100;延时25毫秒D1:MOVR7,#250DJNZR7,$DJNZR6,D1RET;--------------------------------------------INT_T0:INCTCNTA;每250微秒加1MOVA,TCNTACJNEA,#100,NEXTMOVTCNTA,#00HINCTCNTB;每25000微秒加1,即25毫秒加1MOVA,TCNTBCJNEA,#4,NEXTMOVTCNTB,#00HINCTCNTC;每100毫秒加1,即每0.1秒加1MOVA,TCNTCCJNEA,#100,NEXTMOVTCNTC,#00HNEXT:RETITABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND
本文标题:动态显示秒表参考程序
链接地址:https://www.777doc.com/doc-6071033 .html