《单片机技术实验指导书(河北理工大学(简)》由会员分享,可在线阅读,更多相关《单片机技术实验指导书(河北理工大学(简)(18页珍藏版)》请在金锄头文库上搜索。
1、单片机技术实验指导书河北联合大学轻工学院概述本文中所述之实验,均以河北联合大学轻工学院电子技术综合实验平台学习系统为平台。本文主要讲述了将电子技术综合实验平台配置为单片机实验系统时的实验设置、实验原理以及实验步骤等。由于电子技术综合实验平台的模块化设计,产品的选购与配置灵活多样,而实验的设置与此有关,不可能一一详述。所以下文均参照几种常用配置,在相应的章节开始处会给出对应的详细配置表。如果实际选购的模块与文中的配置不同,请在实际使用时做出相应调整。如果您需要更多的信息,请与河北联合大学轻工学院电气信息实验中心联系。目录概述1目录2第一章 单片机应用基础实验3实验1-1、单片机开发环境的熟悉实验
2、3一、实验目的3二、实验设备3三、实验要求3四、实验原理3五、实验步骤3六、实验报告10第二章 输入输出类实验11实验2-1、数码管静态显示实验11一、实验目的11二、实验设备11三、实验要求11四、实验原理11五、实验步骤11六、实验报告12实验2-2、独立式键盘输入实验13一、实验目的13二、实验设备13三、实验要求13四、实验原理13五、实验步骤13六、实验报告14实验2-3、数码管动态扫描显示实验15一、实验目的15二、实验设备15三、实验要求15四、实验原理15五、实验步骤15六、实验报告16第三章 综合性实验17实验3-1、中断定时实验17一、实验目的17二、实验设备17三、实验要
3、求17四、实验报告17第一章 单片机应用基础实验实验1-1、单片机开发环境的熟悉实验一、实验目的认识单片机开发的软硬件工具,了解单片机开发的一般流程,为以后的实验和开发奠定基础。二、实验设备1 单片机仿真器及单片机集成开发软件keil。2 51单片机核心卡3 发光二极管阵列模块三、实验要求将单片机核心卡的P0口和一列发光二极管阵列相连接,使得8个发光二极管依次被点亮并且不断循环四、实验原理单片机开发的一般流程大致可分为:1 需求分析2 单片机选型和电路设计、程序规划3 印刷电路板的制作和元器件焊接4 程序流程图的绘制5 编写源代码6 程序的编译连接7 下载到仿真器然后仿真运行8 除错修改直至电
4、路和程序功能调试正常9 烧写单片机,完成样机制作10.可靠性实验,批量试制直至批量生产以上步骤随开发人员的工作习惯和开发项目的复杂程度可能会有所不同。对于我们的实验来说,一般只需要完成其中的第4步到第8步的工作即可,但是在之前要正确的实验连线。其中,第5步到第8步,即源程序的编写、编译连接、下载运行、除错,都可以在单片机集成开发软件KEIL中完成。具体的方法,将在实验步骤中逐步讲解。五、实验步骤5.1操作环境建立1实验连线示例如下图:2连接仿真头和8051单片机核心卡,注意仿真头的方向要和芯片座一致。3打开电子技术综合实验平台的电源,在实验箱的右侧面,并按上面的连线图连线。4.在硬盘上建立一个
5、文件夹,比如在桌面上建立一个名为“LED”的文件夹,当然也可以是其他名字。 5.启动 Keil C51 软件。您可以通过双击电脑桌面上的“Keil uVision3”快捷方式图标来启动。 6.执行Keil C51 软件的菜单“Project | New Project”,弹出一个名为“Create New Project”的对话框。输入工程文件的文件名,我们这里命名为“LED”,选择你要保存的路径,我们这里保存到刚才建立的“LED”目录中。 7.紧接着Keil C51弹出“Options for Target Target 1。要求你为刚才的项目选择一个CPU,我们选择ATMEL公司的AT89
6、S52。选择AT89S52后,右边一栏是对该单片机的基本说明,然后点击确定。8.接下来弹出一个如下图所示的对话框。该对话框提示你是否要把标准 8051 的启动代码添加到项目中去。Keil C51既支持 C 语言编程也支持汇编语言编程。如果打算用汇编语言写程序,则应当选择“(N)”。如果打算用 C 语言写程序,一般也选择“(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。在这里,我们选择“ (N)”,即不添加启动代码。 至此,一个空的 Keil C51项目建立完毕。 9.执行菜单“File | New”,出现一个名为“Text 1”的文档。 接着执行菜单“File
7、| Save”,弹出一个名为“Save As”的对话框。将文件名改为”LED.ASM”,然后保存。10.添加源程序文件到工程中。现在,一个空的源程序文件“LED.ASM”已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中去。单击 Keil C51 软件左边项目工作窗口“Target 1”上的“”,将其展开。然后右击“Source Group 1”文件夹,会弹出如下图所示的选择菜单。单击其中的“Add Files to Group Source Group 1”项,将弹出如下图所示的对话框。11.先选择文件类型为“Asm Source file (*.s*;
8、*.src; *.a*)”,这时,对话框内将出现刚才保存过的“LED.ASM”。单击文件“LED.ASM”,再按一次“Add”按钮,最后按“Close”按钮。这时,源程序文件“LED.ASM”已经出现在项目工作窗口的“Source Group 1”文件夹内,可以单击左边的“ +”展开查看。12.现在开始编写源程序。先最大化“LED.ASM”源程序窗口,然后输入程序代码,输入完成后,别忘了点击一次保存按钮。 13.点击工具栏“Options for target”按钮,如下图箭头所示。这时会弹出“Options for Target Target 1”对话框。 “Xtal”:定义CPU时钟,填写
9、我们实际使用的晶振频率,假设是11.0592M的晶振,在“Xtal”后边框中填入“11.0592”。下面依次是编译的存储模式,程序空间大小等设置,均使用默认值即可。5.2 仿真器的软件设置 1.点击Keil的工具栏按钮 ,在弹出的对话框中选择“Debug”选项页。参见图3.13中的设置步骤进行设置。 在下拉框中如果没有发现SOFI ICE52B Emulator/Programmer选项, 可能是没有安装ICE52B的仿真驱动程序。2.接着点击Debug选项页中,右上角的Settings按钮。软件会弹出ICE52的仿真/编程设置对话框。 对于ICE52的仿真部分只有唯一的一个选项,即是否开启运
10、行中停止功能(夭折功能)。当开启该功能之后,用户不可以使用代码区域中0x003b处的三个字节,这个三个字节需要被仿真器占用。请参考后面 “调试程序”的“暂停功能”介绍。 回到“Options for Target”,按“确定”按钮,完成设置。 3.进行完以上设置后,编译该项目,检测编译结果。编译无误后,便可进行仿真功能操作。点击工具栏按钮启动调试模式, 代码便开始下载到仿真头中,下载完成后,Keil的信息输出窗口显示如下图所示。 接下来就可以点击Debug菜单下的仿真命令或者相应的工具栏按钮, 即可进行仿真操作. 包括全速运行,单步运行,跨步运行,断点的设置/取消等等。观察/修改变量值、观察/
11、修改存储器数据等操作。如果Keil弹出下图提示信息框,标明仿真器与仿真头通讯失败!请按提示信息的内容检查。另外请参照前面图3.13检查是否选择了正确的Keil驱动,如果USB驱动未正确安装,也会导致连接失败。5.3 调试程序 1.断点设置与取消 ICE52最大可以支持19个固定断点(即地址断点)和一个临时断点(用于跨步运行)。断点的设置与取消操作比较简单,仅需要将光标移到相应的源代码行,然后点击的Debug菜单中的Insert/Remove Breakpoint或者按一下键盘的F9键即可。在断点使能后,在当前源代码行的前面会显示一个红色的方块标志,如下图所示. 用户设置的地址断点不可以超过19
12、个,如果断点超过该限制,在开始全速运行或跨步运行时,Keil会在Command窗口中显示如下图所示的提示信息: 超过数量的断点将自动被禁用,禁用的断点会显示成灰白色,如下图所示: 2.仿真运行 进入仿真模式之后,可以通过菜单Debug已经相应的工具栏按钮执行相应的运行操作。 3.暂停功能 暂停功能也叫夭折功能,在仿真器全速运行过程中,可以点击Keil工具栏的按钮,或者是菜单【Debug】【Stop Running】将仿真器暂停下载,暂停后可以再次点击全速/单步运行和跨步运行。 此功能是一个可选项,需在ICE52对话框中进行设置,只有勾选此选项后,该功能才有效。 开启该功能后, 仿真器需要占用代
13、码空间的003BH的三字节空间,用户的代码不可以使用该区域。对于C语言程序可以使用如下的代码将该空间进行保留。 char code reserve 3 _at_ 0x3b; / 保留三字节对于汇编语言, 可以直接将主程序跳过该区域, 如将主程序定位在0040H之后,代码如下: ORG 0000HLJMP MAINORG 0040HMAIN:;主程序开始 该功能借助51的单片机的内部的中断功能实现,所以在用户的代码中不可以关闭中断功能(例如将EA设为了0),否则仿真器运行后,将无法暂停。软件会显示如下所示的提示: 4.仿真扩展RAM 仿真监控CPU是一个增强型的51单片机,片内已带有768字节的
14、扩展RAM,在默认模式(上电复位后),MOVX指令对地址范围000H2FFH的读写操作,将直接访问片内的扩展RAM,当地址超过2FFH时,才会访问片外扩展的RAM。 如果需要直接访问片外RAM,可以将片内的扩展RAM禁用,通过设置AUXR寄存器的EXTRAM位为1即可。5.脱机运行 POD52仿真头支持脱机运行, 直接将POD52仿真头插入目标板的CPU插座, 仿真头便会自动运行上一次的调试过的程序。 脱机运行的程序也可以通过Keil的Flash Download功能重新下载。在ICE52的设置对话框中的下载编程设置区内选中“下载到仿真适配头 (POD52)”, 然后执行Keil的Flash
15、Download命令, Keil自动将程序下载到仿真适配头的CPU内, 然后开始全速运行,运行效果与一个真实的CPU完全相同。 6.退出仿真 点击工具栏按钮即可停止调试,退出仿真状态!六、实验报告1请写出完成一个单片机实验的一般步骤2在本实验中,遇到了哪些问题?是什么原因?如何解决的?3如果去掉程序中的延时,结果如何?第二章 输入输出类实验实验2-1、数码管静态显示实验一、实验目的1.学习静态显示的工作原理;2.学习静态显示的电路接口设计及程序设计。二、实验设备1仿真器2单片机核心卡3数码管静态显示模块三、实验要求要求在2位数码管中显示“1、2”两个字符,隔2秒钟后显示“3、4”两个字符,持续两秒钟后重复上述过程。四、实