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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(中山大学单片机实验一1.doc)为本站会员(saw518)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

中山大学单片机实验一1.doc

1、 中山大学单片机实验一实验报告【实验原理】第一部分:系统介绍系统资源分配如下:在程序存储器中:0000H 2FFFH 为监控程序存储器区,用户不可用3000H3FFFH 为数据用户区4000H7FFFH 用户实验程序存储区,供用户下载实验程序8000HGF9FH,CFFF0H FFFFH 为用户 CPLD 试验区段,用户可 以在此段空间编程。 CFA0HCFDFH 系统 I/O 区,用户可用但不可更改系统板结构如下:第二部分:键盘使用说明1、键盘布局和定义键盘布局图如下:0 1 2 3 MEM/SBRK ESC/CBRK4 5 6 7 REG/BMOV EXEC8 9 A B LAST/BFI

2、L STEPC D E F NEXT/BCPY ENTERPULSE RESET CTRL SHIFT8051 教学实验键盘共有 24 个键,包括数字键 0F 共 16 个,功能键 8 个,以及外加功能键(SHIFT 和 CTRL)2 个。其中 8 个功能键中有 5 个双功能键,按下 SHIFT 键的同时按下功能键可实现第二键功能。2、键盘功能号(1)存储器浏览修改功能功能代号:1功能名称:MEM功能键名:MEM具体操作流程:按下 MEM(LED 显示“-1-” )输入有效地址Enter (浏览内容)输入十六进制数字Enter(修改该地址中的内容)ECS 退出(2)寄存器浏览修改功能功能代号:

3、2功能名称:REG功能键名:RE寄存器名 组合热键 寄存器名 组合热键RO CTRL+0 PSW SHIFT+0R1 CTRL+1 SP SHIFT+1R2 CTRL+2 DPL SHIFT+2R3 CTRL+3 DPH SHIFT+3R4 CTRL+4 PCL SHIFT+4R5 CTRL+5 PCH SHIFT+5R6 CTRL+6 TCON SHIFT+6R7 CTRL+7 TMOD SHIFT+7A CTRL+A SCON SHIFT+8B CTRL+B SBUF SHIFT+9IEC SHIFT+AIPC SHIFT+B(3)存储器块移动功能功能代号:3功能名称:BMOV功能键名:S

4、HIFT+BMOV(4)存储器块拷贝功能功能代号:4功能名称:BCPY(5)功能键名:SHIFT+BCPY存储器块填充功能功能代号:5功能名称:BFIL功能键名:SHIFT+BFIL(6)设置断点功能功能代号:6功能名称:SBRK功能键名:SHIFT+SBRK(7)清除断点功能功能代号:7功能名称:CBRK功能键名:SHIFT+CBRK(8)全速执行功能功能代号:8功能名称:EXEC功能键名:EXEC(9)单步调试功能功能代号:9功能名称:STEP功能键名:STEP第三部分:实验内容准备:1.先将 8279 的 RL0RL7 分别与键盘的 RL10RL17 相连;8279 的 KA0KA2 分

5、别与键盘的 KA10KA12 相连,8279 的 SHIFT 与键盘的 SHIFT1 相连;8279 的 CTRL 与实验箱的 CTRL1 相连。2.接通电源,按下复位键,等一段时间后,在初始化状态提示符“-P-”下,按下“Ctrl-F”即可进入 LED 显示的演示程序,在 LED 显示器上可以看到数字“8”轮回显示,按任意键可以退出该程序,返回监控状态。此演示程序可以大致检查系统是否可以正常工作。实验步骤:1. 按照程序,将 OBJ 下的代码分别输入相应的储存地址中;2. 设置断点:SBRK(-6-)4018Enter;显示 Hello,表示断点设置成功。3. 检查初始原始存储单元内部数据按

6、下 MEM,显示_1_的状态下键入0060H,依次按下 NEXT 并记录60H-69H 存储单元的数值。重复以上操作,记下5000H 到5009H 的数据。按下 REG,显示“2”,分别按下“CTRL+0”“CTRL+1” “CTRL+A” “SHIFT+2” “SHIFT+3”记录寄存器 R0,R1,A,DPTR 的数值。4. 按下 EXEC 全速执行该程序5. 执行完毕,重复步骤 3 的内容,记录存储器的变化。实验记录如下表所示:实验结果 理论分析地址程序执行前 程序执行后 程序执行后60H 89H E0H E0H61H CCH EDH E1H62H 08H 02H E2H63H EAH

