《单片机原理及应用》实验指导书姓名:学号:专业班级:所在学院:成人教育学院2012年5月日单片机实验指导书目录实验一系统认识实验 (2)实验二程序调试 (4)实验三外部中断实验 (6)实验四串口实验 (8)实验一系统认识实验一、实验目的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的源程序窗口,在此窗口中输入以下程序ORG 0MOV P1,#0 ;熄灭发光二极管LOOP: INC P1CALL DelaySJMP LOOPDelay: MOV R2,#3 ;延时程序MOV R1,#0DLP: DJNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETEND8.保存程序选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能。
9.建立新的项目选择菜单[文件 | 新建项目]功能。
新建项目会自动分三步走。
(1)加入模块文件。
在加入模块文件的对话框中选择刚才保存的文件,按打开键。
如果你是多模块项目,可以同时选择多个文件再打开。
(2)加入包含文件。
在加入包含文件对话框中,选择所要加入的包含文件(可多选)。
如果没有包含文件,按取消键。
(3)保存项目。
在保存项目对话框中输入项目名称。
MY1无须加后缀。
软件会自动将后缀设成“.PRJ”。
按保存键将项目存在与你的源程序相同的文件夹下。
10.设置项目11.编译程序选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。
在编译过程中,如果有错可以在信息窗口中显示出来。
双击错误信息,可以在源程序中定位所在行。
纠正错误后,再次编译直到没有错误。
在编译之前,软件会自动将项目和程序存盘。
在编译没有错误后,就可以执行、调试程序了。
12.执行、调试程序有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。
(1)全速执行(2)程序单步跟踪选择[执行 | 跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。
(3)执行到光标处(4)设置断点(5)观察各变量值的方法六、思考题1.改写实验程序实现流水灯功能。
写出源程序。
ORG 0MOV P1,#01HLOOP: MOV A, P1RL AMOV P1,ACALL DelaySJMP LOOPDelay: MOV R2,#3 ;延时程序MOV R1,#0MOV R0,#0DLP: DJNZ R0,DLPDJNZ R1,DLPRETEND2.在执行调试程序过程中,遇到了哪些问题你是如何解决的(根据调试的实际情况填写:)(1)指令写错: MOV R1,#0 中的R1写成了字母Rl(2)程序编译不成功,没有加入源文件实验二程序调试一、实验目的1.学习WINDOWS平台下的编辑、编译、排错、调试方法。
2.学习修改和观察变量的方法;综合使用单步、断点调试的方法。
3.了解数据排序的简单算法。
二、实验内容编写并调试一个排序子程序,其功能为用冒泡法将外部RAM(2040H—2049H)中10个单字节无符号数,按从大到小的次序重新排列,并把结果放在外部RAM(2050H—2059H)区域。
三、实验器材安装了WAVE6000集成调试环境软件的计算机1台。
四、实验说明本程序采用的是“冒泡排序”法。
算法是将一个数与后面的数相比较,如果比后面的数小,则交换,如此将所有的数比较一遍后,最小的数就会在数列的最后面。
再进行下一轮比较,找出第二小数据,直到全部数据有序。
五、程序框图(排序部分)六、实验步骤1.打开WAVE6000调试环境,打开“仿真器设置”对话框,选择好仿真器,并选择使用伟福软件模拟器。
2.根据流程图编写程序,并编译通过。
程序清单:ORG 0 ORG 0030HMOV R0,#40HMOV R7, #10LOOP0:MOVX A,@DPTR MOV @R0,AINC DPTRINC R0DJNZ R7,LOOP0MOV PSW,#00HMOV R2, #9LOOP1:MOV R0,#40HMOV R1,#41HMOV 03H,R2CLR 7FHLOOP2:MOV A,@R0MOV 30H,AMOV A,@R1CJNE A,30H,LOOP3SJMP L1LOOP3:JC L1 MOV @R0,AXCH A,30HMOV @R1,ASETB 7FHL1: INC R0INC R1DJNZ R3,LOOP2JNB 7FH,LOOP4DJNZ R2,LOOP1 LOOP4:MOV DPTR, #2050H MOV R0,#40HMOV R7, #10 LOOP5:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7, LOOP5 END3.打开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实现从右到左逐个点亮,直至中断请求撤消,中断返回。
四、连线方案五、实验源程序ORG 0LJMP 0030HORG 0013HLJMP INT10ORG 0030HMOV PSW,#00HORL IE, #84HORL IP,#04HMOV SP,#30HMOV P1,#0 ;熄灭发光二极管LOOP: INC P1CALL DelaySJMP LOOPDelay: MOV R2,#3 ;延时程序MOV R1,#0MOV R0,#0DLP: DJNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETINT10: PUSH PSWPUSH P1MOV PSW,#08HMOV P1,#0 ;熄灭发光二极管MOV A,#01HMOV R3,#16LOOP1:MOV P1,ARL ACALL DelayDJNZ R3,LOOP1POP P1POP PSWRETIEND1.按连线方案连线。
注意:拨动开关K0置为高电位(打在上方)。
2.打开WAVE6000调试环境,打开“仿真器设置”对话框,设置好仿真器。
3.输入源程序,并编译通过。
4.执行程序。
在执行程序的过程中,将K0置为低电位(打在下方),表示有故障发生,再将K0置为高电位,观察现象。
七、思考题1.补全程序。
2.在执行中断服务程序过程中,如果K0没有及时返回高电平,观察到什么现象如果K0及时返回高电平,又观察到什么现象解释原因。
如果K0没有及时返回高电平,程序又一次进入中断,LED灯再次循环点亮16次,中断被多次触发。
如果K0及时返回高电平,只响应一次中断。
原因是,程序中中断设置为低电平触发方式。
3.如果希望用L0-L7实现从左到右逐个点亮,该改哪条指令,请写出原指令及更改后的指令。
将LOOP1子程序中的 RL A,改为RR A指令。
实验四串行口实验(基于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:MOV SCON,#0MAIN1: MOV B,#0FFHMOV R0,#0AHLP: INC BLCALL DSPLYLCALL DL1SDJNZ R0,LPLJMP MAIN1DSPLY: MOV DPTR,#TABLEMOV A,BMOVC A,@A+DPTRMOV SBUF,ALP1: JNB TI,LP1CLR TIRETTABLE: DB 0C0H,0F9H,0A4HDB 0B0H,99H,92HDB 82H,0F8H,80H,90HDL1S: MOV R7,#10DL1: MOV R6,#200DL2: MOV R5,#250DL3: DJNZ R5,DL3DJNZ R6,DL2DJNZ R7,DL1RET思考题1.你在实验中是否采用了示范程序在做实验过程中遇到了哪些问题如何解决的采用了改示范程序,出现问题。