[其它]实验室汇编源程序.doc

上传人:sccc 文档编号:4663572 上传时间:2023-05-05 格式:DOC 页数:53 大小:246.50KB
返回 下载 相关 举报
[其它]实验室汇编源程序.doc_第1页
第1页 / 共53页
[其它]实验室汇编源程序.doc_第2页
第2页 / 共53页
[其它]实验室汇编源程序.doc_第3页
第3页 / 共53页
[其它]实验室汇编源程序.doc_第4页
第4页 / 共53页
[其它]实验室汇编源程序.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《[其它]实验室汇编源程序.doc》由会员分享,可在线阅读,更多相关《[其它]实验室汇编源程序.doc(53页珍藏版)》请在三一办公上搜索。

1、;= 软件实验四 数据区传送子程序 = ORG 07B0H MOV R2,00H MOV R3,#00H MOV R4,#10H MOV R5,#00H MOV R6,#00H MOV R7,#08HSE22: MOV DPL,R3 MOV DPH,R2 ;建立源程序首址 MOVX A,DPTR ;取数 MOV DPL,R5 MOV DPH,R4 ;目的地首址 MOVX DPTR,A ;传送 CJNE R3,#0FFH,LO42 INC R2LO42: INC R3 ;源地址加1 CJNE R5,#0FFH,LO43 INC R4LO43: INC R5 ;目地址加1 CJNE R7,#00H

2、,LO44 CJNE R6,#00H,LO45 ;字节数减1 SJMP $ NOPLO44: DEC R7 SJMP SE22LO45: DEC R7 DEC R6 SJMP SE22 ;未完继续 END;= 软件实验一 清零程序 = ORG 0640HSE01: MOV R0,#00H MOV DPTR,#2000H ;(2000H)送DPTRLOO1: MOVX DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1 INC R0 ;字节数加1 CJNE R0,#00H,LOO1 ;不到FF个字节再清 SJMP $ END;= 软件实验二 拆字程序 = ORG 0660HSE0

3、2: MOV DPTR,#2000H MOVX A,DPTR MOV B,A ;(2000)AB SWAP A ;交换 ANL A,#0FH ;屏敝高位 INC DPTR MOVX DPTR,A ;送2001H INC DPTR MOV A,B ANL A,#0FH ;(2000)内容屏敝高位 MOVX DPTR,A ;送2002H SJMP $ END;= 软件实验三 拼字程序 = ORG 0680HSE03: MOV DPTR,#2000H MOVX A,DPTR ANL A,#0FH ;(2000H)内容屏敝高位 SWAP A ;交换 MOV B,A ;保存 INC DPTR MOVX

4、A,DPTR ;(2001H)内容送A ANL A,#0FH ;屏敝高位 ORL A,B ;或 INC DPTR MOVX DPTR,A ;送2002H SJMP $ END;= 软件实验五 数据排序实验 = ORG 09B0HQUE: MOV R3,#50HQUE1: MOV A,R3 ;指针送R0 MOV R0,A MOV R7,#0AH ;长度送R7 CLR 00H ;标志位为0 MOV A,R0QL2: INC R0 MOV R2,A CLR C MOV 22H,R0 CJNE A,22H,QL3 ;相等吗? SETB CQL3: MOV A,R2 JC QL1 ;大于交换位置 SET

5、B 00H XCH A,R0 DEC R0 XCH A,R0 INC R0 ;大于交换位置QL1: MOV A,R0 DJNZ R7,QL2 JB 00H,QUE1 ;一次循环中有交换继续 SJMP $ ;无交换退出 END;= 软件实验六 查找相同数个数 = ORG 0AA0HL5800: MOV R0,#10H ;查找16个字节 MOV R1,#00H MOV DPTR,#2000HL5811: MOVX A,DPTR CJNE A,#00H,L5816 ;取出内容与00H相等吗? INC R1 ;取出个数加1L5816: INC DPTR DJNZ R0,L5811 ;未完继续 MOV

