51单片机定时器(T0/T1)的使用与配置流程 |
您所在的位置:网站首页 › 工作模式的定义 › 51单片机定时器(T0/T1)的使用与配置流程 |
第一步:配置工作方式寄存器—TMOD
TMOD寄存器的字节地址为89H,不能位寻址。一般采用整体赋值的方式进行配置;如:TMOD=0x01 // 0000 0001 注意: (1) 51单片机定时器常常方式1或者方式2 (2)方式1可以装入的总数是65536 (3)方式2可以转入的总数是256 赋值举例(以方式1和方式2): 1、采用方式1 使用定时器0的方式1,定时1ms。因为1ms = 1000us。故,65536 - 1000=64536 。即为16进制的0xfc18。 方法一: TH0 = (65536 - 1000) / 256 TL0 = (65536 - 1000) % 256方法二 TH0 = 0xfc TL0 = 0x182、采用方式2定时 使用定时器0的方式2,定时0.1ms。因为0.1ms = 100us。故,256 - 100 = 246 。即为16进制的 0xf6 。 TH0 = TL0 = 0xf6 或者: TH0 = 0xf6 TL0 = 0xf6 第三步:配置控制寄存器——TCON控制寄存器(TCON)在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)分别是88H~8FH,该寄存器可进行位寻址。可采用TRO=1,IT0=1的方式进行配置启动 (1)使用定时器0、方式1 定时 1ms(500HZ),使LED闪烁 1ms = 1000us ;65536 - 1000 = 64536。 64536的十六进制为 0xfc18 #include sbit LED = P1^0; int main(void) { TMOD = 0x01; //第一步:配置TMOD // 0000 0001 ; 选择方式1 TH0 = 0xfc; TL0 = 0x18; // 第二步:赋初值 // 0xfc18 = 64536. 定时1000us = 1ms (500HZ) TR0 = 1; //第三步:配置TCON // 定时方式,选择定时器 T0 ET0 = 1; // 定时器/计数器0中断允许位,打开T0中断 EA = 1; //第四步:开总中断 while(1); } void timer0() interrupt 1 { TH0 = 0xfc; TL0 = 0x18; // 方式1 在中断中需要重新赋初值 LED = ~LED; }(1)使用定时器0、方式2 定时 0.1ms(5000HZ),使LED闪烁 0.1ms = 100us ; 256 - 100 = 156; 十六进制为0x9c #include sbit LED = P1^0; int main(void) { TMOD = 0x02; //第一步:配置TMOD // 0000 0002 ; 选择方式2 TH0=TL0=0x9c; // 第二步:赋初值 // 0x9c = 156. 定时100us = 0.1ms (5000HZ) TR0 = 1; //第三步:配置TCON // 定时方式,选择定时器 T0 ET0 = 1; // 定时器/计数器0中断允许位,打开T0中断 EA = 1; //第四步:开总中断 while(1); } void timer0() interrupt 1 { LED = ~LED; //方式2不需要重新赋初值 }【参考文档】 《51单片机C语言教程(郭天祥)》 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |