2010课件5章单片机_第1页
2010课件5章单片机_第2页
2010课件5章单片机_第3页
2010课件5章单片机_第4页
2010课件5章单片机_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 单片机的中断与定时 2010/11/9,单片机的内部资源:在单片机内部集成了许多功能单元,如中断,定时器/计数器,串行通信,模拟/数字转换等单元,统称单片机的内部资源。 5.1 单片机的中断 5.2 定时器/计数器,5.1 80C51单片机的中断系统,5.1.1关于中断 什么是中断 “中断”即中途打断某一正在进行的工作,而去处理另外的的事件,待处理完成,再继续原来的工作. 为什么要用中断 一个资源(CPU)面对多项任务,但由于资源有限因此出现资源竞争的局面。中断是解决资源竞争的有效方法。中断技术的实质上就是一种资源共享技术。,中断的功能,(1) 实现CPU与外设的速度配合 CPU快外设

2、慢 数据准备 一个CPU对若干外设 (2)实现实时控制 控制参量,实时向计算时发出请求 (3)实现故障的及时发现 (4)实现人机联系 如键盘、鼠标中断(也是外设中断),单片机中断源 80C51有3类共6个中断源:外部中断2个,定时中断2个,串行中断2个 (1) 外部中断源 它们的中断请求信号分别由 引脚INT0(P3.2) 和引脚INT1(P3.3)引入。 外部中断申请有两种方式:可设置有关控制位进行定义 电平方式:低电平有效 脉冲方式:脉冲的后沿负跳有效(下降沿有效),80C51单片机逻辑符号,(2) 定时中断(按一定时间,或数量产生中 断)单片机芯片内部有两个定时器/计数 器,发生溢出,产

3、生中断(由单片机内 部产生芯片上没有对应的中断请求引入端) (3) 串行中断 串行口接受或发送完一组数据后,就产生 一个中断请求,由硬件自动申请中断,另 外申请中断由芯片内部产生,不需要外界 引入中断。,5.1.2 中断的控制,中断控制:提供给用户使用的中断控制手段。实际就是一些寄存器 用于中断控制的寄存器有4个 (1) 定时控制寄存器(TCON) (2)串行口控制寄存器(SCON) (3)中断允许控制寄存器(IE) (4)中断优先级控制寄存器(IP),(1) 定时控制寄存器(TCON),该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址88H,定时器控制位,外部中断控制位,IE0和

4、IE1:外部中断请求标志位 当CPU采样到INT0(P3.2) ,INT1(P3.3)出现有效中断请求时, IE0和IE1位由硬件置“1”。响应中断时, 再由硬件自动清“0” IT0和IT1:外中断请求触发方式控制位。 IT0(IT1)=1:脉冲触发方式,后沿负调有效 IT0(IT1)=0:电平触发方式,低电平有效 由软件置“1”或清“0” TF0和TF1:计数溢出标志位。 当计数器产生计数溢出时,相应的标志位由硬件置“1”,转向中断服务程序时,再由硬件自动清“0” TR0和TR1:定时器运行控制位,(2)串行口控制寄存器(SCON),寄存器地址98H,位地址9FH98H,与中断有关的控制位共

5、2位 TI:串行口发送中断请求标志位。 当发送完一桢数据后,由硬件置“1”,转向中断程序后,用软件清“0” RI:串行口接受中断请求标志位 当接收完一桢数据后,由硬件置“1”,转向中断程序后,用软件清“0”,(3) 中断允许控制寄存器(IE),寄存器地址 A8H, “复位”时(IE)00H. 所有中断禁止。单片机在相应中断后,不会自动关闭中断。应根据需要以软件的形式关闭中断 其中与中断有关的控制位共6位,(4) 中断优先级控制寄存器 (IP),中断优先级:系统定义了高低2个优先级 “0”的位优先级为低, “1”的位优先级为高,80C51单片机对中断优先级的处理原则: (1)低优先级中断请求不能

