单片机实验3Word文档格式.docx
- 文档编号:17715166
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:10
- 大小:150.83KB
单片机实验3Word文档格式.docx
《单片机实验3Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验3Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
(4)一位十六进制数转换成ASC1I码
(5)一位十六进制数转换8段式数码管显示码
(6)多分支转移(散转)程序
过程分析
查找30H到40H单元里面的最大值存入寄存器B中
源程序:
MOV30H,#88H
MOV31H,#33H
MOV32H,#4H
MOV33H,#55H
MOV34H,#6H
MOV35H,#44H
MOV36H,#9H
MOV37H,#77H;
给30H~37H赋值
MOVB,#0;
先用0充当最大值
MOVR0,#30H
LOOP:
MOVA,@R0;
取来一个数字
CLRC
SUBBA,B;
减去最大值
JCNEXT;
不够减转移
MOVB,@R0;
够减了,就把它当成最大值
NEXT:
INCR0;
转到下一个
CJNER0,#38H,LOOP;
不到38H,就循环
RET
END
MOV30H,#99H
MOV31H,#22H
MOV32H,#3H
MOV33H,#44H
MOV34H,#5H
MOV35H,#66H
MOV36H,#7H
MOV37H,#88H;
MOVB,@R0
INCR0
减去最小值
JNCNEXT;
够减转移
不够减了,就把它当成最小值
END
在30H到37H中存入八个数,求得的平均值放入寄存器A中
MOV30H,#11H
MOV32H,#33H
MOV34H,#55H
MOV36H,#77H
MOV37H,#88H
MOV40H,#0
MOV41H,#0
MOVA,41H
ADDA,@R0
MOV41H,A
JNC$+4
INC40H
INCR0
CJNER0,#38H,LOOP
ANLA,#0F8H
ADDA,40H
RLA
SWAPA
MOV40H,A;
平均值整数
ANL41H,#07H;
平均值小数
SJMP$
结果总结
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVR2,#0AH
MOVA,R2
CLRC
SUBBA,#0AH
JCADD30
ADDA,#07H
ADD30:
ADDA,#30H
MOVR2,A
SJMP$
MOVR0,#37H;
(R0)<
-30H,R0用来装RAM起始地址
MOVR1,#9AH;
一位16进制数
MOVR2,#07H;
循环次数
MOVR3,#01H;
逻辑与操作数
MOVA,R1;
将一位16进制数存入A中
ANLA,R3;
逻辑与操作
MOV@R0,A;
将结果存入R0单元中
DECR0;
R0自减1
将R1的值存入A中
RRA;
循环右移1位
MOVR1,A;
将A的值存入R1中
取最低位
将结果存入R0地址单元中
DJNZR2,LOOP;
R2为循环次数,若R2为0,则得出十六进制数转换8段式数码管显示码
Y=X+3X>
20X=20
XX<
MOVA,20H
JZZERO
JBACC.7,STORE
ADDA,#3
SJMPSTORE
ZERO:
MOVA,#20
STORE:
MOV21H,A
附录
1、如何采RET指令实现的多分支程序
RET
是子程序返回指令,功能是从堆栈中取出断电送给程序计数器PC,使程序从断点处继续执行。
所以在编写多分枝程序时,调用子程序后,必须使用返回指令(如RET)才能返回到主程序。
--------------------------------------------以下内容为教师填写------------------------------------------
教师评阅:
成绩:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)