单片机原理实验指导.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机原理实验指导.精品文档.目录第1章 实验台使用说明- 1 -1.1 实验台总体结构- 1 -1.2 通用实验模块- 1 -1.2.1 逻辑电平开关电路- 1 -1.2.2 LED单色灯显示电路- 3 -1.2.3 信号源电路- 3 -1.2.4 双色灯电路- 3 -1.2.5 继电器及驱动电路- 3 -1.2.6 单脉冲电路- 4 -1.2.7 模拟电压信号输入电路- 4 -1.2.8 电源模块- 4 -1.2.9 打印机接口插座- 4 -1.3 实验台使用注意事项- 5 -1.3.1 实验时取下自检接口卡- 5 -1.3.2 系统切换- 5 -1.3.3 “自锁紧插孔”使用方法- 5 -1.3.4 严禁带电连接、拔插、更改实验用的导线- 5 -第2章 LCA51ET软件调试- 6 -2.1 LCA51ET性能特点- 6 -2.2 LCA51ET软件使用介绍- 6 -2.3热键表- 9 -第3章 实验指导- 10 -3.2 P1口输入输出实验- 10 -3.2.1 实验目的- 11 -3.2.2 实验预习要求- 12 -3.2.3 实验内容- 12 -3.2.4 实验报告- 17 -实验成绩- 19 -3.3 定时器实验/计数器实验- 19 -3.3.1 实验目的- 22 -3.3.2 实验预习要求- 22 -3.3.3 实验内容- 22 -3.3.4 实验报告- 27 -实验成绩- 29 -3.5 模/数转换实验- 29 -3.5.1 实验目的- 30 -3.5.2 实验预习要求- 30 -3.5.3实验内容- 30 -3.5.4 实验报告- 32 -实验成绩- 34 -第1章 实验台使用说明 单片机原理实验台选用上海航宏高科技有限公司生产的AEDK-T598D教学实验系统。该实验系统由AEDK-T598D实验台、标准RS232(9针)串行通讯电缆、系统计算机和调试软件组成。调试界面基于Windows操作平台具有VC风格,支持多窗体操作,调试软件支持汇编语言和高级语言混合编译、调试,编译器支持错误定位,用户可在同一界面下完成修改、编译和调试,支持软件仿真,可脱机仿真调试用户程序。AEDK-T598D教学实验系统操作方法请见第二章。1.1 实验台总体结构采用台式结构,自带电源。集INTEL8088、MCS51、MCS196三个CPU系统于一体,均可与PC机通过串行通讯连接实现独立运行,三种状态之间采用软件切换。实验台由实验机内核和34个实验模块组成,实验台结构如图1-1-1。1.2 通用实验模块实验台上有8个通用实验模块,编号为: 26启动A/D转换器1.2.1 逻辑电平开关电路 如图1-2-1所示,由实验台左下侧的 号实验模块中的八个自锁开关K7K0组成,开关向上拨到锁定位置时,接通+5V,输出高电平,开关向下拨倒锁定位置时,接通GND,输出低电平。图1-2-1 逻辑电平开关电路261.2.2 LED单色灯显示电路如图1-2-2所示,由 号实验模块中的L7L0八个发光二极管组成,通过限流电阻构成共阳极控制,即:L7L0“自锁紧插孔”端与高电平连接时,对应的LED单色灯亮,反之则暗。 图1-2-2 LED单色灯显示电路25延时1.2.3 信号源电路位于实验台中下侧的 号实验模块中。电路对4.9152MHZ进行分频产生适合串行通信波特率的频率以及实验电路使用的频率,共有6种频率源输出:150HZ、300HZ、600HZ、2.4KHZ、153.6KHZ、2.4576MHZ。1.2.4 双色灯电路23如图1-2-3所示,位于实验台左下侧的 号实验模块中。电路中的HL24HL21是4个独立的双色LED灯,每个双色LED灯由一个红色LED管芯和一个绿色LED管芯封装在一起,结构是共阴极,当阴极接GND(地线)、阳极加高电平时亮灯,两个阳极都加高电平时红绿灯同时亮显示的是黄灯。 图1-2-3 双色灯电路电路中4个双色LED灯的公共端接在GND(地线),三态反相输出驱动器74LS240输出端控制每个LED灯的阳极,驱动器的输入端引到“自锁紧插孔” DG4DG1(绿灯) 和DR4DR1(红灯)上,由于反向关系,红管芯DR加低电平、绿管芯DG加高电平时,红灯亮;红管芯DG加高电平、绿管芯DR加低电平时,绿灯亮;DR、DG两端都加低电平时,黄灯亮。1.2.5 继电器及驱动电路21开 如图1-2-4所示,位于实验台左侧中下部的 号实验模块中。当开关量输入端输入低电平时,经驱动电路7407(集电极开路OC门)使+5V继电器动作:常开触点闭合、常闭触点断开。图1-2-4 继电器及驱动电路 图1-2-5 单脉冲电路201.2.6 单脉冲电路如图1-2-5所示,位于实验台左侧中下部的 号实验模块中。采用RS触发器产生单脉冲,每按一次微动开关KEYDEDT, +PULSE输出孔输出一个正脉冲,-PULSE输出孔输出一个负脉冲。20ALE1.2.7 模拟电压信号输入电路如图1-2-6所示,位于实验台左侧中下部的 号实验模块中。1K电位器的定点分别接在+5V电源和GND(地线)上,中头从“自锁紧插孔”引出,输出电压0-5V。 1KGND +5V 0 5V 图1-2-6 模拟电压信号输入电路 图1-2-7 打印机接口插座17显示数字量1.2.8 电源模块18设有两个实验用电源模块: 号模块是实验台工作电源控制模块,带有开关、指示灯,“自锁紧插孔”引出:+5V、GND供实验用。 号模块是实验用电源模块,“自锁紧插孔”引出:GND、+5V、+12V、-12V,供实验用。1.2.9 打印机接口插座 如图1-2-7所示,位于实验台左侧上部的 号实验模块中。按标准并行接口设置DATA、STROBE、ACK、BUSY接线用的“自锁紧插孔”。实验台上各接口电路模块化,互不影响,通过连线可将各个接口电路组合设计成若干个微机应用系统。1.3 实验台使用注意事项16读取转换后数字量1.3.1 实验时取下自检接口卡实验台第 号模块是自检接口,用于自动检测实验机主板上各模块的工作状况,锁定故障位置。实验之前要将自检插座上的自检接口卡取下。1.3.2 系统切换实验台是三CPU系统,使用实验机内核模块中的XC9硬件插头实现CPU的切换。单片机实验使用51CPU,CPU转换插座(XC9)必须接在CPU51(XC1)侧。实验前先用短接板将XC9插座与XC1插座连接。1.3.3 “自锁紧插孔”使用方法插入导线时应把插头微微用力沿顺时针方向旋转一下,才能可靠接触。拔出导线时先逆时针方向旋转,待插头完全松开后再向上拔出。1.3.4 严禁带电连接、拔插、更改实验用的导线第2章 LCA51ET软件调试2.1 LCA51ET性能特点LCA51ET软件是基于WINDOWS 操作平台的多窗口编辑的调试软件。支持单文件及工程化管理两种模式下汇编语言的编译、连接、调试,用户可以自定义各种语言的关键词。可以同时打开多个窗体编辑、调试、变量观察,可以在线对源文件直接编辑、编译、连接、加载和调试。软件支持编译错误源文件定位,指出那行有错误及错误类型是什么,方便查错及修改错误。设计汇编语言应用系统软件的步骤为:1. 按设计要求设计软件程序流程图;2. 编辑源程序;3 编译源程序:编译的过程是通过编译器将源程序翻译成机器语言产生可以直接加载调试的目标代码,同时检查源程序中存在的错误、类型及所在位置。4调试程序:调试是检查源程序的逻辑错误。任何程序的错误都在所难免,语法错误可以通过编译器检查并修改,而逻辑错误必须通过调试,发现程序中和预期设想不相同的原因所在。对于部分逻辑错误,用户可以根据错误现象,直接找到错误的原因。但是,大多数逻辑错误却不太明白错误原因,这时,调试就尤其重要。用户可以使用单步,断点,全速,变量察看等调试命令,跟踪程序的执行,直到找到错误原因,然后,修改程序再编译再调试,直到软件符合应用系统设计要求。2.2 LCA51ET软件使用介绍1.进入LCA51ET软件调试环境点击开始菜单下的LCAT59D图标,如右图所示,然后点击LCA51ET图标,即进入调试环境。图2-2-1 进入LCA51ET软件调试环境2.然后出现调试环境即LCA51ET主界面,如下图2-2-2所示。图2-2-2 主界面3.设置通讯口,如图2-2-3所示。图2-2-3 设置通讯口4.测试通讯口图2-2-4 测试通讯口图3-5-15编辑源程序单击“文件”-“新建”或点击工具栏上的图标 。将新建一个空的编辑窗口。用户在编辑窗口中输入源程序。输入完毕,单击“文件”-“另存为”,选择路径,在文件名栏中输入“文件名.asm”,单击“保存”。编译器不支持长文件名、长路径、汉字路径及汉字文件名。6. 编译源程序单击“编译”-“编译当前文件”或点击工具栏中图标,编译源程序。在下侧“输出窗口”中将显示编译结果,编译则通过,如果源程序存在错误语句、格式,则编译不通过,指出该程序中存在一个错误,错误在12行,并指出错误原因。此时需要修改源程序,可以通过双击输出窗口中的错误行,则在编辑窗口中错误所在行的左侧显示一个蓝色的惊叹号“?”。修改错误后,再次编译,直至通过。7加载程序点击“调试”-“加载调试”或单击工具栏上的图标 。点击“调试”-“重新加载调试”或单击工具栏上的图标 。加载程序后编辑窗口中的第一条可执行语句变为绿色,程序从该条语句开始执行。8调试程序 跟踪型单步调试:按快捷键“F7”,程序从第一条语句开始逐条按跟踪型执行程序,每执行一条语句后,下一条将要执行的语句变为绿色,每按一次快捷键“F7”,执行一条语句。还可以单击工具栏上的图标 ,每单击一次图标 ,执行一条语句。 通过型单步调试:按快捷键“F8”,程序从第一条语句开始逐条按通过型执行程序,每执行一条语句后,下一条将要执行的语句变为绿色,每按一次快捷键“F8”,执行一条语句。还可以单击工具栏上的图标 ,每单击一次图标 ,执行一条语句。 断点调试(执行到光标所在行):先将光标设置在程序断点处,然后按快捷键“F4”,程序从第一条语句开始全速执行,执行到断点处自动停止,断点所在行的语句变为绿色。再设置下一个断点,按快捷键“F4”,程序从上一个断点处开始全速执行,执行到下一个断点处自动停止,该断点所在行的语句变为绿色。还可以单击工具栏上的图标 ,设置一次断点,单击一次图标 ,全速执行一段程序。 2.3热键表热键功能描述热键功能描述热键功能描述Ctrl+N新建文件Ctrl+O打开文件Ctrl+S保存文件Ctrl+P打印文件Ctrl+Z撤销Ctrl+Y重新执行Ctrl+X剪切Ctrl+C复制Ctrl+V粘贴Ctrl+A全选Ctrl+F查找文本Ctrl+H替换文本F3查找下一个Shift+F3查找上一个Ctrl+G跳到指定行Ctrl+L转为小写Ctrl+U转为大写Ctrl+F2设置或取消书签F2下一个书签Shift+F2上一个书签Ctrl+Shift+F2消除所有书签Ait+F9编译当前文件Ctrl+F9编译并连接F10加载调示F4执行到光标所在行F5设置当前IP行F7跟踪型单步F8通过型单步F9全速运行Alit+F7连续执行跟踪型单步Alit+F8连续执行通过型单步Alit+R总清实验机/仿真机Alit+F2上位机复位Alit+H暂停Ctrl+T对话窗口Ctrl+F7添加观察项第3章 实验指导3.2 P1口输入输出实验1.P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K40 K,因此不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确的。 2.延时子程序的延时计算问题对子程序 DELAY: MOV R3,#00H DELAY1: MOV R4,#0B3H DJNZ R4,$ DJNZ R3,DELAY1 RET查指令表可知 MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为MHz,所以该段程序执行时间为:(0B31)×2561)×2×12÷11059200100.002mS3. 实际交通灯的变化规律。应用基本输出接口模拟交通灯控制,假设一个十字路口为东西南北走向,设计实验程序实现如下变化规律: 初始状态0:东西红灯,南北红灯,过一段时间转状态。 状态:南北绿灯通车,东西红灯,过一段时间转状态。 状态:东西仍然红灯,南北绿灯闪几次转亮黄灯,延时几秒转状态。 状态:东西绿灯通车,南北红灯,过一段时间转状态。 状态:南北仍然红灯,东西绿灯闪几次转亮黄灯,延时几秒循环至状态。 4双色灯原理双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验台上的双色灯位置如图3-2-1所示。HL21灯的红色LED管芯的引脚是DR1,绿色LED管芯的引脚是DG1;HL22灯的红色LED管芯的引脚是DR2,绿色LED管芯的引脚是DG2;HL23灯的红色LED管芯的引脚是DR3,绿色LED管芯的引脚是DG3;HL24灯的红色LED管芯的引脚是DR4,绿色LED管芯的引脚是DG4;例如:若实现南北绿灯,东西红灯。则:DG1、DG3置“1”,DR1、DR3置“0”;DG2、DG4置“0”,DR2、DR4置“1”。若P1.0P1.7接DG1DG3 、DR1DR3 ,由P1口做输出口,那么送P1口的值如下表3-2-1所示:表3-2-1 P1口控制双色灯输出“南北绿灯,东西红灯”对照表DR4DR3DR2DR1DG4DG3DG2DG1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.010100101A5H注:由于本实验台上“1”是“灭”;“0”是“亮”,若想在实验台上实现“南北绿灯,东西红灯”则将值10100101取反为:01011010 即是5AH。则程序为:MOV A,#5AH ;南北绿灯,东西红灯MOV P1, ADR1DR2DR3DR4DG1DG2DG3DG4HL21HL22HL23HL24 交通灯图3-2-1 实验台上交通灯单元分布图3.2.1 实验目的1.掌握8051单片机P1口的输入输出方法;2.学习延时子程序的编写和使用。3.学习在单片机系统中扩展简单I/O接口的方法。4.学习双色灯模拟交通灯控制的方法。5.学习双色灯的使用。3.2.2 实验预习要求1.复习8051单片机P1口的输入输出方法;2.复习双色灯模拟交通灯的原理;3.预先编写好实验程序。3.2.3 实验内容共有3个实验,P1口输出实验,P1 口控制双色灯实验,P1口输入实验。3.2.3.1 P1口输出实验1.实验要求P1口做输出口,接八只单色发光二级管,编写程序,使发光二极管循环点亮。2.电路原理及接线图3-2-2 P1口做输出口电路原理及接线图注:本实验有8根连线:实验机内核的P1.0P1.7与单元的L0L7连接。开 始设置数据的初始值为FEH数据送到P1口,输出数据循环左移延 时3.程序流程图图3-2-3 程序流程图4.程序框架 ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60H MOV A,#0FEHROTATE: MOV P1,A ;写 P1口 循环左移 调延时 NOP SJMP ROTATEDELAY: MOV R3,#00HDELAY1: MOV R4,#000H DJNZ R4,$ DJNZ R3,DELAY1 RET END5.实验步骤 断电按线路图接线。 上电后,按复位键(RST),编辑、编译、连接、加载程序。 全速执行(F9)程序,观察现象。3.2.3.2 P1口控制双色灯实验1.实验要求P1口做输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。初始状态全红灯状态:南北绿灯通车,东西红灯状态:东西仍然红灯,南北绿灯闪几次转亮黄灯状态:东西绿灯通车, 南北红灯状态:南北仍然红灯,东西绿灯闪几次转亮黄灯开 始2.程序流程图.图3-2-4程序流程图3.程序框架ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60H LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLESTATUS0: 南北红灯,东西红灯 MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS1: 南北绿灯,东西红灯 MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV R3,#03H ;绿灯闪3次FLASH: MOV A,#5FH MOVP1,A MOV R2,#03H LCALL DELAY MOV A,#5AH MOVP1,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH 南北黄灯,东西红灯 MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS3: 南北红灯,东西绿灯 MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#0AFH MOV P1,A MOV R2,#03H LCALL DELAY MOV A,#0A5H MOVP1,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 南北红灯,东西黄灯 MOV R2,#10 ;延时1秒 LCALL DELAY NOP RETDELAY: ;延时子程序 PUSH 2 PUSH 1 PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延时 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END4.实验步骤 断电按线路图接线。 上电后,按复位键(RST),编辑、编译、连接、加载程序。 全速执行(F9)程序,观察现象。3.2.3.3 P1口输入实验1.实验要求P1口做输入口,接八个推键开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。(P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。CS273接8300H。)2.电路原理及接线图3-2-5 P1口做输出口电路原理及接线图注:本实验有17根连线:实验机内核的P1.0P1.7与单元的K0K7连接、实验机内核的8300H与单元的CS273连接、单元的PO0PO7与L0L7连接。开 始读P1口状态输出对应的数据3.程序流程图图3-2-6程序流程图4.程序框架ORG 0000H LJMP START ORG 0040HSTART: MOV DPTR,#8300H ;并行输出口地址 MOV P1,#0FFH;因P1口是准双向口,所以把P1口作为输入口时,应先置高电平READ: 读开关状态 把读入的数据输出 AJMP READ END5.实验步骤 断电按线路图接线。 上电后,按复位键(RST),编辑、编译、连接、加载程序。 全速执行(F9)程序,观察现象。3.2.4 实验报告1.根据P1口输出实验(3.2.3.1)中给出的程序框架,将程序补全,并验证。2.根据P1口控制双色灯实验(3.2.3.2)中给出的程序框架,将程序补全,并验证。3.根据P1口控制双色灯实验(3.2.3.2)中观察到的现象填写下面的表格表3-2-2 双色灯实验原始记录注:根据观察到的结果在表中对应位置处打;P1口输出数据,按16进制数记录。4. 根据P1口控制双色灯实验(3.2.3.2)的实验要求画出该实验原理图5. 根据P1口输入实验(3.2.3.3)中给出的程序框架,将程序补全,并验证。6.根据P1口输入实验填写下面表3-2-3表3-2-3 开关状态与显示值对应表开关K7K6K5K4K3K2K1K0开关状态显示值注:K0K7用二进制数“0”、“1”填写表格7.实验总结与体会实验成绩预习成绩操作成绩报告成绩实验成绩3.3 定时器实验/计数器实验1定时/计数器组成框图8051单片机内部有两个16位的可编程定时/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定。其逻辑结构如图3-3-1所示。图3-3-1 8051定时器/计数器逻辑结构图由图可知,8051定时/计数器由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。 定时器0,定时器1是16位加法计数器,分别由两个8位专用寄存器组成:定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。TL0、TL1、TH0、TH1的访问地址依次为8AH8DH,每个寄存器均可单独访问。定时器0或定时器1用作计数器时,对芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲计数,每输入一个脉冲,加法计数器加1;其用作定时器时,对内部机器周期脉冲计数,由于机器周期是定值,故计数值确定时,时间也随之确定。TMOD、TCON与定时器0、定时器1间通过内部总线及逻辑电路连接,TMOD用于设置定时器的工作方式,TCON用于控制定时器的启动与停止。2定时/计数器工作原理当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因MCS-51单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率。如果单片机系统采用12 MHz晶振,则计数周期为:1S,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的S3P1期间装入计数器中的,可见,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。当设置了定时器的工作方式并启动定时器工作后,定时器就按被设定的工作方式独立工作,不再占用CPU的操作时间,只有在计数器计满溢出时才可能中断CPU当前的操作。3定时/计数器的方式寄存器和控制寄存器在启动定时/计数器工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器中,这个过程称为定时/计数器的初始化。定时/计数器的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON完成。(1)定时/计数器方式寄存器TMODTMOD为定时器0、定时器1的工作方式寄存器,其格式如下表:GATEM1M0GATEM1M0定时器1定时器0M1和M0:方式选择位。定义如下:表3-3-1 M1、M0 工作方式功能说明表M1 M0工 作 方 式功 能 说 明0 0方 式 013位计数器0 1方 式 116位计数器1 0方 式 2自动再装入8位计数器1 1方 式 3定时器0:分成两个8位计数器定时器1:停止计数(2)定时器/计数器控制寄存器TCONTCON的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。定时器控制字TCON的格式如下图:TCON(88H) 8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT01) TCON.7 TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。2) TCON.6 TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。3) TCON.5 TF0:定时器0溢出标志位。其功能及操作情况同TF1。4) TCON.4 TR0:定时器0运行控制位。其功能及操作情况同TR1。5) TCON.3 IE1:外部中断1( )请求标志位。6) TCON.2 IT1:外部中断1触发方式选择位。7) TCON.1 IE0:外部中断0( )请求标志位。 8) TCON.0 IT0:外部中断0触发方式选择位。 (3)定时/计数器的初始化由于定时/计数器的功能是由软件编程确定的,所以,一般在使用定时器/计数前都要对其进行初始化。初始化步骤如下: 1) 确定工作方式对TMOD赋值。例如:定时器1工作在方式1,且工作在定时器方式上。MOV TMOD, #10H2) 预置定时或计数的初值直接将初值写入TH0、TL0或TH1、TL1。定时/计数器的初值因工作方式的不同而不同。设最大计数值为M,则各种工作方式下的M值如下: 方式0:方式1: 方式2:方式3:定时器0分成两个8位计数器,所以两个定时器的M值均为256。 因定时/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下: X = M -计数值例如:定时器1采用方式1定时,M=65536,因要求每50 ms溢出一次,如采用11.0592 MHz晶振,则机器周期=12÷11.0592MHz1.0851S(65536-定时常数)*1.0851S=50mS 定时常数4C01H所以,计数初值为将4C、01分别预置给TH1、TL1。 即程序为:MOV TL1,#01H ;延时50mS的时间常数 MOV TH1,#4CH3) 根据需要开启定时/计数器中断直接对IE寄存器赋值。 若未采用中断计数方式,则无此初始化语句。4) 启动定时/计数器工作将TR0或TR1置“1”。GATE = 0时,直接由软件置位启动;GATE = 1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。例:若GATE = 0,所以直接由软件置位启动,则指令为:SETB TR1例1:由8051内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次,试初始化:MOV TMOD,#10H ;置T1为方式1 MOV TL1,#01H ;延时50mS的时间常数 MOV TH1,#4CH SETB TR1 SETB ET1 SETB EA ;开中断例2:假设利用定时器T0的方式1产生一个50HZ的方波,由P1.0输出,采用12MHZ时钟,并假定CPU不作其它工作。P1.0引脚输出的方波波形,如图3-3-2所示:T=20ms10ms10ms图3-3-2 在P1.0引脚上输出波形由于CPU不作其它工作,因而可以采用查询的方式进行控制。装入计数器的初值可由下式算得:(216-X)×10-6=10-2因而:X=55536=D8F0H程序如下:MOV TMOD,#01H;设置T0 为方式1SETB TR0 ;启动T0工作LOOP: MOV TH0,#0D8H ;T0置初值 MOV TL0,#0F0HLOOP1: JNB TF0,LOOP1 ;查询TF0标志是否为1,如为1,说明T0溢出,则往下执行 CLR TF0 ;T0溢出,清TF0 CPL P1.0 ;P1.0求反 SJMP LOOP3.3.1 实验目的1.学习8031内部计数器的使用和编程方法。2.进一步掌握中断处理程序的编程方法。3.3.2 实验预习要求1.预习定时器时间常数的设定方法。2.了解单片机计数器原理和中断过程。3.预习计数器编程方法。3.3.3 实验内容共有2个实验,定时器实验、计数器实验。3