《单片机原理与应用第二版第五章(黄友锐).ppt》由会员分享,可在线阅读,更多相关《单片机原理与应用第二版第五章(黄友锐).ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-225.1 5.1 定时计数器的结构定时计数器的结构5.2 5.2 工作方式工作方式 5.3 5.3 综合应用综合应用第第5 5章章 定时定时/计数器计数器 主主 要要 内内 容容:安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-225.1 定时计数器的结构定时计数器的结构TCONTMOD安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22 基本原理基本原理 基基本本部部件件是是两两个个8 8位位的的计计数数器器(其其中中TH1TH1,TL1TL1是是T1T
2、1的的计计数数器器,TH0TH0,TL0TL0是是T0T0的计数器)的计数器)两种工作模式:两种工作模式:定时和计数通过定时和计数通过TMODTMOD中中 C/TC/T位来控制。位来控制。定定时时:其其计计数数脉脉冲冲来来源源于于晶晶振振(经经1212分分频频后后提提供供)每每个个机机器器周期使定时器加周期使定时器加1 1。计数方式时:计数方式时:对外部事件计数,接相应的外部输入引脚对外部事件计数,接相应的外部输入引脚T0T0(P3.4P3.4)或)或T1T1(P3.5P3.5)。)。在这种情况下,检测到输入引脚在这种情况下,检测到输入引脚上的电平由高跳变到低时,计数器就加上的电平由高跳变到低
3、时,计数器就加1 1。最高计数频率为。最高计数频率为晶振的晶振的1/241/24。安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-221 1 工作方式控制寄存器工作方式控制寄存器TMODTMOD 安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-222 2 启停与中断控制器启停与中断控制器TCONTCON字节地址字节地址88H88H安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22(1 1)确定工作方式)确定工作方式对对TMODTMOD赋值。赋值。若赋值语句为:若赋值语句为:MOVMOVTMODTMOD#
4、10H#10H(2 2)预置定时或计数的初值)预置定时或计数的初值直接将初值写入直接将初值写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1。定时定时/计数器的初值因工作方式的不同而不同。设最大值为计数器的初值因工作方式的不同而不同。设最大值为M M,则各,则各种工作方式下种工作方式下M M值如下:值如下:方式方式0 0:M M=2=21313=8192=8192 方式方式1 1:M M=2=21616=65536=65536 方式方式2 2:M M=2=28 8=256=256 方式方式3 3:定时器:定时器0 0分为两个分为两个8 8位计数器,所以两个定时位计数器,所以两个定时器
5、的器的M M值均为值均为256256。因定时因定时/计数器工作的实质是做计数器工作的实质是做“加加1 1”计数,所以,当计数,所以,当最大计数值最大计数值M M值已知时,初值值已知时,初值X X可计算如下:可计算如下:X=X=M M计数值计数值3 3 定时定时/计数器的初始化计数器的初始化安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22定时器采用方式定时器采用方式1 1定时,定时,M=65536M=65536,如要求每,如要求每50ms50ms溢出一次,采用溢出一次,采用12MHz12MHz晶晶振,则计数周期振,则计数周期T=1sT=1s,计数值,计数值=50
6、000=50000,所以,计数初值为,所以,计数初值为:X=65536X=6553650000=15536=3CB0H50000=15536=3CB0H将将3C3C、B0B0、分别预置给、分别预置给TH1TH1、TL1TL1。(3 3)根据需要开启定时)根据需要开启定时/计数器中断计数器中断直接对直接对IEIE寄存器赋值。寄存器赋值。(4 4)启动定时)启动定时/计数器工作计数器工作将将TR0TR0或或TR1TR1置置“1 1”。GATE=0GATE=0时,直接由软件置位启动;时,直接由软件置位启动;GATE=1GATE=1时,除软件置位外,还必须在外中断引脚处加上相应的电时,除软件置位外,还
7、必须在外中断引脚处加上相应的电平值才能启动。例平值才能启动。例5-15-1中因中因GATE=0GATE=0,所以直接由软件置位启动,其指令为:,所以直接由软件置位启动,其指令为:SETBSETBTR1TR1安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-225.2 工作方式工作方式(1 1)方式方式0 0 由由THTHX X的的8 8位和位和TLTLX X的低的低5 5位组成位组成1313位计位计数器数器 13位计数加位计数加1到全到全“1”,再加,再加1就产生溢出,就产生溢出,置置TCON的的TFX位为位为1,同时计数器全变为,同时计数器全变为“0”安徽理工大学
8、安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22定时定时/计数方式计数方式0 0时的逻辑电路结构图时的逻辑电路结构图安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22解:解:1)确定工作方式确定工作方式 2)预置定时或计数的初值预置定时或计数的初值 3)编得编得1s延时子程序如下:延时子程序如下:例例5.1 5.1 系统时钟频率系统时钟频率12MHZ,12MHZ,用定时器用定时器1 1,方式,方式0 0实现实现1s1s的延时。的延时。X的实际填写值应为的实际填写值应为X=0110001100011000B=6318H即即TH1=63H,TL
9、1=18H。则定时器则定时器1的初值的初值X=M计数值计数值=81925000=3192=C78H=0110001111000BMOV TMOD,#00HDELAYDELAY:MOVMOVR3R3,#200#200;置;置5ms5ms计数循环初值计数循环初值MOVMOVTMODTMOD,#00H#00H;设定时器;设定时器1 1为方式为方式0 0MOVMOVTH1TH1,#63H#63H;置定时器初值;置定时器初值MOVMOVTL1TL1,#18H#18HSETBSETBTR1TR1;启动;启动T1T1LP1LP1:JBCJBCTF1TF1,LP2LP2;查询计数溢出;查询计数溢出SJMPSJ
10、MPLP1LP1;未到;未到5ms5ms继续计数继续计数LP2LP2:MOVMOVTH1TH1,#63H#63H;重新置定时器初值;重新置定时器初值MOVMOVTL1TL1,#18H#18HDJNZDJNZR3R3,LP1LP1;未到;未到1s1s继续循环继续循环RETRET;返回主程序;返回主程序安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22(2 2)方式方式1 1 唯一的差别是唯一的差别是THTHX X和和TLTLX X组成一个组成一个1616位计数器。位计数器。上例中上例中 X=6553650000=15536=3CB0H定时定时/计数方式计数方式1
11、1时的逻辑电路结构图时的逻辑电路结构图安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22(3 3)方式方式2 2 方方式式2 2是是将将两两个个8 8位位计计数数器器THTHX X和和TLTLX X分分成成独独立立的的两两部部分分,初初始常数自动重新装入始常数自动重新装入设置初值时设置初值时同时送同时送THTHX X和和TLTLX X定时定时/计数方式计数方式2 2安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22例例5.25.2试用定时器试用定时器1 1,方式,方式2 2实现实现1s1s延时。延时。解:因方式解:因方式2 2是是
12、8 8位计数器,其最大定时时间为:位计数器,其最大定时时间为:2562561s=256s1s=256s,为实现,为实现1s1s延时,可选择定时时间为延时,可选择定时时间为250s250s,再循环,再循环40004000次。定时时间选定后,可确定计数值为次。定时时间选定后,可确定计数值为250250,则定时器,则定时器1 1的初值为:的初值为:X=MX=M计数值计数值=256=256250=6=6H250=6=6H 采用定时器采用定时器1 1,方式,方式2 2工作,因此,工作,因此,TMOD=20HTMOD=20H。安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-2
13、2DELAYDELAY:MOVMOVR5R5,#28H#28H;置;置25ms25ms计数循环初值计数循环初值 MOVMOVR6R6,#64H#64H;置;置250s250s计数循环初值计数循环初值MOVMOVTMODTMOD,#20H#20H ;置定时器;置定时器1 1为方式为方式2 2MOVMOVTH1TH1,#06H#06H;置定时器初值;置定时器初值MOVMOVTL1TL1,#06H#06HSETBSETBTR1TR1;启动定时器;启动定时器LP1LP1:JBCJBCTF1TF1,LP2LP2;查询计数溢出;查询计数溢出SJMPSJMPLP1LP1;无溢出继续计数;无溢出继续计数LP2
14、LP2:DJNZDJNZR6R6,LP1LP1;未到;未到25ms25ms继续循环继续循环MOVMOVR6R6,#64H#64HDJNZDJNZR5R5,LP1LP1;未到;未到1s1s继续循环继续循环RETRET可编得可编得1s1s延时子程序如下:延时子程序如下:安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22(4 4)方式)方式3 3:只适用于只适用于T0T0,TL0TL0组成完整的组成完整的8 8位定时位定时/计数器;计数器;TH0TH0只作为定时器用,借用只作为定时器用,借用T1T1的控制位的控制位TR1TR1和和TF1TF1;T1T1还可以设置为方式
15、还可以设置为方式0 02 2,用于任何不需要中断的场合。,用于任何不需要中断的场合。TF1TH0(8位)安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22例例5.3 5.3 用定时器用定时器0 0,方式,方式3 3实现实现1s1s延时。延时。解:解:根据题意,定时器根据题意,定时器0 0中的中的TH0TH0只能为定时器,定时时间可设为只能为定时器,定时时间可设为250s250s;TL0TL0设置为计数器,计数值可设为设置为计数器,计数值可设为200200。TH0TH0计满溢出后,用软计满溢出后,用软件复位的方法使件复位的方法使T0T0(P3.4P3.4)引脚产生
16、负跳变,)引脚产生负跳变,TH0TH0每溢出一次,每溢出一次,T0T0引脚引脚便产生一个负跳变,便产生一个负跳变,TL0TL0便计数一次。便计数一次。TL0TL0计满溢出时,延时时间应为计满溢出时,延时时间应为50ms50ms,循环,循环2020次便可得到次便可得到1s1s的延时。的延时。由上述分析可知,由上述分析可知,TH0TH0计数初值为计数初值为X=X=(256256250250)=6=06H=6=06HTL0TL0计数初值为计数初值为X=X=(256256200200)=56=38H=56=38HTMOD=00000111B=07HTMOD=00000111B=07H可编得可编得1s1
17、s延时子程序如下:延时子程序如下:安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22DELAYDELAY:MOVMOVR3R3,#14H#14H;置;置1000ms1000ms计数循环初值计数循环初值MOVMOVTMODTMOD,#07H#07H;置定时器;置定时器0 0为方式为方式3 3计数计数MOVMOVTH0TH0,#06H#06H;置;置TH0TH0初值初值MOVMOVTL0TL0,#38H#38H;置;置TL0TL0初值初值SETBSETBTR0TR0;启动;启动TL0TL0SETBSETBTR1TR1;启动;启动TH0TH0LP1LP1:JBCJBC
18、TF1TF1,LP2LP2;查询;查询TH0TH0计数溢出计数溢出SJMPSJMPLP1LP1;未到;未到250s250s继续循环继续循环LP2LP2:MOVMOVTH0TH0,#06H#06H;重置;重置TH0TH0初值初值CLRCLRP3.4P3.4;T0T0引脚产生负跳变引脚产生负跳变NOPNOP;负跳变持续;负跳变持续NOPNOPSETBSETBP3.4P3.4;T0T0引脚恢复高电平引脚恢复高电平JBCJBCTF0TF0,LP3LP3;查询;查询TL0TL0计数溢出计数溢出SJMPSJMPLP1LP1;200200次未到继续计数次未到继续计数LP3LP3:MOVMOVTL0TL0,#
19、38H#38H;重置;重置TL0TL0初值初值DJNZDJNZR3R3,LP1LP1;未到;未到1s1s继续循环继续循环RETRET 安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22例例5.4 5.4 用单片机定时用单片机定时/计数器设计一个秒表,计数器设计一个秒表,由由P1P1口连接的口连接的LEDLED采用采用BCDBCD码显示,发光二极管亮码显示,发光二极管亮表示表示0 0,暗表示,暗表示1 1。计满。计满60s60s后从头开始,依次循后从头开始,依次循环。环。解:定时器解:定时器0 0工作于定时方式工作于定时方式1 1,产生,产生1s1s的定时。定时的
20、定时。定时器器1 1工作在方式工作在方式2 2,当,当1s1s时间到时,由软件复位时间到时,由软件复位T1T1(P3.5P3.5)脚,产生负跳变,再由定时器)脚,产生负跳变,再由定时器1 1进行计数,计进行计数,计满满6060次(次(1 1分钟)溢出,再重新开始计数。分钟)溢出,再重新开始计数。5.3 综合应用综合应用安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22按上述设计思路可知:方式寄存器按上述设计思路可知:方式寄存器TMODTMOD的控制字应为的控制字应为61H61H;定时器;定时器1 1的初值应为:的初值应为:256-60=196=0C4H256-6
21、0=196=0C4H其源程序可设计如下:其源程序可设计如下:ORGORG0000H0000HMOVMOVTMODTMOD,#61H#61H;置定时器;置定时器0 0为方式为方式1 1定时,置定时器定时,置定时器1 1为方式为方式2 2定时定时MOVMOVTH1TH1,#0C4H#0C4H;定时器;定时器1 1置初值置初值MOVMOVTL1TL1,#0C4H#0C4HSETBSETBTR0TR0;启动定时器;启动定时器1 1DISPDISP:MOVMOVA A,#00H#00H;计数显示初始化;计数显示初始化MOVMOVP1P1,A A安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学
22、院 20-Dec-22CONTCONT:ACALLACALL DELAYDELAYCLRCLRP3.5P3.5;T1T1引脚产生负跳变引脚产生负跳变NOPNOPNOPNOPSETBSETBP3.5P3.5;T1T1引脚恢复高电平引脚恢复高电平INCINCA A;累加器加;累加器加1 1DADAA A;将;将1616进制数转换成进制数转换成BCDBCD数数MOVMOVP1P1,A A;点亮发光二极管;点亮发光二极管JBCJBCTF1TF1,DISPDISP;查询定时器;查询定时器1 1计数溢出计数溢出SJMPSJMPCONTCONT;60s60s不到继续计数不到继续计数安徽理工大学安徽理工大学
23、电气与信息工程学院电气与信息工程学院 20-Dec-22DELAYDELAY:MOVMOVR3R3,#14H#14H;置;置50ms50ms计数循环初值计数循环初值MOVMOVTH0TH0,#3CH#3CH;置定时器初值;置定时器初值MOVMOVTL0TL0,#0B0H#0B0HSETBSETBTR0TR0;启动定时器;启动定时器0 0LP1LP1:JBCJBCTF0TF0,LP2LP2;查询计数溢出;查询计数溢出SJMPSJMPLP1LP1;未到;未到50ms50ms继续计数继续计数LP2LP2:MOVMOVTH0TH0,#3CH#3CH;重新置定时器初值;重新置定时器初值MOVMOVTL0
24、TL0,#0B0H#0B0HDJNZDJNZR3R3,LP1LP1;未到;未到1s1s继续循环继续循环RETRETENDEND安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22思考与练习思考与练习1 MCS-511 MCS-51单片机内设有几个定时单片机内设有几个定时/计数器?它计数器?它们是由哪些特殊功能寄存器组成?们是由哪些特殊功能寄存器组成?2 2定时定时/计数器作定时器用时,其定时时间与哪计数器作定时器用时,其定时时间与哪些因素有关?作计数器用时,对外界计数频些因素有关?作计数器用时,对外界计数频率有何限制?率有何限制?3 3已知已知80C5180C51
25、单片机系统时钟频率为单片机系统时钟频率为6MHZ6MHZ,请,请利用定时器利用定时器T0T0和和P1.2P1.2输出矩形脉冲,其波形如输出矩形脉冲,其波形如下:下:50s350s安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22答:设置答:设置T0T0为方式为方式2 2定时,定时定时,定时5050 s s,初值,初值X X为:为:X=2X=28 8(6 610106 6505010106 6)12122312310E7H0E7HTH0=TL0=0E7H,TMOD=02HTH0=TL0=0E7H,TMOD=02H源程序如下:源程序如下:MOVMOVTMOD,TMO
26、D,#02H#02HMOVMOVTH0,TH0,#0E7H#0E7HMOVMOV TL0,TL0,#0E7H#0E7HSETBSETBTR0TR0L1:L1:SETBSETBP1.2P1.2MOVMOVR0,R0,#08H#08HDEL:DEL:JBCJBCTF0,TF0,REPREPAJMPAJMPDELDELREP:REP:CLRCLRP1.2P1.2DJNZDJNZR0,R0,DELDELAJMPAJMPL1L1安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-224 80514 8051单片机系统时钟频率为单片机系统时钟频率为12MHZ12MHZ,请编程使,
27、请编程使P1.0P1.0和和P1.1P1.1分别输出周期为分别输出周期为2ms2ms和和500500 s s的方波。的方波。方法方法1 1:选用:选用T0T0定时,工作于方式定时,工作于方式3 3方法方法2 2:选用:选用T1T1定时,工作于方式定时,工作于方式2 2安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22 5 5、5151单片机定时器单片机定时器/计数器作定时和计数用时,计数器作定时和计数用时,其计数脉冲分别由谁提供?其计数脉冲分别由谁提供?6 6、简述如何使用简述如何使用5151单片机内部定时器单片机内部定时器/计数器计数器来测量一脉冲信号的高电平宽度。来测量一脉冲信号的高电平宽度。7、设系统晶振设系统晶振fosc12MHz,用定时器,用定时器T1定时定时5ms,采用方式,采用方式0,实现,实现100ms的延时,的延时,试编写相应的程序段。(采用查询方式)试编写相应的程序段。(采用查询方式)安徽理工大学安徽理工大学 电气与信息工程学院电气与信息工程学院 20-Dec-22MOV R3,20MOV TMOD,00HMOV TH1,63HMOV TL1,18HSETB TR1LP1:JBCTF1,LP2SJMP LP1LP2:MOV TH1,63HMOV TL1,18HDJNZ R3,LP1RET
限制150内