6、打扰高优先级的中断服务但高优先级中断请求可以打断低优先级的中断服务从而实现中断嵌套。 (2)如果一个中断请求已被响应,则同级的其他中断服务将被禁止。即同级不能嵌套。 (3)如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。其查询次序为: 外部中断0定时中断0 外部中断1定时中断1 串行中断,2中断初始化与中断控制寄存器状态设置,用户通过上述4个寄存器来使用中断系统。对中断的使用是在程序初始化时设置的,如果不包括优先级控制,外中断初始化共有3项内容:中断总允许,外中断允许和中断方式设定。定时中断则只有2项内容,没有中断方式控制 4个控制寄存器即可以字节寻址又可以位寻址 M

7、OV IE ,#81H; SETB EA;,(3) 中断允许控制寄存器(IE),寄存器地址 A8H, “复位”时(IE)00H. 所有中断禁止。单片机在相应中断后,不会自动关闭中断。应根据需要以软件的形式关闭中断 其中与中断有关的控制位共6位,5.1.3 中断响应过程,设计思路:把所有的中断请求都汇集到TCON和SCON寄存器中 1中断采样:采样时中断处理的第一步。对外中断信号进行的。把采样结果,锁存在定时器控制寄存器(TCON)。 CPU在每个机器周期S5P2 (第5状态,第2拍节)对中断请求引脚 INT0(P3,2) 和INT1 (P3,3)采样。 电平方式的外中断请求:低电平有效,IE0

8、(IE1)=1 脉冲方式的外中断请求:两个相邻周期采样到先高后 低,IE0(IE1)=1 对中断信号的要求:如果系统的晶振频率为6MHZ,信号电平至少保持12个晶振周期,IE0和IE1:外部中断请求标志位 当CPU采样到INT0(P3.2) ,INT1(P3.3)出现有效中断请求时, IE0和IE1位由硬件置“1”。响应中断时, 再由硬件自动清“0” IT0和IT1:外中断请求触发方式控制位。 IT0(IT1)=1:脉冲触发方式,后沿负调有效 IT0(IT1)=0:电平触发方式,低电平有效 由软件置“1”或清“0” TF0和TF1:计数溢出标志位。 当计数器产生计数溢出时,相应的标志位由硬件置

9、“1”,转向中断服务程序时,再由硬件自动清“0” TR0和TR1:定时器运行控制位,串行口控制寄存器(SCON),寄存器地址98H,位地址9FH98H,与中断有关的控制位共2位 TI:串行口发送中断请求标志位。 当发送完一桢数据后,由硬件置“1”,转向中断程序后,用软件清“0” RI:串行口接受中断请求标志位 当接收完一桢数据后,由硬件置“1”,转向中断程序后,用软件清“0”,2中断的查询,什么是查询: 由CPU在每个机器周期的最后一个状态(S6)测试TCON和SCON中各标志位的状态,以确定有无中断请求发生,以及是哪一个中断请求 外中断采用采样的方法,把中断请求锁定在TCON,定时中断和串行

10、中断发生在芯片内部,直接置位TCON和SCON中各自标志位 中断汇集,中断汇集,0,3中断响应,什么是中断响应 就是对中断源提出的中断请求接受。 如果有中断发生,就从相邻的下一个机器周期的S1状态开始进行中断响应 响应的主要内容:硬件自动产生一条长调用指令.LCALL addr16. addr16 程序存储器ROM中,中断区相应入口地址。,5个中断源的中断地址区:,内部程序存储器(保留的) 80C51有 4KB ROM 内部程序存储器 0000H0FFFH 存放程序用 系统复位(RST高电平)(PC)=0000H程序从此开始,中断响应条件 每个机器周期内对所有中断源进行顺序检测并可在任一周期的

