实验三-数码管动态显示程序设计1

上传人:积*** 文档编号:120470100 上传时间:2022-07-17 格式:DOC 页数:15 大小:50KB
返回 下载 相关 举报
实验三-数码管动态显示程序设计1_第1页
第1页 / 共15页
实验三-数码管动态显示程序设计1_第2页
第2页 / 共15页
实验三-数码管动态显示程序设计1_第3页
第3页 / 共15页
点击查看更多>>
资源描述
实验三 数码管动态显示程序设计 实验目的1、理解数码管动态显示原理2、理解数码管动态显示电路的设计措施3、掌握数码管动态显示程序的设计措施实验仪器单片机开发板、万利仿真机、稳压电源、计算机实验内容1、动态扫描显示程序2、特性位小数点控制显示程序实验电路图数码管动态显示初始化显示缓冲区首地址,显示计数器取缓冲区一字节数,并转换成显示码输出位选数据,并延时1ms显示指针指向下一字节,计数器减1显示计数为0返回YN程序流程图 实验环节及调试信息1、新建实验项目2、输入实验程序并补充完整 ;-;数码管动态显示程序;涉及小数点显示;位选码输出有两种方式:; DispSelection1: 一次一位; DispSelection2: 一次一字节; -08-20;-LEDCLKbitP3.4LEDDINbitP2.3LEDDATAdataP0dsegat30hdispbuf:ds8;显示缓冲区8字节disppoint:ds1;小数点控制数据maincode SEGMENTCODECSEGat0LJMPStartRSEGmaincodeStart:CLREAmovsp,#0c0hmov dispbuf ,#08hmov dispbuf+1, #04hmov dispbuf+2, #00h mov dispbuf+3, #08h mov dispbuf+4, #02hmov dispbuf+5, #00hmov dispbuf+6, #02hmov dispbuf+7, #07hmovdisppoint,#02h;第2位小数点亮LCALLdispSJMP$-3;-;数码管动态显示程序;涉及小数点显示;位选码输出有两种方式:; DispSelection1: 一次一位; DispSelection2: 一次一字节; -08-20;-Disp:MOVR7,#8MOVR0,#dispbuf CLRLEDCLK SETBLEDDINDisp1:MOVA,R0MOVDPTR,#DispTabMOVCA,A+DPTRcpla;LCALLDispdot;显示小数点程序MOVLEDDATA,A;在输出之前加入显示小数点程序LCALLDispSelection1;输出位选择信号,DispSelection2是第二种;lcalldispsel3LCALLDelay1msmovp2,#0ffhINCR0DJNZR7,Disp1movp2,#0ffhRET;-;位选码以一次一位方式输出;-dispsel3:movdptr,#DispSTabmova,r7movca,a+dptrcpla;swapamovp2,aretDispSelection1:CJNER7,#8,DispSelection11CLRLEDDINDispSelection11:SETBLEDCLKNOPCLRLEDCLKSETBLEDDINRET;-;位选码以一次一字节方式输出;-DispSelection2:MOVB,#8MOVDPTR,#DispSTabMOVA,R7MOVCA,A+DPTRCPLADispSelection21:RLCAMOVLEDDIN,CSETBLEDCLKNOPCLRLEDCLKDJNZB,DispSelection21RETDispSTab:DB00H,80H,20H,40H,10H,08H,04H,02H,01H;位选码数据表dispaequ80h;数码管各段数据定义dispbequ40hdispcequ20hdispdequ10hdispeequ08hdispfequ04hdispgequ02hdisphequ01hdisp8equ0ffh-disphDispTab:dbdisp8-dispg,dispb+dispc,dispa+dispb+dispg+dispd+dispe;0,1,2dbdisp8-dispe-dispf,disp8-dispa-dispd-dispe,disp8-dispb-dispe;3,4,5dbdisp8-dispb,dispa+dispb+dispc,disp8,disp8-dispe;6,7,8,9dbdisp8-dispd,disp8-dispa-dispb,disp8-dispb-dispc-dispg;a,b,cdbdisp8-dispa-dispf,disp8-dispb-dispc,disp8-dispb-dispc-dispd;d,e,fdbdisp8-dispb-dispc,0ffh,00h,dispg;H,全亮,全暗,-;-;特性位小数点控制显示程序;把小数点显示程序加到显示码输出之前;输入:A : 显示译码值 ; R7:目前正在显示的LED编号;输出:无;-Dispdot:MOVB,AMOVA,R7MOVDPTR,#DispSTabMOVCA,A+DPTRANLA,disppointSETBC;本行及如下4行可改成MOVC,PJZDispdot1CLRC;点亮小数点Dispdot1:CPLC;本行根据状况增减MOVA,BCPLAMOVACC.7,C;小数点由D7控制;MOVLEDDATA,A;本行可以删除RETDelayNms:LCALLDelay1msDJNZR7, $-3RETDelay1ms:PUSH07MOVR7,#250;1msNOPNOPDJNZR7, $-2POP07RETEND 3、编译下载实验程序,并修改错误(按附录阐明)4、全速运营程序,查看实验现象。数码管稳定的显示8408 20276、单步执行,分析各程序的功能特点。7、整顿实验设备实验现象在LED数码管上稳定显示8408 2027,没有闪烁等状况。阐明显示扫描速度较快,一般不小于50Hz以上。LED数码管有一盏不亮,因素是它相应的三极管不能正常工作。程序运营之后,0030H后8位为08 04 00 08 02 00 02 07调试信息1、 编译无误。2、 程序各重要部分运营时间显示一位数码管用时524us,显示8位用时4195us。3、通过变化movedisppoint,#08H可以变化显示小数点。如要显示后3位小数点,可改为move disappoint,#07H.思考题1、运营上面的程序,计算显示程序每秒运营的次数?答:显示8位数码管用时4197us,因此显示程序每秒运营次数为1(419710-6)238次。2、请阐明数码管的消隐如何实现。;涉及小数点显示;位选码输出有两种方式:; DispSelection1: 一次一位; DispSelection2: 一次一字节; -08-20;-LEDCLKbitP3.4LEDDINbitP2.3LEDDATAdataP0dsegat30hdispbuf:ds8;显示缓冲区8字节;disppoint:ds1;小数点控制数据 disapper: ds 1maincode SEGMENTCODE CSEG at 0 LJMP Start RSEG maincodeStart:CLREAMOVsp,#0c0h;重定义堆栈空间MOV dispbuf+0 ,#08h;往显示缓冲区填充数MOV dispbuf+1, #04hMOV dispbuf+2, #00h MOV dispbuf+3, #08h MOV dispbuf+4, #02hMOV dispbuf+5, #00hMOV dispbuf+6, #02hMOV dispbuf+7, #07h;MOVdisppoint, #08h;第4位小数点亮 MOV disapper ,#01h ;第1位数码管消隐LCALLdispSJMP$-3;-;数码管动态显示程序;涉及小数点显示;位选码输出有两种方式:; DispSelection1: 一次一位; DispSelection2: 一次一字节;-Disp:MOVR7,#8 MOVR0,#dispbuf ;送缓冲区首地址CLRLEDCLK ;送低电平SETBLEDDIN ;Disp1:MOVA,R0 ;送要显示的数据MOVDPTR,#DispTab ;表首地址MOVCA,A+DPTR ;查表;CPLA;LCALL Dispdot;显示小数点程序 LJMP disapper1 ;消隐程序F:MOVLEDDATA,A;在输出之前加入显示小数点程序LCALLDispSelection1;输出位选择信号,DispSelection2是第二种;LCALLdispsel3LCALLDelay1msMOV P2,#0FFHINC R0DJNZR7,Disp1MOV P2,#0FFHRET;-;位选码以一次一位方式输出;-;dispsel3:;MOVDPTR,#DispSTab ;MOVA,R7;MOVCA,A+DPTR;CPLA;swapA;MOVP2,A;RETdisapper1:mov B,AMOV A,R7MOV DPTR,#DispSTabmovc A,A+DPTRANL A, disapperJNZ disapper2 MOV A,BCPL ALJMP F ;不消隐disapper2:MOV A,#0FFHLJMP F ;消隐DispSelection1:; PUSH ACC; MOV LEDDATA,0FFHCJNER7,#8,DispSelection11CLRLEDDIN;POP ACC;MOV LEDDATA,ADispSelection11:SETBLEDCLKNOPCLRLEDCLKSETBLEDDINRET;-;位选码以一次一字节方式输出;6和7不能显示相反;-DispSelection2:MOVB,#8MOVDPTR,#DispSTabMOVA,R7MOVCA,A+DPTRCPLADispSelection21:RLCAMOVLEDDIN,CSETBLEDCLKNOPCLRLEDCLKDJNZB,DispSelection21RETDispSTab:DB00H,80H,20H,40H,10H,08H,04H,02H,01H;位选码数据表dispaequ80h ;数码管各段数据定义dispbequ40hdispcequ20hdispdequ10hdispeequ08hdispfequ04hdispgequ02hdisphequ01hdisp8equ0ffh-disphDispTab:dbdisp8-dispg,dispb+dispc,dispa+dispb+dispg+dispd+dispe;0,1,2dbdisp8-dispe-dispf,disp8-dispa-dispd-dispe,disp8-dispb-dispe;3,4,5dbdisp8-dispb,dispa+dispb+dispc,disp8,disp8-dispe;6,7,8,9dbdisp8-dispd,disp8-dispa-dispb,disp8-dispb-dispc-dispg;a,b,cdbdisp8-dispa-dispf,disp8-dispb-dispc,disp8-dispb-dispc-dispd;d,e,fdbdisp8-dispb-dispc,0ffh,00h,dispg;H,全亮,全暗,-;-;特性位小数点控制显示程序;把小数点显示程序加到显示码输出之前;输入:A : 显示译码值 ; R7:目前正在显示的LED编号;输出:无;-Dispdot:MOVB,AMOVA,R7MOVDPTR,#DispSTabMOVCA,A+DPTR;ANLA,disppointSETBC;本行及如下4行可改成MOVC,PJZDispdot1CLRC;点亮小数点Dispdot1:;CPLC;本行根据状况增减MOVA,BCPLAMOVACC.0,C;小数点由D7控制;MOVLEDDATA,A;本行可以删除RETDelayNms:LCALLDelay1msDJNZR7, $-3RETDelay1ms:PUSH07MOVR7,#250;1msNOP NOPDJNZR7, $-2POP07RETEND
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!