ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:82KB ,
资源ID:9345745      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9345745.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(微机原理(单片机汇编)实验报告.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微机原理(单片机汇编)实验报告.doc

1、软件实验报告 软件实验一 一、实验目的 1.熟悉软件实验的基本步骤和汇编程序的调试方法; 2.了解内存块的移动方法; 3.了解将十六进制数转换成ASCII值的方法。 二、实验原理 用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。 三、实验内容及步骤 1、 软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开CPU窗口,观察CPU窗口各寄存器的变化。打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。在

2、Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。 2、 新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开View菜单中的Memory Window,在Address窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。 3、 添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH

3、中的内容。 4、 添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。 5、 添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。 四、实验结果 1. 步骤1的结果为8000H-80FFH的内容都为1. 2. 步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。 3. 步骤3的结果为片外1030H-103FH中的

4、内容与片内30H-3FH单元的内容相同。 4. 步骤4的结果为将30H、31H中的十六进制数转换成了ASCII码,并存入到40H开始的4个单元中。 5. 步骤5的结果为8个无符号数的和为02C3H。 五、思考题 1、 如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。 答:程序修改如下:将MAIN修改如下即可: MAIN: MOV DPTR, #START MOV R0,#0 MOV A, #0FFH MOV DPL, R3 MOVX @DPTR, A CLR C MOV A, R1 SUBB A, #0

5、 MOV R1, A CLR C MOV A, R3 SUBB A, #0 MOV R3, A MOV A, R0 SUBB A, #0 MOV R0, A MOV A, R2 SUBB A, #0 MOV R2, A DJNZ R7, LOOP1 SJMP $ END 2、 若源块地址和目标块地址有重叠,程序该如何设计(用地址减1方法移动块)?假设源块地址2000H,目标块地址2050H,移动块长度80H。 答:程序修改如下: ORG 0000H MOV DPTR, #2000H MOV A, #01H MOV R5, #0 LOOP: MOV

6、X @DPTR, A INC DPTR DJNZ R5, LOOP MOV R0, #20H MOV R1, #00H MOV R2, #20H MOV R3, #50H MOV R7, #7FH LOOP1: MOV DPH, R0 MOV DPL, R1 MOVX A, @DPTR MOV DPH, R2 六、源程序 1、将片内30H-3FH单元的内容复制片外片外1030H~103FH中 ORG 0000H MOV R0, #30H MOV DPTR, #1030H MOV R7,#10H LOOP1:MOV A

7、 #0FH MOV @R0, A INC R0 DJNZ R7, LOOP1 MOV R0, #30H MOV R7,#10H LOOP: MOV A,@R0 INC R0 MOVX @DPTR, A INC DPTR DJNZ R7, LOOP SJMP $ END 2、 将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中 ORG 0100H MOV 30H, #0FH MOV

8、 31H, #11H MOV R0, #41H MOV @R0, #00H MOV A, 30H XCHD A, @R0 ORL 41H, #30H SWAP A ORL A, #30H MOV 40H, A MOV R0, #43H MOV @R0, #00H MOV A, 31H XCHD A, @R0 ORL 43H, #30H SWAP A ORL A, #30H MOV 42H, A END 3、 求内部RAM 30H—37H单元中8个无符号数的算术和 ORG

9、 0000H MOV 30H, #25H MOV 31H, #36H MOV 32H, #4AH MOV 33H, #65H MOV 34H, #7FH MOV 35H, #82H MOV 36H, #9BH MOV 37H, #1DH MOV R0, #30H MOV 39H, #0 MOV R7, #8H CLR C MOV A, @R0 Loop: INC R0 ADD A, @R0 MOV 38H, A

10、 MOV A,39H ADDC A, #0 MOV 39H, A MOV A, 38H CLR C DJNZ R7, Loop SJMP $ END 软件实验二 一、实验目的 1、 熟悉软件实验的基本步骤和汇编程序的调试方法; 2、 掌握简单的数值算法; 3、 掌握多分支结构程序的编程方法。 二、实验原理 将给定的一字节二进制数,转换成十进制(BCD)码的方法为将数除以100,得百位数,保存百位数,再将余数除以10,得十位数并保存,最后的余数为个位数,将其保存。用A和B两个寄存

11、器来完成除法,被除数和商放在A,除数和余数放在B。 三、实验及步骤 1、 在所建的Project文件中添加例程的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开CPU窗口,观察CPU窗口各寄存器的变化。打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H、32H的数据变化。 2、添加实验书实验内容1的源程序,编译,运行,观察(33H)=0x58, (32H)=0xA2, (31H)=0x34, (30H)=0x7E和(43H)=0x07, (42H)=0x68, (41H)=0x85,

12、 (40H)=0x3B的差是否为(33H)=0x51, (32H)=0x39, (31H)=0xAF, (30H)=0x43。 3、添加实验书实验内容2的源程序,编译,运行,观察(0100H)=0x10, (0101H)=0x32, (0102H)=0x54, (0103H)=0x76和(0110H)=0x78, (0111H)=0x56, (0112H)=0x34, (0113H)=0x92的和是否为(0120)=0x88, (0121)=0x88, (0122)=0x88, (0123)=0x68, (0124)=0x01。 4、添加实验书实验内容3的源程序,编译,运行。 四、实

13、验结果 1. 步骤1的结果为,30H内容将更新为01,31H更新为02,32H更新为03。 2. 步骤2的结果为,33H,32H,31H,30H中的数字分别为0x51,0x39,0xAF,0x43. 3. 步骤3的结果为,0120,0121,0122,0123中的数分别为0x88,0x88,0x88,0x68,0x01. 4. 步骤4的结果为,A中显示的为R3中的数的平方。 五、思考题 BCD码转换成二进制数的算法是什么? 答:BCD码转换成二进制的算法和二进制数转换成BCD码的算法相反,是高位乘10再与低位相加。 六、源程序 1、无符号多字节二进制数据减法。被减数放

14、在30H开始的4个单元中(从低字节到高字节),减数放在40H开始的4个单元中(从低字节到高字节),差放入30H开始处(从低字节到高字节) ORG 0000H MOV R0, #30H MOV R1, #40H MOV R7, #04H CLR C LOOP: MOV A, @R0 SUBB A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R7, LOOP SJMP $ END 2、 多字节BCD码加法运算。两个4字节长的BCD码加数分别存放在外部RAM 0100H和0110H开始的单元中(从低字节到高字节),计算两数之和,结果保存在

15、0120H开始的9个单元中。 ORG 0 MOV DPH #1H MOV A, @R0 ADDC A, @R1 DA A INC R0 INC R1 MOVX @DPTR, A INC DPTR DJNZ R7, LOOP3 MOV A, #0 ADDC A, #0 MOVX @DPTR, A SJMP $ END MOV DPL #0 MOV R0, #30H MOV R7, #04H LOOP1: MOVX A, @DPTR MOV @R0, A INC DPTR INC R0 DJNZ R7, LOOP1 MOV DPL, #10H

16、 MOV R0, #40H MOV R7, #04H LOOP2: MOVX A, @DPTR MOV @R0, A INC DPTR INC R0 DJNZ R7, LOOP2 MOV DPL, #20H MOV R0, #30H MOV R1, #40H CLR C LOOP3: 2、 分别用近程查表指令和远程查表指令,查找R3内容的平方值。R3内容小于等于0FH。 近程查表指令: ORG 0 MOV A,R3 ADD A,#2 MOVC A,@A+PC SJMP $ TABL:DB 00H,01H,04H,09H DB 1

17、0H,19H,24H,31H DB 40H,41H,64H,79H DB 0A9H,0C4H,0E1H END 远程查表指令: ORG 0 MOV DPTR,#TABL MOV A,R3 MOVC A,@A+DPTR SJMP $ ORG 4000H TABL:DB 00H,01H,04H,09H DB 10H,19H,24H,31H DB 40H,41H,64H,79H DB 0A9H,0C4H,0E1H END 软件实验三 一、实验目的 1、 熟悉软件实验的基本步骤和汇编程序的调试方法; 2、

18、 掌握数值的加减运算; 3、 掌握用查表的方法将BCD值转换成ASCII值。 二、实验原理 将一个BCD数转换成ASCII值的方法为:先将高四位用查表法转成ASCII码,再将低四位用查表法转成ASCII码。 三、实验及步骤 1、 在所建的Project文件中添加例程的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开CPU窗口,观察CPU窗口各寄存器的变化,打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H的数据变化。 2、 添加实验书实验内容1的源程序,选两组数据,一组

19、含有要查找的字节,一组不含要查找的字节,编译,运行,观察程序运行后A的内容。 3、 添加实验书实验内容2的源程序,输入-69H,65H,-7H, -25H ,-47H,56H, -3H,17H,6H,-5H,-45H, -1H, -57H, 23H ,-5H,-13H,编译,运行,观察2FH与2EH单元中的内容。 4、 添加实验书实验内容3的源程序,输入61H, -19H,12H, 0,78,3, -13H,0,17H,-69H,-5H,-14H,-31H,-43H,-67H,0编译,运行,观察2FH,2EH,2DH单元中的结果。 四、实验结果 1. 步骤1的结果为30H更新为31

20、31H更新为41。 2. 步骤2的结果为,当数据中含有要查找的字节时,A中为要查找的字节;当数据中不含要查找的字节时,A中显示FFH。 3. 步骤3的结果为,正数的和为89,负数的和为-199. 4. 步骤4的结果为,2FH、2EH、2DH单元的值分别为5,8,3. 五、思考题 BCD码和ASCII码有哪些区别? 答:BCD码是用二进制数来表示十进制数的表示方法。有压缩BCD码和非压缩BCD码两种。 ASCII码是美国国家信息交换标准字符码的字头缩码。采用7位二进制代码对字符进行编码。 BCD码和ASCII码是两种不同的编码方法,BCD码只能表示数字,ASCII码除了表示

21、数字之外还可以表示通用控制字符,英文字母和专用符号。 六、源程序 1、 查找关键字节(1字节),要查找的字节在R3中,一串字节存放在30H开始的20个单元中,查找结果放入A,若查找不到,则将FFH放入A. ORG 0 MOV R0, #30H MOV R7, #14H LOOP: MOV A, @R0 CLR C SUBB A, R3 JZ DONE INC R0 DJNZ R7, LOOP MOV A, #0FFH SJMP OVER DONE: MOV A, R0 OVER: SJMP OVER END 2、 在内部RAM的30H单元开始,有一串

22、带符号数据块,其长度在10H单元中。编程求其中正数与负数的和,并分别存入2FH与2EH开始的2个单元中。(负数存放形式为补码)。 ORG 0 MOV 30H,#-69H MOV 31H,#65H ADD A,2CH MOV 2CH,A MOV A,#0H ADDC A,2DH MOV 2DH,A AJMP AGAIN NEXT: ADD A,2EH MOV 2EH,A MOV A,#0H ADDC A,2FH MOV 2FH,A AGAIN:INC R0 DJNZ

23、 R1,LOOP SJMP $ END MOV 32H,#-7H MOV 33H,#-25H MOV 34H,#-47H MOV 35H,#56H MOV 36H,#-3H MOV 37H,#17H MOV 38H,#6H MOV 39H,#-5H MOV 3AH,#-45H MOV 3BH,#-1H MOV 3CH,#-57H MOV 3DH,#23H MOV 3EH,#-5H MOV 3FH,#-13H MOV R0,#30H MOV R1,#10H LOOP:MOV A,@R0 JB ACC.7,NEXT 3、 要求同

24、上。请分别求出这一串数据块中正数、负数和零的个数,存入2FH、2EH和2DH单元中。 ORG 0 MOV R0, #30H MOV R1, #10H MOV 2FH, #00H MOV 2EH, #00H MOV 2DH, #00H LOOP: MOV A, 2DH INC A MOV 2DH, A INC R0 DJNZ @R1, LOOP JZ @R1, DONE COUNTP: MOV A, 2EH INC A MOV 2EH, A INC R0 DJNZ @R1, LOOP JZ @R1, DONE DONE: SJMP $ END M

25、OV A, @R0 JB Acc.7, COUNTN CLR C SUBB A, #0 JZ A, COUNTZ SJMP COUNTP COUNTN: MOV A, 2FH INC A MOV 2FH, A INC R0 DJNZ @R1, LOOP JZ @R1, DONE COUNTZ: 软件实验四 一、实验目的 1、 熟悉软件实验的基本步骤和汇编程序的调试方法; 2、 了解简单的函数计算; 3、 掌握程序的多分支结构。 二、实验原理 多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能

26、完成指定操作。若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。 三、实验及步骤 1、 在所建的Project文件中添加例程的源程序进行编译,编译无误后可以选择单步或跟踪执行方式或全速运行程序。打开CPU窗口,观察CPU窗口各寄存器的变化。打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H、32H、33H的数据变化。 2、 添加实验书实验内容1, 编译,运行,观察8101H单元中的值是否与预期结果相同。 3、 添加实验书实验内容2, 编译,运行,观察40H开始的4个单元中的乘积是

27、否正确。 4、 添加实验书实验内容3,编译,运行,观察MAX, MIN中的数是否正确。 四、实验结果 1. 步骤1的结果为:30H更新为0,31H更新为1,32H更新为2,33H更新为3。 2. 步骤2、3、4的结果均与实验要求结果相同。 五、思考题 1、写跳转程序时要注意些什么? 答:注意跳转地址的范围,如AJMP跳转的地址必须与PC+2在同一个2K范围内。此外偏移量rel的计算要用目标地址-源地址-指令的字节数。 2、跳转的作用有哪些? 答:跳过不需要执行的程序,直接指向目的地址。可以用于调用子程序,循环,执行分支程序,查表等。 六、源程序 1、根据外部R

28、AM 8100H单元中的值X,决定Y的值,保存到8101H单元中。 2X X大于0时; Y= 80H X等于0时; X的反 X小于0时; ORG 0 FUNC2: INC DPTR MOV A, #80H MOV @DPTR, A SJMP $ FUNC3: MOVX A, @DPTR MOV B, A ADD A, B MOVX @DPTR, A SJMP $ END MOV DPH, #81H MOV DPL #00H MOVX A, @DPTR JB Acc.7

29、 FUNC1 CLR C SUBB A, #0 JZ A, FUNC2 JNZ A, FUNC3 SJMP $S FUNC1: MOVX A, @DPTR OXL A, #FFH INC DPTR MOVX @DPTR, A SJMP $ 2.编程实现2字节与1字节的乘法。2字节数放在30H(高字节)、31H(低字节),1字节数放在32H,乘积请放在40H开始的4个单元中。 MOV B,32H MUL AB ADD A,@R1 MOV @R1,A MOV A,B ADDC A,#0 INC R1 MOV @R1,A SJMP $ END

30、ORG 0 MOV R1,#40H MOV R0,#31H MOV A,@R0 MOV B,32H MUL AB MOV @R1,A INC R1 MOV @R1,B DEC R0 MOV A,@R0 3.在外部RAM 1000H开始处有10H个带符号数,请找出其中的最大值和最小值,分别存入内部RAM的MAX、MIN单元。 ORG 0 LOOP1:MOVX A,@DPTR CJNE A,MIN,NEXT1 NEXT1:JNC WENT1 MOV MIN,A WENT1:INC DPTR DJNZ R2,LOOP1 SJMP $ END MOV R2,#10H MOV DPTR,#1000H MOV MAX, #00H MOV MIN, #0FFH LOOP:MOVX A,@DPTR CJNE A,MAX,NEXT NEXT:JC WENT MOV MAX,A WENT:INC DPTR DJNZ R2,LOOP MOV DPTR,#1000H MOV R2,#10H 15

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服