11、S6期间,找到所有有效的中断请求,并对其优先级进行排队, 并满足下列条件: a)中断源有请求 b) 中断允许寄存器相应位置”1” c)中断开放(EA=1) d) 无同级或高级中断正在服务 e)现在指令执行到最后一个机器周期已结束 f) 若现行指令为RETI,或需访问IE或 IP指令时,执行完该指令,且其紧接着 的指令也已经完成,4响应时间,响应时间:从中断请求有效(标志位置“1”)到转向中断区入口地址所需要的时间 中断响应时间(38个机器周期) 最短: 中断标志位查询LCALL=1条指令最后1个机器周期2个机器周期3机器周期 最长: RETI(下一条指令) MUL 或DIV LCALL 2机器

12、周期 4机器周期 2机器周期 8周,5.1.4 中断请求的撤除 1. 定时中断:硬件自动清除标志位(TF0或TF1) 2 .外部中断:中断标志位的置“0”和外中断请求信 号的撤销。标志位IE0(IE1)硬件自动完成 (1) 脉冲方式下外部中断请求的撤销: (2) 电平方式下外部中断请求的撤销: 中断标志是自动撤销,中断请求信号可能继续存在。 3. 串行中断:标志位由用户用软件撤除 CLR TI CLR RI,电平方式外部中断请求的撤销电路,工作方式: (1) D触发器锁存外来低电平CP = 0 则 Q = 0 (2) 中断完毕,P1 = 0,则Q = 1, INT0 =1,产生负脉冲指令(两条

13、) ORL P1, #01H ; P1.0 输出高电平 ANL P1,#FEH ; P1.0 输出低电平,5.1.5 中断服务程序,1主程序中的中断初始化 中断初始化:在主程序中预先设置是否允许中断发生,如何发生。初始化的内容包括堆栈设置,中断系统总开放,中断允许设置,中断请求方式和中断优先级设置等。 ORG 0000H AJMP MAIN;系统复位后转向主程序 ORG 0003H AJMP EXINT0;转 向外部中断0服务程序 MAIN: MOV TCON , #01H;脉冲触发方式 MOV IE, #81H;中断开放,外中断0开放 MOV IP,#01H;外中断0高优先级 MOV SP,

14、#03FH;设置堆栈 。 EXINT:。,(1) 定时控制寄存器(TCON),该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址88H,定时器控制位,外部中断控制位,IE0和IE1:外部中断请求标志位 当CPU采样到INT0(P3.2) ,INT1(P3.3)出现有效中断请求时, IE0和IE1位由硬件置“1”。响应中断时, 再由硬件自动清“0” IT0和IT1:外中断请求触发方式控制位。 IT0(IT1)=1:脉冲触发方式,后沿负调有效 IT0(IT1)=0:电平触发方式,低电平有效 由软件置“1”或清“0” TF0和TF1:计数溢出标志位。 当计数器产生计数溢出时,相应的标志位由

15、硬件置“1”,转向中断服务程序时,再由硬件自动清“0” TR0和TR1:定时器运行控制位,(2)串行口控制寄存器(SCON),寄存器地址98H,位地址9FH98H,与中断有关的控制位共2位 TI:串行口发送中断请求标志位。 当发送完一桢数据后,由硬件置“1”,转向中断程序后,用软件清“0” RI:串行口接受中断请求标志位 当接收完一桢数据后,由硬件置“1”,转向中断程序后,用软件清“0”,(3) 中断允许控制寄存器(IE),寄存器地址 A8H, “复位”时(IE)00H. 所有中断禁止。单片机在相应中断后,不会自动关闭中断。应根据需要以软件的形式关闭中断 其中与中断有关的控制位共6位,(4)

