1、单片机实验指导书伟福前 言单片机原理及应用是电子、自动化控制等相关专业的一门专业必修课,随着交通技术的不断发展,单片机在交通控制、信息等方面的应用也越来越广泛。由于单片机实践性强,理论与实际结合紧密,传统的教学方法不能较好的适应教学的需要。为提高教学效果,我们从最简单的实际问题出发,设计了一些由易到难,由纯软件到要求硬、软件结合,综合性较强的题目。每个题目的内容分为两个部分:基础部分:给出源程序,要求学生在阅读分析理解的基础上,画出程序流程图,完成题目内容(包括编辑源程序、编译仿真调试、实际运行通过);提高部分:在充分掌握第1部分内容的基础上,独立编程完成功能要求更高的课题程序。要求学生课外理
2、解、编写提高部分的程序,上机调试通过。我们采用提出任务学习相关知识解决实际问题总结提高这样一个教学过程,使学生在解决实际问题的过程中学习提高,培养较强的实践能力。这种从实践理论再回到实际的探索性的教学方法,能有效的提高学生的学习兴趣,符合人们的客观认知规律。我们通过四章的内容来完成单片机实验课程:第一章 介绍伟福硬件仿真器及其仿真软件,即程序开发环境第二章 介绍实验开发板的功能、电路原理第三章 程序设计 从基础程序设计到应用实例设计,其中包括12个实际课题第一节 开发软件的使用第二节 基础程序设计一、算术运算题 1加、减法基本运算程序 2乘、除法基本程序 3二十进制调整基本程序 二、控制转移和
3、子程序调用第三节 应用实例设计一、 简单单片机应用实例设计二、 按钮控制发光二极管三、 定时器实现流水灯控制四、MCS-51存储器系统设计五、MCS-51 I/O接口设计与应用六、串口通讯七、参考课题第四章 附录部分 附录一 PC与MCU串行通信的应用设计方法附录二 KEIL C51 编译器简介 附录三 串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用第一章 仿真器及仿真软件简介第一节 伟福硬件仿真器简介伟福仿真器采用主机+POD(仿真头)组合的形式构成,通过更换POD,可以对各种CPU进行仿真。对于不同的应用场合,用户可选择不同的CPU,而不需要更换主机,伟福仿真软件WINDO
4、WS版本支持本公司多种仿真器。支持多类CPU仿真。仿真器则采用主机+POD组合,通过更换不同的POD,可对各种不同类型的单片机进行仿真。为用户提供了一种灵活的多CPU仿真系统。其主要特点表现在以下几个方面:1双平台DOS版本和WINDOWS版本。其中WINDOWS版本功能强大。中、英文界面可任选,用户源程序的大小不再有任何限制,支持ASM,C,PLM语言混合编程,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。本操作系统一经推出,立即受到广
5、大用户的喜爱。2双工作模式软件模拟仿真(不要仿真器也能模拟仿真)。硬件仿真。双CPU结构,100% 不占用户资源。全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。3双集成环境编辑、编译、下载、调试全部集中在一个环境下。多种仿真器,多类CPU仿真全部集成在一个环境下。可仿真51系列,196系列,PIC系列,飞利蒲公司的552LPC764DALLAS320,华邦438等51增强型CPU。为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器。他们由不同的厂家开发,相互不兼容,使用不同的界面。学习使用都很吃力。伟福 WIN
6、DOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。第二节 仿真头介绍1 PODH8X5X 仿真头 图1-1 PODH8X5X仿真头示意图图1-2 仿真器与PODH8X5X 仿真头连接图 PODH8X5X 运用PHILIPS授权的HOOKS技术,用PHILIPS芯片作为仿真芯片,来仿真各类与MCS51兼容的MCU,仿真头的原有的P87C52可仿真通用的8X5X系列芯片,可将P87C52换成PHILIPS的P89C51Rx+或P89C51Rx2来仿真相应的MCU,也可以换成PHILIPS
7、的P89C66x用于仿真PHILIPS的P89C66x系列MCU。因为P89C51RD2和P89C66X内部带有扩展RAM,可以借用P89C51RD2或P89C66x来仿真带扩展RAM的CPU, 例如Winbond的78E58B、78E516。 PODH8X5X可以从外部引入仿真电源,来仿真2.7V5.5V用户电压,当用户需要仿真低电压时,将“电源选择跳线”接成“外部电源接入”方式即可。仿真头的低电压由用户板提供。注意:当用户想仿真低电压时,仿真头上的仿真CPU必须能工作于低电压状态。2仿真器外形示意图 仿真器外形如图1-3所示。仿真器使用9针串行口,与PC机用两头为孔的串行电缆连接。对于一些
8、只有USB口而没有串口的计算机,可以使用USB转串口电缆将USB转成串行口。图1-3 仿真器外形示意图第三节 仿真软件的安装1将光盘放入光驱,光盘会自动运行,出现安装提示。2选择“安装WINDOWS”软件。3按照安装程序的提示,输入相应内容。4继续安装,直至结束。第四节 快速入门1建立新程序选择菜单文件 | 新建文件功能,出现一个文件名为NONAME1 的源程序窗口,在此窗口中输入以下程序。见图1-4。ORG 0HMOV A,#0HMOV P1,#0HLoop:INC P1CALL DelaySJMP LoopDelay:MOV R2,#3HMOV R1,#0HMOV R2,#0HDLP: D
9、JNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETEND输出程序后的窗口如图1-4,现在要做的是将此文件存盘。2保存程序选择菜单文件 | 保存文件或文件 | 另存为 功能给出文件所要保存的位置,例如:C:WAVE6000SAMPLES 文件夹,再给出文件名MY1.ASM。保存文件。文件保存后,程序窗口上文件名变成了:C:WAVE6000SAMPLESMY1.ASM。3建立新的项目选择菜单文件 | 新建项目功能新建项目会自动分三步走。A) 加入模块文件。如图1-5,在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打
10、开。B) 加入包含文件。如图1-6,在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。C) 保存项目。如图1-7,在保存项目对话框中输入项目名称。MY1 无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。项目保存好后,如果项目是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单窗口 | 项目窗口功能来打开。可以通过仿真器设置快捷键或双击项目窗口第一行选择仿真器和要仿真的单片机。如图1-8所示。4设置项目选择菜单设置 | 仿真器设置功能或按“仿真器设置”快捷图标或双击
11、项目窗口的第一行来打开“仿真器设置”对话框。见图1-9。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C 语言或INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C (V4或更低)”还是“Keil C (V5或更高)”。按“好”键确定。当仿真器设置好后,可再次保存项目。图1-95编译你的程序 选择菜单项目 | 编译功能或按编译快捷图标或F9 键,编译你的项目。见图1-10。在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠正错误
12、后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了,首先我们来单步跟踪调试程序。图1-106单步调试程序选择执行 | 跟踪功能或按跟踪快捷图标或按F7 键进行单步跟踪调试程序单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=”所指的就是下次将要执行的程序指令。由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为有效程序,此行产生了可以指行的机器指令。见图1-11。程序单步跟踪到“Delay”延时子程序中,在程序行的“R0”符号上单击就可以
13、观察“R0”的值,观察一下“R0”的值,可以看到“R0”在逐渐减少。因为当前指令要执行256次才到下一步,整个延时子程序要单步执行3x256x256次才能完成,单步执行太慢了。没关系,我们有“执行到光标处”的功能,将光标移到程序想要暂停的地方,本例中为延时子程序返回后的“SJMP Loop”行。选择菜单执行 | 执行到光标处功能或F4 键或弹出菜单的“执行到光标处”功能。程序全速执行到光标所在行。如果想下次不想单步调试“Delay”延时子程序里的内容,可以按F8 键单步执行就可以全速执行子程序调用,而不会一步一步地跟踪子程序。F8 F8F8F8F8F8F8.是不是太烦了?那就移动光标到暂停行再
14、按F4,如果程序太长,每次这样移来移去,是不是也太累?那就设置断点吧。如图1-12。 将光标移到源程序窗口的左边灰色区,光标变成“手指圈”,单击左键设置断点,也可以用弹出菜单的“设置/取消断点”功能或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆绿勾”,无效断点的图标为“红圆黄叉”。 断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时你可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。见图1-13,1-14。本例是将P1 端口加一,然后延时,再重复,这样若P1就是一个二进制加法器,若P1口接发光二极管,就会闪亮。不过到此为止,我们都是用
15、软件模拟方式来调试程序。如果想要用仿真器硬件仿真。就要连接上仿真器。7连接硬件仿真按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。图1-15参见第4 步,设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的勾去掉。在通信设置中选择正确的串行口。按“好”确认。如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。表明仿真器初始化正确。如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时
16、你应检查仿真器、仿真器的选择是否有错,硬件接线是否有错,检查纠正错误后,再次确认。直至显示如图1-16所示的硬件仿真确认对话框。我们现在用硬件仿真方式来调试这个程序,因为程序是对P1端口加1操作,我们可以打开外设的端口来观察P1口。如图1-17所示。方法是选择主菜单外设 | 端口功能打开端口窗口。重新编译程序,全速执行程序,因为有断点,程序会暂停在断点处。我们观察端口窗口的P1 口值,会发生变化。再次全速执行,观察P1 口的变化。同时也可以用电压表去测量仿真头的P1 管脚,可以看到P1 管脚也随之发生变化。点击端口窗口的P1口的白框来改变P1 口的值,再次运行程序,P1 从改变后的值加1。(P
17、1 口的值也可以从SFR 窗口观察、修改)如果用户已经有写好的程序,可以从第3步“新建项目”开始,将你的程序加入项目,就能以项目方式仿真了。如果用户不想以项目方式仿真,则要先关闭项目,再打开你的程序,并且要正确设置仿真器、仿真头,然后再编译、调试程序。第五节 在伟福中安装第三方编译器在伟福中编译KEIL C51编的程序时,需要安装第三方编译器即KEIL C51的编译软件。方法如下:先将C51编译软件安装在C目录下,然后,将“仿真器设置”按图1-18进行设置即可。图1-18第二章单片机实验开发板简介单片机实验开发板是专为单片机初学者设计的一种学习及开发板,可完成多个与实际结合的单片机学习与开发实
18、例,帮助单片机初学者快速入门单片机技术。 第一节 功能模块介绍单片机实验开发板由以下电路部分组成: 单片机最小系统电路,发光二极管显示电路,共阴极数码管显示电路,按键输入电路,7289输入输出扫描驱动电路,四路光电隔离电路,存储器扩展电路,A/D转换芯片电路,D/A转换电路,串行通讯接口电路,并行接口电路,门电路阵列。其功能框图如图2-1所示。图2-1 单片机实验开发板功能框图第二节 实验开发板的功能一、实验开发板的特点该实验开发板上设置了单片机原理与应用课程所涉及的所有硬件器件,利用它既可以进行最小系统、流水灯、基本输入输出、中断、定时、计数器等基础单片机课题的设计,也可进行ZLG7289接
19、口芯片、实时时钟电路、与PC机进行串行通讯等流行的有一定综合性的单片机应用学习和开发设计。该实验板采用地址全开放方式,即所有芯片的片选及读、写线均需用户连接,地址由用户定义,接口芯片采用全开放方式,完全由用户用接插线来完成电路的组建。这种方式加强了对硬件知识的理解和掌握。二、实验开发板可完成的部分实验1单灯闪烁实验实验目的:通过该实验学习I/O口的基本知识,掌握P1口单个引脚作为输出口使用的方法,学习软件延时的编程方法。 2流水灯实验实验目的:通过该实验进一步学习I/O口的知识,掌握P1口作为输出口使用的方法,学习移位指令的用法。 3按钮控制灯的实验 实验目的:通过该实验学习单片机引脚作为输入
20、的使用方法,掌握51类单片机引脚“准”双向I/O口的特性。 4定时器控制的流水灯实验 实验目的:学习定时/计数器的结构,掌握定时器的编程使用方法。 5计数器程序 实验目的:学习51单片机计数器功能的应用,掌握计数方式编程的方法。 6用中断方式实现定时器控制的流水灯实验 实验目的:学习中断的概念,了解使用中断编程的一般方法,掌握采用中断方式进行定时器编程的方法。 7外中断实验 实验目的:学习外部中断的概念和编程方法。 8串口通讯实验 实验目的:学习串行通讯的有关原理,51单片机串行口的结构、串行口编程的方法。 9键盘实验 实验目的:学习键盘知识,了解键盘编程的方法,掌握一种编程方法。 10LED
21、接口实验 实验目的:学习LED显示接口技术,学习各种显示程序编制的方法。 利用实验板上提供的其他硬件资源,同学们可以根据需要开发出更多的其它题目,在此不一一列出。第三节 电路原理电路原理图如图2-2-1、图2-2-2所示。图2-2-1图2-2-2实验板插针座与器件引脚对应表J2:针座序号123456788031 P1口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7J3:针座序号12345678031 P3口P3.3P3.2P3.5P3.4P3.7P3.6PSENJ4:针座序号123456788031 P2口P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7J5:
22、针座序号1234567891011121314引脚名称EOCALEOESTARTCSCSWR1WRRDG2GOEWECE芯片名称08098255083282553732446264J6:针座序号1234567874LS2441A11A21A31A42A12A22A32A4J7:针座序号12345678910111213141516引脚名称C7C6C5C4C3C2C1C0B7B6B5B4B3B2B1B0芯片名称8255 PC口8255 PB口J7:针座序号17181920212223242526272829303132引脚名称A7A6A5A4A3A2A1A08Q7Q6Q5Q4Q3Q2Q1Q芯片名
23、称8255 PA口74LS373J8:针座序号12LM 741OUTGJ9:针座序号123456788031 P0口P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7J10:针座序号1234567891011121314引脚名称HGFEDCBA654321器件名称数码管-段数码管-位J11:针座序号123456U12引脚123456J12:针座序号123456U12引脚1312111098J13:针座序号123456U13引脚123456J14:针座序号123456U13引脚1312111098J15:针座序号123456U14引脚123456J16:针座序号123456U14引
24、脚1312111098J17:针座序号123456U15引脚123456J18:针座序号123456U15引脚1312111098J19:针座序号12345678器件引脚2524232221201918器件名称ZLGDS-位控J20:针座序号12345678器件引脚1716151413121110器件名称ZLGDS-段控J21:针座序号123器件引脚789器件名称ZLG-计J22:针座序号12345678器件引脚HGFEDCBA器件名称数码管段J23:针座序号123456器件引脚低高器件名称数码管位J24:针座序号12345器件引脚1234G器件名称光耦输入J25:针座序号1234器件引脚12
25、34器件名称光耦输出J26:针座序号12345678910111213141516器件序号8765432187654321器件名称发光二极管键盘J27:针座序号1234567引脚名称IN0IN1IN2IN3IN4IN5IN6器件名称ADC 08091、发光二极管显示电路模块实验板上的8个发光二极管正极已接到电源正端,负极连到了板上插座J26的8个插孔,这样,这些发光二极管亮的条件就是对应引脚为低电平,即如果将P1口某引脚与任一插孔相连,并输出为0,则相应的灯亮,如果输出为1,则相应的灯灭。 例如:将P1口与J26上二极管对应的插孔相连,并输入MOV P1,#0FH 该行程序将使发光二极管D1-D4熄灭,而D5-D8点亮。 2、数码管接口模块 实验板上的Q1Q14构成了6位LED数码管驱动电路,这里LED数码管采用了共阴型的,共阴型数码管的笔段(即对应abcdefgh7段)引脚是二极管的正极,所有二极管的负极连在一起,构成公共端,即字位端。对于这种数码管的驱动,要求在字形端提供电流,为此,使用了PNP型三极管作为字形端的驱动,共使用8只三极管Q7Q14。所有三极管的发射极连在一起,接到正电源端,它们的基极则分别连到插座J10的18端,这样,当J10的18中某位是低电平时,三极管导通,电源给所有位的相应字段数码管供电;而哪位数码管点亮,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1