最新单片机05PPT课件.ppt
《最新单片机05PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机05PPT课件.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MCS-51的定时器的定时器/计数器计数器 两个可编程的定时器两个可编程的定时器/ /计数器计数器T1T1、T0T0。 2 2种种工作模式工作模式:(1 1)计数器工作模式)计数器工作模式(2 2)定时器工作模式)定时器工作模式 4 4种种工作方式工作方式( (方式方式0-0-方式方式3)3)。可用于定时控制延时,对外部事件计数和检可用于定时控制延时,对外部事件计数和检测等场合。测等场合。5.2定时器定时器/计数器的计数器的4种工作方式种工作方式GATE位为位为0:定时器:定时器/计数器的运行计数器的运行取决于取决于TRxGATE位为位为1:定时器:定时器/计数器的运行计数器的运行取决于取决于
2、TRx和和INTx引脚。引脚。5.2定时器定时器/计数器的计数器的4种工作方式种工作方式5.2定时器定时器/计数器的计数器的4种工作方式种工作方式省去用户软件省去用户软件中重装初值的中重装初值的程序,用于精程序,用于精确的定时。确的定时。5.2定时器定时器/计数器的计数器的4种工作方式种工作方式5.2定时器定时器/计数器的计数器的4种工作方式种工作方式5.2定时器定时器/计数器的计数器的4种工作方式种工作方式方式方式1方式方式0方式方式25.3定时器定时器/计数器对输入信号的要求计数器对输入信号的要求 在每一个机器周期的在每一个机器周期的S5P2周期采样周期采样引脚输入电平,若前一个机器周期采
3、样值为引脚输入电平,若前一个机器周期采样值为1, 后一个周期值为后一个周期值为0,则计数器加,则计数器加1(新的计数值将在下一个机器周期新的计数值将在下一个机器周期的的S3P1期间期间装入装入计数器中)。由于它需要两个机器周期计数器中)。由于它需要两个机器周期(24个时钟周期个时钟周期)来识别一个来识别一个1到到0跳变,所以跳变,所以计数频率最高为计数频率最高为fosc的的1/24。计数器对外部脉冲信号的占空比没有特别的要求,但。计数器对外部脉冲信号的占空比没有特别的要求,但必须保证输入的必须保证输入的高电平和低电平信号至少应维持一个完整的机器周期高电平和低电平信号至少应维持一个完整的机器周期
4、。5.4 定时器定时器/计数器的编程和应用计数器的编程和应用5.4 定时器定时器/计数器的编程和应用计数器的编程和应用 4 4种工作方式中,方式种工作方式中,方式0 0与方式与方式1 1基本相基本相同,由于方式同,由于方式0 0是为兼容是为兼容MCS-48MCS-48而设,初值而设,初值计算复杂,在实际应用中,一般不用方式计算复杂,在实际应用中,一般不用方式0 0,而采用方式,而采用方式1 1。5.4 定时器定时器/计数器的编程和应用计数器的编程和应用1 1 方式方式1 1应用应用 例例1 1 假设系统时钟频率采用假设系统时钟频率采用6 6MHzMHz,要在要在P1.0P1.0上输出一上输出一
5、个周期为个周期为2 2msms的方波,如图所示。的方波,如图所示。 方波的周期用方波的周期用T0T0来确定,让来确定,让T0T0每隔每隔1 1msms计数溢出计数溢出1 1次次( (每每1 1msms产生一次中断产生一次中断) ),CPUCPU响应中断后,在中断服响应中断后,在中断服务程序中对务程序中对P1.0P1.0取反。取反。 (1)(1)计算初值计算初值X X 设初值为设初值为X X,则有则有: :(2(21616- -X)X)2 21010-6-6=1=11010-3-3 2 21616-X=500 X=65036-X=500 X=65036 X X化为化为1616进制,即进制,即X=
6、FE0CH=1111111000001100BX=FE0CH=1111111000001100B。 所以,所以,T0T0的初值为:的初值为: TH0=0FEH TL0=0CHTH0=0FEH TL0=0CH (2) (2)初始化程序设计初始化程序设计 对寄存器对寄存器IPIP、IEIE、TCONTCON、TMODTMOD的相应位进行正确设置,的相应位进行正确设置,将计数初值送入定时器中。将计数初值送入定时器中。 (3)(3)程序设计程序设计 中断服务程序除产生方波外,还要注意将计数初值重中断服务程序除产生方波外,还要注意将计数初值重新装入定时器中,为下一次中断作准备。新装入定时器中,为下一次中
7、断作准备。 参考程序:参考程序: ORG 0000HORG 0000HRESET: AJMP MAIN RESET: AJMP MAIN ;转主程序转主程序 ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 AJMP IT0P AJMP IT0P ;转转T0T0中断处理程序中断处理程序IT0PIT0P ORG 0100HORG 0100HMAIN: MOV SP,#60H MAIN: MOV SP,#60H ;设堆栈指针设堆栈指针 MOV TMOD,#01HMOV TMOD,#01H ;设置设置T0T0为方式为方式1 1 ACALL PT0M0ACALL PT0M0;调用子
8、程序调用子程序PT0M0PT0M0HERE: AJMP HEREHERE: AJMP HERE ;自身跳转自身跳转PT0M0: MOV TL0,#0CHPT0M0: MOV TL0,#0CH;T0T0中断服务程序,中断服务程序,T0T0重新置初值重新置初值 MOV TH0,#0FEH MOV TH0,#0FEH SETB TR0 SETB TR0 ;启动启动T0T0 SETB ET0 SETB ET0 ;允许允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开中断开中断 RETRETITOP: MOV TL0,#0CH ITOP: MOV TL0,#0CH ;T0T0中断服务
9、子程序,中断服务子程序,T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#0FEH CPL P1.0 CPL P1.0 ;P1.0P1.0的状态取反的状态取反 RETIRETI查询方式查询方式的参考程序的参考程序: : MOV TMOD,#01H MOV TMOD,#01H ;设置设置T0T0为方式为方式1 1 SETB TR0 SETB TR0 ;接通接通T0T0LOOP: MOV TH0,#0FEH LOOP: MOV TH0,#0FEH ;T0T0置初值置初值 MOV TL0,# 0CH MOV TL0,# 0CHLOOP1LOOP1:JNB TF0,LOOP1 JNB
10、TF0,LOOP1 ;查询查询TF0TF0标志标志 CLR TR0 CLR TR0 ;T0T0溢出,关闭溢出,关闭T0T0 CPL P1.0 CPL P1.0 ;P1.0P1.0的状态求反的状态求反 SJMP LOOP SJMP LOOP例例2 2 假设假设系统时钟为系统时钟为6 6MHzMHz,编写定时器编写定时器T0T0产生产生1 1秒定时秒定时的程序。的程序。(1 1)T0T0工作方式的确定工作方式的确定定时时间较长,采用哪一种工作方式?定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出:由各种工作方式的特性,可计算出: 方式方式0 0最长可定时最长可定时16.38416
11、.384msms; ; 方式方式1 1最长可定时最长可定时131.072131.072msms; ; 方式方式2 2最长可定时最长可定时512512 s s。选方式选方式1 1,每隔,每隔100100msms中断一次,中断中断一次,中断1010次为次为1 1s s。 (2 2)计算计数初值)计算计数初值 因为:因为:(2(21616- -X)X)2 21010-6 -6 = 10= 10-1-1 所以:所以:X=15536=3CB0HX=15536=3CB0H 因此:因此:TH0=3CHTH0=3CH,TL0=B0H TL0=B0H (3 3)1010次计数的实现次计数的实现 采用循环程序法。
12、采用循环程序法。(4 4)程序设计)程序设计 参考程序参考程序 : : ORG 0000HORG 0000HRESETRESET: LJMP MAIN LJMP MAIN ;上电,转主程序入口上电,转主程序入口MAINMAIN ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 LJMP IT0PLJMP IT0P;转转T0T0中断处理程序中断处理程序IT0PIT0P ORG 1000HORG 1000H MAIN MAIN: MOV SP,#60H MOV SP,#60H ;设堆栈指针设堆栈指针 MOV B,#0AH MOV B,#0AH ;设循环次数设循环次数1010次次
13、 MOV TMOD,#01H MOV TMOD,#01H ;设设T0T0工作在方式工作在方式1 1 MOV TL0,#0B0H MOV TL0,#0B0H ;给给T0T0设初值设初值 MOV TH0,#3CHMOV TH0,#3CH SETB TR0 SETB TR0 ;启动启动T0T0 SETB ET0 SETB ET0 ;允许允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开放中断开放中断 HERE HERE: SJMP HERE SJMP HERE ;等待中断等待中断 ITOPITOP: MOV TL0,#0B0H MOV TL0,#0B0H ;T0T0中断子程序,重
14、装初值中断子程序,重装初值 MOV TH0,#3CH MOV TH0,#3CH ; DJNZ B DJNZ B,LOOPLOOP CLR TR0 CLR TR0 ;1s1s定时时间到,停止定时时间到,停止T0T0工作工作 LOOP LOOP: RETI RETI 2 2 方式方式2 2的应用的应用省去程序中重装初值的指令,并可省去程序中重装初值的指令,并可产生相当精确的定时产生相当精确的定时时间时间。 例例3 3 当当T0T0(P3.4P3.4)引脚上发生负跳变时,从引脚上发生负跳变时,从P1.0P1.0引脚上引脚上输出一个周期为输出一个周期为1 1msms的方波的方波, ,如图所示。(系统时
15、钟为如图所示。(系统时钟为6 6MHzMHz)(1 1)工作方式选择)工作方式选择T0T0为方式为方式1 1计数计数,初值初值 0 0FFFFHFFFFH,即外部计数输入端即外部计数输入端T0T0(P3.4P3.4)发生发生一次负跳变一次负跳变时,时,T0T0加加1 1且溢出,溢出标且溢出,溢出标志志TF0TF0置置“1”“1”,发中断请求。,发中断请求。在进入在进入T0T0中断程序后,中断程序后,把把F0F0标志置标志置“1”“1”,说明说明T0T0脚已接收了负跳变信号。脚已接收了负跳变信号。T1T1定义为方式定义为方式2 2定时定时。在。在T0T0脚发生一次负跳变后,脚发生一次负跳变后,启
16、动启动T1T1每每500500 s s产生一次中断产生一次中断,在中断服务程序中对,在中断服务程序中对P1.0P1.0求反,使求反,使P1.0P1.0产生周期产生周期1 1msms的方波。的方波。(2 2)计算)计算T1T1初值初值设设T1T1的初值为的初值为X X: 则则 (2(28 8- -X)X)2 21010-6-6=5=51010-4-4 X=2 X=28 8-250=6=06H-250=6=06H(3 3)程序设计程序设计 ORG 0000HORG 0000H RESET: LJMP MAIN RESET: LJMP MAIN ;复位入口转主程序复位入口转主程序 ORG 000BH
17、ORG 000BH JMP IT0P JMP IT0P ;转转T0T0中断服务程序中断服务程序 ORG 001BHORG 001BH LJMP IT1P LJMP IT1P ;转转T1T1中断服务程序中断服务程序 ORG 0100HORG 0100HMAIN: MOV SP,#60HMAIN: MOV SP,#60H ACALL PT0M2 ACALL PT0M2 ;调用对;调用对T0T0,T1T1初始化子程序初始化子程序LOOP: MOV C,F0 LOOP: MOV C,F0 ;T0T0产生过中断了吗,产生过产生过中断了吗,产生过 ;中断,则;中断,则F0=1F0=1 JNC LOOP J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 05 PPT 课件
限制150内