ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:120.39KB ,
资源ID:9906289      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件实验报告.docx

1、软件实验报告本科实验报告课程名称: 微机原理与接口技术姓 名: 邵芳琳学 院(系): 控制学院专 业: 自动化学 号: 3140103307指导教师: 曹峥 2016年 11月 11日 实验一 存储器块操作实验一、实验目的1 熟悉 KEIL 集成调试环境和汇编程序的调试方法。2 掌握存储器读写方法;3 了解内存块的移动方法;二、实验说明实验 1 指定某块存储器的起始地址和长度,要求能将其内容赋值。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。块移动是单片机常用操作之一,多用于大量的数据复制和图象操作。例程 2 给出起始地址,用地址加一方法移动块,将指定源地址

2、和长度的存储块移到指定目标地址为起始地址的单元中去。移动 3000H 起始的 256个字节到 4000H 起始的 256 个字节。思考题1 如何将存储器块的内容置成某固定值(例全填充为 0FFH)? 请用户修改程序,完成此操作。将MOV A,#1H 改为MOV A,#FFH2 若源块地址和目标块地址有重叠,该如何避免?源块地址和目标块地址重叠部分数据压制堆栈中,当要使用重叠部分源数据时,直接从堆栈中弹出。实验内容1. 试编程将片内 RAM 中的数据依次复制到片外 RAM。假设源数据区的首地址为 40H,目的数据区的首地址为 1000H,数据块长度为 10H。 ORG 0000H MOV R0,

3、#40H MOV A,#01H MOV R5,#10HLOOP: MOV R0,A INC R0 DJNZ R5,LOOP MOV R0,#40H ;起始地址 MOV R2,#10H MOV R3,#00H MOV R7,#10H ;循环次数LOOP1: MOV A,R0 MOV DPH,R2 MOV DPL,R3 MOVX DPTR,A INC R0 INC R3 DJNZ R7,LOOP1 LJMP $ END运行结果:2. 两个 16 位无符号二进制数分别存放在片外 RAM 首址为 2000H 和 2002H 单元内,将它们相加,结果存入片内 RAM 30H(低 8 位)、31H(高 8

4、 位)。 ORG 0000H MOV A,#11H MOV DPTR,#2000H MOVX DPTR,A MOV DPTR,#2003H MOVX DPTR,A MOV R0,A MOV DPTR,#2002H MOVX A,DPTR ADD A,R0 MOV 30H,A MOV DPTR,#2001H MOVX A,DPTR MOV R0,A MOV DPTR,#2003H MOVX A,DPTR ADDC A,R0 MOV 31H,A END运行前:运行后:1100+0011=1111运行结果正确。 实验二 数值转换实验一、实验目的1 熟悉 KEIL 集成调试环境和汇编程序的调试方法。2

5、 掌握简单的数值转换算法。3 基本了解数值的各种表达方法。4 掌握数值的加减法运算。5 掌握用查表的方法将 BCD 值转换成 ASCII 值。二、实验说明单片机系统内部运算用二进制,而输入输出常用十进制,以符合日常习惯,因此,数制转换是仪表设计中常用的程序之一。单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。我们将给定的一字节二进制数,转换成二十进制(BCD)码。将累加器 A 的值拆为三个 BCD 码,并存入 RESULT 开始的三个单元,例程 A 赋值#123。实验 2 主要让学生了解数值的 BCD 码和 ASCII 码的区别,利用查表方法快速地进行数值转

6、换。进一步掌握数值的各种表达方式。现在我们给出一个 BCD 数,将其转换成 ASCII 值。如下:将累加器 A 的值转换为二个 ASCII 码,并存入 Result 开始的二个单元,例如 A 赋值#1AH。思考题BCD 码转换成二进制数的算法是什么?例如:(91) BCD 对应的二进制数是多少?将BCD码写成权值相加的形式,再将各位转化为二进制。9101+1100=91=()B实验内容1. 把 R 3 中的 8 位二进制整数转换为压缩 BCD 码,存放在 R4, R5 中。ORG 0000HMOV R3,#10111011BMOV A,R3MOV B,#100DIV ABMOV R4,AMOV

