《单片机四定时器精.ppt》由会员分享,可在线阅读,更多相关《单片机四定时器精.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机四定时器第1页,本讲稿共22页第第章章定定时时器器及及应应用用 本章内容本章内容Single Chip Microcomputer单片机定时器单片机定时器/计数器的结构计数器的结构 定时器控制定时器控制定时器工作模式定时器工作模式定时器基本概念定时器基本概念定时器初始化定时器初始化第2页,本讲稿共22页数字电路中的计数器第3页,本讲稿共22页单片机定时器单片机定时器/计数器的结构计数器的结构第4页,本讲稿共22页定时器控制v工作模式寄存器TMOD v控制寄存器TCON第5页,本讲稿共22页工作模式寄存器TMOD注:TMOD不能位寻址,只能用字节方式进行设置GATE C/T M1 M0 G
2、ATEM1C/TM0定时器定时器T1定时器定时器T0 D7 D6 D5 D4 D3 D2 D1 D0TMOD(89H)第6页,本讲稿共22页TMODTMOD各位定义及具体的意义各位定义及具体的意义第7页,本讲稿共22页操作模式控制位M0、M1M1 M0 工 作 方 式 功 能 说 明0 0方 式 013位计数器0 1方 式 116位计数器1 0方 式 2自动再装入8位计数器1 1方 式 3定时器0:分成两个8位计数器定时器1:停止计数第8页,本讲稿共22页控制寄存器TCONTF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)8FH 8EH 8DH 8CH 8BH 8AH 89H
3、88H第9页,本讲稿共22页TCON各位定义及具体的意义各位定义及具体的意义第10页,本讲稿共22页定时器工作模式 M1 M0 工 作 方 式功 能 说 明0 0方 式 013位计数器0 1方 式 116位计数器1 0方 式 2自动再装入8位计数器1 1方 式 3定时器0:分成两个8位计数器定时器1:停止计数第11页,本讲稿共22页模式0第12页,本讲稿共22页模式1第13页,本讲稿共22页模式2第14页,本讲稿共22页模式3第15页,本讲稿共22页定时器初始化过程定时器初始化过程1、确定并设定定时器工作模式 TMOD 2、设置定时/计数器初值 TH0、TL0 或TH1、TL13、开启定时器中
4、断 IE:ET0(ET1)和 EA4、启动定时器 TCON:TR0(TR1)注:如果采用查询方式控制定时器还需要判断TF0(TF1)第16页,本讲稿共22页应用举例v用定时器1方式0在P1.0上产生周期为2S的方波。晶振频率为12MHz。1、最大定时时间:81921s=8.192ms 2、选定定时T=5ms 3、X=3192=C78H=00001100,01111000B 4、C78H=01100011,11000B T0初值=01100011,00011000B=6318H TH1=63H,TL1=18H 第17页,本讲稿共22页v#include vsbit P1_0=P10;vmain(
5、)vvunsigned char i=200;vTMOD=0 x00;/设定工作模式为0vTH1=0 x63;/根据计算设定计数器初值vTL1=0 x18;vTR1=1;/启动定时器vwhile(1)vv if(TF1=1)/判断定时溢出标志v v TH1=0 x63;/设定计数器初值v TL1=0 x18;v TF1=0;/清除标志位v i=i-1;v if(i=0)/判断是否计满200次,即定时1秒v v i=200;v P1_0=!P1_0;/将P1.0电平翻转v v vv程序(查询方式-C)第18页,本讲稿共22页程序(查询方式-汇编)v ORG 0000Hv AJMP MAINv O
6、RG 0100HvMAIN:MOV R3,#200;置5ms计数循环初值vMOV TMOD,#00H;设定时器1为方式0v MOV TH1,#63H;置定时器初值vMOV TL1,#18HvSETB TR1;启动T1vLP1:JBC TF1,LP2 ;查询计数溢出vSJMP LP1;未到5ms继续计数vLP2:MOV TH1,#63H ;重新置定时器初值vMOV TL1,#18HvDJNZ R3,LP1;未到1s继续循环v CPL P1.0 vMOV R3,#200v SJMP LP1;重新计数第19页,本讲稿共22页程序(中断方式C)v#include vsbit P1_0=P10;vuns
7、igned char i=200;vmain()vvTMOD=0 x00;vTH1=0 x63;vTL1=0 x18;vTR1=1;vIE=0 x88;vwhile(1)v第20页,本讲稿共22页vvoid intT1()interrupt 3/T1 定时中断处理函数vvTH1=0 x63;/定时器中断时间间隔 5msv TL1=0 x18;v i=i-1;vif(i=0)vv i=200;v P1_0=!P1_0;vv 第21页,本讲稿共22页程序(中断方式汇编)v ORG 0000Hv LJMP MAINv ORG 001BHv LJMP ZDT1v ORG 0100HvMAIN:MOV R3,#200;置5ms计数循环初值v MOV TMOD,#00H;设定时器1为方式0v MOV TH1,#63H;置定时器初值v MOV TL1,#18Hv MOV IE,#88H ;开启定时器1中断v SETB TR1 ;启动T1vLP1:SJMP LP1;未到5ms继续计数vZDT1:MOV TH1,#63H ;重新置定时器初值v MOV TL1,#18Hv DJNZ R3,EXIT;未到1s继续循环v CPL P1.0 v MOV R3,#200vEXIT:RETI ;退出中断第22页,本讲稿共22页