资源描述:
《片机课程设计汇编语言程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、;流水灯汇编语言程序代码:MAIN:MOVA,#0FEH;保持只有一个LED灯亮MOVR3,#08H;把立即数08H送到寄存器R3中LOOP:MOVP2,ALCALLDELAY;长调用子程序,跳转到DELAY程序RLA;累加器循环左移DJNZR3,LOOP;R3减1,不为0则跳转到LOOPLJMPMAIN;转移到MAIN程序DELAY:MOVR4,#00H;延时程序MOVR5,#00HD1:DJNZR4,D1;R4减1,不为0则继续执行D1程序D2:DJNZR5,D2;R5减1,不为0则继续执行D2程序RETEND流水灯程序电路图:;数码显示管/
2、LCD汇编语言程序:MAIN:MOVR6,#00H;把立即数00H送到寄存器R6中MOVR5,#00HMOVR2,#00HMOVR1,#00HDR:MOVA,R6MOVP3,#08H;00001000,第一个数码管显示LCALLLOOPLCALLYS0MOVA,R5MOVP0,#0FFHMOVP3,#04H;00000100,第二个数码管显示LCALLLOOPLCALLYS0MOVA,R2MOVP0,#0FFHMOVP3,#02HLCALLLOOPLCALLYS0MOVA,R1;第一次循环时R1为0送入A中,第二次循环时把R1+1送入A中MOVP
3、0,#0FFHMOVP3,#01HLCALLLOOPINCR1CJNER1,#0AH,DR;R1循环10次,R2加1INCR2MOVR1,#00HCJNER2,#0AH,DR;R2循环10次,R5加1INCR5MOVR2,#00HCJNER5,#0AH,DR;R5循环10次,R6加1INCR6MOVR5,#00HCJNER6,#0AH,DRLJMPMAINTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HLOOP:MOVDPTR,#TAB;把查表地址送到DPTR指针中MOVCA,@A+DPTRMO
4、VP0,A;在数码管中显示RETYS0:;延时程序MOVR3,#06HMOVR4,#06HYS3:DJNZR3,YS3;R3减1,不为0则继续执行YS3YS4:DJNZR4,YS4RETEND数码显示管程序电路图:;键盘汇编语言程序代码:ORG0000HMAIN:MOVP1,#0FH;以行列排布,若按键按下列为1MOVA,P1CJNEA,#0FH,SCAN;比较A与0FH是否相等,不相等则跳转到SCANSJMPMAIN;短转移SCAN:JBP1.4,HX0;直接寻址位P1.4为1则转移到HXO,判断按键是否按下JBP1.5,HX1JBP1.6,H
5、X2JBP1.7,HX3HX0:MOVR2,#0;列编号0、1、2、3送入R2中LCALLFXHX1:MOVR2,#1LCALLFXHX2:MOVR2,#2LCALLFXHX3:MOVR2,#3LCALLFXFX:MOVP1,#0F0H;若按键按下则行为1JNBP1.0,FX1;直接寻址位P1.0为0则转移到FX1,判断按键是否按下MOVA,#0;行编号0、4、8、12送入A中ADDA,R2;将列编号与行编号相加得键值送入A中,经压栈送入显示程序PUSHAcc;压栈LCALLXS;键值经压栈后送入显示程序POPAcc;出栈LJMPMAINFX1:
6、JNBP1.1,FX2MOVA,#4ADDA,R2PUSHAccLCALLXSPOPAccLJMPMAINFX2:JNBP1.2,FX3MOVA,#8ADDA,R2PUSHAccLCALLXSPOPAccLJMPMAINFX3:MOVA,#12ADDA,R2PUSHAccLCALLXSPOPAccLJMPNONEXS:MOVDPTR,#TAB;显示程序MOVCA,@A+DPTRMOVP2,ALCALLDELAYRETDELAY:MOVR3,#0;延时程序D1:MOVR4,#0D2:DJNZR4,D2DJNZR3,D1RETNONE:NOPTAB:
7、DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND键盘程序电路图: