河北工业大学 单片机 第三次实验内容.docx
- 文档编号:9179265
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:47
- 大小:369.10KB
河北工业大学 单片机 第三次实验内容.docx
《河北工业大学 单片机 第三次实验内容.docx》由会员分享,可在线阅读,更多相关《河北工业大学 单片机 第三次实验内容.docx(47页珍藏版)》请在冰豆网上搜索。
河北工业大学单片机第三次实验内容
3.3汇编语言程序设计实验
实验六分支程序设计
一、实验目的
1.进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
2.掌握分支结构程序设计的方法。
3.学会用条件转移指令、CJNE、JMP及其配合使用来编写二分支、三分支和多分支程序。
二、实验内容
1.二分支的条件转移程序
设变量X存放于R0,函数值Y存放在R1,其中X、Y均为二进制数。
试按照下式的要求给Y赋值:
Y=
1
X>0
0
X=0
-1
X<0
程序框图如图3-5所示:
:
三、实验步骤
1.根据实验内容和参考程序流程图,编出相应的分支结构程序。
2.输入程序,汇编成功;
3.用F4(执行到光标处)、F7(跟踪执行)、F8(单步执行)或断点运行等方式调试程序;
4.观察程序的流程,记录运行结果。
四、思考题
1.CJNE指令对CY有影响吗?
用CJNE和JC/JNC指令配合应注意什么?
在用JMP指令前,若变址255怎么办?
答:
1)CJNE指令对CY有影响。
CJNE(目的字节),(源字节),rel功能:
目的字节与源字节比较,相等则继续执行,不相等则转移,同时,
若目的字节>=源字节,(C)=0
若目的字节<源字节,(C)=1
2)选取好正确的direct值以便确定Cy的值
3)提前设好变址,使变址<255
2.用什么指令可以实现多分支之间的隔离?
答:
控制、条件转移指令,包括JMP、CJNE、DJNZ、JC、JB等,可以转移到$或其他。
五、实验报告要求
写出题目运行结果。
六、参考程序清单
1、二分支的条件转移程序
1)用二分支结构程序实现:
ORG0000H
MOVA,R0
JZLOAD;等于零转LOAD
JNBACC.7,GO;大于零转GO
MOVA,#0FFH
SJMPLOAD
GO:
MOVA,#01H
LOAD:
MOVR1,A
SJMP$
END
1)赋值(R0)=00H
(pc)
(psw)
(A)
(P)
(R1)
(R0)
(DPTR)
(SP)
备注
ORG0000H
MOVA,R0
C:
0X0000
0X00
0X00
0
0X00
0X00
0X0000
0X07
JZLOAD
C:
0X0001
等于零转LOAD
JNBACC.7,GO
C:
0X0003
MOVA,#0FFH
C:
0X0006
SJMPLOAD
C:
0X0008
GO:
MOVA,#01H
C:
0X000A
LOAD:
MOVR1,A
C:
0X000C
0X00
SJMP$
C:
0X000D
END
运行结果:
(R1)=0X00
2)赋值(R0)=15H
(pc)
(psw)
(A)
(P)
(R1)
(R0)
(DPTR)
(SP)
备注
ORG0000H
MOVA,R0
C:
0X0000
0X01
0X15
1
0X00
0X15
0X0000
0X07
JZLOAD
C:
0X0001
JNBACC.7,GO
C:
0X0003
大于零转GO
MOVA,#0FFH
C:
0X0006
SJMPLOAD
C:
0X0008
GO:
MOVA,#01H
C:
0X000A
0X01
LOAD:
MOVR1,A
C:
0X000C
0X01
SJMP$
C:
0X000D
END
运行结果:
(R1)=0X01
3)赋值(R0)=0F2H
(pc)
(psw)
(A)
(P)
(R1)
(R0)
(DPTR)
(SP)
ORG0000H
MOVA,R0
C:
0X0000
0X01
0XF2
1
0X00
0XF2
0X0000
0X07
JZLOAD
C:
0X0001
JNBACC.7,GO
C:
0X0003
MOVA,#0FFH
C:
0X0006
0X00
0XFF
0
SJMPLOAD
C:
0X0008
GO:
MOVA,#01H
C:
0X000A
LOAD:
MOVR1,A
C:
0X000C
0XFF
SJMP$
C:
0X000D
END
运行结果:
(R1)=0XFF
2)用三分支结构程序实现:
ORG0000H
MOVA,R0
JNZCOMP;不等于零转COMP
MOVR1,#00H;等于零,则0(R1)
SJMPMP3
COMP:
CJNER0,#80H,MP1;(R0)中数与80H比较,不相等则转移到MP1
MOVR1,#0FFH;若比较相等,则-1(R1)
LJMPMP3
MP1:
JCMP2;两数不相等,(R0)>0转MP2
MOVR1,#0FFH;(R0)<0,-1(R1)
LJMPMP3
MP2:
MOVR1,#01H;(R0)>0,1(R1)
MP3:
SJMP$
END
1)赋值(R0)=00H
(pc)
(psw)
(A)
(P)
(R1)
(R0)
(DPTR)
(SP)
ORG0000H
MOVA,R0
C:
0X0000
C:
0X00
0X00
0
0X00
0X00
0X0000
0X07
JNZCOMP
C:
0X0001
MOVR1,#00H
C:
0X0003
0X00
SJMPMP3
C:
0X0005
COMP:
CJNER0,#80H,MP1
C:
0X0007
MOVR1,#0FFH
C:
0X000A
LJMPMP3
C:
0X000C
MP1:
JCMP2
C:
0X000F
MOVR1,#0FFH
C:
0X0011
LJMPMP3
C:
0X0013
MP2:
MOVR1,#01H
C:
0X0016
MP3:
SJMP$
C:
0X0018
END
运行结果:
(R1)=0X00
2)赋值(R0)=15H
(pc)
(psw)
(A)
(P)
(R1)
(R0)
(DPTR)
(SP)
(cy)
ORG0000H
MOVA,R0
C:
0X0000
0X01
0X15
1
0
0X15
0X0000
0X07
0
JNZCOMP
C:
0X0001
MOVR1,#00H
C:
0X0003
0X00
SJMPMP3
C:
0X0005
COMP:
CJNER0,#80H,MP1
C:
0X0007
0X81
转到MP1
1
MOVR1,#0FFH
C:
0X000A
LJMPMP3
C:
0X000C
MP1:
JCMP2
C:
0X000F
转到MP2
MOVR1,#0FFH
C:
0X0011
LJMPMP3
C:
0X0013
MP2:
MOVR1,#01H
C:
0X0016
0X01
MP3:
SJMP$
C:
0X0018
END
运行结果:
(R1)=0X01
3)赋值(R0)=0F2H
(pc)
(psw)
(A)
(P)
(R1)
(R0)
(DPTR)
(SP)
ORG0000H
MOVA,R0
C:
0X0000
0X01
0XF2
1
0
0X15
0X0000
0X07
JNZCOMP
C:
0X0001
转到COMP
MOVR1,#00H
C:
0X0003
SJMPMP3
C:
0X0005
COMP:
CJNER0,#80H,MP1
C:
0X0007
0X81
转到MP1
MOVR1,#0FFH
C:
0X000A
LJMPMP3
C:
0X000C
MP1:
JCMP2
C:
0X000F
MOVR1,#0FFH
C:
0X0011
0XFF
LJMPMP3
C:
0X0013
转到MP3
MP2:
MOVR1,#01H
C:
0X0016
MP3:
SJMP$
C:
0X0018
END
运行结果:
(R1)=0XFF
实验七循环程序设计
一、实验目的
1.进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
掌握循环结构程序设计的方法,弄清单重及多重循环控制过程。
2.通过设计软件延时程序,学会计算内外循环次数以及循环体的循环时间。
二、实验内容
1.设计一个循环程序
具体要求:
将内部RAM中30H至32H的内容右移四位,程序流程图如图3-6所示。
2.设计循环程序:
冒泡法排序。
具体要求:
设单片机8031外部RAM从3600H单元开始存放10个无符号数,试编写程序能使它们按从大到小的顺序排列(最大数存放在3600H单元)。
程序流程图如图3-7所示。
三、实验步骤
1.输入预先编好的程序,汇编成功;
2.用自动单步方式执行程序,观察循环计数器的变化情况。
3.用断点运行方式调试排序程序,记录排序过程。
四、实验报告要求
1.编出相应的循环结构程序,列出程序清单,并且会计算循环体的循环时间。
2.写出自选题目的设计内容、程序清单及运行结果。
五、思考题
1.程序中循环时间由什么来控制?
2.若用DJNZ或CJNE指令来控制循环,编写程序有什么不同?
六、
参考流程图
七、循环结构程序参考清单:
a)三个字节右移四位:
程序流程图如图3-6所示:
参考程序清单:
ORG0000H
MOVR7,#4
RR30:
MOVR6,#3
CLRC
MOVR0,#30H
RR31:
MOVA,@R0
RRCA
MOV@R0,A
INCR0
DJNZR6,RR31
DJNZR7,RR30
SJMP$
END
赋初值(30H)=18H,(31H)=25H,(32H)=33H
(pc)
(psw)
(A)
(CY)
(P)
(R0)
(R6)
(R7)
d:
0X0030
d:
0X0031
d:
0X0032
(SP)
(DPTR)
ORG0000H
MOVR7,#4
C:
0X0000
0X00
0X00
0
0
0X00
0X00
0X04
0X18
0X25
0X33
0X07
0X0000
RR30:
MOVR6,#3
C:
0X0002
0X03
CLRC
C:
0X0004
MOVR0,#30H
C:
0X0005
0X30
RR31:
MOVA,@R0
C:
0X0007
0X18
RRCA
C:
0X0008
0X0C
MOV@R0,A
C:
0X0009
0X0C
INCR0
C:
0X000A
0X31
DJNZR6,RR31
C:
0X000B
0X02
循环,PC返回RR31
C:
0X0007
0X01
0X25
1
RRCA
C:
0X0008
0X80
0X12
1
MOV@R0,A
C:
0X0009
0X12
INCR0
C:
0X000A
0X32
DJNZR6,RR31
C:
0X000B
0X01
循环,返回RR31
C:
0X0007
0X33
RRCA
C:
0X0008
0X99
MOV@R0,A
C:
0X0009
0X99
INCR0
C:
0X000A
0X33
DJNZR6,RR31
C:
0X000B
0X00
DJNZR7,RR30
C:
0X000D
0X03
循环,返回RR30
0X03
CLRC
0X00
0
0
MOVR0,#30H
0X30
……
……
循环重复以上步骤,继续将30H至32H里的内容右移,直到四位到第93步时(程序运行如图1111),完成右移四位任务
0X00
0X53
0
0X33
0X00
0X00
0X01
0X82
0X53
SJMP$
C:
0X000F
END
将初值(30H)=18H,(31H)=25H,(32H)=33H右移四位结果是(30H)=01H,(31H)=82H,(32H)=53H
图1111
运行结束后截图:
2.冒泡法排序:
排序程序流程图如图3-7所示:
排序参考程序清单:
ORG0000H
MOVPSW,#00H
MOVP2,#36H
MOVR2,#10-1
LOOP0:
MOVR0,#00H
MOVR1,#01H
MOV03H,R2
CLR7FH
LOOP1:
MOVXA,@R0
MOV30H,A
MOVXA,@R1
CJNEA,30H,LOOP2
SJMPL1
LOOP2:
JCL1
MOVX@R0,A
XCHA,30H
MOVX@R1,A
SETB7FH
L1:
INCR0
INCR1
DJNZR3,LOOP1
JNB7FH,LOOP3
DJNZR2,LOOP0
LOOP3:
SJMP$
END
赋初值:
将3600H-360AH依次设为:
53267968449712261455
(Pc)
(R0)
(R1)
(R2)
(R3)
(Psw)
(P)
(CY)
(A)
(d:
0X30)
图片
ORG0000H
MOVPSW,#00H
0X0000
0X00
0X00
0X00
0X00
0X00
0
0X00
0X00
MOVP2,#36H
0X0003
MOVR2,#10-1
0X0006
0X09
LOOP0:
MOVR0,#00H
0X0008
0X00
MOVR1,#01H
oX000A
0X01
MOV03H,R2
0X000C
0X09
CLR7FH
0X000E
LOOP1:
MOVXA,@R0
0X0010
0X53
MOV30H,A
0X0011
0X53
MOVXA,@R1
0X0013
0X01
1
0X26
CJNEA,30H,LOOP2
0X0014
0X81
1
LOOP2:
JCL1
0X0019
L1:
INCR0
0X0021
0X01
INCR1
0X0022
0X02
DJNZR3,LOOP1
0X0023
0X08
LOOP1:
MOVXA,@R0
0X0010
0X26
MOV30H,A
0X0011
0X26
MOVXA,@R1
0X0013
0X79
CJNEA,30H,LOOP2
0X0014
0X01
1
LOOP2:
JCL1
0X0019
0
MOVX@R0,A
0X001B
XCHA,30H
0X001C
0X26
MOVX@R1,A
0X001E
图片1
SETB7FH
0X001F
L1:
INCR0
0X0021
0X02
INCR1
0X0022
0X03
DJNZR3,LOOP1
0X0023
0X07
LOOP1:
MOVXA,@R0
0X0010
0X79
MOV30H,A
0X0011
0X26
MOVXA,@R1
0X0013
0X68
CJNEA,30H,LOOP2
0X0014
LOOP2:
JCL1
0X0019
MOVX@R0,A
0X001B
图片2
XCHA,30H
0X001C
0X26
0X68
MOVX@R1,A
0X001E
SETB7FH
0X001F
L1:
INCR0
0X0021
0X03
INCR1
0X0022
0X04
DJNZR3,LOOP1
0X0023
0X06
LOOP1:
MOVXA,@R0
0X0010
MOV30H,A
0X0011
0X26
MOVXA,@R1
0X0013
0X00
0
0
0X44
CJNEA,30H,LOOP2
0X0014
LOOP2:
JCL1
0X0016
MOVX@R0,A
0X0019
图片4
XCHA,30H
0X001B
0X01
1
0X26
0X44
MOVX@R1,A
0X001C
SETB7FH
0X001E
L1:
INCR0
0X001F
0X04
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 河北工业大学 单片机 第三次实验内容 河北 工业大学 第三次 实验 内容