河北工业大学单片机原理及应用_实验指导书

上传人:第*** 文档编号:55695086 上传时间:2018-10-04 格式:DOC 页数:20 大小:393.50KB
返回 下载 相关 举报
河北工业大学单片机原理及应用_实验指导书_第1页
第1页 / 共20页
河北工业大学单片机原理及应用_实验指导书_第2页
第2页 / 共20页
河北工业大学单片机原理及应用_实验指导书_第3页
第3页 / 共20页
河北工业大学单片机原理及应用_实验指导书_第4页
第4页 / 共20页
河北工业大学单片机原理及应用_实验指导书_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《河北工业大学单片机原理及应用_实验指导书》由会员分享,可在线阅读,更多相关《河北工业大学单片机原理及应用_实验指导书(20页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及应用 实实 验验 指指 导导 书书 河河 北北 工工 业业 大大 学学 计计 算算 机机 科科 学学 与与 软软 件件 学学 院院 实验一实验一 指令系统和汇编语言程序设计实验指令系统和汇编语言程序设计实验 本章实验主要包括指令系统和汇编语言程序设计两部分。采用软件模拟调试的方法, 目的在于通过这些实验可以使学生巩固所学知识,加深对 MCS-51 单片机内部结构、指令系 统的理解,更进一步掌握汇编语言程序设计的方法和技巧。 实验操作说明 Keil 软件调试方式分为:软件仿真方式和硬件调试两种。 软件仿真实验上机操作步骤: 1 1、进入、进入KeilKeil,点击桌面上“Keil V

2、ersion 3”图标,进入Keil系统窗口; 2 2、新建工程:、新建工程: 1)打开“工程”菜单中的新建,在弹出的对话框中,键入自己定义的工程名; 2)在进一步打开的对话框中,选择CPU的类型,为Intel公司的8032AH,确定; 3)存入C:keil 文件夹中。(机房,安装在C盘,改为C:keil) 3 3、打开、打开“视图视图”菜单中的菜单中的“工程窗口工程窗口”; 4 4、在、在“工程窗口工程窗口”中,右击中,右击“目标目标1 1”, ,为工程设置参数;为工程设置参数; 1)在弹出的快捷菜单中选择“为目标“目标1”设置选项”; 2)在弹出的对话框中选择“项目”选项卡,设置时钟为“1

3、2Mhz”; 3)选择“调试”选项卡,在单选框选择“软件仿真方式”; 4)确定,即完成了“软件仿真方式”的设置。 5 5、新建文件、新建文件 1)打开“文件”菜单,选择“新建”; 2)系统打开一个文本窗口,你可在窗口的编辑区输入要调试的汇编语言源程序; 3)存盘,命名文件名和扩展名,文件名任起,扩展名必须是.asm,存入C:keil 文件 夹中(在大机房,安装在C盘,改为C:keil);例如:a.asm。 6 6、将刚建的新文件添入当前的工程中、将刚建的新文件添入当前的工程中 1)在“工程窗口”中,“目标1”的+号处打开,显示“源代码组1”; 2)右击“源代码组1”,在快捷菜单中选择“为“源代

4、码组1”添加文件”,弹出一个对话框; 3)在对话框中选择“文件类型”为*.*; 4) 选择文件所在路径,同时找到刚键入的a.asm文件,点击“add”按钮,然后点击 “close”按钮; 5) 在“工程窗口”点击“源代码组1”左侧的+号,显示添加的a.asm文件,添加成功。 7 7、汇编、汇编 1)在“工程窗口”点击“源代码组1”的a.asm文件; 2)打开“a.asm”文件编辑窗口; 3)点击工具按钮中的“重建所有的目标文件”,进行汇编; 4)在“输出窗口”显示汇编是否有错,无错,进入调试; 有错,在编辑窗口修改程序,改后,再次汇编,直至无错后进入调试; 8 8、调试程序、调试程序 1)点击