16、中断优先级控制寄存器 (IP),中断优先级:系统定义了高低2个优先级 “0”的位优先级为低, “1”的位优先级为高,2中断服务流程,现场保护和现场恢复: 现场:中断时刻单片机存储单元中数据或状态. 现场保护:位于中断服务程序的前面 2. 开中断和关中断 现场保护和现场恢复不允许打扰,以免现场被破坏. 重要的中断不允许被其他中断所嵌套 中断的开和关通过CLR和SETB指令复位,置位中断允许控制寄存器中的相关位来实现。 中断处理:中断服务的核心,中断的具体内容 中断返回:中断服务程序的最后一条指令必须是中断返回指令RET1,CPU执行这条指令时把响应中断时置位的优先级触发器复位,再弹出断点送PC,

17、中断服务流程图,5.2 单片机的 定时器/计数器 5.2.1 定时方法概述 1软件定时通过循环程序延时 优点:时间准时,不需外加硬件 缺点:要占用CPU 2硬件定时 长时间定时用; 需要增加电路。 3. 可编程定时器定时 这种定时方法通过对系统时钟脉冲计数来实现 a: 对系统时钟计时,计数。 b: 对外来脉冲计数。(可能是非周期信号),5.2.2 单片机定时器/计数器功能,80C51系统中有两个16位加1计数器,分别为定时器/计数器0(T0)和定时器/计数器1(T1)。可分解为4个8位的定时器。TL0,TH0,TL1,TH1 两个定时器/计数器都有4种工作方式,即工作方式03,定时/计数器的功

18、能,它们是16位的加法计数结构 每个定时器/计数器都具有定时和计数功能。 1.计数功能:对外部事件进行计数,外部事件的发生以输入脉冲表示。 T0(P3.4)和T1(P3.5)分别是两个计数器的输入端,负跳变有效。 每个机器周期的S5P2对外部脉冲采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低,即为一个有效的计数脉冲。在下一个机器周期S3P1进行计数 计数脉冲频率不能高于振荡脉冲频率的1/24,80C51单片机逻辑符号,2.定时功能: 通过计数器的计数实现。计数脉冲来自单片机内部。每个机器周期产生一个计数脉冲 可根据计数值计算定时时间,也可按定时时间的要求计算计数器的预置值,5.2

19、.3 定时器/计数器的控制寄存器,与定时器/计数器有关的控制寄存器有3个 1定时控制寄存器(TCON) 2工作方式寄存器(TMOD) 3中断允许寄存器(IE),1定时控制寄存器(TCON),TCON: TF0和TF1:计数溢出标志位。 当计数器产生计数溢出时,相应的标志位由硬件置“1”,使用查询方式时,此位作状态位供查询,应注意查询有效后,以软件的方法及时清零。采用中断方式时,作为中断标志位。注意:转向中断服务程序时,再由硬件自动清“0”。,TR0和TR1:定时器运行控制位 TR0(TR1)=0;停止定时器工作 TR0(TR1)=1 启动定时器工作 根据需要以软件形式置“1”或清“0”,2工作

20、方式寄存器(TMOD),TMOD是专用寄存器用于设定定时/计数器工作方式。不能位寻址只能单元寻址 GATE:门控制位 GATE=0;以运行控制位TR启动定时器 GATE=1;以外中断请求信号(INT0,INT1)启动定时器,C/T:定时方式或计数方式选择位 C/T=0:定时方式 C/T=1:计数方式 M1,M0: 工作方式选择位 M1M0=00 方式0 M1M0=01 方式1 M1M0=10 方式2 M1M0=11 方式3,3中断允许寄存器(IE),EA:中断允许总控制位 ET0和ET1:定时/计数中断允许位,5.2.4 定时工作方式 0,1电路的逻辑结构 方式0是13位计数结构的工作方式,其

21、计数器由TH0全部8位和TL0的低5位构成,2.定时和计数应用 工作方式0: 计数工作方式下,计数值的范围:1 8192 (213) 定时工作方式时,定时时间的计算公式为: (213 - 计算初值)晶振周期 12 或 ( 213- 计算初值) 机器周期 举例: 若晶振6MHZ 最小定时时间:213-(213 -1) 1/6 10-6 12 =2(s) 最大定时时间:213 -0 1/6 10-6 12 =16384(s),例1:晶振频率Fosc=6MHZ,使用定时器1,0 工作方式产生周期为500s的等宽正方波脉 冲,并由Pl.0输出。对计数器采用查询方 式(不用中断)。 解:(1)计算计数初

