单片机实验指导书Word文件下载.docx
- 文档编号:18326136
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:16
- 大小:310.43KB
单片机实验指导书Word文件下载.docx
《单片机实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
MINRES100R
100欧姆电阻
3
LED-GREEN
绿色发光二极管
4
POWER
电源
2.在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:
3.建立新程序(如果程序已编好,直接跳到第5步)
选择菜单[文件|新建文件]功能。
出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序
ORG0
MOVP1,#0;
熄灭发光二极管
LOOP:
INCP1
CALLDelay
SJMPLOOP
Delay:
MOVR2,#3;
延时程序
MOVR1,#0
MOVR0,#0
DLP:
DJNZR0,DLP
DJNZR1,DLP
DJNZR2,DLP
RET
END
4.保存程序
选择菜单[文件|保存文件]或[文件|另存为]功能。
给出文件所要保存的位置,例如:
C:
\WAVE6000\SAMPLES文件夹,再给出文件名MY1.ASM。
保存文件。
文件保存后,程序窗口上文件名变成了:
\WAVE6000\SAMPLES\MY1.ASM
5.建立新的项目
选择菜单[文件|新建项目]功能。
新建项目会自动分三步走。
(1)加入模块文件。
在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。
如果你是多模块项目,可以同时选择多个文件再打开。
(2)加入包含文件。
在加入包含文件对话框中,选择所要加入的包含文件(可多选)。
如果没有包含文件,按取消键。
(3)保存项目。
在保存项目对话框中输入项目名称。
MY1无须加后缀。
软件会自动将后缀设成“.PRJ”。
按保存键将项目存在与你的源程序相同的文件夹下。
项目保存好后,如果项目窗口是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单[窗口|项目窗口]功能来打开。
6.设置项目
选择菜单[设置|仿真器设置]或双击项目窗口的第一行来打开“仿真器设置”对话框。
在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。
在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。
如果你的程序是C语言或INTEL格式的汇编语言,可根据你安装的Keil编译器版本选择“KeilC”。
在“通信设置”进行端口选择,并测试。
按“好”键确定。
如果仿真器和仿真头设置正确,就会显示如图的硬件仿真确认对话框。
即完成仿真器设置。
如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器等选择是否有错,检查纠正错误后,再次确认。
直至显示硬件仿真确认对话框完成仿真器设置。
7.编译程序
选择菜单[项目|编译]功能或按编译快捷图标或按F9键,编译项目。
在编译过程中,如果有错可以在信息窗口中显示出来。
双击错误信息,可以在源程序中定位所在行。
纠正错误后,再次编译直到没有错误。
在编译之前,软件会自动将项目和程序存盘。
在编译没有错误后,就可以执行、调试程序了。
8.执行、调试程序
有四种方法执行程序:
全速执行、程序单步跟踪、执行到光标处和设置断点。
(1)全速执行
按图所示方式执行程序,观察结果(直接从实验箱观察或参见12(5)),如果程序与预想的结果不符,可按以下三种方式调试程序。
(2)程序单步跟踪
选择[执行|跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。
单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。
你可以观察程序每步执行的结果,“=>
”所指的就是下次将要执行的指令。
由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。
源程序窗口最左边的“o”代表此行为有效程序,即产生了可以执行的机器码。
到“Delay”延时子程序中,在程序行“DJNZR0,DLP”指令中的“R0”符号上单击就可以观察“R0”的值,观察一下“R0”的值,可以看到“R0”在逐渐减少。
因为当前指令要执行256次才到下一步,整个延时程序要单步执行3×
256×
256次才能完成。
(3)执行到光标处
将光标移到程序想要暂停的地方,本例中为延时程序返回后的“SJMPLOOP”行。
选择菜单[执行|执行到光标处]或按F4键。
程序全速执行到光标所在行。
如果想下次不想单步调试“Delay”延时程序里的内容,可以按F8键单步执行但不会跟踪到子程序内部。
(4)设置断点
点击[执行|设置/取消断点]或用Ctrl+F8组合键设置断点。
如果断点有效图标为“红圆红底”,无效断点的图标为“红圆绿底”。
断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。
(5)观察各变量值的方法
A.点击[窗口|项目窗口]或[窗口|CPU窗口]可观察到SFR、REG、WATCH(如果设置有观察项)的值,自动跟踪程序执行。
例如点击SFR中的P1可观察本例中P1口各位的变化,如图所示。
B.点击[窗口|数据窗口|DATA]可观察片内数据区的变化。
C.点击[窗口|数据窗口|CODE]可观察代码存储区的内容。
D.点击[窗口|数据窗口|XDATA]可观察片外数据区的变化。
(与CODE是同一个窗口,注意:
有切换按钮,突起的为有效。
)
E.点击[窗口|数据窗口|BIT]可观察片内数据区中位数据区的变化。
五、思考题
1.改写实验程序实现流水灯功能。
写出源程序。
2.在执行调试程序过程中,遇到了哪些问题?
你是如何解决的?
教师签字
日期
一、实验目的
1.学习WINDOWS平台下的编辑、编译、排错、调试方法。
2.学习修改和观察变量的方法;
综合使用单步、断点调试的方法。
3.了解数据排序的简单算法。
二、实验内容
编写并调试一个排序子程序,其功能为用冒泡法将外部RAM(2040H—2049H)中10个单字节无符号数,按从大到小的次序重新排列,并把结果放在外部RAM(2050H—2059H)区域。
三、实验器材
安装了WAVE6000集成调试环境软件的计算机1台。
四、实验说明
本程序采用的是“冒泡排序”法。
算法是将一个数与后面的数相比较,如果比后面的数小,则交换,如此将所有的数比较一遍后,最小的数就会在数列的最后面。
再进行下一轮比较,找出第二小数据,直到全部数据有序。
五、程序框图(排序部分)
六、实验步骤
1.打开WAVE6000调试环境,打开“仿真器设置”对话框,选择好仿真器,并选择使用伟福软件模拟器。
2.根据流程图编写程序,并编译通过。
程序清单:
ORG0
LJMP0030H
ORG0030H
START:
MOVDPTR,
MOVR0,#40H
MOVR7,
LOOP0:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
R7,LOOP0
MOVPSW,#00H
MOVR2,
LOOP1:
MOVR0,#40H
MOVR1,#41H
MOV03H,R2
7FH
LOOP2:
MOVA,@R0
MOV30H,A
MOVA,@R1
CJNEA,30H,LOOP3
SJMPL1
LOOP3:
JCL1
XCHA,30H
MOV@R1,A
7FH
L1:
INCR1
DJNZR3,LOOP2
JNB7FH,LOOP4
DJNZR2,LOOP1
LOOP4:
LOOP5:
MOVA,@R0
MOVX@DPTR,A
DJNZR7,
END
3.打开XDATA数据窗口,在弹出的XDATA窗口中从2040H开始的单元中输入10个不同数。
4.打开DATA数据窗口,把打开的窗口进行并排,单步或跟踪运行程序,观察DATA数据窗口40H开始的单元和XDATA窗口2050H开始的单元内容的变化。
七、思考题
1.补全程序。
2.在排序前,程序对片外数据做了什么工作?
排序后,对结果又进行了什么处理?
并在源程序中标明。
3.编一程序把片内50H-59H中内容按从小到大的顺序排列。
一、实验目的:
掌握MCS-51单片机中断原理及编程使用方法。
1.G2200/2100实验平台1台2.仿真器/仿真板1台
3.连线若干根4.计算机1台
三、实验内容:
在实验一的基础上,增加中断功能。
如果中断请求得到响应,用L0-L7实现从右到左逐个点亮,直至中断请求撤消,中断返回。
四、连线方案
五、实验源程序
LJMP0030H
ORG
LJMPINT10
ORG0030H
MOVPSW,#00H
ORLIE,
ORLIP,#04H
MOVSP,#30H
MOVP1,#0;
CALLDelay
SJMPLOOP
MOVR2,#3;
延时程序
MOVR1,#0
MOVR0,#0
DJNZR0,DLP
DJNZR1,DLP
DJNZR2,DLP
RET
INT10:
PUSHPSW
PUSHP1
MOVPSW,#08H
MOVA,#01H
MOVR3,#16
MOVP1,A
A
DJNZR3,LOOP1
POPP1
POPPSW
RETI
END
1.按连线方案连线。
注意:
拨动开关K0置为高电位(打在上方)。
2.打开WAVE6000调试环境,打开“仿真器设置”对话框,设置好仿真器。
3.输入源程序,并编译通过。
4.执行程序。
在执行程序的过程中,将K0置为低电位(打在下方),表示有故障发生,再将K0置为高电位,观察现象。
2.在执行中断服务程序过程中,如果K0没有及时返回高电平,观察到什么现象?
如果K0及时返回高电平,又观察到什么现象?
解释原因。
3.如果希望用L0-L7实现从左到右逐个点亮,该改哪条指令,请写出原指令及更改后的指令。
4.分别去掉下列三组指令(已在原程序中标示出),执行程序时会发生什么现象?
请解释原因。
(1)MOVSP,#30H
(2)PUSHP1
:
POPP1
(3)MOVPSW,#08H
(基于PROTEUS软件)
1.掌握MCS-51单片机串行口方式0、方式1的工作原理;
2.了解方式0时的应用,即通过串行口扩展并行口,进行静态显示的方法;
3.掌握串行移位寄存器芯片74LS164的工作原理;
4.熟悉并掌握PROTEUS软件的使用方法。
利用串行口的工作方式0,将单片机的串口通过74LS164芯片转换成并口并驱动数码管循环依次显示0-9。
在PROTEUS软件中设计出相应的电路,并进行仿真。
装有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
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
1.在PROTEUS软件中设计相应的电路图。
2.编写相应的软件,并调试成功,生成.HEX文件。
3.将软件分别下载到相应的单片机中并运行,观察现象,直至仿真成功。
1.你在实验中是否采用了示范程序?
在做实验过程中遇到了哪些问题?
如何解决的?
2.如果在方式0的实验中想实现74LS164级联(即带多个数码管),如何实现?
你的实验是否做成功?
在实验过程中遇到了哪些问题?
是如何解决的?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)