单片机实验指导书带答案.docx
《单片机实验指导书带答案.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书带答案.docx(13页珍藏版)》请在冰豆网上搜索。
![单片机实验指导书带答案.docx](https://file1.bdocx.com/fileroot1/2022-11/28/15bf4807-40b8-4553-ab16-0b8721330d4e/15bf4807-40b8-4553-ab16-0b8721330d4e1.gif)
单片机实验指导书带答案
单片机实验指导书——带答案(总11页)
《单片机原理及应用》
实验指导书
姓名:
学号:
专业班级:
所在学院:
成人教育学院
2012年5月日
单片机实验指导书
实验一 系统认识实验
一、实验目的
1.掌握SICElab-G2200实验/仿真系统的结构与使用方法;
2.熟悉单片机系统开发软件WAVE6000。
二、实验设备
1.G2200/2100实验平台1台2.仿真器/仿真板1台
3.连线若干根4.计算机1台
三、实验内容
P1端口接发光二极管,加1点亮。
四、连线方案:
五、实验步骤
1.连接Lab51CPU板。
(已由实验师连好)
2.仿真器与实验平台的连接
将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。
(已由实验师连好)
3.仿真器与计算机的连接
用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。
特别注意:
在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。
4.实验连线
按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。
拆线时,应先回转一下,不要硬拨,以免损坏线路板。
不管是拆线还是插线,都应在断电的情况下进行。
实验中“连线方案”的粗线即为需用户动手接连的线。
5.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。
6.在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:
7.建立新程序(如果程序已编好,直接跳到第9步)
选择菜单[文件|新建文件]功能。
出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序
ORG0
MOVP1,#0;熄灭发光二极管
LOOP:
INCP1
CALLDelay
SJMPLOOP
Delay:
MOVR2,#3;延时程序
MOVR1,#0
MOVR0,#0
DLP:
DJNZR0,DLP
DJNZR1,DLP
DJNZR2,DLP
RET
END
8.保存程序
选择菜单[文件|保存文件]或[文件|另存为]功能。
9.建立新的项目
选择菜单[文件|新建项目]功能。
新建项目会自动分三步走。
(1)加入模块文件。
在加入模块文件的对话框中选择刚才保存的文件,按打开键。
如果你是多模块项目,可以同时选择多个文件再打开。
(2)加入包含文件。
在加入包含文件对话框中,选择所要加入的包含文件(可多选)。
如果没有包含文件,按取消键。
(3)保存项目。
在保存项目对话框中输入项目名称。
MY1无须加后缀。
软件会自动将后缀设成“.PRJ”。
按保存键将项目存在与你的源程序相同的文件夹下。
10.设置项目
11.编译程序
选择菜单[项目|编译]功能或按编译快捷图标或按F9键,编译项目。
在编译过程中,如果有错可以在信息窗口中显示出来。
双击错误信息,可以在源程序中定位所在行。
纠正错误后,再次编译直到没有错误。
在编译之前,软件会自动将项目和程序存盘。
在编译没有错误后,就可以执行、调试程序了。
12.执行、调试程序
有四种方法执行程序:
全速执行、程序单步跟踪、执行到光标处和设置断点。
(1)全速执行
(2)程序单步跟踪
选择[执行|跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。
(3)执行到光标处
(4)设置断点
(5)观察各变量值的方法
六、思考题
1.改写实验程序实现流水灯功能。
写出源程序。
ORG0
MOVP1,#01H
LOOP:
MOVA,P1
RLA
MOVP1,A
CALLDelay
SJMPLOOP
Delay:
MOVR2,#3;延时程序
MOVR1,#0
MOVR0,#0
DLP:
DJNZR0,DLP
DJNZR1,DLP
DJNZR2,DLP
RET
END
2.在执行调试程序过程中,遇到了哪些问题你是如何解决的
(根据调试的实际情况填写:
)
(1)指令写错:
MOVR1,#0中的R1写成了字母Rl
(2)程序编译不成功,没有加入源文件
实验二 程序调试
一、实验目的
1.学习WINDOWS平台下的编辑、编译、排错、调试方法。
2.学习修改和观察变量的方法;综合使用单步、断点调试的方法。
3.了解数据排序的简单算法。
二、实验内容
编写并调试一个排序子程序,其功能为用冒泡法将外部RAM(2040H—2049H)中10个单字节无符号数,按从大到小的次序重新排列,并把结果放在外部RAM(2050H—2059H)区域。
三、实验器材
安装了WAVE6000集成调试环境软件的计算机1台。
四、实验说明
本程序采用的是“冒泡排序”法。
算法是将一个数与后面的数相比较,如果比后面的数小,则交换,如此将所有的数比较一遍后,最小的数就会在数列的最后面。
再进行下一轮比较,找出第二小数据,直到全部数据有序。
五、程序框图(排序部分)
六、实验步骤
1.打开WAVE6000调试环境,打开“仿真器设置”对话框,选择好仿真器,并选择使用伟福软件模拟器。
2.根据流程图编写程序,并编译通过。
程序清单:
ORG0
LJMP0030H
ORG0030H
START:
MOVDPTR,#2040H
MOVR0,#40H
MOVR7,#10
LOOP0:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR7,LOOP0
MOVPSW,#00H
MOVR2,#9
LOOP1:
MOVR0,#40H
MOVR1,#41H
MOV03H,R2
CLR7FH
LOOP2:
MOVA,@R0
MOV30H,A
MOVA,@R1
CJNEA,30H,LOOP3
SJMPL1
LOOP3:
JCL1
MOV@R0,A
XCHA,30H
MOV@R1,A
SETB7FH
L1:
INCR0
INCR1
DJNZR3,LOOP2
JNB7FH,LOOP4
DJNZR2,LOOP1
LOOP4:
MOVDPTR,#2050H
MOVR0,#40H
MOVR7,#10
LOOP5:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP5
END
3.打开XDATA数据窗口,在弹出的XDATA窗口中从2040H开始的单元中输入10个不同数。
4.打开DATA数据窗口,把打开的窗口进行并排,单步或跟踪运行程序,观察DATA数据窗口40H开始的单元和XDATA窗口2050H开始的单元内容的变化。
七、思考题
1.补全程序。
2.在排序前,程序对片外数据做了什么工作排序后,对结果又进行了什么处理并在源程序中标明。
在排序前,程序将片外数据存储器2040H开始的10个地址中的数据读到片内40h~49h地址中。
LOOP0子程序实现此功能。
排序后又将40h~49h地址中的输出送到片外2050H~2059H中。
LOOP4\LOOP5子程序实现此功能。
实验三外部中断实验
一、实验目的:
掌握MCS-51单片机中断原理及编程使用方法。
二、实验设备
1.G2200/2100实验平台1台2.仿真器/仿真板1台
3.连线若干根4.计算机1台
三、实验内容:
在实验一的基础上,增加中断功能。
如果中断请求得到响应,用L0-L7实现从右到左逐个点亮,直至中断请求撤消,中断返回。
四、连线方案
五、实验源程序
ORG0
LJMP0030H
ORG0013H
LJMPINT10
ORG0030H
MOVPSW,#00H
ORLIE,#84H
ORLIP,#04H
MOVSP,#30H
MOVP1,#0;熄灭发光二极管
LOOP:
INCP1
CALLDelay
SJMPLOOP
Delay:
MOVR2,#3;延时程序
MOVR1,#0
MOVR0,#0
DLP:
DJNZR0,DLP
DJNZR1,DLP
DJNZR2,DLP
RET
INT10:
PUSHPSW
PUSHP1
MOVPSW,#08H
MOVP1,#0;熄灭发光二极管
MOVA,#01H
MOVR3,#16
LOOP1:
MOVP1,A
RLA
CALLDelay
DJNZR3,LOOP1
POPP1
POPPSW
RETI
END
六、实验步骤
1.按连线方案连线。
注意:
拨动开关K0置为高电位(打在上方)。
2.打开WAVE6000调试环境,打开“仿真器设置”对话框,设置好仿真器。
3.输入源程序,并编译通过。
4.执行程序。
在执行程序的过程中,将K0置为低电位(打在下方),表示有故障发生,再将K0置为高电位,观察现象。
七、思考题
1.补全程序。
2.在执行中断服务程序过程中,如果K0没有及时返回高电平,观察到什么现象如果K0及时返回高电平,又观察到什么现象解释原因。
如果K0没有及时返回高电平,程序又一次进入中断,LED灯再次循环点亮16次,中断被多次触发。
如果K0及时返回高电平,只响应一次中断。
原因是,程序中中断设置为低电平触发方式。
3.如果希望用L0-L7实现从左到右逐个点亮,该改哪条指令,请写出原指令及更改后的指令。
将LOOP1子程序中的RLA,改为RRA指令。
实验四串行口实验
(基于PROTEUS软件)
一、实验目的
1.掌握MCS-51单片机串行口方式0、方式1的工作原理;
2.了解方式0时的应用,即通过串行口扩展并行口,进行静态显示的方法;
3.掌握串行移位寄存器芯片74LS164的工作原理;
4.了解方式1时的应用,即10位UART,利用方式1实现双机通讯;
5.熟悉并掌握PROTEUS软件的使用方法。
二、实验内容
本实验包含两个小实验,可任选做一个。
1.利用串行口的工作方式0,将单片机的串口通过74LS164芯片转换成并口并驱动数码管循环依次显示0-9。
在PROTEUS软件中设计出相应的电路,并进行仿真。
2.利用串行口的工作方式1,实验两个单片机间的双机通讯。
其中单片机甲向单片机乙循环发送9-0(递减),同时单片机乙向单片机甲发送0-9(递增)。
三、实验器材
装有PROTEUS软件的计算机一台。
四、实验原理图
五、示范程序
1.方式0示范程序
MAIN:
MOVSCON,#0
MAIN1:
MOVB,#0FFH
MOVR0,#0AH
LP:
INCB
LCALLDSPLY
LCALLDL1S
DJNZR0,LP
LJMPMAIN1
DSPLY:
MOVDPTR,#TABLE
MOVA,B
MOVCA,@A+DPTR
MOVSBUF,A
LP1:
JNBTI,LP1
CLRTI
RET
TABLE:
DB0C0H,0F9H,0A4H
DB0B0H,99H,92H
DB82H,0F8H,80H,90H
DL1S:
MOVR7,#10
DL1:
MOVR6,#200
DL2:
MOVR5,#250
DL3:
DJNZR5,DL3
DJNZR6,DL2
DJNZR7,DL1
RET
思考题
1.你在实验中是否采用了示范程序在做实验过程中遇到了哪些问题如何解决的
采用了改示范程序,出现问题。
MAIN:
MOVSCON,#0编译不通过。
MAIN:
后的“:
”为全角格式,需改为英文半角“:
”
2.如果改为从9显示到0,如何更改程序。
MAIN1:
MOVB,#09H
MOVR0,#0AH
LP:
LCALLDSPLY
LCALLDL1S
DECB
DJNZR0,LP
LJMPMAIN1