




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告xxxxxxx单片微型计算机实验第一次实验姓名: Elliott班级: xxxxxx学号: xxxxxxxxx电话: xxxxxxxxxx一、 任务要求1. 调试例程,观察相关寄存器和单元的内容。2. 编写两个十六位数的加法程序。有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。3. 编写两个双字节BCD码的加法程序。有两个双字节BCD码,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。4. 编写程序,使之实现从片外RAM的7020H单元开始,连续填充10个字节的数据的功能。5. 编写程序,实现对片外RAM按递减1规律填充数据块的功能。二、 设计思路1. 无符号十六位数加法对于无符号十六位加法,低八位使用不带标志位的加法,相加后存放。由于此处可能有进位,所以下一次加法时要用带进位标志位的加法。为了避免程序最初时CY标志位的随机取值影响带高八位运算的结果,最好在做第一加法的之前将CY置零。获取最高位进位位时,还是采用ADDC指令,所以两个加数应该都是0。为了程序的扩展性能,读取加数时,采用R0和R1做指针,这样只要把加数的初始位置赋给R0和R1后,便可以通过R0和R1的自加实现自动取下一位值。这样有利于多位数相加时的循环实现,同时程序的移植性也得到提高。2. 双字节BCD码加法本程序的实现方式和无符号十六位加法的实现方式没有本质上的区别,不同之处在于通过加法获得相加的结果后,要用DA指令将数据调整为BCD码,然后再存储数据。3. 顺序填充数据对于片外RAM的数据访问,只有通过MOVX DPTR,A这条指令实现,所以要写入的数据得先存放在A当中,DPTR中存放地址。每次写入数据后,将DPTR的数据加一,指针向下移一位。由于要写入大量的数据,所以要采用循环,采用工作寄存器R0来计数,用CJNE指令来实现循环的控制。4. 逆序填充数据逆序填充的程序和顺序填充的程序并没有太大的区别,但是由于DPTR没有自减一的指令,所以需要换一种方式来实现。DPTR实际上是DPH和DPL两个字节组成的,而DPH和DPL都具有自减一的指令,通过对DPH和DPL的修改便可以实现逆序填充。三、 资源分配1. 无符号十六位加法20H、21H、30H、31H:存放加数R0、R1:用做数据指针R2、R3、R4:存放结果2. 双字节BCD码加法20H、21H、30H、31H:存放加数R0、R1:用做数据指针R2、R3、R4:存放结果3. 顺序填充片外RAM的7020H至702AH:存放数据R0:存放数据用于循环控制累加器A:存放要写入片外RAM的数据4. 逆序填充片外RAM的7020H至702AH:存放数据R0:存放数据用于循环控制R1:用于保护累加器A中的内容累加器A:存放要写入片外RAM的数据四、 流程图1. 无符号十六位数加法2. 双字节BCD码加法3. 顺序填充4. 逆序填充五、 源代码1. 无符号十六位加法 ORG 0000HLJMP MAINORG 0200HMAIN:MOV 20H, #0A0HMOV 21H, #11HMOV 30H, #0A0HMOV 31H, #23HMOV R0, #20H ;R0指向加数1首地址MOV R1 , #30H ;R1指向加数2首地址CLR CMOV A , R0ADD A , R1MOV R4 , A ;不带标志位相加,结果存放于R4INC R0 INC R1 ;修正指针MOV A , R0ADDC A , R1 ;带符号相加MOV R3 , A ;存放MOV R2 , #00H ;R2置零MOV A , #00H ;A清零ADDC A , R2 MOV R2 , A ;存放进位位SJMP $END2. 双字节BCD码加法ORG 0000HLJMP MAINORG 0200HMAIN:MOV 20H, #55H MOV 21H, #11H MOV 30H, #50H MOV 31H, #23H ;赋值 MOV R0,#20H ;R0指向加数1首地址 MOV R1,#30H ;R1指向加数2首地址 CLR C MOV A , R0 ADD A , R1 DA A ;修正结果 MOV R4 , A ;结果存放于R4 INC R0 ;修正指针 INC R1 ;修正指针 MOV A , R0 ADDC A , R1 ;带进位相加 DA A ;修正结果 MOV R3 , A ;存放结果 MOV R2 , #00H ;R2清零 MOV A , #00H ;A清零 ADDC A , R2 ;带进位位加法 DA A ;修正结果 MOV R2 , A ;存放 SJMP $ ;原地踏步 END3. 顺序填充ORG 0000H LJMP MAIN ORG0100HMAIN:MOV SP, #40HFILL: CLR A ;累加器A清零 MOV R0, #00H ;设循环计数器 MOV DPTR, #7000H ;设数据指针FILL1: MOVX DPTR, A ;传送到片外RAM INC A ;A内容加1 INC DPTR ;修改数据指针 INC R0 ;修改循环计数器 CJNE R0, #09H, FILL1 ;判断是否结束HERE: SJMP HERE ;原地踏步 END 4. 逆序填充ORG 0000H LJMPMAIN ORG0100HMAIN: MOV SP,#40H CLR A ;A累加器清零 MOV R0, #00H ;设为循环计数器 MOV DPTR, #7020H ;设为数据指针FILL1: MOVXDPTR, A ;将数据写到片外RAM INC A ;A内容加1MOV R1,A ;将A的值给R1,保护A的内容MOV A,DPL;将DPTR低八位给ACLR CSUBB A,#00H ;将A与00H做减法,JZ HDO ;若为零说明则DPH要减1,;跳转到HDO处,否则顺序执行SJMPGOON ;若顺序执行则跳转,;用于屏蔽高八位减1的代码HDO: DECDPH;DPTR高八位减1GOON: MOVA,R1 ;还原A的数据DECDPL ;DPTR低八位减1 INC R0 ;修改循环计数器 CJNE R0, #0AH, FILL1 ;判断是否结束HERE: SJMP HERE ;原地踏步 END 六、 程序测试方法与结果、软件性能分析1. 程序测试方法本次上机实验程序调试的方法是用Keil进行仿真,用“d:xxxx”和“x:xxxx”命令查看片内RAM和片外RAM的数据。在Register窗口查看累加器A、DPTR和R0,R1,R2,R3,R4内的内容。2. 测试结果1) 无符号十六位加法 从左侧的Register窗口可以看到11A0H+23A0H运算结果是003540H(R2、R3、R4)说明程序是正确的。2) 双字节BCD码加法 从左侧的Register窗口可以看到1155+2350的结果是003405(R2、R3、R4),说明程序是正确的。3) 顺序填充可以看到片外RAM的7000H到7009H顺序写入了0到9共十位数,说明程序是正确的。4) 逆序填充可以看到片外RAM的7017H到7020H被逆序写上了0到9,说明此算法能够完成逆序写数据的功能,但是不能说明此代码能够应对DPL向DPH借位的情况,下一张图将证明本代码确实能够实现该功能。可以看到片外RAM的7017H到7020H被逆序写上了0到9,说明此算法能够完成逆序写数据的功能,并能应对DPL向DPH借位的情况。5) BCD码与ASCII码转换调试 数字4的ASCII码为34H,9为39H,在memory窗口中可以看到片内RAM的31H存放的是34H,32H存放的是39H,33H存放的是由片内RAM的31H和32H单元的数据转换成的BCD码。3. 软件性能分析由于本次程序设计的时候所有的代码都有良好的可移植性,同时采用了循环或者循环雏形,这样的程序在以后处理大量数据时有良好的性能。采用指针的方式进行数据访问,在对其他区域的数据进行处理时只需要修改数据的起始地址。七、 心得与体会虽说我在上单片机这门课之前我已经和单片机打了一年的交道,也用单片机做了一些中小型的程序,但是都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国游戏账号继承制度探讨与法律障碍报告
- 2025-2030中国游戏灯光渲染技术进展与氛围营造报告
- 违章作业知识培训课件
- 罗湖亚马逊培训知识课件
- 新版人教版一年级美术下册教学实施计划
- 针织公司生产部岗位职责大全
- 四年级数学(简便运算)计算题专项练习与答案
- 缝纫专业培训安全知识课件
- 煤矿技术保障管理办法
- 爆炸烈度分级管理办法
- 水土保持员培训课件
- 第三类商标租赁合同范本
- 海上平台油泵智能监控系统设计
- 《欧洲签证知识培训》课件
- 高一上学期数学人教A版(2019)必修第一册教材例题+练习+课后习题
- 《矿物学》全套教学课件
- 部编版四年级上册语文第一单元大单元教学设计
- 小孩办身份证的委托书范本
- 7-乡土中国-思维导图(各个章节)
- 从文学到电影智慧树知到期末考试答案章节答案2024年山东大学
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
评论
0/150
提交评论