单片机实验指导书_第1页
单片机实验指导书_第2页
单片机实验指导书_第3页
单片机实验指导书_第4页
单片机实验指导书_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内 容 摘 要单片机是一门实践应用性很强的课程,要学好单片机必须通过实践环节的训练。我院是一所职业技术类学校,主要培养学生的动手能力。为适应教学需要,在前板的基础进行了修正,增加了可选内容,补充了部分程序,更便于老师和学生使用。本书以单片机本身资源(I/O口、外部中断、定时/计数器、串行口等)的应用为主,以单片机应用系统的基本电路(LED数码管显示电路、键盘接口电路)为应用主线,逐步展开。实验模拟实际应用情况,涉及单片机应用的全部环节:硬件电路设计、程序编制、编译修改、目标程序下载、实际运行。内容上从简单到复杂,从单个资源的简单应用到多资源的综合应用,有浅入深,内容详尽,易于实施。实验内容前后

2、联系紧密,其中实验七数码管动态扫描电路、实验十独立式键盘接口电路,在后面的实验中都它们硬件电路,程序也是在它们基础上设计,在硬件和软件两个方面逐步递进,逐步综合,与单片机实际应用开发过程一致,逐步培养学生的综合能力。实验中摒弃传统应用的并行扩展技术,采用串行扩展技术,与单片机的应用趋势保持一致。即使对并行A/D、D/A芯片的扩展,也直接采用I/O口控制技术(内RAM指令控制)代替传统的外部I/O口控制(外RAM操作指令)。本书适合电子类、电气类、机电类高职、高专各专业单片机实践教学使用。部分实验内容可以根据教学大纲和实际教学要求选用。中图分类号:TP368.1-33实验一 熟悉实验环境一 目的

3、1 掌握MCS-51单片机应用的步骤2 掌握MCS-51单片机编程软件的使用3 掌握MCS-51单片机编程器的使用二 内容1 MCS-51单片机应用的一般步骤单片机的应用不同与一般的模拟电路和数字电路,模拟电路和数字电路只要电路设计正确,焊接无误,器件完好,通电后就能工作,而单片机设计的电路不行,它不仅要求电路硬件满足要求,还需要合适的程序即软件才能工作,也就是需要硬件和软件的相互配合,它的应用步骤如图1所示几个环节,一般分为以下几步:硬件软件集成块编程环境编程序文件仿真编程器图1(1) 硬件电路设计制作硬件电路包括最小硬件系统(即单片机能正常工作的必要硬件条件,包括电源电路、时钟电路、程序存

4、储器选择控制和复位电路)和应用电路的设计。最小硬件系统必须首先制作好,单片机应用功能由软件和硬件的配合,功能可通过软件实现,应用电路也很简单(在具体的实验中叙述)。(2) 程序编写、编译、修改编写程序需要在一个操作平台上,也即编程环境中进行,学生初始学习一般使用汇编语言编写,汇编语言程序的扩展名为ASM,编程环境提供文件操作的有关菜单或工具,本书以南京伟福公司提供的编程环境为例讲解。编好的汇编语言单片机是不能识别的,需要转换成机器语言,通过编译操作即可完成。编写过程的错误编译时会提示编程者,修改后继续编译直到完全通过。机器语言文件的扩展名为HEX或BIN。分别为十六进制文件和二进制文件。十六进