7、48H E3H64H EFH E4H E4H65H FEH E5H E5H66H CCH E6H E6H67H D7H E7H E7H68H 08H E8H E8H69H CEH E9H E9H5000H AAH E0H E0H5001H AAH E1H E1H5002H AAH E2H E2H5003H AAH E3H E3H5004H AAH E4H E4H5005H AAH E5H E5H5006H AAH E6H E6H5007H AAH E7H E7H5008H AAH E8H E8H5009H AAH E9H E9HR0 00H 6AH 6AHR1 00H 00H 00HA 00H

8、 E9H E9HDPL 00H 0AH 0AHDPH 00H 50H 50H 实验结果分析:从上表中可以看出来,首先在片内 60H69H 单元中存入 E0HE9H 各数,在把这些数据传送到片外 RAM 的 5000H5009H 单元。实验中60H、64H69H、5000H5009H、R0、R1、A、DPTR 中的实验值和理论值相同,但是在61H63H 这三个存储单元中,实验结果与理论值存在很大的差距。从分析可以知道,61H63H 可能是个特殊的存储单元,我们假定是个以 60H 为底的堆栈,原因为堆栈起始值为 60H,程序运行到断点处可能保护现场,向堆栈中存值。由于这个存储区不在用户实验存储区(

9、4000H7FFFH) ,导致了这种类型的结果错误,所以我们在实验时,尽量将范围控制在用户实验存储区。【程序二】:程序代码:实验步骤:1. 按照程序,将 OBJ 下的代码分别输入相应的储存地址中;2.清除和设置断点:按下 CBRK(LED 显示“-7-” )输入 4018Enter (成功清除断点显示HELLO)按下 SBRK输入 4022Enter(成功设置断点显示 HELLO)3按下 EXEC 全速执行该程序:按 EXEC,显示_8_的状态下键入 4000H,并按 ENTER 确认。然后显示 402212,表示运行成功。4 记录 30H、38H、40H、48H、50H、6200H、A、R0

10、、R1 等存储单元中的内容。记录结果如下表所示:存储单元 30H 38H 40H 48H 50H 6200H A R0 R1实验结果 38H 07H 40H 38H 30H 40H 40H 38H F0H理论值 38H F0H 40H 38H 30H 40H 40H 38H F0H6. 给程序代码注释LOC SOURCE4000 ORG 4000H ;程序首地址为 4000H4000 MOV 30H,#38H ;(30H)=38H #38H 立即数寻址,30H 直接寻址4003 MOV 38H,#40H ;(38H)=40H #40H 立即数寻址,38H 直接寻址4006 MOV 40H,#4

11、8H ;(40H)=48H #48H 立即数寻址,40H 直接寻址4009 MOV 48H,#90H ;(48H)=90H #90H 立即数寻址,48H 直接寻址400C MOV A,#40H ;A=40H #40H 立即数寻址, A 寄存器寻址400E MOV R0,A ;R0=A=40H A 寄存器寻址,R0 寄存器寻址400F MOV R1,#0F0H ;R1=F0H #0F0H 立即数寻址,R1 寄存器寻址4011 MOV R0,30H ;(R0)=(40H)=(30H)=38H 30H 直接寻址,R0 寄存器间接寻址4013 MOV DPTR,#6200H ;DPTR=6200H #

12、6200H 立即数寻址,DPTR 寄存器寻址4016 MOV 40H,38H ;(40H)=(38H)=40H 40H,38H 均为直接寻址4019 MOV R0,30H ;R0=(30H)=38H 30H 直接寻址,R0 寄存器寻址401B MOV 50H,#30H ;(50H)=30H #30H 立即数寻址,50H 直接寻址401E MOV A,R0 ;A=(R0)=(38H)=40H R0 寄存器间接寻址,A 寄存器寻址401F MOV 38H,R1 ;(38H)=R1=F0H R1 寄存器寻址,38H 直接寻址4021 MOVXDPTR,A ;(DPTR)=(6200H)=A=40H

13、A 寄存器寻址,DPTR 寄存器间接寻址4022 ST: SJMP ST ;程序在此处循环END ;程序结束 实验结果分析:从上面表中可以看出,除了 38H 单元实际值和理论值不一样外,其他均相同。证明程序可以达到要求,至于为什么会存在 38H 实际值跟理论值不一样,这可能跟实验一中的分析是一样的,即 38H 这个单元是堆栈段中的一个单元。实验步骤:1.按下 MEM,显示_1_的状态下键入 4000H,依次键入程序机器码 OBJ 目录下的十六位进制数,按 ENTER 确定,将 OBJ 存入相应的存储器中。2.清除断点和设置断点:按下 CBRK(LED 显示“-7-” )输入 4022Enter

