于控制T0,高4位用于控制T1。高4位控制T1门控位计数定时方式选择工作方式选择GCTM1M0门控位G低4位控制T0计数定时方式选择CT工作方式选择M1M0
⑴M1M0工作方式选择位M1M000110101工作方式方式0方式1方式2方式3功能13位计数器16位计数器两个8位计数器,初值自动装入两个8位计数器,仅适用T0
⑵CT计数定时方式选择位CT1计数工作方式对外部事件脉冲计数用作计数器。CT0定时工作方式对片内机周脉冲计数用作定时器。⑶GATE门控位GATE0,运行只受TCON中运行控制位TR0TR1的控制。GATE1,运行同时受TR0TR1和外中断输入信号的双重控制。只有当INT0INT11且TR0TR11T0T1才能运行。TMOD字节地址89H不能位操作设置TMOD须用字节操作指令。三定时计数器工作方式三定时计数器工作方式⒈工作方式013位计数器,由TL0低5位和TH0高8位组成,TL0低5位计数满时不向TL0第6位进位,而是向TH0进位,13位计满溢出,TF0置“1”。最大计数值2138192。【例1】用定时器1,方式0实现1s的延时。解:因方式0采用13位计数器其最大定时时间为:8192×1s8192ms,因此,可选择定时时间为5ms,再循环200次。定时时间选定后,再确定计数值为5000,则定时器1的初值为XM计数值819250003192C78H0110001111000B因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为
2
fX0110001100011000B6318H,即:TH163H,TL118H,又因采用方式0定时,故TMOD00H。可编得1s延时子程序如下:DELAY:MOVR3,200;置5ms计数循环初值MOVTMOD,00H;设定时器1为方式0MOVTH1,63H;置定时器初值MOVTL1,18HSETBTR1;启动T1LP1:JBCTF1,LP2;查询计数溢出SJMPLP1;未到5ms继续计数LP2:MOVTH1,63H;重新置定时器初值MOVTL1,18HDJNZR3,LP1;未到1s继续循环RET;返回主程序⒉工作方式116位计数器,最大计数值为21665536。【例2】】1要求:信号灯循环显示,时间间隔为1s。2方法:用定时器方式1编制1s的延时程序,实现信号灯的控制。系统采用12MHz晶振,采用定时器1,方式1定时50ms,用R3做50ms计数单元,其源程序可设计如下:ORG0000HCONT:MOVR2,07HMOVA,0FEHNEXT:MOVP1,AACALLDELAYRLADJNZR2,NEXTMOVR2,07HNEXT1:MOVP1,ARRAACALLDELAYDJNZR2,NEXT1SJMPCONTDELAY:MOVR3,14H;置50ms计数循环初值MOVTMOD,10H;设定时器1为方式1MOVTH1,3CH;置定时器初值MOVTL1,0B0HSETBTR1;启动定时器1LP1:JBCTF1,LP2r