5、制文件和二进制文件还需通过编程器编程(下载到集成块内部的程序存储器中。(3) 编程编程需要编程器和相应的软件,编程器的品种很多,本书以SUPERPRO(南京西尔特公司)编程器为例。我院自己设计的单片机实验箱还具有ISP(在系统编程)功能,下文有专门介绍。(4) 系统的运行检察程序下载后就可将集成块插到做好的电路上,然后通电运行,检察功能是否正确。不正常时根据现象分析是硬件问题还是软件问题,硬件问题也可通过软件发现查找。2 伟福编程环境用鼠标双击桌面上的伟福编程软件的图标,即可进入编程环境,如图2所示:图2与一般的应用软件类似,有标题栏、菜单栏、工具栏、状态栏和工作区等。功能也与我们以前用过的其

6、他软件一样,具体使用时介绍。我们在应用该软件之前最好先在D盘上建立自己的工作文件夹,过程略。(1)文件的建立和保存点击文件菜单,执行“新建文件(N)”选项,在工作区中出现文件名为NONAME1的编辑文档,再点击文件菜单执行“保存文件(S)”选项,出现保存文件的对话框,找到自己的工作文件夹,并将文件名改为汇编语言的文件名,即扩展名为.ASM。如AA.ASM,点击“保存”按纽即可。工作区里的编辑文档的文件名将改为我们所起的名称。如图3所示。(文件名的长度一般小于等于8个字符)(2)文件的打开打开一个已存在的文件,点击菜单文件执行“打开文件(O)”选项,或者直接点击工具栏中打开文件的图标,都会出现对

7、话框,找到自己的文件夹,选择要打开的文件,点击“打开”按纽。(伟福环境可以同时打开多个汇编文件)建立新文件也可通过打开一个已有文件,然后点击文件菜单执行“另存为(A)”选项,出现保存文件对话框,起一个合适的名称保存即可。(3)汇编文件的编写在已打开的文件编辑中编写程序,程序的编写应符合汇编语言指令的格式,理论课上已学过,不再重复。图3编写时最好将所有的标号靠左对齐,指令的操作码对齐,以便于阅读,编辑时可以使用“编辑(E)”菜单里的选项,或使用工具栏中的“剪切、复制、粘贴”等图标,来提高编辑速度。程序中用到的标点符号应在英文状态下输入。(4)文件的编译编辑好的文件就可以编译,编译可以点击“项目(

8、P)”菜单执行“编译(M)”选项,也可直接点击工具栏中的编译图标,注意编译时一定要将光标移到编辑文档内部。编译过程中系统也帮我们检查语法错误,有中文提示错误类型,并指出所在行(编辑文档的状态栏有行列的信息),改正后继续编译直到没有语法错误。查找某行也可通过“搜索(S)”菜单进行。文件编译好后可以通过信息窗口查看有关的信息,点击工具栏中的“信息窗口”图标,也可在“窗口(W)”菜单中选择,可以观察到所写程序编译后产生的目标程序文件,即十六进制文件和二进制文件。(5)程序的模拟运行编译好的程序可以在环境中模拟运行,点击“执行(R)”菜单里的有关选项,或工具栏中的执行选项图标(复位、全速运行、跟踪、单

9、步)等。“跟踪”或“单步”执行时,可以打开“CPU窗口”观察内部特殊功能寄存器中数据的变化,打开“数据窗口”观察内部RAM中的数据变化情况。可以分析程序编写是否正确。“跟踪”和“单步”有区别,“跟踪”可以进入子程序内部,而“单步”将调用指令看作一句指令,执行时跨越过去,执行下一句指令。3编程编译好的文件,可以通过编程器将目标文件下载(编程)到芯片内部,插到设计好的电路上实际运行。编程器的品种也很多,我们提供的是SUPERPRO(南京西尔特公司)编程器。使用前先检查编程器与计算机的连线是否接好,并插上编程器的电源。用鼠标双击桌面上的编程器图标,进入编程器的使用环境如图4所示:图4跟一般的应用软件

10、一样,有许多内容,我们只要了解其中的几项操作。(1)选择芯片型号点击工具栏中的“器件”按纽,弹出对话框,先选择芯片的制造厂家、芯片类型,然后选择所要芯片型号,点击“确定”按纽即可。在状态栏中会出现相应的信息。(2)目标文件的装载点击工具栏中的“装载”按纽,出现打开文件的对话框,找到目标文件存放的文件夹,打开所要的文件,注意在打开的过程中会出现文件类型选择的对话框,如图5所示。一般无须选择,直接点击“确定”按纽,就会在数据区中出现以十六进制数表示的目标文件(即机器码)。如图6所示。图5图6(3)芯片擦除,芯片除第一次使用外,以后每次使用都需擦除其内部的内容,才能写入新的目标文件,将集成块放置在编

11、程器的插座上并锁紧(注意缺口方向),点击“擦除”按钮,自动完成擦处,成功后显示如图7所示的对话框,点击“确定”回到前面状态,不成功显示相关错误提示信息。注意:有时可能是集成块引脚和插座接触不好导致擦除失败,重新放置集成块再擦除。图7(4)目标程序下载。在芯片内部已擦除的前提下,点击“写入”按钮,出现图8所示的编程对话框。图8我们实验主要做“写入”和“擦除”操作。建议老师在实验的最后编一个循环彩灯程序,演示上述过程给学生看,并将芯片插到电路板上(或实验箱),观察电路运行情况,增强学生的感性认识。4ISP编程接口。本校单片机实验箱上有ISP接口,可以替代编程器,直接对芯片编程,不需要拔插单片机芯片

12、(建议在实验中使用)。(1) ISP软件的使用说明在桌面双击“ISP编程器”快捷图标(图9),进入如图10所示的编程器环境。与编程有关的操作都有相应的操作按忸图9 ISP编程器快捷图标1)文件的装入。用编程器下载目标程序,需要先将目标文件装载到编程器的工作环境中。点击工具栏的“打开”按钮出现如图 11 所示的装载文件对话框。选择装载文件的路径,双击所要的目标文件即可。图10 ISP编程器打开的初始界面 。图11 ISP编程器装载文件对话框装载成功后在操作信息页中有操作提示。在HEX文件预览页有装入的内容,如图 12所示。图12 HEX文件预览页面2)芯片擦除。擦除芯片中原来的程序,在装入目标文