22、值 (213-计算初值)10-6 12/6=250 10-6 初值=8067=1111 1100 00011B 方式0为13位计数器,TH1=1111 1100B=FCH TL1=0000 0011B=03H (2)工作方式寄存器TMOD的初始化 位序: B7 B6 B5 B4 B3 B2 B1 B0 位符号GATE C/T M1 M0 GATE C/T M1 M0 定时/计数器1 定时/计数器0 0 0 (0 0) (0 0 0 0) 以内部TR1 定时 0工作方式 定时器0不用 起动定时 方式 TMOD初始化为00 (3)中断允许控制寄存器IE设置 不用中断:则 EA=0 (4)定时器控制

23、寄存器TCON设置 TR1=1 启动计数 TR0=0 停止计数,2.进位计数制的相互转换 1)十进制转换成二进制,十六进制 一般的方法:,整数部分:把十进制的整数依次除以所需要的底数,就能够转换成不同底数的数。 例如:为了把十进制的数转换成相应的 2进制数,只要把十进制依次除以2并记下 每次所得余数,所得的余数倒向排列即为相应的2进制数。“除2取余” 小数部分:采用“乘2取整”法乘取整,直到小数部分为或满足精度要求,整数部分为正排列,IE,TMOD,TCON,IE,TMOD,TCON,(5)程序设计 MOV TMOD , #00H ; 设置T1工作方式0 MOV TH1 ,#0FCH ; 设置

24、计数初值 MOV TL1 ,#03H ; MOV IE ,#00H ; 禁止中断,使用查询方式 SETB TR1 ; 启动计时器1 在此期间TH1,TL1在不断增加变化计数: LOOP: JBC TF1, LOOP1 ; 查询TF1是 否有溢出,有溢出,去LOOP1 AJMP LOOP LOOP1: MOV TH1, #0FCH; 重新设置计数器初值 MOV TL1, #03H ; CLR TF1 ; 计数器溢出TF1清零 CPL P1.0 ; 输出反相(取反) AJMP LOOP ; 重复循环,5.2.5 定时工作方式1 逻辑电路与工作情况与方式0完全相同。所不同的只是组成计数器的位数。 主

25、要是考虑与MCS-48系列的兼容 MCS-51单片机、计数器为TH.TL16位 计数范围: 1 216(65536) 定时计算方法: (216 计数初值) 晶振周期 12 或 (216 计数初值) 机器周期 定时范围: 1 晶振周期 12 216 晶振周期 12 如晶振fosc =6MHZ 最小定时时间: 216-(216-1) 1/6 10-6 12=2(us) 最大定时时间: 216-0 1/6 10-6 12=131072(us),例:晶振频率Fosc=6MHZ,使用定时器1, 工作方式1产生周期为500s的等宽正方波脉冲,并由Pl.0输出。对计数器采用中断方式。,5.2.3 定时器/计

26、数器的控制寄存器,与定时器/计数器有关的控制寄存器有3个 1定时控制寄存器(TCON) 2工作方式寄存器(TMOD) 3中断允许寄存器(IE),IE,TMOD,TCON,例2: 同上例,但定时器1以工作方式1工作,并采用 中断模式,产生500us周期的等宽正方波脉冲。 解:(1)计算计数初值 TH1=1FH TL1=83H (2)工作方式控制寄存器TMOD 位序 B7 B6 B5 B4 B3 B2 B1 B0 位符号 GATE C/T M1 M0 GATE C/T M1 M0 0 0 0 1 0 0 0 0 所以 TMOD =10H ORG 0000H AJMP MAIN ORG 001BH