5、“开始/停止调试”按钮,进入调试界面; 2)在程序窗口中有一个黄箭头指向程序的第一条可执行指令的开头; 3)选择调试方式进行调试; 在“调试”菜单中选择:跟踪、单步、运行、断点等方式; 或按单步或跟踪命令按钮,按一次单步,执行一条指令,pc指针指向下一条要被执 行的指令; 检查运行结果 打开“视图”菜单,选择“存储器窗口”,弹出存储器对话框; 在存储器对话框的下方选择memory1在地址栏中键入“C:0X0000”回车,建立程序存储 器的观察窗口; 选择memory2在地址栏中键入“D:0X00”回车,建立内部数据存储器的观察窗口; 选择memory3在地址栏中键入“X:0X0000”回车,建

6、立外部数据存储器的观察窗口; 在“project workspace”窗口中观察r0-r7,a,pc,dptr,psw,要观察各个标志位,打开 psw左侧的+号; 9 9、设置、设置PCPC指针指针 当程序的首地址不是 0000H 时,汇编结束后,PC 指针仍然指向 0000H 的地方,在调 试程序前,一定要将 PC 设置到你的程序首地址处,方法为: 1)将光标移到程序的第一条指令处,击鼠标右键; 2)在快捷菜单中选择“Set Program Counter”命令,PC 指针即可指向程序的第一条 指令。 指令系统实验 实实验验一一 熟熟悉悉键键盘盘操操作作及及数数传传指指令令编编程程设设计计

7、一、一、实验目的实验目的 1熟悉软件模拟调试的环境及键盘操作。 2掌握汇编语言程序设计的方法,加深对指令的理解。 3学会软件模拟调试和察看修改观察项的方法。 二、实验内容实验内容 印证数据传送指令的功能、寻址方式以及 PC 指针、SP 指针、DPTR 指针、Ri 指针分别 对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。 三、实验步骤实验步骤 1进入调试软件环境,输入源程序; 2汇编源程序; 3用单步方式运行程序; 4检查并记录各寄存器和存储单元内容的变化。 四、程序清单四、程序清单 1.1. 内部内部 RAMRAM 数据传送(数据传送(MOVMOV 指令)指令) 1)寄存

8、器寻址与立即寻址,需要查看的数据有 A、PSW 和不同寄存器区的 Rn 等单元的 内容。 ORG 0000H AJMP 0050H ORG 0050H MAIN: MOV PSW,#00H ;RS1=0,RS0=0 0 组寄存器 MOV R0,#30H (R0)=(00H)=30H MOV A,R0 (A)=(E0H)=30H MOV R6,A (R6)=(06H)=30H SETB RS1 (PSW)=(D0H)=10H (R6)=(06H)=00H (R0)=(00H)=00H SETB RS0 ; RS1=1,RS0=1 3 组寄存器 (PSW)=(D0H)=18H MOV R0,#30

9、H (R0)=(00H)=30H MOV A,R0 (A)=(E0H)=30H MOV R6,A (R6)=(06H)=30H MOV PSW,#10H ;RS1=1,RS0=0 2 组寄存器 (PSW)=(D0H)=10H (R6) =(06H)=00H (R0)=(00H)=00H MOV R0,#30H (R0)=(00H)=30H MOV A,R0 (A)=(E0H)=30H MOV R6,A (R6)=(06H)=30H CLR RS1 (PSW)=(D0H)=00H SETB RS0 ;RS1=0,RS0=1 1 组寄存器 (PSW)=(D0H)=08H (R6) =(06H)=0

10、0H (R0)=(00H)=00H MOV R0,#30H (R0)=(00H)=30H MOV A,R0 (A)=(E0H)=30H MOV R6,A (R6)=(06H)=30H SJMP $ END 2) 直接寻址,需查看 30H、31H、32H、40H、ACC、PSW、02H 等单元的内容。 ORG 0000H AJMP 0060H ORG 0060H MAIN: MOV 30H,#45H MOV 31H,#46H MOV 02H,31H MOV 0E0H,30H MOV 32H,ACC MOV ACC,PSW MOV 40H,ACC SJMP $ END 3)寄存器间接寻址,需查看R

