资源描述:
《单片机实验二 流水数码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二流水数码一、设计任务一循环显示数字0-81、电路设计图2.1循环显示数字0-82、程序设计ORG0000HSTART:MOVR2,#08HMOVA,#0FEHNEXT:MOVP1,AACALLDELAYRLADJNZR2,NEXTSJMPSTARTDELAY:MOVR3,#0FFHDEL2:MOVR4,#0FFHDEL1:NOPDJNZR4,DEL1DJNZR3,DEL2RETEND3、编译程序4、电路仿真(上交021.dsn,021.asm等)答案:ORG0000HSTART:MOVR2,#08HMOVA
2、,#0FEHNEXT:MOVP1,AACALLDELAYRLADJNZR2,NEXTSJMPSTARTDELAY:MOVR3,#0FFHDEL2:MOVR4,#0FFHDEL1:NOPDJNZR4,DEL1DJNZR3,DEL2RETEND二、设计任务二2.2图电路功能为循环显示数字0-9,按图连接电路,编写代码,实现要求的功能。(上交022.dsn,022.asm等)答案:ORG0000HSTART:MOVR1,#00HMOVDPTR,#TABLEMAIN:MOVA,R1MOVCA,@A+DPTRMOVP2,A
3、ACALLDELAYINCR1CJNER1,#10,MAINLCALLSTARTTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY:MOVR3,#0FFHDEL2:MOVR4,#0FFHDEL1:NOPDJNZR4,DEL1DJNZR3,DEL2RETEND图2.2循环显示数字0-9三、设计任务三(一)要求2.2图每按一次键,数码增1,编写代码,实现要求的功能。(上交023.dsn,023.asm等)CountEQU30HSP1BITP3.7ORG0START
4、:MOVCount,#00HNEXT:MOVA,CountMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP2,AWT:JNBSP1,WT;按键时间超过10ms,等待释放WAIT:JBSP1,WAITLCALLDELY10MSJBSP1,WAIT;低电平时间没有超过10ms为干扰,不算有效按键。INCCount;按键时间超过10ms,有效按键,计数值增1MOVA,CountCJNEA,#010,NEXT;没显示完十个数,显示下一个LJMPSTART;显示完十个数,从0开始显示DELY10MS:MOVR
5、6,#20;10ms延时程序D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND答案:CountEQU30HSP1BITP3.7ORG0START:MOVCount,#00HNEXT:MOVA,CountMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP2,AWT:JNBSP1,WT;按键时间超过10ms,等待释放WAIT:JBSP1,WAITLCALLDELY10MSJBSP1,WAIT
6、;低电平时间没有超过10ms为干扰,不算有效按键。INCCount;按键时间超过10ms,有效按键,计数值增1MOVA,CountCJNEA,#010,NEXT;没显示完十个数,显示下一个LJMPSTART;显示完十个数,从0开始显示DELY10MS:MOVR6,#20;10ms延时程序D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND(二)思考题(上交此题电子答案02.doc)1、试一试删除这一句
7、“WT:JNBSP1,WT”,会发生什么情况?为什么?开始无键按下时,这一句有无循环执行?答:按键后数码不是增1,不稳定,数码显示取决于按键时间,因为该指令的意义是在按键还没按下时一直处于等待状态,直到按键有效为1时才往下执行。若删除此句,则还没按键就往下执行了;开始无键按下时,这一句有循环执行。2、MOVCA,@A+DPTR采用什么寻址方式?可否改成MOVA,@A+DPTR,为什么?答:变址寻址方式,不能改成MOVA,@A+DPTR,因为MOVCA,@A+DPTR为查表指令,它以DPTR为表中数据的首地址,A中
8、事先存储数据相对于表首地址的地址偏移量,通过A值可以查询表中指定位置的数据;而MOV为数据传送指令,所以不能写成MOVA,@A+DPTR的形式。