6、DPTR,#2100H MOV A,R1 MOVX DPTR,A ;相同数个数送2100HL581E: SJMP L581E END;= 软件实验七 无符号双字节快速乘法子程序 = ORG 0970HQKUL: MOV A,R3 MOV B,R7 MUL AB ;R3*R7 XCH A,R7 ;R7=(R3*R7)低字节 MOV R5,B ;R5=(R3*R7)高字节 MOV B,R2 MUL AB ;R2*R7 ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A ;R5=(R2*R7)高字节 MOV A,R6 MOV B,R3 MUL AB ;R3*R6 AD

7、D A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV PSW.5,C ;存CY MOV A,R2 MUL AB ;R2*R6 ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,PSW.5 ;加上次加法的进位 ADDC A,B MOV R4,A SJMP $ END;= 软件实验九 脉冲计数(定时计数器实验)= ORG 06E0HSE15: MOV SP,#53H MOV TMOD,#05H MOV TH0,#00H MOV TL0,#00H ;定时计数器初始化 SETB TR0 ;开计数器LO29: MOV R2,TH0

8、 MOV R3,TL0 ;取出TH0.TL0内容 LCALL ZOY0 ;二转十进制 MOV R0,#79H MOV A,R6 LCALL PTDS MOV A,R5 LCALL PTDS MOV A,R4 LCALL PTDS ;送显示缓冲区 LCALL SSEE ;显示 SJMP LO29 ;循环计数.显示ZOY0: CLR A MOV R4,A MOV R5,A MOV R6,A ;0送R4 R5 R6 MOV R7,#10HLO30: CLR C ;R2 R3左移.移出的 MOV A,R3 ;最高位送CY RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A M

9、OV A,R6 ADDC A,R6 ;(R4 R5 R6)*2+CY送R4 R5 R6 DA A ;十进制调整 MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,LO30 ;循环16次 RET;-PTDS: MOV R1,A ;拆送显示缓冲区 ACALL PTDS1 MOV A,R1 SWAP APTDS1: ANL A,#0FH MOV R0,A INC R0 RET;-SSEE: SETB RS1 ;换工作区 MOV R5,#05HSSE2: MOV 30H,#20H MOV

10、 31H,#7EH MOV R7,#06HSSE1: MOV R1,#0DDH MOV A,30H MOVX R1,A ;字位送入 MOV R0,31H MOV A,R0 MOV DPTR,#DDFF MOVC A,A+DPTR ;取字形代码 MOV R1,#0DCH MOVX R1,A ;字形送入 MOV A,30H ;右移 RR A MOV 30H,A DEC 31H MOV A,#0FFH MOVX R1,A ;关显示 DJNZ R7,SSE1 ;6位显示完了吗? DJNZ R5,SSE2 ;5次显示完了吗? CLR RS1 RET;-DDFF: DB 0C0H,0F9H,0A4H,0B

11、0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH;- END;= 硬件实验二十一 8032串行口实验(二)实验仪发送,PC机接收=; (1) 若在联机状态,请先装载此程序代码至实验系统; (2) 装载完毕后,退出调试软件,并将实验系统的通信选择开关拨至最左边(8251)并按复位; (3) 从0000H地址开始运行程序,在实验系统键盘上输入:0000,EXEC; (4) 运行“PC接收程序.exe”,选择相关串行口,使用默认2400波特率,按“打开端口”按钮; (5) 在实验系统上按 0-F 相应

12、字符,“PC接收程序”即作相关字符显示 ORG 00B0HJG832: MOV SP,#60H MOV 7EH,#08H MOV 7DH,#00H MOV 7CH,#03H MOV 7BH,#02H MOV 7AH,#14H MOV 79H,#01H MOV PCON,#80H;new add MOV SCON,#50H MOV TMOD,#20H MOV TL1,#0f3h;#0FDH MOV TH1,#0f3h;#0FDH SETB TR1 CLR ET1 CLR ESJZX0: CALL XLE JB ACC.5,JZX0 JB ACC.4,JZX0 MOV SBUF,A NOPJZX1