7、 A,BMOV B,#10DIV ABMOV R5,ASWAP AADD A,BMOV R5,A寄存器结果:2. 设 4 位 BCD 码 abcd 依次存放在内部 RAM 中 50H53H 单元的低 4 位,(高 4 位为 0)。试编程将其转换成二进制数并存入 R6R7 中。ORG 0000H MOV 50H,#01MOV 51H,#02 MOV 52H,#03 MOV 53H,#04MOV A,50H MOV B,#10MUL ABMOV B,#100MUL ABMOV R1,B MOV R0,A MOV B,#100MOV A,51HMUL ABADD A,R0MOV R0,A MOV A

8、,BADDC A,R1MOV R1,AMOV B,#10MOV A,52HMUL ABADD A,R0MOV R0,AMOV A,R1ADDC A,#0MOV R1,AMOV A,R0ADD A,53HMOV R0,AMOV A,R1ADDC A,#0MOV R6,AMOV A,R0MOV R7,A执行结果:4位BCD码为1234,转换为2进制数为4d2与实际相符。 实验三 程序跳转表实验一、实验目的1 熟悉 KEIL 集成调试环境和汇编程序的调试方法。2 了解简单的函数计算。3 掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的

9、功能,完成指定操作。若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。三、思考题1 写跳转程序时要注意些什么?1)子程序的第1条指令前必须有标号,即表明子程序的名称,也作为调用指令的符号地址。2)要有入口条件,用来说明入子程序时,它所要处理的数据如何得到。另外,要有出口条件,即处理的结果是如何存放的。3)注意保护现场和恢复现场,即在调用子程序前将不允许被破坏的内容保存起来;恢复现场即在子程序执行完毕返回主程序前,将保存的内容恢复到保护现场前的状况;4)子程序必须以RET结束。子程序中,对堆栈的入栈和出栈操作次数必须相同,以保证返回后堆栈指针SP的值与调用时一直。2 可

10、以避免重复书写相同的程序;可以简化程序的逻辑结构;使程序模块化,通用化。3、实验内容ORG 0000HMOV R0,#0FCHCJNE R0,#0,NEXT0 MOV R0,#2 MOV A,R0 SJMP NEXT3NEXT0:CJNE R0,#80H,NEXT1 MOV R0,#2 MOV A,R0 SJMP NEXT3NEXT1:JC NEXT2 SETB C MOV A,R0 RRC A SJMP NEXT3NEXT2:MOV A,R0 MOV B,#2 MUL ABNEXT3:MOV 30H,AEND测试结果: X0 实验四 数据排序实验一、实验目的1 熟悉 KEIL 集成调试环境和

11、汇编程序的调试方法。2 掌握排序程序的设计方法。二、实验说明本例程采用交换排序法将内部RAM 中的5059H 单元中的10个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部RAM 1000H开始处。初始:结果:三、实验内容画出本实验程序的流程图。 实验五 键盘显示仿真实验一、实验目的1 熟悉 KEIL 集成调试环境和汇编程序的调试方法。2 学习使用外围接口工具调试程。3 熟悉键盘显示接口电路及程序设计。提高实验1. 根据键盘、LED 仿真板,设计一个走马灯程序,通过按键实现启停、速率及方向的控制UpDown BIT 00H StartEnd BIT 01H

12、 LAMPCODE EQU 21HORG 0000H AJMP MAIN ORG 30H MAIN: MOV SP,#5FH MOV P1,#0FFH CLR UpDown ;启动时处于向上的状态 CLR StartEnd ;启动时处于停止状态 MOV LAMPCODE,#01H ;单灯流动的代码 LOOP:ACALL KEY ;调用键盘程序 JNB F0,LNEXT ;如果无键按下,则继续 ACALL KEYPROC ;否则调用键盘处理程序 LNEXT: ACALL LAMP ;调用灯显示程序 AJMP LOOP DELAY: MOV R7,#100 D1: MOV R6,#100 DJNZ

