湖南工业大学单片机实验报告 1认识实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一、认识实验
实验一(一):存储器读写
一、实验目的
1、掌握寄存器、存储器读写等汇编指令;
2、掌握编程软件编辑、编译、调试等基本操作;
3、学习简单程序的基本调试方法。
二、实验设备
PC机、Keil 软件、Proteus软件。
三、实验内容
将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:ORG 0000H
SJMP START
ORG 0030H
START:MOV 70H,#00H
MOV 71H,#01H
MOV 72H,#02H
MOV 73H,#03H
MOV 74H,#04H
MOV 75H,#05H
MOV 76H,#06H
MOV 77H,#07H
MOV 78H,#08H
MOV 79H,#09H
MOV 7AH,#0AH
MOV 7BH,#0BH
MOV 7CH,#0CH
MOV 7DH,#0DH
MOV 7EH,#0EH
MOV 7FH,#0FH
MOV R1,#10H
MOV R0,#70H
MOV DPTR,#2000H
LOOP:MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R1,LOOP
END
四、上机操作及调试步骤
1、启动PC机,打开Keil4软件,如图(1)
图(1)
2、建立Keil工程文件,如图(2)
图(2)
3、建立一个exe1工程文件(工程文件名任意取),不需要扩展名。选择工程存放路径,点击“保存”按钮。如图(3)
图(3)
4、选择芯片,51单片机在Atmel下,找到A T89C51,选中点击OK;
图(4)
5、因为使用汇编语言,下面弹出窗口选否;
图(5)
6、建立工程如图
图(6)
7、为工程添加文件,也就是汇编代码,点击新建按钮(或File->new),弹出Text1文本文件。新建.ASM文件如图
图(7)
8、另存为到工程文件,点击保存,保存.asm文件
图(8)
9、保存后如图
图(9)
10、添加源文件exe1.asm,右键单击Source Group1,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件,单击exe1.asm文件,然后在点击Add按钮,此时对话框不会消失,在点击close就Ok 了,如图
图(10)
图(11)
11、没有匹配的源文件,不要急,将C Source file(*.c)换成All files(*.*),源文件就出来了
图(12)
12、最终如图
13、接下来就是写汇编代码了
14、写好汇编代码,点击下面三个按钮进行编译……,没有错误(0 Error)就编译通过
15、生成hex文件,下载到单片机中,使得单片机工作…………
设置如下:单击如下按钮,在弹出的对话框中选中output列表项,按图设置,并单击OK保存就行了。
16、再次编译,如下图产生Hex文件
17、在exe1工程保存的路径中,也产生了exe1.hex文件,如图
五、实验报告
1、说明实验操作的基本步骤;
同实验步骤
2、为每一条汇编指令写出中文注释;
ORG 0000H ;系统复位入口地址
SJMP START ;跳转至START程序
ORG 0030H ;START程序的初始地址
START:MOV 70H,#00H ;将立即数00H送到70H地址单元中MOV 71H,#01H ;将立即数01H送到71H地址单元中
MOV 72H,#02H
MOV 73H,#03H
MOV 74H,#04H
MOV 75H,#05H
MOV 76H,#06H
MOV 77H,#07H
MOV 78H,#08H
MOV 79H,#09H
MOV 7AH,#0AH
MOV 7BH,#0BH
MOV 7CH,#0CH
MOV 7DH,#0DH
MOV 7EH,#0EH
MOV 7FH,#0FH
MOV R1,#10H ;将立即数10H送到寄存器RI
MOV R0,#70H ;将立即数70H送到寄存器R0
MOV DPTR,#2000H ;将立即数2000H送到地址指针DPTR LOOP:MOV A,@R0 ;
MOVX @DPTR,A ;将累计器A的内容传送到DPTR指定的外部地址单元
INC R0 ;把寄存器R0的单元内容加1
INC DPTR ;把地址指针DPTR的单元内容加1
DJNZ R1,LOOP ;先把R1单元内容减1放在R1里面
;若R1单元内容不等于0,则转移执行LOOP
;否则顺序执行
END ;结束
实验一(二):数据排序实验
一、实验目的
掌握排序程序的设计方法。
二、实验内容
本例程采用交换排序法将内部RAM 中的50~59H 单元中的10个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部RAM 1000H开始处。
三、实验步骤
1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加Order.ASM文件,打开Order.ASM文件,阅读、分析、理解程序,编译程序进行调试。
2)在VIEW菜单中打开MEMORY WINDOW数据窗口,分别观察50H(在MEMORY#1中输入D:50H)、1000H(MEMORY#2窗口输入X:1000H)
3)可在程序指令NOP 处设置断点,在第一个断点处可观察50~59H 单元内容是否为10 个任意排列原始数据。
4)在第二个断点处可观察每次排序的结果。
5)可单步执行程序观察排序过程。
四、实验参考程序
ORG 0000H
JMP MAIN
ORG 0100H
MAIN:MOV R0,#50H
MOV @R0,#5FH
INC R0
MOV @R0,#56H
INC R0
MOV @R0,#5AH
INC R0
MOV @R0,#5EH
INC R0
MOV @R0,#51H
INC R0
MOV @R0,#5BH
INC R0
MOV @R0,#53H
INC R0
MOV @R0,#58H
INC R0