已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微处理器原理与应用实验报告实验四一、实验名称:分支和循环程序设计二、实验目的:1、掌握分支程序编写方法2、掌握循环程序设计的方法和技巧3、学习程序调试的基本过程和方法三、实验内容:1. 分支程序设计:(1)有两个8位无符号数NA、NB分别存放在内部RAM的40H,41H单元, 当NA=NB时将该单元置0xff。源程序如下:汇编语言程序:ORG 0000H AJMP START ORG 0100H START: MOV A ,40H /把(40H)中的值赋给累加器ACJNE A, 41H, LOOP1 / 判断累加器A与41H中数。如果A=(41H),则顺序执行,如果A=(41H),则Cy=0,否则Cy=1。如果A(41H),则执行跳转语句LOOP1。AJMP LOOP2 / 跳转到LOOP2 LOOP1: JC LOOP3 /如果Cy=0,顺序执行,如果Cy=1,跳转到LOOP3LOOP2:MOV 42H, #0FFH /(42H)中赋值0xff AJMP LOOP /跳转到LOOPLOOP3 :MOV 42H,#88H /(42H)中赋值0x88LOOP: AJMP LOOP ENDC51程序如下:#include #includevoid main()unsigned char na,nb,f;na=DBYTE0x0040;/把(0x0040)中的数赋给nanb=DBYTE0x0041; /把(0x0041)中的数赋给nbif(nanb) f=0x88 ; /判断大小,else f=0xff;DBYTE0x0042=f; /给(0x0042)赋值f (2)修改上汇编语言程序,实现两个16位无符号数的比较:当NA=NB时将该单元置0xff。NA、NB分别存放在内部RAM的40H,41H及50H,51H单元。提示:MCS-51指令系统没有16位比较指令,只能使用8位比较指令,于是应先比较两数的高8位,若NA的高8位小于NB的高8位,则说明NANB;将42H单元置0xff。若NA的高8位等于NB的高8位,则再比较两者的低8位,方法同上(当NA=NB时,也将42H单元置0xff)。2. 循环程序设计(1)在片内RAM的10H单元存放一个8位无符号二进制数,要求将其每一位转换成相应的ASCII码,并以高位在前,低位在后的顺序依次存放到片内RAM以11H单元为首的连续单元中,编制相应的程序。 分析:用带进位的循环左移指令RLC,通过对C标志的判断,可知该位为1还是0。 ORG 0000H AJMP STARTORG 0100H START: MOV R2,#08H /R2中赋值08H,控制八位二进制数的转换 MOV R0,#10H /R0中赋值(10H)这个地址, MOV A,R0 /把地址(10H)中的数送到累加器A中INC R0 /R0中的地址变量加一XUNHUAN:RLC A /带标志位Cy左移一位JC LOOP1 /判断标志位,如果Cy=0,顺序执行,如果Cy=1,跳转到LOOP1MOV R0,#30H /对R0中的地址变量赋值AJMP LOOP2LOOP1: MOV R0,#31H /对R0中的地址变量赋值LOOP2:INC R0 / /R0中的地址变量加一 DJNZ R2, XUNHUAN / 判断R2-1!=0时跳转到XUNHUAN LOOP: SJMP LOOP END (2)编写该程序的C51程序。提示:要判断一个字节中第i位(i=7-0)的值是0或1,可用第i位值为1的字节数与之按位相与,若结果为0,表明该位为0,反之为1。例如:数 0x82,即10000010,要判断第7位的值,可将0x82与0x80(即10000000,第7位为1)按位相与,结果不为0,所以0x82的第7位值为1。.要在片内RAM 0x11地址连续存放转换后的ASCII码,可定义一个指向无符号单字节数的指针,将该指针的初值设为0x11,后在循环体内加1即可。四、实验步骤:1、分支程序的设计(1) 阅读理解源程序的汇编语言代码和C语言代码。(2) 在理解了8位数据的大小比较的基础上,编写汇编程序和C语言程序对16位的数据的大小进行比较。2、循环程序的设计(1) 对一个片内的地址中的8位二进制数,转换成ACSII码,并依次存放在一个连续的地址单元中。阅读理解这个汇编程序。(2) 完成(1)的要求用C语言程序的编写代码。五、实验代码:16位数据的比较大小汇编语言代码:ORG 0000H AJMP START ORG 0100H START: MOV A ,41H /把41H中的值赋给累加器ACJNE A, 51H, LOOP1 /判断累加器A与51H中数。如果A=(51H),则顺序执行,如果A=(51H),则Cy=0,否则Cy=1。如果A=(50H), 则Cy=0,否则Cy=1。如果A(50H),则执行跳转语句LOOP1。LOOP3:MOV 42H,#88H /(42H)=0x88. LOOP:AJMP LOOPEND 16位比较大小的C语言代码: #include #includevoid main()unsigned char na,nb,nc,nd,f; na=DBYTE0x0041; /把(0x0040)中的数赋给na nb=DBYTE0x0051; /把(0x0041)中的数赋给nb nc=DBYTE0x0040; nd=DBYTE0x0050;if(nanb) f=0x88; /判断高八位的大小,如果nanb) f=0xff; /判断高八位的大小,如果nanb,f=0xffif(na=nb) /判断高八位的大小,if(ncnd) /判断低八位的大小,如果ncnd,f=0x88否则f=0xfff=0x88;else f=0xff; DBYTE0x0042=f; /给(0x0042)赋值f 8位二进制转换成ACSII码的C语言程序:#include #includeunsignedchar dsi=0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018;/定义一个储存地址的数组unsigned char code a=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01; /定义一个数值数组 void main()unsigned char na,nb; unsigned int m; int i; na=DBYTE0x10; /把(0x10)中的数赋值给na for(i=0;i8;i+) nb=ai; /取出数组a中的值赋值给nb m=dsii; /取出数组dsi中的地址赋给m DBYTE0x21=na&nb; /na 和nb相与结果存在(0x21) 中 if(DBYTE=0x00) /判断如果(0x21)中的值等于0x00,地址m中的值赋为0x30,如果(0x21)中的值不等于0x00,地址m中就赋值为0x31 DBYTEm=0x30; else DBYTEm=0x31; 六、实验结果:16位数据比较大小的汇编语言的结果:16位数据比较大小的C语言的结果:8位二进制转换成ACSII码的C语言程序:输入的8位二进制数为0x3a七、心得体会: 通过本学期数周的上机实验操作,让我体会到平日在课堂学习理论知识的时候短暂的了解并不代表真正的掌握和熟练应用,要学好单片机就要把理论与操作结合起来,在实际
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环保行业环保产业发展智能化技术应用研究报告及未来发展趋势预测
- 2025年地铁人工智能安全规范岗前考核试卷
- 2025年农村集体产权制度改革政策适应性评估考核试卷
- 2025年房地产行业关联方资金往来合规考核试卷
- 2025年公共管理行业数字政府建设与政府服务升级研究报告及未来发展趋势预测
- 2025甘肃天水天光半导体有限责任公司招聘11人笔试考试备考题库及答案解析
- 2026中国能建全球校园招聘长沙理工大学站笔试考试参考题库及答案解析
- 2025浙江宁波前湾新区所属事业单位招聘工作人员5人笔试考试参考题库及答案解析
- 2025四川泸州江阳区城镇公益性岗位招聘考试笔试模拟试题及答案解析
- 2025天津市环湖医院第三批次人事代理制招聘49人考试笔试备考题库及答案解析
- 安全防护用品采购合同
- 无能力抚养孩子委托他人抚养委托书
- 2023年石家庄市社区工作者招聘考试真题
- 《得道多助-失道寡助》对比阅读6篇(含答案)
- 啤酒厂全套安全生产操作规程
- 全国各省市中小学使用教材版本目录
- 【知识解析】光武帝刘秀主题图集
- 新媒体数据分析与应用完整PPT全套教学课件
- 青海省干部履历表实用文档
- 电瓶车维修费用明细
- 高中生良好习惯养成教育主题班会PPT
评论
0/150
提交评论