13、件之前都要进行擦除操作(一次没有使用过的新单片机可以不用擦除)。点击工具栏的“擦除”按忸,自动进行擦除操作。擦除完毕在操作信息页有提示。图13 芯片读出时缓冲区内容3)写入操作。将装入的目标文件写入单片机内部。点击工具栏的“写入”按钮,即可进行写入操作,写的过程中有操作进度条指示写入的进度,写的过程中不能做其他的操作。写结束后在操作信息页有提示。4读出操作。将芯片中的内容读出,以十六进制文件的形式存放在缓冲区情况页。如图 13 所示。5)其他操作。“清空”:清除操作信息页的提示内容。“检空”:检查芯片是否为空,为空才能写入。“校验”:验证写入过程有没有错误,将芯片内部的程序与装入的目标文件对比

14、。“鉴别”:鉴别芯片的型号。“加密”:对芯片进行加密操作,在操作之前应先设置加密模式(NO LOCK:不加密,LOCK BIT-1:一级加密,LOCK BIT-2:二级加密,LOCK BIT-3:三级加密。)学生做实验最好不要做加密操作,以免损坏芯片。“自动”:可以将前面的操作步骤组合起来操作,预先在自动选项中选定操作的内容,然后点击“自动”按忸,完成相关的操作。三、思考题(1) 如何建立自己的工作目录?(2) 简述单片机应用的步骤,简要介绍各步所要做的工作。(3) 汇编语言源文件与目标文件的显著特征是什么?(4) 在伟福编程环境中文件名的长度是多少?如果用汉字做文件名应用注意什么?(5) 用

15、编程器烧写程序时应注意那些问题?(6) 如何使用ISP进行编程。实验二 编程练习(一)一 目的1 进一步练习巩固汇编文件的建立、打开、保存的操作。2 通过具体的编程掌握汇编文件程序的书写格式。3 初步了解汇编程序的编译、修改等操作。4 了解程序模拟仿真运行的方法。二 内容1建立自己的工作目录,并且新建自己的工作文件,留待后面练习用。在文本编辑框内编写汇编语言文件,要注意以下几点要求:(1) 语句要满足汇编语言指令的格式要求 注意四个“符号”,即标号后面的“:” ,操作码与操作数间的“ ”,多个操作数间的“,”和注释前面的“;” 。“符号”在英文输入状态输入。(2) 为便于阅读,汇编指令各相应部

16、分对齐,即标号与标号对齐,操作码与操作码对齐。标号从某一行的最左端开始,标号名称便于理解。(3) 先编写好程序的一般结构,然后在编写具体程序,添加在一般结构的相应位置。始终保持程序结构的完整性,汇编语言的一般结构如下: ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ;中断入口地址区 ORG 0030HSETUP: ;初始化区MAIN: ;主程序区 LJMP MAIN ;主程序一般是反复循环执行程序 ;子程序和中断服务程序区 END ;汇编程序结束2 汇编程序的步骤。这里讲的汇编程序设计就是上面程序结构的主程序和子程序(中断服务程序)。一般分为以下几步:(1)