13、 R6,$ DJNZ R7,D1 RET KEYPROC: MOV A,B ;从B寄存器中获取键值 JB ACC.2,KeyStart ;分析键的代码,某位被按下,则该位为1 JB ACC.3,KeyOver JB ACC.4,KeyUp JB ACC.5,KeyDown AJMP KEY_RET KeyStart: SETB StartEnd ;第一个键按下后的处理 AJMP KEY_RET KeyOver: CLR StartEnd ;第二个键按下后的处理 AJMP KEY_RET KeyUp: SETB UpDown ;第三个键按下后的处理 AJMP KEY_RETKeyDown: CL

14、R UpDown ;第四个键按下后的处理 KEY_RET: RET KEY: CLR F0 ;清F0,表示无键按下。 ORL P3,#00111100B ;将P3口的接有键的四位置1 MOV A,P3 ;取P3的值 ORL A,#11000011B ;将其余4位置1 CPL A ;取反 JZ K_RET ;如果为0则一定无键按下 CALL DELAY ;否则延时去键抖 ORL P3,#00111100B MOV A,P3 ORL A,#11000011B CPL A JZ K_RET MOV B,A ;确实有键按下,将键值存入B中 SETB F0 ;设置有键按下的标志 K_RET: ORL P

15、3,#00111100B ;此处循环等待键的释放 MOV A,P3 ORL A,#11000011B CPL A JZ K_RET1 ;读取的数据取反后为0说明键释放了 AJMP K_RET K_RET1:CALL DELAY ;消除后沿抖动 RETD500MS: ;流水灯的延迟时间 MOV R7,#255 D51: MOV R6,#255 DJNZ R6,$ DJNZ R7,D51 RET LAMP: JB StartEnd,LampStart; 如果StartEnd=1,则启动 MOV P1,#0ffH LampStart: AJMP LAMPRET ;否则关闭所有显示,返回 LampSt

16、art: JB UpDown,LAMPUP ;如果UpDown=1,则向上流动 MOV A,LAMPCODE RL A ;左移位而MOV LAMPCODE,A MOV P1,A LCALL D500MS LCALL D500MS AJMP LAMPRET LAMPUP: MOV A,LAMPCODE RR A ;向下流动实际就是右移 MOV LAMPCODE,A MOV P1,A LCALL D500MS LAMPRET: RET END 2. 根据实验仿真板 2 设计一个按键显示数字的程序,即按 0 显示 0,依次类推。ORG 0000HSTART: MOV P2,#0FEH MOV P3,

17、#0EFH JB P3.0,NEXT1 MOV P0,#0C0H LJMP FINALNEXT1: MOV P3,#0EFH JB P3.1,NEXT2 MOV P0,#0F9H LJMP FINALNEXT2: MOV P3,#0EFH JB P3.2,NEXT3 MOV P0,#0A4H LJMP FINALNEXT3: MOV P3,#0EFH JB P3.3,NEXT4 MOV P0,#0B0H LJMP FINALNEXT4: MOV P3,#0DFH JB P3.0,NEXT5 MOV P0,#99H LJMP FINALNEXT5: MOV P3,#0DFH JB P3.1,NEXT6 MOV P0,#92H LJMP FINALNEXT6: MOV P3,#0DFH JB P3.2,NEXT7 MOV P0,#82H LJMP FINALNEXT7: MOV P3,#0DFH JB P3.3,NEXT8 MOV P0,#0F8H LJMP FINALNEXT8: MOV P3,0CFH JB P3.0,NEXT9 MOV P0,#80H LJMP FINALNEXT9: MOV P3,#0CFH JB P3.1,FINAL MOV P0,#90H LJMP FINALFINAL: END显示结果:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1