-单片机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据传送实验
实验内容:
将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片外RAM 9800H—980FH单元,再从片外RAM 9800H—980FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:
ORG 0000H
RESET: SJMP MAIN
ORG 003FH
MAIN: MOV R1,#40H
MOV R2,#10H
MOV A, #0A0H
A1: MOV @R0,A
INC R0
INC A
DJNZ R2,A1
MOV R0, #40H
MOV DPTR, #9800H
MOV R2, #10H
A2: MOV A, @R0
MOVX @DPTR, A
INC R0
INC DPTR
DJNZ R2,A2
MOV R0, #50H
MOV DPTR, #9800H
MOV R2, #10H
A3: MOVX A, @DPTR
MOV @R0, A
INC R
INC DPTR
DJNZ R2, A3
LJMP 0000H
END
思考题:
1. 按照实验内容补全程序。
2. CPU 对8031内部RAM存储器和外部RAM存储器各有哪些寻址方式?
内部RAM存储器寻址方式:直接寻址方式
寄存器间接寻址
基址变址寄存器间接寻址
外部RAM存储器寻址方式:寄存器间接寻址
基址变址寄存器间接寻址
3. 执行程序后下列各单元的内容是什么?
内部RAM 40H~4FH _________________________ 内部RAM 50H~5FH__________________________ 外部RAM 9800H~980FH______________________ 截图:
实验二多字节十进制加法实验
实验内容:
多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:ORG 0000H
RESET: AJMP MAIN
ORG 0100H
MAIN: MOV SP, #60H
MOV R0, #31H
MOV @R0, #22H
DEC R0
MOV @R0, #33H
MOV R1, #21H
MOV @R1, #44H
DEC R1
MOV @R1, #55H
MOV R2, #02H
ACALL DACN
HERE: AJMP HERE
DACN: CLR C
DAL: MOV A, @R0
ADDC A, @R1
DA A
MOV @R1, A
INC R0
INC R1
DJNZ R2,DAL
CLR A
MOV ACC.0 , C
RET
思考题:
1. 按照实验内容补全程序。
2. 加数单元、被加数单元和结果单元的地址和内容为?
加数单元地址是(30H)=33H,(31H)=22H;
被加数单元的地址是(20H)=55H,(21H)=44H;
结果的地址是(20H)=88H,(21H)=66H;
3. 如何检查双字节相加的最高位溢出?
无符号数运算时,判断运算结果是否超出范围(0~255H),看进位标志位Cy。若Cy=1,表示结果超出255,若Cy=0,表示运算结果在范围内;
带符号数运算时,判断运算结果是否超出范围(-128~+127),看溢出标志位OV,若OV=1,表示溢出,若OV=0,表示无溢出。
4. 改变加数和被加数,测试程序的执行结果。
改变加数被加数后源代码:
ORG 0000H
RESET: AJMP MAIN
ORG 0100H
MAIN: MOV SP, #60H
MOV R0, #31H
MOV @R0, #22H
DEC R0
MOV @R0, #33H
MOV R1, #21H
MOV @R1, #55H
DEC R1
MOV @R1, #66H
MOV R2, #02H
ACALL DACN
HERE: AJMP HERE
DACN: CLR C
DAL: MOV A, @R0
ADDC A, @R1
DA A
MOV @R1, A
INC R0
INC R1
DJNZ R2,DAL
CLR A
MOV ACC.0 , C
RET
加数单元地址:31H30H 内容:2233
被加数单元地址:21H20H 内容:5566
结果单元地址:21H20H 内容:7799
截图:
实验三数据排序实验
实验内容:
将内部RAM 50H—59H中的数据按从小到大的次序排列。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的数据是否为排序状态。
源程序清单:
ORG 0000H
RESET: AJMP MAIN
ORG 0100H
MAIN: MOV SP, #60H
MOV R0, #50H
MOV @R0, #6FH
INC R0
MOV @R0, #6EH
INC R0
MOV @R0, #6AH
INC R0
MOV @R0, #6CH
INC R0
MOV @R0, #6DH
INC R0
MOV @R0, #5BH
INC R0
MOV @R0, #67H
INC R0
MOV @R0, #69H
INC R0
MOV @R0, #68H
INC R0
MOV @R0, #64H
ACALL QUE
HERE: AJMP HERE
QUE: CLR 00H
MOV R7, 09H
MOV R0, #50H
MOV A , @R0
L2: INC R0
MOV R2, A
SUBB A, @R0
MOV A, R2
JC L1
SETB 00H