17、分析问题,确定算法或解题思路。分析题目的任务,明确现有条件和要达到的目标,然后在确定设计的思路。对于复杂的任务,可以划分成小的任务来设计,确定他们的算法,从而构成系统设计。(2) 画流程图。根据上面分析的思路,画出程序的流程图。如果思路很清晰或程序非常简单,也不必画流程图,可以直接编写程序。开始时的流程图可以画的详细一点,熟悉后可以简略些。(3) 编写源程序。根据前面的设计思路或流程图,用汇编指令编写源程序。实现同样功能的指令可能有几种,注意比较选择。(4) 汇编和调试。编写好的程序,要进行汇编,转换成目标文件(机器语言),才能运行。在编写源文件时也会出现错误(主要指语法错误),汇编软件在汇编

18、时会给出提示(信息窗口),编程者根据提示找到错误并改正,重新汇编直到没有错误。通过模拟仿真(单步执行和跟踪)观测CPU窗口和数据窗口相关信息的变化,可以确定程序是否正确或找出错误(逻辑错误)。3 练习(1)编写程序实现将015十六个立即数送到内部RAM 30H起始的单元中。在电脑上编写源程序、汇编、修改、仿真、观测数据窗口数据变化。(2)编写其它有关内部RAM的数据操作程序,编译、模拟运行并观察RAM和SFR中数据的变化。三、思考题(1) 编写汇编语言程序应注意什么?(2) 简述程序设计的步骤。(3) 单步执行和跟踪有和异同?(4) 如何根据信息窗口的提示查找语法错误?(5) 自己提出一个问题

19、,画出解决问题的流程图并编写程序。实验二 编程练习(二)一、目的1 巩固对汇编语言程序结构及其完整性理解。2 掌握单步、跟踪、运行到光标处等常用的模拟仿真手段。3 掌握程序模拟运行时数据窗口、CPU窗口数据观察。4 掌握数据窗口、CPU窗口数据的设置。二、 内容1 编写程序统计内部RAM30H3FH单元中内容是55H单元的个数。程序写成下列形式。 ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: ;将30H3FH单元赋值,其中有的单元为55H ; MAIN: LCALL AA ;主程序区 LJMP MAIN ;主程序一般是反复循环执

20、行程序AA: ;功能处理程序 RET END ;2编译程序产生目标文件,如有语法错误,纠正后再编译。3分别用单步、跟踪的方法模拟程序运行,观测运行结果,是否与指令或设计的程序相同,如不同,分析原因,重新编写程序。4删除上述程序中初始化部分指令,重新编译程序。用鼠标点击30H3FH单元,用键盘改变单元内容,然后运行程序并观察。5改写程序,将RAM30H3FH单元中内容是55H转移到40H开始的单元中,编译程序,不断改变30H3FH单元内容(用鼠标),观察程序运行结果。6复位程序,将光标移至某一行程序,执行运行菜单中“执行到光标处”操作,观测运行结果。7编写其它程序,编译运行,观测数据窗口、CPU

21、窗口特殊功能寄存器内容变化。三、思考题(1) 执行子程序调用时,除指令操作的单元内容变化外,数据窗口(RAM)是否还有其它单元内容发生变化,你能发现变化的规律吗?(2)用键盘修改数据应注意什么?(3)“执行到光标处”在检查程序时有什么优点?实验四 LED循环彩灯(流水灯)实验一、 目的1 初步了解单片机实验箱结构功能。2 通过循环彩灯的制作实践单片机应用的有关步骤。3 了解MCS-15系列单片机I/O口的输出应用4 循环彩灯硬件电路的制作。5 循环彩灯软件程序的编制、调试等二、 单片机实验箱简介点阵显示数码管显示限流电阻继电器并行A/D并行D/A开关串行D/A串行A/DPN结测温串并转换键 盘

22、蜂鸣器驱动电路LED开关量anli串口通讯看门狗最小系统可调模拟电压图 14实验箱功能结构如图14所示,各部分的具体电路在后面的实验中介绍。各部分的功能电路内部都已连接好,但和单片机输入/输出口之间没有连接,留给实验者根据自己的实验电路进行连接。实验箱使用注意事项:(1) 在连线过程中关闭电源开关。(2) 使用连接线:插上顺时针旋转90度,取下时先逆时针旋转90度,再拔下即可。(3) 编程开关设置。下载程序拨在“编程”位置,运行拨在“运行”位置。三、 LED流水灯电路原理390+5V8.2KRSTVCC+5V+5V+5V40 31 89S511 8 9 181920EA10F6MHz20P图