14、 (成功清除实验二中的断点显示将显示 HELLO) ;按下 SBRK输入 4017Enter(成功设置新断点 LED 显示 HELLO)3.单步运行程序:按 STEP,显示 402280,表示程序指针还在实验二中所运行完成的位置,此时我们应该按一下复位键,使 PC 指向 4000。现在我们再按下 STEP,显示 400276,表示第一步程序已经运行完成,400276 表示单步执行下一条指令的首地址以及其中的存储内容。按 ESC 退出后,再按下 REGLED 显示 2,分别按 CTRL+A 和 CTRL+B 记录 A,B 的值。重复上述步骤,直至屏显 401780 为止。记录结果如下表所示:实验

15、值 理论值STEP 按下次数A B A B1 00H 00H 00H 00H2 00H 00H 00H 00H3 B9H 00H B9H 00H4 7DH 00H 7DH 00H5 AEH 00H AEH 00H6 14H 00H 14H 00H7 14H 00H 14H 00H8 50H 00H 50H 00H9 50H 00H 50H 00H10 50H 03H 50H 03H11 1AH 02H 1AH 02H12 34H 00H 34H 00H13 34H 00H 34H 00H14 34H 00H 34H 00H15 34H 00H 34H 00H16 34H 00H 34H 00H

16、 实验结果分析:通过比较上面个程序运行中的 AB 值,可以知道,实际值跟理论值完全吻合,说明执行中没有差错,程序达到预期的目的。我们的这个系统除了可以全速运行之外,还可以进行单步执行,这样,我们就能够在运行中发现错误,只要单步执行程序时,与理论结果不一样的,我们就要立刻关注,说明程序有错误,达不到预期的目的。【实验四】:LINE LOC OBJ SOURCE1 4000 ORG 4000H ;程序首地址2 4000 7520A4 MOV 20H,#0A4H ;(20H)=A4H3 4003 74D6 MOV A,#0D6H ;A=D6H4 4005 7820 MOV R0,#20H ;R0=2

17、0H 5 4007 7A57 MOV R2,#57H ;R2=57H6 4009 5A ANL A,R2 ;A=A 与 R2=57H7 400A 46 ORL A,R0 ;A=57H 或 A4H=F6H8 400B C4 SWAP A ;将 A 的高四位与低四位对调9 400C F4 CPL A ;A=A=90H10 400D 64FF XRL A,#0FFH ;A=A 异或 FFH=6FH11 400F 42200 ORL 20H,A ;(20H)=6FH 或 A4H=EFH 12 4011 80FE ST: SJMP ST ;程序在此处循环13 END ;结束实验步骤:1.按下 MEM,显

18、示_1_的状态下键入 4000H,依次键入程序机器码 OBJ 目录下的十六位进制数,按 ENTER 确定,将 OBJ 存入相应的存储器中。2. 清除断点和设置断点:按下 CBRK(LED 显示“-7-” )输入 4017Enter (成功清除实验二中的断点显示将显示 HELLO) ;按下 SBRK输入 4011Enter(成功设置新断点 LED 显示 HELLO)3.按下 EXEC 全速执行该程序:按 EXEC,显示_8_的状态下键入 4000H,并按 ENTER 确认。然后显示 401180,表示运行成功。4.记录 A,20H,R0,R2 中的数值,如下表所示:A 20H R0 R2实际值

19、6FH EFH 20H 57H理论值 6FH EFH 20H 57H 实验结果分析上表中可以看出,实验值与理论值一样,所以程序运行正常,我们的系统式可靠的。【思考】若要把 4000H4012H 的一段程序送到 6000H 开始的区域,应该如何操作?(键盘命令方式)答:我们可以采用块移动操作功能。同时按下 SHIFT 和 BMOV 键,LED 显示提示“-3-”,提示输入 4 位 16 进制地址,此时我们输入 40000,然后按下 Enter 键;当 LED 再次显示“-3-”时,提示用户输入 4 位 16 进制长度,此时我们输入 0DH,然后按下 Enter 键;当 LED 第三次提示“-3-” ,此时我们就将我们的目的块首地址 6000H 输入,然后按下Enter 键。我们还可以使用系统的块拷贝功能,其功能键位 BVPY,过程与块移动操作类似。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报