11、0、RO 等的内容。 ORG 0000H AJMP 0070H ORG 0070H MAIN:MOV 30H,#66H MOV R0,#30H MOV R0,#30H INC R0 MOV R0,#31H SJMP $ END 2.2. 外部程序存储器数据传送(外部程序存储器数据传送(MOVCMOVC 指令)指令) 根据 A 中数据查外部程序存储器单元 2000H200FH 单元中的字形码,依次存入内部 RAM 以 30H 开始的单元。 ORG 0000H AJMP 0080H ORG 0080H MAIN:MOV R0,#30H MOV R2,#08H MOV R3, #00H LOOP:

12、MOV A,R3 MOV B,#02H ADD A,B MOV DPTR,#2000H MOVC A,A+DPTR MOV R0,A INC R0 INC R3 DJNZ R2,LOOP SJMP $ ORG 2000H TABL: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,086H,08EH END 3.3. 堆栈操作(堆栈操作(PUSHPUSH 和和 POPPOP 指令)指令) 需要查看的数据有 50H、51H、A 及 SP 指针和堆栈区中数据随 PUSH 和 POP 指令执行后 的变化情况和数

13、据的存放次序等。 1)可用于保护现场和恢复现场的程序 ORG 0000H AJMP 0090H ORG 0090H MAIN:MOV SP,#5FH (SP)=(81H)=5FH MOV 50H,#3BH (50H)=3BH MOV 51H,#2FH (51H)=2FH MOV A,#12H (A)=(E0H)=12H PUSH 50H (SP)=(81H)=60H (60H)=3BH PUSH 51H (SP)=(81H)=61H (61H)=2FH PUSH ACC (SP)=(81H)=62H (62H)=12H POP 0E0H (SP)=(81H)=61H POP 51H (SP)=

14、(81H)=60H POP 50H (SP)=(81H)=5fh SJMP $ END 2)可用于数据交换的程序 ORG 0000H AJMP OOA0H ORG 00A0H MAIN:MOV SP,#6FH (SP)=(81H)=6FH MOV 50H,#3BH (50H)=3BH MOV 51H,#2FH (51H)=2FH PUSH 50H (SP)=(81H)=70H (70H)=3BH PUSH 51H (SP)=(81H)=71H (71H)=2FH POP 50H (SP)=(81H)=70H POP 51H (SP)=(81H)=6FH (50H)=2FH (51H)=3BH

15、SJMP $ END 4.4.数据交换数据交换 (SWAPSWAP、XCHDXCHD、XCHXCH 指令)指令) 记录每条指令运行后的结果,从而加深对各种不同的交换指令的理解。 1)SWAP 指令 ORG 0000H AJMP 00B0H ORG 00B0H MAIN:MOV A,#58H SWAP A MOV 40H,A SJMP $ END 2) XCHD 指令 ORG 0000H AJMP 00C0H ORG 00C0H MAIN:MOV A,#30H MOV R0,#30H MOV R0,#09H XCHD A,R0 MOV 41H,A SJMP $ END 3)XCH 指令 ORG

16、0000H AJMP 00D0H ORG 00D0H AMIN:MOV R0,#50H MOV 50H,#1 MOV A,#89H XCH A,50H MOV R7,#3 XCH A,R7 XCH A,R0 SJMP $ END 5.5. 外部数据存储器数据传送(外部数据存储器数据传送(MOVXMOVX 指令)指令) 将内部 RAM 中 40H 单元的内容送到外部数据存储器(或 I/O 口)3695H 单元。 1)1) DPTRDPTR 作指针作指针 ORG 0000H AJMP 00F0H ORG 00F0H MAIN:MOV 40H,#99H MOV A,40H MOV DPTR,#3695H MOVX DPTR,A SJMP $ EN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号