23、15流水灯电路原理图如图15所示。用P1口的8位分别驱动一个发光二极管,从图上可见,某位口上输出0(低电平)对应的发光二极管就亮,反之某位口上输出1(高电平)对应的发光二极管就熄灭。我们可以根据自己的思路设计灯亮灭次序从而形成不同的样式的流水灯。其余电路就是我们常讲的最小系统,实验箱已设计连接好。示例程序如下:(小灯依次亮灭程序。学生应编写自己的程序。) ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: CLR P1.0 ;点亮第一个小灯 LCALL DELAY ;调用延时子程序 SETB P1.0 ;熄灭第一个小灯(下同) CLR

24、 P1.1 LCALL DELAY SETB P1.1 CLR P1.7 LCALL DELAY SETB P1.7 LJMP SETUP ;所有灯依次亮灭后回到第一个灯DELAY: MOV R7,#80H ;延时子程序DEL: MOV R6,#0FFHDEL1: DJ NZ R6,DEL1 DJNZ R7,DEL RET END ;汇编程序结束这是一个简单的顺序程序,下面设计的是循环程序。 ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: MOV A,#0FEH ;A中赋初值(第一个灯亮,其余不亮信息)AA: MOV P1,A ;

25、A中信息送给P1口,驱动对应的灯亮 LCALL DELAY ;调用延时子程序 RL A ;A中信息循环转移一次,改变了信息 LJMP AA ;将A中改变后的信息再从P1口输出DELAY: MOV R7,#80H ;延时子程序DEL: MOV R6,#0FFHDEL1: DJ NZ R6,DEL1 DJNZ R7,DEL RET END ;汇编程序结束四、 流水灯制作步骤(1) 用电缆线连接好实验箱和PC微机(下载线与串口)。(2) 硬件电路连接。根据图15原理,在实验箱上选择一个8位的并行口(如P1口),用连接线按图16所示连接好电路。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P

26、1.7最 小 系 统 单 元LED开关量单元图 16(3) 编写程序。进入伟福编程环境,新建文件并编写自己的流水灯程序。 (4) 编译、查错和修改。编写好程序进行汇编成目标文件,如有语法错误,修改后再汇编,直到没有错误。根据情况进行模拟仿真,观测程序运行时CPU窗口P1寄存器内容变化。(5) 接通电源并下载程序。将实验箱上的编程开关拨在“编程位置”,按照实验一中介绍的ISP(在系统编程)的使用步骤将目标文件下载到单片机内部。(6) 运行观察。将编程开关拨在“运行”位置,观察运行效果,如与自己设计的不一致或不工作,则需要做进一步检查。五软件、硬件检查 在系统不能工作或运行结果和设计的不一致时,应

27、区别不同情况做相应的软件硬件检查。如程序能运行,但结果不一致,一般先查软件,通过模拟仿真的方法确定程序是否正确,然后再查硬件电路。如系统不能工作,则首先应检查最小系统是否正确。最小系统检查方法如下:打开电源开关,用万用表(数字表)测有关点的电压。40、31脚5V,9脚0V,18、19脚在1.82.8V之间,各点电压正确,说明最小硬件电路焊接无误,如果不是的,检查相应的电路。流水灯电路检查。开通电源,用一根导线,将导线的一端接地,另一端分别接到集成块的18脚,相应引脚的小灯应亮,否则,检查对应的电路。软件和硬件的检查都可以通过互换的方法检查,方法是将自己的单片机和运行正常的单片机互换,就可确定是

28、硬件故障还是程序错误。六思考题(1) 使用单片机实验箱应注意什么?(2) 如何区分实验中软件和硬件错误?(3) 如何检查单片机最小系统?(4) 图17是继电器和蜂鸣器驱动电路,如何用单片机控制其动作或发声?简述工作过程。9012+5V+5V1.5K图 17 (5)图17中继电器线圈上并联二极管作用是什么?实验五 开关量输入实验(I/O口输入)一、目的1掌握51单片机的P0、P1、P2、P3口作为输入口的使用方法。二、实验原理与内容51单片机的P0、P1、P2、P3口都可以作为输入口使用,可以是8位的输入,也可以位输入,也可以是对某位口的输入状态进行判断,操作的指令是内部RAM的操作指令和条件转