13、: JBC TI,JZX0 SJMP JZX1 SJMP JZX0;-XLE: ACALL DIS ACALL KEY MOV R4,A MOV R1,#48H MOV A,R1 MOV R2,A INC R1 MOV A,R1 MOV R3,A MOV A,R4 XRL A,R3 MOV R3,04H MOV R4,02H JZ X10 MOV R2,#88H MOV R4,#88HX10: DEC R4 MOV A,R4 XRL A,#82H JZ X11 MOV A,R4 XRL A,#0EH JZ X11 MOV A,R4 JZ X12 MOV R4,#20H DEC R2 SJMP

14、X13X12: MOV R4,#0FHX11: MOV R2,04H NOP NOP MOV R4,03HX13: MOV R1,#48H MOV A,R2 MOV R1,A INC R1 MOV A,R3 MOV R1,A MOV A,R4 JB ACC.5,X113 JB ACC.4,X113 MOV DPTR,#LS3 MOVC A,A+DPTRX113: RET;-LS3: DB 07H,04H,08H,05H,09H,06H,0AH DB 0BH,01H,00H,02H,0FH,03H,0EH DB 0CH,0DHDIS: PUSH DPH PUSH DPL SETB RS1 MOV

15、 R0,#7EH MOV R2,#20H MOV R3,#00H MOV DPTR,#LS0LS2: MOV A,R0 MOVC A,A+DPTR MOV R1,#0DCH MOVX R1,A MOV A,R2 inc R1 MOVX R1,ALS1: DJNZ R3,LS1 CLR C RRC A MOV R2,A DEC R0 JNZ LS2 movx r0,a dec r0 cpl a movx r0,a CLR RS1 POP DPL POP DPH RETLS0: DB 0C0H,0C6H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0

16、C6H DB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,8CHKEY: SETB RS1 MOV R2,#0FEH MOV R3,#08H MOV R0,#00HLP1: MOV R1,#0DDH MOV A,R2 MOVX R1,A RL A MOV R2,A inc r1 MOVX A,R1 CPL A ANL A,#0FH JNZ LP0 INC R0 DJNZ R3,LP1XP33: MOV A,#20HXP3: mov r2,a clr a mov r1,#0ddh movx r1,a mov a,r2 CLR RS1 RET;-LP0: CPL A JB ACC.

17、0,XP0 MOV A,#00H SJMP LPPXP0: JB ACC.1,XP1 MOV A,#08H SJMP LPPXP1: JB ACC.2,XP2 MOV A,#10H SJMP LPPXP2: JB ACC.3,XP33 MOV A,#18HLPP: ADD A,R0 sjmp xp3;-LEDP: MOV 50H,#7EH MOV A,#10H MOV R0,#79HLEDS:MOV R0,A INC R0 CJNE R0,#7EH,LEDS INC A MOV R0,A RET;- END;= D/A(调零程序) =;-D/A 0V输出(调基准电压)-;在进行D/A输出方波、

18、小直流电机实验之前,必须先运行本调零程序!;装载并连续运行本程序,调节基准电压控制电位器W2,使D/A输出端“AOUT”输出电压为0V ORG 0617h MOV SP,#53H MOV 7EH,#00H MOV 7DH,#08H MOV 7CH,#03H MOV 7BH,#02H ;显示缓冲区初值LO22: MOV A,#80H CALL LO21 SJMP LO22;-PTDS: MOV R1,A ;拆送显示缓冲区 ACALL PTDS1 MOV A,R1 SWAP APTDS1: ANL A,#0FH MOV R0,A INC R0 RET;-DIS: PUSH DPH PUSH DPL

