您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 单片机实验指导书(成教)
单片机实验报告册河南理工大学电气学院专业班级学号姓名1目录实验一系统认识实验实验二程序调试实验三外部中断实验实验四串行口实验2实验一系统认识实验一、实验目的1.熟悉单片机系统开发软件WAVE6000。2.熟悉Proteus软件使用。二、实验设备1.计算机1台三、实验内容P1端口接发光二极管,加1点亮。四、实验步骤1.在Proteus软件内设计系统原理图1)打开ISIS6Professional\ISIS6Professional.exe软件,如下图所示。2)添加元器件,设计系统原理图元件列表如下:序号元件名称备注1AT89C52单片机2MINRES100R100欧姆电阻3LED-GREEN绿色发光二极管4POWER电源32.在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:3.建立新程序(如果程序已编好,直接跳到第5步)选择菜单[文件|新建文件]功能。出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序ORG0MOVP1,#0;熄灭发光二极管LOOP:INCP1CALLDelaySJMPLOOPDelay:MOVR2,#3;延时程序MOVR1,#0MOVR0,#0DLP:DJNZR0,DLPDJNZR1,DLPDJNZR2,DLPRETEND4.保存程序选择菜单[文件|保存文件]或[文件|另存为]功能。给出文件所要保存的位置,例如:C:\WAVE6000\SAMPLES文件夹,再给出文件名MY1.ASM。保存文件。文件保存后,程序窗口上文件名变成了:C:\WAVE6000\SAMPLES\MY1.ASM保存文件所在路径文件名,后缀为ASM4如果使用硬件环境,需取消选中标志5.建立新的项目选择菜单[文件|新建项目]功能。新建项目会自动分三步走。(1)加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。(2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。(3)保存项目。在保存项目对话框中输入项目名称。MY1无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。项目保存好后,如果项目窗口是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单[窗口|项目窗口]功能来打开。6.设置项目选择菜单[设置|仿真器设置]或双击项目窗口的第一行来打开“仿真器设置”对话框。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C语言或INTEL格式的汇编语言,可根据你安装的Keil编译器版本选择“KeilC”。在“通信设置”进行端口选择,并测试。按“好”键确定。如果仿真器和仿真头设置正确,就会显示如图的硬件仿真确认对话框。按“好”键确定。即完成仿真器设置。如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器等选择是否有错,检查纠正错误后,再次确认。直至显示硬件仿真确认对话框完成仿真器设置。5跟踪快捷键当前程序指针有效程序行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键单步执行但不会跟踪到子程序内部。点击[执行|全速执行]或点击快捷按钮6(4)设置断点点击[执行|设置/取消断点]或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆红底”,无效断点的图标为“红圆绿底”。断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。(5)观察各变量值的方法A.点击[窗口|项目窗口]或[窗口|CPU窗口]可观察到SFR、REG、WATCH(如果设置有观察项)的值,自动跟踪程序执行。例如点击SFR中的P1可观察本例中P1口各位的变化,如图所示。B.点击[窗口|数据窗口|DATA]可观察片内数据区的变化。C.点击[窗口|数据窗口|CODE]可观察代码存储区的内容。D.点击[窗口|数据窗口|XDATA]可观察片外数据区的变化。(与CODE是同一个窗口,注意:有切换按钮,突起的为有效。)E.点击[窗口|数据窗口|BIT]可观察片内数据区中位数据区的变化。五、思考题1.改写实验程序实现流水灯功能。写出源程序。2.在执行调试程序过程中,遇到了哪些问题?你是如何解决的?教师签字日期7实验二程序调试一、实验目的1.学习WINDOWS平台下的编辑、编译、排错、调试方法。2.学习修改和观察变量的方法;综合使用单步、断点调试的方法。3.了解数据排序的简单算法。二、实验内容编写并调试一个排序子程序,其功能为用冒泡法将外部RAM(2040H—2049H)中10个单字节无符号数,按从大到小的次序重新排列,并把结果放在外部RAM(2050H—2059H)区域。三、实验器材安装了WAVE6000集成调试环境软件的计算机1台。四、实验说明本程序采用的是“冒泡排序”法。算法是将一个数与后面的数相比较,如果比后面的数小,则交换,如此将所有的数比较一遍后,最小的数就会在数列的最后面。再进行下一轮比较,找出第二小数据,直到全部数据有序。五、程序框图(排序部分)六、实验步骤1.打开WAVE6000调试环境,打开“仿真器设置”对话框,选择好仿真器,并选择使用伟福软件模拟器。82.根据流程图编写程序,并编译通过。程序清单:ORG0LJMP0030HORG0030HSTART:MOVDPTR,MOVR0,#40HMOVR7,LOOP0:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0R7,LOOP0MOVPSW,#00HMOVR2,LOOP1:MOVR0,#40HMOVR1,#41HMOV03H,R27FHLOOP2:MOVA,@R0MOV30H,AMOVA,@R1CJNEA,30H,LOOP3SJMPL1LOOP3:JCL1MOV@R0,AXCHA,30HMOV@R1,A7FHL1:INCR0INCR1DJNZR3,LOOP2JNB7FH,LOOP4DJNZR2,LOOP1LOOP4:MOVDPTR,MOVR0,#40HMOVR7,LOOP5:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,END3.打开XDATA数据窗口,在弹出的XDATA窗口中从2040H开始的单元中输入10个不同数。4.打开DATA数据窗口,把打开的窗口进行并排,单步或跟踪运行程序,观察DATA数据窗口40H开始的单元和XDATA窗口2050H开始的单元内容的变化。七、思考题1.补全程序。2.在排序前,程序对片外数据做了什么工作?排序后,对结果又进行了什么处理?并在源程序中标明。3.编一程序把片内50H-59H中内容按从小到大的顺序排列。教师签字日期1实验三外部中断实验一、实验目的:掌握MCS-51单片机中断原理及编程使用方法。二、实验设备1.G2200/2100实验平台1台2.仿真器/仿真板1台3.连线若干根4.计算机1台三、实验内容:在实验一的基础上,增加中断功能。如果中断请求得到响应,用L0-L7实现从右到左逐个点亮,直至中断请求撤消,中断返回。四、连线方案五、实验源程序ORG0LJMP0030HORGLJMPINT10ORG0030HMOVPSW,#00HORLIE,ORLIP,#04HMOVSP,#30HMOVP1,#0;熄灭发光二极管LOOP:INCP1CALLDelaySJMPLOOPDelay:MOVR2,#3;延时程序MOVR1,#0MOVR0,#0DLP:DJNZR0,DLPDJNZR1,DLPDJNZR2,DLPRETINT10:PUSHPSWPUSHP1MOVPSW,#08HMOVP1,#0;熄灭发光二极管MOVA,#01HMOVR3,#16LOOP1:MOVP1,AACALLDelayDJNZR3,LOOP1POPP1POPPSWRETIEND六、实验步骤1.按连线方案连线。注意:拨动开关K0置为高电位(打在上方)。2.打开WAVE6000调试环境,打开“仿真器设置”对话框,设置好仿真器。3.输入源程序,并编译通过。4.执行程序。在执行程序的过程中,将K0置为低电位(打在下方),表示有故障发生,再将K0置为高电位,观察现象。七、思考题1.补全程序。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,#0MAIN1:MOVB,#0FFHMOVR0,#0AHLP:INCBLCALLDSPLYLCALLDL1SDJNZR0,LPLJMPMAIN1DSPLY:MOVDPTR,#TABLEMOVA,BMOVCA,@A+DPTRMOVSBUF,ALP1:JNBTI,LP1CLRTIRETTABLE:DB0C0H,0F9H,0A4HDB0B0H,99H,92HDB82H,0F8H,80H,90HDL1S:MOVR7,#10DL1:MOVR6,#200DL2:MOVR5,#250DL3:DJNZR5,DL3DJNZR6,DL2DJNZR7,DL1RET六、实验步骤1.在PROTEUS软件中设计相应的电路图。2.编写相应的软件,并调试成功,生成.HEX文件。3.将软件分别下载到相应的单片机中并运行,观察现象,直至仿真成功。七、思考题1.你在实
本文标题:单片机实验指导书(成教)
链接地址:https://www.777doc.com/doc-2606480 .html