29、移指令,如:MOV A,P2;MOV C,P1.0;JB P1.0,rel。+5V开关信号图 18在做输入操作时,要保证此时口的锁存器状态为“1”,一般是先向锁存器写入“1”,然后再读。本例在实验四硬件电路基础进行。将“LED开关单元”的开关状态从P2口读入,从P1口输出驱动LED小灯,小灯指示开关的状态。开关状态的原理电路如图18所示 参考程序如下:;I/O口的简单输入实验;P2口输入内容由P1口输出,驱动LED ORG 0000H LJMP SETUP ;程序开始,跨过中断入口地址 ORG 0030HSETUP: MOV P2,#0FFH ;P2口各位置为输入口 MOV P1,P2 ;读P

30、2口并从P1口输出 LJMP SETUP ENDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7最 小 系 统 单 元LED开关量单元P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7图 19学生可以用其它的输入/输出口来编写程序,按照选择的口连接电路。也可以用位输入的方法检测开关信号的输入。三、实验步骤1用电缆线连接好 实验箱和PC微机,按下图19连接实验电路。2打开伟福编程环境,编写源程序文件。3编译、查错和修改。编写源程序进行汇编成目标文件,如有语法错误,修改后再汇编,直到没有错误。4然后打开实验箱电源,打开 ISP 编程环境,将实验箱编程开关拨在“编程位置

31、”,将目标文件下载到芯片内部。5将编程开关拨在“运行”位置,观测运行效果。改变开关位置,观察对应灯的变化。四、思考题1如何用位操作指令实现对开关状态的读入。2如何将交流电压转换为单片机I/O口线能检测的信号。设交流电压50V,设计相应的变换电路。实验六 LED数码管静态电路实验一、目的1了解LED数码管的内部结构。2 掌握LED数码管静态电路设计。3 掌握LED数码管静态程序设计。4 进一步掌握单片机应用的过程。二、LED数码管的内部结构COMCOMaabbccddeeffggdpdp共阳型共阴型 LED数码管是由发光二极管作为显示字段的数码型显示器件。内部由8个发光二极管组成,根据二极管连接

32、形式的不同分为共阳型和共阴型,结构如图20所示:图 20 COM为数码管的公共端,称为数码管的位,a、b、c、d、e、f、g、dp称为数码管的段,要在数码管上显示特定的数字或字符,就需要对它的段和位加适当的信号,控制某些二极管亮,显示所要的数字或字符。一般是通过改变段的信息改变显示内容,通过位控制数码管的亮灭。有关数码管显示字段编码请参考课本。三、LED数码管的静态显示电路 本实验以共阳型数码管为例。 从共阳型数码管内部结构可以看出,它内部电路和我们前面做的流水灯电路有共同之处。只要将它的公共端接电源,每个段通过限流电阻分别接到单片机引脚上,就可以用单片机的I/O口输出要显示的信息,在数码管上

33、显示。可见数码管的静态显示电路连接很简单,这里略去,由同学们自己设计。可见LED静态显示电路每个数码管都要一个8位的I/O口控制,显然MCS-51单片机只能驱动4位静态LED数码管。LED静态显示电路占用I/O口线较多,只适合数码管较少的场合。从流水灯实验可知其程序设计比较简单。参考程序如下: 在四个数码管上分别显示1、2、3、4。也可显示其它数字或字符。 ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: MOV P0,#0F9H ;1的字段码 MOV P1,#0A4H ;2的字段码 MOV P2,#0B0H ;3的字段码 MOV

34、P3,#99H ;4的字段码 SJMP $ ;等待 END ;汇编程序结束四、实验步骤1用电缆线连接好实验箱和PC微机。按设计要求连接实验电路。 分别用P0、P1、P2、P3口作为数码管的段控制口,将数码管的公共端接电源(共阳型)。2打开伟福编程环境,编写源程序文件。3编译、查错和修改。编写好程序进行汇编成目标文件,如有语法错误,修改后再汇编,直到没有错误。4然后打开实验箱电源,打开 ISP 编程环境,将实验箱编程开关拨在“编程位置”,将目标文件下载到芯片内部。5将编程开关拨在“运行”位置,观测运行效果。改变开关位置,观察对应灯的变化。五、思考题(1) LED静态显示电路在硬件、软件上有什么特

