51单片机汇编语言教案单片机备课本中职篇(共100页).doc
精选优质文档-倾情为你奉上第八 九课时教学内容I/O口的简单应用循环彩灯教学重难点 1. 1、I/O作为一般的输入输出口时,有何要求?2、发光二极管工作参数新课内容: 一、循环彩灯硬件电路在最小硬件系统基础上,用P1口作输出,用低电平驱动LED发光管,LED发光条件是:电压1.8V左右,电流810mA。为满足要求,电路中串接限流电阻,经计算取360。电路如图所示。360+5V8.2KRSTVCC+5V+5V+5V40 31 AT89S511 8 9 EA10F6MHz20P二、软件设计软件设计是在最小软件系统基础上,根据所要求的显示方式,用位操作指令CLR P1.X/SETB P1.X,对某位口操作,也可用数据传送指令MOV P1,#DATA,对多位口同时操作。如:设计一个由8个小灯构成的循环彩灯,要求8个小灯依次亮灭,然后重复循环程序为:ORG 0000HLJMP SETUPORG 0030HSETUP: CLR P1.0MOV R2, #80HDEL1: MOV R7,#0FFHDEL2:DJNZ R7,DEL2DJNZ R2,DEL1SETB P1.0CLR P1.1SETB P1.1MOV R2, #80HDEL1: MOV R7,#0FFHDEL2:DJNZ R7,DEL2DJNZ R2,DEL1CLR P1.2SETB P1.2CLR P1.3SETB P1.3 SETB P1.7LJMP SETUPENDDELAY: MOV R2,#80HDEL1: MOV R3,#0FFHDEL2: DJNZ R3,DEL2 DJNZ R2,DEL1 RET三、引出指令1、NOP 空操作指令2、循环转移指令DJNZ Rn,rel ;先执行Rn Rn-1,然后判断,若Rn=0,则程序顺序执行,否则就转移,转移到rel处,转移范围为-128B+127B。DJNZ direct,rel ;同上面类似。1、 用和返回指令LCALL addr16 ;长调用指令,调用子程序,子程序可在64KB空间内任意位置,同LJMP指令。ACALL addr11 ;断调用指令,调用子程序,同LJMP指令。RET ;调用返回指令,子程序结束后,执行该指令程序将返回到调用子程序处继续向下执行。上面的程序也可写成:ORG 0000HLJMP SETUPORG 0030HSETUP:CLR P1.0 LCALL DELAYSETB P1.0CLR P1.1LCALL DELAYSETB P1.1CLR P1.2SETB P1.2CLR P1.3SETB P1.3 SETB P1.7LJMP SETUPDELAY:MOV R2,#80HDEL1: MOV R3,#0FFHDEL2: DJNZ R3,DEL2 DJNZ R2,DEL1 RETEND注意:书写子程序时的注意事项1、 书写子程序一定要有名称(标号)2、 书写子程序 一定要有RET返回指令3、 参数的传递4、子程序和主程序间的关系如下图所示:子程序2断点主程序子程序1断点主程序子程序我们到上面的一段程序输入到wave仿真环境中,然后通过在线编程,把程序下载到单片机中,看实验箱上的小灯是否按照编写的程序亮灭的,也可以先通过软件仿真结果,也能判断正确与否,执行上面的程序我们可以看出来有P1口控制的8个小灯当中,低四个先亮,亮一段时间后再灭掉,接着高个小灯再亮,亮一会,再灭,重复循环。作业题:在循环彩灯硬件电路的基础上,设计一个循环彩灯程序,使小灯依次点亮后熄灭,再从头开始,重复8次反思:本堂课内容比较有趣味性,同学们学起来感觉比较得心应手,希望以后在没有趣味的课程中也能体现出今天的这种势头。第十课时教学内容 LED数码管及其显示方式教学重难点 1了解数码管的分类与显示原理。 2数码管电路的连接。 3如何设置与排列数码管的显示数据,教学过程 一、LED数码管1 外型和引脚abcdefgdpcomabcdefgdp共阳型+5Vcom共阴型LED数码管如上图所示。正面为一个矩形,上面有七个笔画组成的8和圆点表示的小数点,共计8个,分别用a、b、c、d、e、f、g、dp代表各个笔画的名称,故又称为8“段”数码管,每一个段内部都有一个LED发光管和他们对应。上下两头各有5个引脚。其中有8个引脚分别和a、b、c、d、e、f、g、dp对应,两头中间引脚内部是相连的,接的是8个LED的公共端(Commonality)(即数码管的“位”),用COM表示。2 内部结构内部结构分为共阳型和共阴型,如上面图所示。3 LED数码管的编码(Code)方式从LED的内部结构看,要点亮它,跟我们前面讲的8个循环彩灯相似,8个小灯亮的方式不同,在数码管上显示不同的字符。一般用8位二进制数代表每个段。A为低位,Dp为高位,即: D7 D6 D5 D4 D3 D2 D1 D0dpgfedcba如要显示0,就须把对应的a、b、c、d、e、f段的LED点亮,如果用正逻辑表示,即1亮0灭,显示0要求段的数据为3FH,同样显示其他字符也有对应数据表示。也就是显示字符的编码。下面为数码管的正逻辑编码:0:3FH;1:06H;2:5BH;3:4FH;4:66H;5:6DH;6:7DH7:07H;8:7FH;9:6FH。注意:共阴型数码管于正逻辑编码方式一致,共阳型数码管恰好相反。二、LED数码管静态显示方式LED数码管显示电路在单片机系统中分为静态(Static Stage)显示和动态(Dynamic Stage)显示。1特点:(1)静态显示时数码管的段需要一个8位I/O口控制。(2)数码管的位:接“电源”或接“地”(3)静态显示方式,编程简单,但占用的I/O口线较多,(4)一般适用显示位数较少的场合。下面是其应用的例子:2硬件电路(共阳型)P1口的数码管是完整电路,其余口为示意电路。dp390+5V P0 P2最小系统 P1 P3a第一位第二位第四位第三位显示程序(在四个数码管上分别显示0、1、2、3)ORG 0000HLJMP SETUPORG 0030HSETUP:MOV A,#3FHCPL AMOV P1,AMOV A,#06HCPL AMOV P3,AMOV A,#5BHCPL AMOV P0,AMOV A,#4FHCPL AMOV P2,ASJMP SETUPEND程序执行到这里,在P1口控制的数码管上显示“0”,继续往下执行,会在P3,P0,P2口上分别显示“1”,“2”,“3”,通过在线编程,把这段程序下载到单片机上,运行会在4个数码管上显示0 ,1,2,3三、LED数码管动态显示方式1特点:(1)将所有数码管的所有相同的段连接在一起,8个段共8组,由一个8位的I/O口控制。(2)每一个数码管的公共端由一位I/O口控制。通过分时向段送数据和位控制信号,使各数码管轮流显示,这种数码管显示方式就称为动态扫描(Scan)电路。(3)动态显示方式,编程相对复杂,但占用的I/O口线较少。(4)一般适用显示位数较多的场合。1 硬件电路(共阳型)adp P0最小系统 P2············+5V+5V段数据由P0口输出,外接上拉电阻,位由P2.0P2.3输出,用低电平驱动三极管,三极管输出接数码管的公共端。作业:假设有一数码管,他们的连接是,P1口的,P1。7接A,依次类推,请同学们排出数码显示数据。反思:数码管是单片机技术中非常常见的一种显示程序设计,是其它显示程序设计的基础,学好数据管的显示后,为以后的液晶显示点阵显示打下一个好的基础,本次课程内容学生反应学起来比较吃力,可能是电子基础方面的知道忘记了。在以后的课程中,设计得这方面的知道应该先复习一下。第十一课时教学内容 查表指令与程序设计教学重难点 1掌握查表指令的用法。 2.使用查表指令的注意事项。教学过程 新课内容:LED数码管的动态显示程序,要求在数码管上显示0 1 2 3ORG 0000HLJMP SETUPORG 0030HSETUP:MOV A,#3FHCPL AMOV P0,A CLR P2.0 LCALL DELAY SETB P2.0MOV A,#06HCPL AMOV P0,A CLR P2.1 LCALL DELAY SETB P2.1MOV A,#5BHCPL AMOV P0,ACLR P2.2 LCALL DELAY SETB P2.2MOV A,#4FHCPL ACLR P2.3 LCALL DELAY SETB P2.3LJMP SETUPDELAY: RETEND二、引出指令查表指令及伪指令1MOVC A,A+DPTR ;A-(A+DPTR)该指令是从内部ROM中读取一个数,是当前A中的值8位和DPTR中的值16位相加得到一个16位的地址,将ROM中该地址中的数据读出送入累加器ACC。该指令可以访问ROM中的任意一个单元。2 MOVC A,A+PC ;A-(A+PC)3 DB (定义字节伪指令)(D:Define,B:Byte)格式:标号: DB 8位二进制数表功能:从指定的地址单元开始,定义若干个8位内存单元的数据,数据之间用“,”隔开。三、查表程序设计要用到查表指令和定义的数据表格。一般分三个步骤。1 用DPTR作基址寄存器时1) 基址值(表格首地址)送入DPTR2) 变址值(表中要查的项与表格首地址之间的间隔字节数)送入累加器A3) 执行MOVC A,A+DPTR;四、查表程序设计数码管动态显示程序上面的显示程序只能显示固定的数据,无实际意义。下面我们利用查表指令设计一动态扫描程序。ORG 0000HLJMP SETUPORG 0030HSETUP:MOV 70H,#0MOV 71H,#1MOV 72H,#2MOV 73H,#3MAIN:LCALL DISLJMP MAINDIS:MOV DPTR, #TABMOV A, 70HMOVC A, A+DPTRCPL AMOV P0, ACLR P2.0LCALL DELAYSETB P2.0MOV A, 71HMOVC A, A+DPTRCPL AMOV P0, ACLR P2.1LCALL DELAYSETB P2.1MOV A, 72HMOVC A, A+DPTRCPL AMOV P0, ACLR P2.2LCALL DELAYSETB P2.2MOV A, 73HMOVC A, A+DPTRCPL AMOV P0, ACLR P2.3LCALL DELAYSETB P2.3 RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY:MOV R2,#80HDEL: DJNZ R2,DEL RET END例:用查表法求y=x2 ,设原变量x值在R0中,x取值范围为09,求得结果存放在R1中。程序如下:AA:MOV A, R0 MOV A,A+DPTR MOV R1, A RETTAB:DB 0,1,4,9,16,25,36,49,64,81注意:u 表格一定要写全u 表格中的内容之间用逗号隔开,定义表格要有规律u 表格不能放在子程序中表格放在子程序区,但不能放在子程序中间。作业: 1,数码显示程序设计,书反思:此堂课是一门复习课,是教同学们如何用DPTR或PC与MOVC和A寄存器指令合作实现数据的读写,也称查表指令。主要是一些常用数据要多次引用,学习比较简单,效果较好。第十二课时教学内容 AT89S51单片机中断系统教学重难点 1, 什么叫中断 2, 51单片机的5种中断 3,中断控制的应用。教学过程:一、 中断(Interrupt)概述1 中断的概念 所谓中断是指CPU正在处理某件事时,外部发生了某一事件(如定时器溢出),请求(Requle)CPU迅速处理(Process),CPU暂时中断当前的工作,转入处理所发生的事件,处理完毕后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,产生中断的请求源称为中断源。2中断的调用过程现行程序中断服务程序现行程序现行程序二、与中断系统有关的SFRa) 定时/计数器控制寄存器TCON(88H)IE1IT1IE0IT08BH8AH89H88HTCON(Time Control)的字节地址为88H,表明该寄存器的每一位可位寻址。其中:IT0:外部中断0的触发方式选择位,当IT0=0时为电平触发(Lever Triggering),IT0=1时为边沿触发(Edge Triggering)。IE0:为外部中断0的标志位。IT1:同IT0类似。IE1:同IE0类似。CPU是怎么知道中断请求的尼?CPU会在每个机器周期的S5P2采样外部中断引脚,根据以下两种情况置中断标志:i. 当IT0=0时,CPU查到外引脚为低电平,置“1”中断标志,外引脚为高电平时清“0” 中断标志。ii. 当IT0=1时,CPU是根据前后两次检查外引脚的情况判断是否有中断请求,当前一次为高,后一次为低,置“1”中断标志。其他情况不置中断标志。CPU响应(Respond)中断,转向执行中断服务程序时会自动由硬件清“0”中断标志。b) 中断允许控制寄存器IE(A8H)IE的地址末位为8,说明它也可位寻址。EAESET1EX1ET0EX0AFHACHABHAAHA9HA8HEA:所有中断总的控制位。(E: Enable A:All)ES:串行口中断允许位。 (E: Enable S: Series)ET1:定时/计数器1中断允许位。EX1:外部中断1中断允许位。ET0:定时/计数器0中断允许位。EX0:外部中断0中断允许位。c) 中断优先级控制寄存器IP(I:Interrupt,P:Priority)(B8H)也可位寻址。PSPT1PX1PT0PX0BCHBBHBAHB9HB8H通过对相应位设置可以改变该中断的优先级。MCS-51中断系统只有两级优先级,在同优先级内中断的优先顺序为:外部中断0、T0、外部中断1、T1、串行口。低级中断可以被高级中断所打断。MCS-51中断嵌套如下图所示:高级中断程序低级中断程序主程序三、中断的处理过程中断的处理过程包括:中断请求、中断响应、中断服务和中断返回。1 中断请求当某个中断源要求CPU服务时,必须发出中断请求信号。内部中断源和外部中断源请求的方式不同。(1) 若是外部中断源,需要将请求信号加到该中断的外部引脚上,CPU会在执行指令的每个机器周期内检查外部中断引脚,有请求信号时置“1”该中断标志位。分为两种情况。具体上面已详细讲过。(2) 若是内部中断源,CPU内部的硬件电路会自动置位该中断标志位,具体内容我们学习定时器和串行口时再讲。2 中断响应有了中断请求,CPU也不一定会响应该中断,要响应中断还必须满足一定的条件。中断响应的条件如下:(1) 该中断已“开中断”。(2) 此时CPU没有响应同级或更高级中断。(3) 当前正处在所执行指令的最后一个机器周期。(4) 正在执行的指令不是RETI或是访问IE、IP的指令。满足上述条件CPU就会响应该中断,响应中断,在执行中断服务程序前还要执行以下几项操作:(1) 保护断点(Breakpoint)地址,将断点地址压入堆栈。(2) 撤消(Cancel)该中断源的中断请求标志(串行口除外)。(3) 关闭(Close)同级中断。(4) 将该中断源的入口地址送入PC。执行以上几项操作后就进入执行中断服务程序。3 中断服务(1) 保护现场(把断点地址信息压入堆栈保护)(2) 中断服务程序主体(3) 恢复现场4 中断返回中断服务内容完成,现场恢复,就可以回到原来被打断的地方继续运行。这个过程通过执行RETI指令自动完成,主要做下面两项工作。(1) 恢复断点地址。将响应中断时压入堆栈的断点地址弹出,送入PC。(2) 开放同级中断作业:1。什么是中断? 2中断服务有那些过程。反思:中断,在单片机技术中是非常重要的一个知识点,也是学习单片机技术的一个必需掌握的重点,本次课下来同学反应对什么是中断不懂,以后的课程中应该好好多举生活中的实例来描述中断这个词语在单片机技术中的意思。第十三课时教学内容: 外部中断的应用教学重难点: 1,提供中断入口地址2,中断的初始化(方式选择、开中断)3,编写具体的中断服务程序。教学过程: 一.外部中断应用的步骤:1 硬件上要把中断请求信号加到中断引脚上。2 软件上做三项工作(1) 提供中断入口地址(2) 中断的初始化(方式选择、开中断)(3) 编写具体的中断服务程序。下面以一个具体的事例说明外部中断的应用。我们以前做过的循环彩灯,现在要求通过按一个按钮,每按一次彩灯移一位。S10K1K+5V360最小系统 P3.2+5V上图为电路图。按钮信号加到中断0的引脚P3.2,当S不按下时,P3.2引脚为高电平,按下为低电平,在按键的过程中P3.2引脚产生中断请求信号。中断触发方式用边沿触发,程序如下:ORG 0000HLJMP SETUPORG 0003HLJMP INT0PORG 0030HSETUP:MOV A,#0FEH SETB IT0 SETB EX0 SETB EAMAIN: SJMP MAININT0P: MOV P1,A RL A RETI END把这段程序编译之后,通过在线编程下载到单片机中,每按一下按键,彩灯会左向移动一位,通过在线编程直接演示给学生看,使学生加深对中断的理解。作业: 1,假设用单片机统计某生产线上产品生产个数,自己设置硬件电路并设计程序完成。反思:在前二堂课复习了中断后,本堂课的内容是如何使用中断,同学们在对于开中断与中断程序的处理与中断入口地址有点混,下次课在复习一下应该能解决问题。第十四课时教学内容:独立式键盘(Keyboard)接口电路 教学重难点: 1,掌握键盘的工作原理 2,知道键盘的常用扫描方式 3,掌握键盘编码。 教学过程: 一、概述1、键盘作用:在单片机系统中键盘接口是一个重要部分,键盘是人和单片机交换数据必不可少的环节,输入数据、查询结果、控制输出等。2、键盘分类:1)编码键盘:如电脑键盘,编码键盘的按键产生固定的字符,是由硬件电路实现的,电路很复杂,在单片机中一般不用。2)非编码键盘,它的按键只向单片机提供按键的状态,按键的具体功能由编程者自己定义,由程序实现。非编码键盘根据键盘与CPU的连接方式的不同又分为独立式按键和矩阵式键盘。3、键开关的去抖动(Quiver)问题R+5VAK键盘稳定键按下键送开前沿抖动后沿抖动按键开关的闭合和松开都会产生抖动,抖动的原因是由于按键的机械触点接触不稳定造成的。这种抖动会造成按键信号的不稳定,在处理按键功能时产生差错,因此,在实践中我们应克服按键的抖动,常用的方法有两种:一种采用硬件去抖动电路,用双稳态电路、单稳态电路、滤波电路等。另一种采用软件去抖动,原理是这样的,第一次检测到键按下时,调用一延时10ms程序,然后再去检测该键,确定其是否按下,按键的抖动时间一般在510ms之间,而人对按键的操作时间在几百ms到几秒之间。延时10ms并不会影响对按键的判别。二、 独立式键盘接口电路P3.2P2.6P2.5P2.4最小系统+5V+5VP2.7显示电路1、按键扫描的方式1)程序扫描:2)定时扫描:3)中断扫描:(建议使用)2、独立式按键接口电路的特点独立式按键是各按键相互独立,每个按键各占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上按键的工作状态。他的优点是按键配置灵活,编程简单。缺点是占用I/O口线多,适合按键数量较少的场合。下图是一个具体的接口电路:我们也可用中断方式来处理键盘,将上述电路改为下图,用滤波电路实现硬件去抖动相应的中断扫描程序如下:ORG 0000HLJMP SETUPORG 0003HLJMP INT0PORG 0030HSETUP:SETB IT0SETB EX0SETB EAMAIN:SJMP $INT0P:SETB P2.4JNB P2.4,KEY0SETB P2.5JNB P2.5,KEY1SETB P2.6JNB P2.6,KEY2 SETB P2.7JNB P2.7,KEY2RETIKEY1:。RETIKEY2:。RETIKEY3:。RETIKEY4:。RETIEND同学们考虑用4个按键分别实现最后一个数码管加1、减1、四个数码管依次左移一位、四个数码管依次右移一位。作业:1,有一电路,P0口接了8支发光二级管,在P2.2 和P2.1分别接了二个按键,当按下上一个按键时,灯亮,按另一个灯灭,试编写程序。反思:键盘技术是单片机中的常用人机交互接口,学好键盘技术后,有利于同学们在以后需要人机交互的程序设计中做得心应手,但是,本次课同学学习起来感觉没有办法理解去抖是什么意思。在下次课的时候在重点复习。第十五课时教学内容: 行列式键盘接口电路教学重难点: 1.行列式矩阵键盘的结构 2.行列式键盘的扫描方式 3.反线扫描法找描键盘。教学过程: 一、行列式键盘接口电路 1、接口电路 2、工作原理 (1)将行线作为输出线,列线为输入线,在所有行线输出上0,读列线。 D7D6D5D4D3D2D1D0r 7r 6r 5r 4XXXX列线有效行线无效(2)将列线作为输出线,行线为输入线,在所有列线输出上0,读行线。 D7D6D5D4D3D2D1D0XXXXr 3r 2r 1r 0列线无效行线有效(3)将前面两步行线和列线的有效数据综合起来得到一个8位数 。通过判断8位数的值即可确定是某个键按下 。 D7D6D5D4D3D2D1D0r 7r 6r 5r 4r 3r 2r 1r 08位数的数值与键号的对应关系如下: 数值EEHDEHBEH7EHEDHDDHBDH7DH键号01234567数值EBHDBHBBH7BHE7HD7HB7H77H键号89ABCDEF键按下/释放判断KS: MOV A,#00H MOV P1,A ;全扫描字#00H送P1口 MOV P1,#0FH MOV A,P1 ;读入P1口状态 CPL A ;变正逻辑,高电平表示有键按下 ANL A,#0FH ;取低4位 RET ;返回,A0表示有键按下 按键识别扫描法原理: 在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。 键号=行首键号(0、4、8、12)+列号(0、1、2、3) 例2:键盘扫描程序SERCH: MOV R2,#0EFH MOV R3,#00H LINE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYKLINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A,#08HAJMP TRYKLINE3: JB ACC.3,LINE4 MOV A,#0CH AJMP TRYKLINE4: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 TRYK: ADD A,R3BACK: RET中断扫描方式为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。作业:看书复习 反思:有前面的基础后,本堂课程学生反应良好。希望下次课程也这样。第十六,十七课时教学内容: 定时器/计数器教学重难点: 1.51单片机的二个定时器/计数器 2,如何设置定时器/计数器 3,与定时器与计数器设定的各个寄存器的用法教学过程: 一,复习 键盘的作用、分类、扫描方式 二,新课 (一),定时/计数器概述1,AT89S51有两个16位的定时/计数器,T0和T1。 2本质上讲都是计数器。对外部事件脉冲计数就作为计数器使用对内部的机器周期计数就作为定时器使用。(对外部脉冲计数时,信号脉冲应加到相应的外引脚上T0(P3.4),T1(P3.5)) 3他们都是加法计数器,计满后就会溢出(Overflow),溢出时产生中断标志。 (二)、与定时/计数器有关的SFR1定时/计数器工作方式控制寄存器TMOD(T:Timer,M:Mode)(89H)GATEC/TM1M0GATEC/TM1M0 高4位控制T1 低4位控制T0TMOD不可位寻址,高4位和低4位分别控制T1和T0。(1)M1M0工作方式选择位。 M1M0 方式 功能 00 方式0 13位的计数器01 方式1 16位的计数器10 方式2 8位的计数器,初值自动重装11 方式3 两个8位的计数器,仅适用T0(2)C/T计数/定时方式选择位。C/T=1,为计数工作方式,对外部事件脉冲计数,作为计数器用(负跳变有效)。C/T=0,为定时工作方式,对内部机器脉冲计数,作定时器用。(3)GATE门控位。一般取GATE=0,在后面的定时器工作方式结构中分析原因。 TCON:定时/计数器控制寄存器(88H)TF1TR1TF0TR0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88HTCON可位寻址。低4位我们在中断部分已讲过,不再重复。高4位的功能与定时器有关,含义如下:TF0:定时/计数器T0溢出标志。 (T:Timer,F:Flag)TR0:定时/计数器T0运行控制位。(T:Timer,R:Run)TR0=1,T0运行TR0=0,T0停TF1:功能与TF0相同。TR1:功能与TR0相同。3计数寄存器TH0、TL0是T0的两个8位计数器,TH1、TL1是T1的两个8位计数器,并且高8位数存放在TH中,低8位数存放在TL中。三、定时/计数器的工作方式1方式0(自学)2方式1控制1OSC÷12+TL0 TH0(8) (8)TF0T0TR0INT0GATEC/T0中断当M1M0=01时,定时/计数器工作在方式1,逻辑结构如上图所示。内部为16位计数器,有TL0作低8位和TH0 作8位,16位计满溢出,溢出置位TF0。最大计数值为216=65536。原理分析总结:GATE=0,TR0=1,控制开关闭合,开始计数。GATE=1,同时 TR=1INT0=1时,才开始运行。总上分析,得出取GATE=03方式2自动重装控制1OSC÷12+TL0 (8) TF0T0TR0INT0GATEC/T0中断TH0 (8) 当M1M0=10时,定时/计数器工作在方式2,逻辑结构如上图所示。定时/计数器工作为8位,能自动恢复定时/计数器初值。即用TL0计数,计满溢出时自动将TH0中的值送入TL0,自动恢复初值。计数的最大值为256。初值的计算方法例 用定时器T0产生1ms的定时,系统的fosc=12MHZ分析:机器周期=1us要产生1ms的定时,要数1ms/1us=1000个机器周期的脉冲,那么数机器周期的方法有两种方法 1000 10000 65536 初值(1)从0开始计数,计到1000即可,但是总要去看什么时候到1000?(2)从某个平台(初值)开始计数,计满刚好溢出,产生中断标志,请求中断具体计算:65536-1ms/1us=65536-10