27、AJMP TT1,MAIN: MOV TMOD, #10H ; 定时器1,工作方式1 主程序 MOV TH1, #1FH ;设置计数初值 MOV TL1, #83H ; SETB EA ;开总中断允许 SETB ET1 ;开定时器允许中断 LOOP: SETB TR1 ;定时开始 HERE: SJMP $ ;等待中断 中断服务程序 TT1: MOV TH1,#1FH ;重新设置计数初值 MOV TL1, #83H ; CPL P1.0 ;输出取反 RETI ;中断返回 无CLR TF1 ; 计数器溢出TF1清零(因为采用了中断),5.2.6 定时工作方式2 工作方式0和1的缺点: (1)计数器

28、TH,TL发生溢出后,计数器全为0。 因此程序每次循环时,要重新设置初始值。 (2) 影响定时,记数精度。 例如:重新设置记数初值。 占用了两个机期周期。 MOV TH1 , #data; 占用了 MOV TL1 , #data; 两个机 使记时实际多了两个机器周期 器周期 解决方案: 工作方式2。 特点:自动重复加载计数初值的功能。TL作为计数器,TH 作预置计数器。以硬件方法直接加载。计数值有限,最大只能到255。适用于循环定时或循环计数,定时器/计数器0的工作方式2,1. 电路逻辑结构。 TL0(TL1) 作为计数器 记数最大值255 TL0(TL1)255 TF0=1. TH0(TH1

29、) 作为预置寄存器 TL0(TL1)255 TF0=1 TL0(TL1) 硬件 TH0(TH1) 2. 循环定时和循环计数应用。 例3:使用定时器T0。工作方式2,产生 100s定时,在P1.0输出。周期=200s的 连续方波。晶振fosc=6MHZ. 解:(1)计算记数初值X,十进制,查询方式 中断方式 MOV TMOD, #O2H; MOV TMOD,#02H 设置T0工作方式2 MOV TH0,#0CEH MOV TH0,#0CEH; 保存计数初值 MOV TL0, #0CEH; MOV TL0,#0CEH 设置计数初值 SETB EA ; MOV IE, #00H; 中断禁止 开中断总

30、允许 SETB ET0; 定时器0开中断,SETB TR0 ;启动定时 LOOP:SETB TR0 LOOP:JBC TF0,LOOP1; HERE:SJMP ; 查询计数溢出 等待中断 AJMP LOOP 等待中断 LOOP1: CPL P1.0 ;输出分波 CLR TF0 ;TF0清零 CPL P1.0;中断服务 查询方式 软件清零 AJMP LOOP RETI,中断服务程序:,5.2.7 定时工作方式3 前三种方式:方式0方式2,两个定时/计数器的设置和使用功能相同 工作方式3:T1和T0具有不同功能。 1. 工作方式3下的定时器/计数器0 被拆成两个独立的8位计数器 TL0 8位定时/

31、计数器 TH0 8位定时器 其中TL0即可以计数使用,也可以定时使用。定时器/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。 TH0只能做作为简单的定时器使用。借用定时器1的控制位TR1和TF1 逻辑结构见下图,控制位和引脚,2.工作方式3下的定时器/计数器1 定时/计数器0工作在工作方式3时,定时/计数 器1只能工作在方式0,1,2。因为运行控制位TR1及计数溢出标志位TF1已被借用。此时可作为串行口的波特率发生器使用。,当定时器/计数器0工作方式3时,T1的使用作为串行口波特率发生器,特点: 1)没有了计数启动/停止控制位TR1, 所以,只能在工作方式0,1

32、,2下工作 2)没有TF1溢出控制位,用于非中断情况计数/定时-作波特率发生器,5.2.8 用定时器/计数器进行外部中断扩展 80C51有两个外部中断,如果需要可 利用定时器/计数器以计数方式实现外 部中断扩展!具体实现方法: 1置定时器/计数器为工作方式2,以便在一次中断响应后自动为下一次中断作准备 2设定为计数器,高低计数器(TH,TL)均预置0FFH 3扩展的外部中断请求信号接计数输入端(T0,T1) 4把扩展的外部中断程序按所用的定时器/计数器中断入口地址存放 。,用定时/计数器实现中断源的扩展,80C51,T0(P3.4),中断源,例如定时器/计数器0扩展一个外部中断,其初始化程序段