35、点?(2) 在实验中用了P0口,应注意什么?(3) 如果是共阴型数码管,其静态显示电路如何设计?能否象共阳型数码管那样,直接用TAT89S51的I/O口直接驱动,为什么?(4) 对比事例程序和前面的流水灯程序的差别。实验七 LED数码管动态扫描电路实验一、目的1进一步掌握单片机实验的步骤2数码管动态电路的设计制作3数码管显示程序的编制(查表程序的设计)4进一步掌握程序的模拟仿真运行二、电路原理 本实验设计一个4位共阳型LED数码管显示电路,原理如图21所示:9012P0.7P0.0P2.3P2.010Kadp P0最小系统 P2·····

36、83;······+5V+5V3601.5K数码管1234COM图 21用P0口作为4个数码管段控制信号,P0口每一位串接360欧姆限流电阻到数码管,P0口作输出时要接上拉电阻。用P2口的低4位作为位控制信号,由于口的驱动能力有限,通过三极管来推动。与静态显示电路区别:所有数码管相同的段连在一起,构成一个8位,用一个8位的口控制,节省许多口资源,位不是直接接电源或地,而是用一位I/O口控制一个开关,由开关控制其接地或电源。动态电路显示采用循环显示、动态扫描,利用人眼的视觉暂留特性达到稳定显示的目的。 本实验数码管采用4位一体数码管,其

37、内部段已连接好,引脚如图22所示(正面朝自己,小数点在右下方)。a、b、c、d、e、f、g、dP为段引脚,1、2、3、4分别表示四个数码管的位。 。 。 。 。 。 。 1 a f 2 3 b 。 。 。 。 。 。 e d dp c g 4图 22实验箱上已经连接好有关电路,但没有和单片机的引脚连,留有段和位控制端,实验者可以根据自己设计的电路(可以不用前面电路中单片机I/O口线)。三、查表程序设计数码管的动态扫描程序是单片机应用中最重要的程序之一,是进一步应用的基础和前提。数码管的动态扫描程序都是用查表程序设计的,包括LCD(液晶)也是用查表程序设计的。首先要命名一个标号,用DB伪指令定义

38、表格,编写系统所要显示的所有数字和字符的字段码,并按顺序存放(如下面程序09的编码)。表格在程序结构中的位置一般放在查表程序的后面,在子程序区,注意不能放在某个子程序的内部,需放在两个子程序之间。查表指令有两条:MOVC A, A+DPTRMOVC A, A+PC指令的具体功能请查阅课本。一般情况下用前一条指令,只有在系统有外部扩展并行数据存储器或扩展外部并行口使用MOVX指令来操作时,才使用第二条指令,使用该指令时表格位置与查表指令间的距离有限制,不能超过256个字节。以第一条指令说明查表程序设计的步骤。分为三步:第一步:将表格的首地址送给数据指针DPTR;第二步:将要查找的项(显示内容的字

39、段码)与表格首地址的间隔数送给累加器A;第三步:执行指令MOVC A, A+DPTR;则累加器中就是要显示内容的字段码,将其送段控制口即可。编写显示程序时一般都为每个数码管设置一个数据缓冲区,显示缓冲区存放的是显示内容的字段码在表格中的位置。参考程序如下: ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: MOV 70H,#0 ;显示缓冲区赋初值 MOV 71H,#1 ; MOV 72H,#2 ; MOV 73H,#3 ; MAIN: LCALL DIS ;调用显示子程序 LJMP MAINDIS: ;显示子程序MOV DPTR,#

40、TAB ;表格首地址送给数据指针DPTR MOV A,70H ;第一个显示的数送A MOVC A,A+DPTR ;查表得显示内容的字段码 MOV P0,A ;字段码从P0口输出 CLR P2.4 ;开通第一个数码管的位,显示相应信息 LCALL DEL ;调用延时子程序 SETB P2.4 ;关闭第一个数码管的位,以下依次类推 ; MOV A,73H ;第略个显示的数送A MOVC A,A+DPTR ;查表得显示内容的字段码 MOV P0,A ;字段码从P0口输出 CLR P2.7 ;开通第略个数码管的位,显示相应信息 LCALL DEL ;调用延时子程序 SETB P2.7 ;关闭第略个数码

