1、121314Y151618192126333230MOV A,20HMOV DPTR,#TABMOVC A,A+DPTRMOV 21H,ASJMP $TAB:DB 0,1,5,15,16,18,19,21 DB 26,33,32,30,13,11,8END四、连加程序 MOV R1,#60H MOV R2,#30H ACALL SUM SUM:PUSH PSW MOV R1,#0 INC R1 DEC R1 LOOP: ADD A,R1 MOV R1,A MOV A,R1 ADDC A,#0 DJNZ R2,LOOP POP PSW RET实验二 多字节数乘法和除法 1编写一个双字节数乘以单字
2、节数的程序,实现(R4)(R3)(R2) (R4)(R3)(R2)。并验证: BBFFHBBH,3FFFHA2H,FFFFH0AHMOV A,R3MOV B,R2MUL ABMOV R5,AMOV R6,BMOV A,R4ADD A,R6MOV R6,AMOV A,BADDC A,#00HMOV R7,ARET 2编写一个双字节数除以单字节数的程序,实现(R7)(R6) (R5) (R5)(R6) (R7)。 BBFFHBBH,3FFFHA2H,FFFFHDIVP:MOV A,R7 MOV B,R5 DIV AB MOV 30H,A MOV R7,B LCALL DIVPI MOV R5,30
3、HDIVPI:MOV R2,#8CLR C MOV A,R6 RLC A MOV R6,A MOV A,R7 MOV R7,A MOV F0,C CLR C SUBB A,R5 ANL C,/F0 JC NEXT INC R6 NEXT:DJNZ R2,LOOP实验三 数制转换 1编写一个双字节二进制数转换成BCD码数的程序。已知双字节数存放在R7、R6中,转换结果从高位到低位依次放入片内RAM52H50H单元中。 5678H、3A5CH、FF00H的转换结果BTOBCD:CLR A MOV 52H,A MOV 51H,A MOV 50H,A MOV R1,#16 CLR C MOV A,R6
4、 RLC A MOV R6,A MOV A,R7 MOV R7,A MOV A,50H ADDC A,50H DA A MOV A,51H ADDC A,51H MOV A,52H ADDC A,52H DJNZ R1,LOOP 实验四 并行口的应用 P1.4P1.5接两个按钮开关,P1.0P1.1接两个发光二极管L1、L2,编写一个程序实现模拟汽车转弯灯控制。 P1.5 P1.4状 态 1 1L1、L2全灭 1 0左转灯闪(L1以1Hz的频率闪烁) 0 1右转灯闪(L2以1Hz的频率闪烁) 0 0双闪(L1、L2同时以1Hz的频率闪烁) ORG 0000H SJMP MAIN ORG 003
5、0HMOV A,P1 SWAP A ANL A,#03H CJNE A,#00H,L1 SETB P1.0 CPL P1.1 MOV C,P1.1 MOV P1.0,C ACALL DELL1:CJNE A,#01H,L2L2:CJNE A,#02H,L3 SETB P1.1 CPL P1.0L3:SETB P1.0DEL: MOV R7,#5DEL1:ACALL DELAY DJNZ R7,DEL1DELAY:MOV R2,#200LOOPS:MOV B,#248 NOP DJNZ B,$ DJNZ R2,LOOPS实验六 定时器/计数器及中断的使用实验电路如右图所示。要求采用定时器/计数器
6、中断方式编程实现八只发光二极管的如下显示方式:第一秒L1、L3亮,第二秒L2、L4亮,第三秒L5、L7亮,第四秒L6、L8亮,第五秒L1、L3、L5、L7亮,第六秒L2、L4、L6、L8亮,第七秒全亮,第八秒全灭。第九秒以后又从头开始,一直循环下去。 SJMP MAIN ORG 000BH SJMP TMOOMOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA MOV R2,#20 MOV R3,#00 MOV DPTR,#TAB SETB TR0TMOO:MOV TH0,#3CH DJNZ R2,EXIT MOV A,R3 MOV
7、C A,A+DPTR MOV P1,A INC R3 CJNE R3,#08,EXITEXIT:RETI DB 0FAH,0F5H,0AFH,5FH DB 0AAH,55H,00,0FFH实验七 静态显示程序MOV SCON,#00MOV R7,#02 ANL A,#0FH MOV SBUF,A JNB TI,$ CLR TI MOV A,R0 DJNZ R7,LOOPDB 11H,0D7H,98H,92H DB 56H,32H,30H,97H DB 10H,12H,14H,70H DB 39H,0D0H,38H,3CH静态显示自增一(1) ORG 0000HMOV 30H,#34H MOV
8、31H,#12H MOV TMOD,#01H MOV R2,#020 INC 30H MOV A,30H CJNE A,#00H,TMO1 INC 31HTMO1:ACALL DISDIS: MOV R0,#30H MOV R7,#02LP2: DJNZ R7,LP2(2) ORG 0000H SJMP CTOP MOV 30H,#21H MOV 31H,#43H MOV 32H,#10 MOV TMOD,#01 SETB TR0; 启动定时器T0 MOV IE,#82H; ET0为1,定时器0允许中断CTOP: DJNZ 32H,RET1 CJNE A,#0,A1A1: MOV 50H,A
9、ANL A,#0F0H MOV 51H,A MOV A,31H MOV 52H,A MOV 53H,ADISP: MOV R2,#04 MOV R0,#50HLP0: DJNZ R2,LP0RET1: RETI DB 11H,0D7H,98H,92HDB 56H,32H,30H,97HDB 10H,12H,14H,70HDB 39H,0D0H,38H,3CH实验八 动态显示程序编写一动态显示程序。要求:将片内RAM33H30H单元中的数显示出来。LP3: MOV R6,#0DFH MOV R7,#03 CLR P2.0 CLR P2.1 CLR A MOV P0,A SETB P2.0 CLR
10、 P2.0 MOV P0,#00 SETB P2.1 RR ADEL0: MOV R5,#250LP1: DJNZ R5,LP1 CLR A CLR P2.0 MOV P0,#00 INC R0 MOV R5,#250 DJNZ R5,LP2 DJNZ R7,LP0 SJMP LP3 DB 77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH,79H,33H,7CH,3BH,1BH实验九 键盘显示程序编写一键盘显示程序。对矩阵键盘进行判键,并采用动态显示,将键码按计算器显示模式进行显示。 ORG 0000HKPIN: MOV P1,#0F0H ;行线低4位输出
11、低电平 MOV A,P1 ;从高4位读取列线值 ANL A,#0F0H ;屏蔽低4位获得列线值 MOV B,A ;暂存列线值 MOV P1,#0FH ;列线高4位输出低电平从低4位读取行线值 ANL A,#0FH ;屏蔽高4位获得行线值 ORL A,B ;行、列值合并,得到按键特征码 CJNE A,#0FFH,KPIN1 ;判断有按键否 MOV 30H,#0FFH ACALL DISP AJMP EXIT ;与0FFH相等,无按键,重新扫描KPIN1:有按键,把特征码暂存B MOV DPTR,#TABKP ;DPTR指向键码表首地址 MOV R3,#0 ;顺序码初始化KPIN2: MOV A,
12、R3 ;按顺序码查表 CJNE A,B,KPIN3 ;按键特征码与查表特征码比较相等,顺序码有效,得到键码A CJNE A,30H,DHJ SJMP DKDHJ: MOV 30H,R3 MOV 55H,54H MOV 54H,53H MOV 53H,52H MOV 52H,51H MOV 51H,50HDK: AJMP EXITKPIN3: INC R3 ;不相等,调整顺序码,准备查下一个 CJNE A,#0FFH,KPIN2 ;是否为表格结束标志 SJMP KPIN ;是,重新扫描 MOV R1,#0DFH MOV R2,#06LOOP1:MOV A,R1 MOV R1,AMOV R5,#04 ;延时2msLOOP2: DJNZ R5,LOOP2TABKP: DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH DB 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFH DB 77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH DB 79H,33H,7CH,3BH,1BH
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1