33、为: MOV TMOD,#06H;置计数器0为工作方式2 MOV TH0,#0FFH; 置计数初值 MOV TL0,#0FFH; SETB EA; 开中断 SETB ET0; 计数器0允许中断 SETB TR0; 计数启动,工作方式寄存器(TMOD),TMOD是专用寄存器用于设定定时/计数器工作方式。不能位寻址只能单元寻址 GATE:门控制位 GATE=0;以运行控制位TR启动定时器 GATE=1;以外中断请求信号(INT0,INT1)启动定时器,中断允许控制寄存器(IE),寄存器地址 A8H, “复位”时(IE)00H. 所有中断禁止。单片机在相应中断后,不会自动关闭中断。应根据需要以软件的

34、形式关闭中断 其中与中断有关的控制位共6位,定时控制寄存器(TCON),该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址88H,定时器控制位,外部中断控制位,5.2.9 定时器/计数器的初始化编程和应用实例,定时器/计数器有4种工作方式,使用前必须进行初始化! 1初始化编程 设置工作方式,即TMOD中的各位:GATE,C/T,M1,M0 计数初值的设定 若采用中断方式则T0,T1及CPU开中断 ET,EA置“1”(中断允许寄存器IE) 启动计数器工作,即将TR置“1”(定时控制寄存器TCON),例1:,例如定时器/计数器0扩展一个外部中断,其初始化程序段为: MOV TMOD,#0

35、6H;置计数器0为工作方式2 MOV TH0,#0FFH; 置计数初值 MOV TL0,#0FFH; SETB EA; 开中断 SETB ET0; 计数器0允许中断 SETB TR0; 计数启动,例2:,利用定时器T1的模式2对外部信号计数。要求每计100次,进行累加器加1操作。 工作模式的设置: TMOD寄存器初始化: M1M0=10,c/T=1,GATE=0,则TMOD=60H 计数初值的设定:x=28-100=156=9CH, 则:TH1=9CH,TL1=9CH 开中断 启动计数器工作 程序设计,中断方式进行编程,主程序 MAIN: MOV TMOD,#60H;置T1工作模式2计数工作方

36、式 MOV TL1,#9CH;赋初值 MOV TH1,#9CH; MOV IE,#88H;定时器T1开中断 SETB TR1;启动定时器 HERE: SJMP HERE;等待中断 中断服务程序: ORG 001BH INC A;累加器加1 RETI,查询方式进行编程,MAIN: MOV TMOD,#60H;置T1工作模式2计数工作方式 MOV TL1,#9CH;赋初值 MOV TH1,#9CH; MOV IE,#00H;禁止中断 SETB TR1;启动定时器 DEL: JBC TF1,LOOP;查询计数溢出 AJMP DEL LOOP: CLR TF1; INC A;累加器加1 AJMP DEL;循环返回,例3,T0定时10ms向CPU申请中断,在T0装入时间初值X后立即启动计数器工作。T1作为计数器使用,当由T1引脚输入65536个脉冲后向CPU申请中断。单片机晶振频率6MHZ,写出初始化程序。 工作模式的确定:TMOD初始化应考虑T0,T1的要求。T0定时10ms方式0,1均可实现。本例选择方式0。T1作为计数器使用,其计数值正好是16位的最大计数值,只能选择方式1,T0,T1,2.定时和计数应用 工作方式0: 计数工作方式下,计数值的范围: 1 8192 (213) 如果晶振6MHZ时: 最小定时时间: 213-(213 -1) 1/6 10-6 12 =2(s) 最大定

温馨提示

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

最新文档

评论

0/150

提交评论