41、管的位 RET ;显示子程序结束TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳型数码管09字段码DEL: MOV R7,#80H ;延时子程序 DJNZ R7,$ ;$在转移指令中表示转移到该指令本身 RET END ;汇编程序结束四、数码管动态显示电路检查硬件检查主要检查位和段的控制电路,取下单片机芯片,实验箱上电,将两根连接线与地线相连,其中一根接到P2口的某个位控制引脚,另一根依次碰触P0口的某一位,如果硬件正确,则对应数码管的段亮,否则检查对应的段或位。五、实验步骤1用电缆线连接好实验箱和PC微机,按照图23连接实验电路

42、。1 2 3 4P2.4P2.5P2.6P2.7abcdefgdp段 数码管控 显示单元制 位 控 制最 小 系 统 单 元P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7限 流 电 阻 图 232打开伟福编程环境,编写源程序。3编译、检查错误并产生目标文件。模拟仿真,观察CPU、RAM窗口,特别是观察查表指令执行,能否正确查出所要的字段码。4然后打开实验箱电源,打开 ISP 编程环境,将实验箱编程开关拨在“编程位置”,将目标文件下载到芯片内部。5将编程开关拨在“运行”位置,观测运行效果。六、思考题(1) 如何设计查表程序的表格?应注意什么?(2) 在本实验中用P0口作为数码管

43、的段输出口,P0口作为输出口使用时要接上拉电阻,但实际上在本实验中不接上拉电路,数码管也能正常显示,你能分析是什么原因吗?(3) 如果是共阴型数码管,试设计出硬件电路,仍然用P0、P2口,这时P0的上拉电阻能否不要,为什么?(4) 假定要使最后一个数码管数字和小数点一起亮,不允许修改表格,程序如何修改?(5) 如果我们想把数码管动态扫描程序和前面的流水灯程序结合起来,既要求在数码管正常显示的同时,流水灯也在运行,如何综合程序,讲述设计思想。实验八 LED点阵一、实验目的1掌握用数码管动态显示电路的方法控制LED点阵。2掌握用点阵字符的编码方式。二、实验原理与内容LED点阵显示在日常应用中非常广

44、泛,大型的点阵显示屏是由小块点阵拼组而成,每块都有编码和译码显示电路,市场上有成熟的产品。本例介绍用简单的LED动态扫描的原理设计LED点阵显示接口。常见的点阵产品是8×8点阵,我们可以把它看成是8个数码管,每个发光点可以看成数码管的笔画。三、程序设计 本例采用数码管动态扫描电路的工作原理来控制点阵的显示,将每8个(一行或一列)一组看成是数码管的笔段,对显示的字符进行编码,确定所显示字符在每个数码管上显示的字段码。参考程序如下:;P0口为字段口,P1口为位控制口;交替显示“洪”、“泽”。学生可以编写自己的字符表,以显示不同内容。LED0 EQU 70H ;选择70H77H单元为显示缓

45、冲区LED1 EQU 71HLED2 EQU 72HLED3 EQU 73HLED4 EQU 74H LED5 EQU 75HLED6 EQU 76HLED7 EQU 77H ORG 0000H LJMP SETUP ;程序开始,跨过中断入口地址 ORG 0030HSETUP: ;初始化 MOV LED0, #0 ;显示缓冲区赋值 MOV LED1, #1 ; MOV LED2, #2 ; MOV LED3, #3 ; MOV LED4, #4 ;显示缓冲区赋值 MOV LED5, #5 ; MOV LED6, #6 ; MOV LED7, #7 ;MAIN: MOV R4, #0H ;循环次

46、数 MOV DPTR, #TAB1 ;送第一字编码表格首地址XX1: LCALL DIS ;调显示程序 DJNZ R4, XX1 MOV R4, #0H ;循环次数 MOV DPTR, #TAB2 ;送第二字编码表格首地址XX2: LCALL DIS ;调显示程序 DJNZ R4, XX2 LJMP MAIN ;TAB1: DB 75H,0A0H,75H,0B5H,0E0H,0B5H,0AEH,5EH ;"洪"字码表TAB2: DB 60H,0B5H,7BH,0A4H,0F1H,0BBH,0A0H,7BH ;"泽"字码表DIS: MOV R2, #8 ;8位数码管动态扫描程序 MOV R0, #LED0 ;显示缓冲区首地址 MOV R3, #0FEH ;数码管位控制初始值AA: MOV A, R0 ;显示缓冲区内容送给A MOVC A, A+DPTR ;查表,找出显示字符的字段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论