19、 SETB RS1 MOV R0,#7EH MOV R2,#20H MOV R3,#00H MOV DPTR,#LS0LS2: MOV A,R0 MOVC A,A+DPTR MOV R1,#0DCH MOVX R1,A MOV A,R2 inc R1 MOVX R1,ALS1: DJNZ R3,LS1 CLR C RRC A MOV R2,A DEC R0 JNZ LS2 movx r0,a dec r0 cpl a movx r0,a CLR RS1 POP DPL POP DPH RET;-LO21: MOV DPTR,#0FFE0H MOVX DPTR,A ;送0832转换 MOV R0

20、,#79H LCALL PTDS MOV R2,#00HL023: LCALL DIS ;显示 DJNZ R2,L023 RET;-LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0C6H DB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH;- END;=硬件实验一P1口亮灯实验= ORG 0790H;-SE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,A LCALL SE19 ;延时 RL A ;左移位 SJM

21、P LO33 ;循环;-SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35 DJNZ R6,LO36 ;延时 RET;- END;= 硬件实验二 P1口转弯灯实验 = ORG 0C30HPX00: MOV P1,#0FFH ;初始化PX03: MOV A,P1 MOV B,A ANL A,#03H CJNE A,#01H,PX01 ;满足只是P1.0为高条件吗? JB 00H,PX04 ;闪烁标志位 CLR P1.4 CLR P1.5 ;开右灯 SETB P1.6 SETB P1.7 ;关左灯 MOV R2,#20H LCALL DEL

22、Y ;延时 SETB 00H ;置标志位 LJMP PX03 ;继续查状态PX04: SETB P1.4 SETB P1.5 SETB P1.6 ;关灯 SETB P1.7 MOV R2,#20H LCALL DELY ;延时 CLR 00H ;清标志位 AJMP PX03 ;继续查状态PX01: CJNE A,#02H,PX02 ;满足只是P1.1为高条件吗? JB 01H,PX05 ;判标志位 SETB P1.4 SETB P1.5 ;开左灯 CLR P1.6 CLR P1.7 ;关右灯 MOV R2,#20H ;延时 LCALL DELY SETB 01H ;置标志位 LJMP PX03

23、 ;继续查状态PX05: SETB P1.4 SETB P1.5 SETB P1.6 ;关灯 SETB P1.7 MOV R2,#20H LCALL DELY ;延时 CLR 01H ;清标志位 LJMP PX03 ;继续查状态PX02: SETB P1.4 SETB P1.5 SETB P1.6 ;关灯 SETB P1.7 LJMP PX03 ;继续;-DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4 POP 02H DJNZ R2,DEL3 POP 02H DJNZ R2,DEL2 POP 02H DJNZ R

24、2,DELY RET;- END;= 硬件实验三 P3.3口输入,P1口输出 = ORG 0810HJ100: MOV A,#00HJ101: JB P3.3,J101 MOV R2,#20H LCALL DELY JB P3.3,J101 ;P3.3电平为低吗?J102: JNB P3.3,J102 MOV R2,#20H LCALL DELY JNB P3.3,J102 ;P3.3电平高吗? INC A ;加1 PUSH ACC CPL A ;取反 MOV P1,A ;驱动发光二极管 POP ACC AJMP J101 ;循环;-DELY: PUSH 02HDEL2: PUSH 02HDE

25、L3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4 POP 02H DJNZ R2,DEL3 POP 02H DJNZ R2,DEL2 POP 02H DJNZ R2,DELY RET;- END;= 硬件实验四 工业顺序控制 = ORG 0190HPO10: MOV P1,#7FH ORL P3,#00HPO11: JNB P3.4,PO11 ;开工吗? ORL IE,#84H ORL IP,#01H MOV PSW,#00H ;初始化 MOV SP,#53HPO12: MOV P1,#7EH ;第一道工序 ACALL PO1B MOV P1,#7DH ;第二道工序 ACALL PO1B MOV P1,#7BH ;第三道工序 ACALL PO1B MOV P1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号