单片机技术实验指导书河北联合大学.docx
- 文档编号:11372472
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:19
- 大小:816.28KB
单片机技术实验指导书河北联合大学.docx
《单片机技术实验指导书河北联合大学.docx》由会员分享,可在线阅读,更多相关《单片机技术实验指导书河北联合大学.docx(19页珍藏版)》请在冰豆网上搜索。
单片机技术实验指导书河北联合大学
单片机技术实验指导书
河北联合大学轻工学院
概述
本文中所述之实验,均以河北联合大学轻工学院电子技术综合实验平台学习系统为平台。
本文主要讲述了将电子技术综合实验平台配置为单片机实验系统时的实验设置、实验原理以及实验步骤等。
由于电子技术综合实验平台的模块化设计,产品的选购与配置灵活多样,而实验的设置与此有关,不可能一一详述。
所以下文均参照几种常用配置,在相应的章节开始处会给出对应的详细配置表。
如果实际选购的模块与文中的配置不同,请在实际使用时做出相应调整。
如果您需要更多的信息,请与河北联合大学轻工学院电气信息实验中心联系。
目录
概述1
目录2
第一章单片机应用基础实验3
实验1-1、单片机开发环境的熟悉实验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
三、实验要求17
四、实验报告17
第一章单片机应用基础实验
实验1-1、单片机开发环境的熟悉实验
一、实验目的
认识单片机开发的软硬件工具,了解单片机开发的一般流程,为以后的实验和开发奠定基础。
二、实验设备
1.单片机仿真器及单片机集成开发软件keil。
2.51单片机核心卡
3.发光二极管阵列模块
三、实验要求
将单片机核心卡的P0口和一列发光二极管阵列相连接,使得8个发光二极管依次被点亮并且不断循环
四、实验原理
单片机开发的一般流程大致可分为:
1.需求分析
2.单片机选型和电路设计、程序规划
3.印刷电路板的制作和元器件焊接
4.程序流程图的绘制
5.编写源代码
6.程序的编译连接
7.下载到仿真器然后仿真运行
8.除错修改直至电路和程序功能调试正常
9.烧写单片机,完成样机制作
10.可靠性实验,批量试制直至批量生产
以上步骤随开发人员的工作习惯和开发项目的复杂程度可能会有所不同。
对于我们的实验来说,一般只需要完成其中的第4步到第8步的工作即可,但是在之前要正确的实验连线。
其中,第5步到第8步,即源程序的编写、编译连接、下载运行、除错,都可以在单片机集成开发软件KEIL中完成。
具体的方法,将在实验步骤中逐步讲解。
五、实验步骤
5.1操作环境建立
1.实验连线示例如下图:
2.连接仿真头和8051单片机核心卡,注意仿真头的方向要和芯片座一致。
3.打开电子技术综合实验平台的电源,在实验箱的右侧面,并按上面的连线图连线。
4.在硬盘上建立一个文件夹,比如在桌面上建立一个名为“LED”的文件夹,当然也可以是其他名字。
5.启动KeilC51软件。
您可以通过双击电脑桌面上的“KeiluVision3”快捷方式图标来启动。
6.执行KeilC51软件的菜单“Project|NewProject…”,弹出一个名为“CreateNewProject”的对话框。
输入工程文件的文件名,我们这里命名为“LED”,选择你要保存的路径,我们这里保存到刚才建立的“LED”目录中。
7.紧接着KeilC51弹出“OptionsforTarget‘Target1’。
要求你为刚才的项目选择一个CPU,我们选择ATMEL公司的AT89S52。
选择AT89S52后,右边一栏是对该单片机的基本说明,然后点击确定。
8.接下来弹出一个如下图所示的对话框。
该对话框提示你是否要把标准8051的启动代码添加到项目中去。
KeilC51既支持C语言编程也支持汇编语言编程。
如果打算用汇编语言写程序,则应当选择“(N)”。
如果打算用C语言写程序,一般也选择“(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。
在这里,我们选择“(N)”,即不添加启动代码。
至此,一个空的KeilC51项目建立完毕。
9.执行菜单“File|New…”,出现一个名为“Text1”的文档。
接着执行菜单“File|Save”,弹出一个名为“SaveAs”的对话框。
将文件名改为”LED.ASM”,然后保存。
10.添加源程序文件到工程中。
现在,一个空的源程序文件“LED.ASM”已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。
我们需要把它添加到工程中去。
单击KeilC51软件左边项目工作窗口“Target1”上的“+”,将其展开。
然后右击“SourceGroup1”文件夹,会弹出如下图所示的选择菜单。
单击其中的“AddFilestoGroup'SourceGroup1'”项,将弹出如下图所示的对话框。
11.先选择文件类型为“AsmSourcefile(*.s*;*.src;*.a*)”,这时,对话框内将出现刚才保存过的“LED.ASM”。
单击文件“LED.ASM”,再按一次“Add”按钮,最后按“Close”按钮。
这时,源程序文件“LED.ASM”已经出现在项目工作窗口的“SourceGroup1”文件夹内,可以单击左边的“+”展开查看。
12.现在开始编写源程序。
先最大化“LED.ASM”源程序窗口,然后输入程序代码,输入完成后,别忘了点击一次保存按钮。
13.点击工具栏“Optionsfortarget”按钮,如下图箭头所示。
这时会弹出“OptionsforTarget‘Target1’”对话框。
“Xtal”:
定义CPU时钟,填写我们实际使用的晶振频率,假设是11.0592M的晶振,在“Xtal”后边框中填入“11.0592”。
下面依次是编译的存储模式,程序空间大小等设置,均使用默认值即可。
5.2仿真器的软件设置
1.点击Keil的工具栏按钮,在弹出的对话框中选择“Debug”选项页。
参见图3.13中的设置步骤进行设置。
在下拉框中如果没有发现SOFIICE52BEmulator/Programmer选项,可能是没有安装ICE52B的仿真驱动程序。
2.接着点击Debug选项页中,右上角的Settings按钮。
软件会弹出ICE52的仿真/编程设置对话框。
对于ICE52的仿真部分只有唯一的一个选项,即是否开启运行中停止功能(夭折功能)。
当开启该功能之后,用户不可以使用代码区域中0x003b处的三个字节,这个三个字节需要被仿真器占用。
请参考后面“调试程序”的“暂停功能”介绍。
回到“OptionsforTarget…”,按“确定”按钮,完成设置。
3.进行完以上设置后,编译该项目,检测编译结果。
编译无误后,便可进行仿真功能操作。
点击工具栏按钮启动调试模式,代码便开始下载到仿真头中,下载完成后,Keil的信息输出窗口显示如下图所示。
接下来就可以点击Debug菜单下的仿真命令或者相应的工具栏按钮,即可进行仿真操作.包括全速运行,单步运行,跨步运行,断点的设置/取消等等。
观察/修改变量值、观察/修改存储器数据等操作。
如果Keil弹出下图提示信息框,标明仿真器与仿真头通讯失败!
请按提示信息的内容检查。
另外请参照前面图3.13检查是否选择了正确的Keil驱动,如果USB驱动未正确安装,也会导致连接失败。
5.3调试程序
1.断点设置与取消
ICE52最大可以支持19个固定断点(即地址断点)和一个临时断点(用于跨步运行)。
断点的设置与取消操作比较简单,仅需要将光标移到相应的源代码行,然后点击的Debug菜单中的Insert/RemoveBreakpoint或者按一下键盘的F9键即可。
在断点使能后,在当前源代码行的前面会显示一个红色的方块标志,如下图所示.
用户设置的地址断点不可以超过19个,如果断点超过该限制,在开始全速运行或跨步运行时,Keil会在Command窗口中显示如下图所示的提示信息:
超过数量的断点将自动被禁用,禁用的断点会显示成灰白色,如下图所示:
2.仿真运行
进入仿真模式之后,可以通过菜单Debug已经相应的工具栏按钮执行相应的运行操作。
3.暂停功能
暂停功能也叫夭折功能,在仿真器全速运行过程中,可以点击Keil工具栏的按钮,或者是菜单【Debug】→【StopRunning】将仿真器暂停下载,暂停后可以再次点击全速/单步运行和跨步运行。
此功能是一个可选项,需在ICE52对话框中进行设置,只有勾选此选项后,该功能才有效。
开启该功能后,仿真器需要占用代码空间的003BH的三字节空间,用户的代码不可以使用该区域。
对于C语言程序可以使用如下的代码将该空间进行保留。
charcodereserve[3]_at_0x3b;//保留三字节
对于汇编语言,可以直接将主程序跳过该区域,如将主程序定位在0040H之后,代码如下:
ORG0000H
LJMPMAIN
ORG0040H
MAIN:
;主程序开始
该功能借助51的单片机的内部的中断功能实现,所以在用户的代码中不可以关闭中断功能(例如将EA设为了0),否则仿真器运行后,将无法暂停。
软件会显示如下所示的提示:
4.仿真扩展RAM
仿真监控CPU是一个增强型的51单片机,片内已带有768字节的扩展RAM,在默认模式(上电复位后),MOVX指令对地址范围000H~2FFH的读写操作,将直接访问片内的扩展RAM,当地址超过2FFH时,才会访问片外扩展的RAM。
如果需要直接访问片外RAM,可以将片内的扩展RAM禁用,通过设置AUXR寄存器的EXTRAM位为1即可。
5.脱机运行
POD52仿真头支持脱机运行,直接将POD52仿真头插入目标板的CPU插座,仿真头便会自动运行上一次的调试过的程序。
脱机运行的程序也可以通过Keil的FlashDownload功能重新下载。
在ICE52的设置对话框中的下载编程设置区内选中“下载到仿真适配头(POD52)”,然后执行Keil的FlashDownload命令,Keil自动将程序下载到仿真适配头的CPU内,然后开始全速运行,运行效果与一个真实的CPU完全相同。
6.退出仿真
点击工具栏按钮即可停止调试,退出仿真状态!
六、实验报告
1.请写出完成一个单片机实验的一般步骤
2.在本实验中,遇到了哪些问题?
是什么原因?
如何解决的?
3.如果去掉程序中的延时,结果如何?
第二章输入输出类实验
实验2-1、数码管静态显示实验
一、实验目的
1.学习静态显示的工作原理;
2.学习静态显示的电路接口设计及程序设计。
二、实验设备
1.仿真器
2.单片机核心卡
3.数码管静态显示模块
三、实验要求
要求在2位数码管中显示“1、2”两个字符,隔2秒钟后显示“3、4”两个字符,持续两秒钟后重复上述过程。
四、实验原理
数码管的静态输入在很多的仪表中经常见到,因为仪表用于显示的位数一般在两到三位,再加上静态显示的高亮度,因此它在现实中同样得到了很多的应用。
由于静态输入,数码管的每个段都占用了一根控制线,因此,单片机不必进行不间断的扫描,就能实现数码管的稳定显示,从而减轻了CPU的工作负担。
因为单片机的输出驱动电流不大,为增加数码管的亮度,在单片机输出口和数码管之间常常使用接口芯片驱动。
数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。
对于“共阴极”的数码管,内部每个发光二极管的阴极被接在一起,成为该各段的公共端,在静态显示中,公共端是常通的;发光二极管的阳极则成为段选线。
对于“共阳极”数码管,则正好相反,内部发光二极管的阳极接在一起,阴极成为段选线。
这两种数码管的驱动方式是不同的。
数码管的段位顺序如右图所示:
如果P0口由从低位到高位的顺序连接abcdefgdp,要在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入06H。
则使用下面的语句即可点亮数码管:
MOVP0,#06H
相反地,如果P0口由从高位到低位的顺序连接abcdefgdp,要在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入60H。
则使用下面的语句即可点亮数码管:
MOVP0,#60H
本实验所用为共阴极数码管。
五、实验步骤
1.用导线把数码管静态显示模块和单片机的系统核心卡的某个端口连接。
例如下图:
2.编制程序。
3.将程序调入仿真器进行调试,直至达到实验要求。
六、实验报告
1.写出在一个由从低位到高位的顺序连接abcdefgdp的共阴极数码管上显示0-9对应的段选码。
实验2-2、独立式键盘输入实验
一、实验目的
1.认识独立式键盘工作原理;
2.学习独立式键盘的接口设计。
二、实验设备
1.单片机核心卡
2.仿真器
3.独立式按键模块
4.静态数码管显示模块
三、实验要求
要求由8个独立按键和1个静态数码管组成实验电路,当按下0~7号按键时数码管显示相应的按键号。
四、实验原理
在单片机的应用中独立按键是最常用的输入设备,用来输入用户指令、状态选择等信号。
独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。
因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。
独立式键盘电路配置灵活,软件结构简单。
但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。
下面介绍独立式按键的接口方法。
下图(a)为中断方式的独立式键盘工作电路,图(b)为查询方式的独立式按键工作电路,按键直接与89C51的I/O口线相接,通过读I/O口,判定各I/O口线的电平状态,即可识别出按下的按键。
(a)中断方式 (b)查询方式
独立式键盘接口电路
此外,也可以用扩展I/O口连接独立式键盘接口电路。
上述独立式键盘电路中,各按键开关均采用了上拉电阻,这是为了保证在按键断开时,各I/O口线有确定的高电平。
在我们的键盘模块中,已经在键盘输出端加上了上拉电阻,因此不用再额外加上。
五、实验步骤
1.按照下面的示例图,用导线正确连接独立式按键、发光二极管实验模块和单片机核心卡。
2.编写程序。
3.将程序调入仿真器进行调试。
六、实验报告
1.画出接口电路原理图,并简要分析电路工作原理。
2.给出针对实验要求编写的程序清单、程序流程图、并给予适当注释。
3.独立式键盘的工作的原理是什么?
4.独立式键盘的消抖的方法是什么?
实验2-3、数码管动态扫描显示实验
一、实验目的
1.学习数码管动态扫描的工作原理;
2.学习数码管动态扫描的电路接口设计及程序编写。
二、实验设备
1.仿真器
2.单片机核心卡
3.数码管动态显示模块
三、实验要求
使8位数码管显示每个人学号的后8位。
四、实验原理
在多位8段数码管显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个单片机的8位I/O口控制,形成段选线的多路复用。
而各位数码管的共阳极或共阴极分别由单片机独立的I/O口线控制,顺序循环地点亮每位数码管,这样的数码管驱动方式就称为“动态扫描”。
在这种方式中,虽然每一时刻只选通一位数码管,但由于人眼具有一定的“视觉残留”,只要延时时间设置恰当,便会感觉到多位数码管同时被点亮了。
6位8段数码管动态显示器电原理图如下图所示。
6位8段数码管动态显示器电原理图
五、实验步骤
1.6位共阴极数码管动态扫描显示的单片机电路连线如下图所示,
2.编制程序,示例程序见配套光盘。
3.将程序调入仿真器进行调试,直至达到实验要求。
六、实验报告
1.画出实验电路原理图,并简要分析电路的执行过程。
2.画出单片机程序的流程图,给出程序清单,并给予适当注释。
3.如果将数码管换成共阳极,电路中要做那些修改?
程序中要做哪些修改,给出共阳
极数码管动态扫描显示的电路和程序清单。
4.实验过程中遇到哪些问题,是如何解决的?
第三章综合性实验
实验3-1、中断定时实验
一、实验目的
1.学习中断机理;
2.学习定时器定时的方法。
二、实验设备
1.仿真器
2.单片机核心卡
3.数码管动态显示模块,LED点阵模块
三、实验要求
使8位数码管显示“06-ZdHXX”(06自动化XX班)或“06--YbXX”(06仪表XX班)字样,间隔2秒后显示每个人学号的后8位,再间隔2秒后重复上述过程;在此基础上,同时点亮流水灯,每灯点亮间隔时间1.5S或可随意设定间隔时间(由定时器设定)。
四、实验报告
1.画出实验电路原理图,并简要分析电路的执行过程。
2.画出单片机程序的流程图,给出程序清单,并给予适当注释。
3.实验过程中遇到哪些问题,是如何解决的?
五.提高部分
1.在此基础上,同时点量一个静态数码管,从0~F循环显示,显示时间大约1S一个数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 技术 实验 指导书 河北 联合 大学