我们不生产PLC,我们只做全新原装的搬运工!
供应ABB 3HAB-8797-1 DSQC 266B
TMOD的高半字节(D4,D5,D6,D7)用来控制定时器/计数器1 对TMOD中的内容说明: GATE——门控制。
GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
当INT0引脚为高电平时TR0置位,启动定时器T0;
当INT1引脚为高电平时TR1置位,启动定时器T1。
GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。 C/T——功能选择位
C/T=0时为定时功能,C/T=1时为计数功能。
M0、M1——方式选择功能
由于有2位,因此有4种工作方式
4.根据单片机晶振,所选TMOD的的工作方式,所要定的时间,来确定THO和TLO所要赋予的初值 (以12M晶振,工作方式1,16位计数器为例,设所定时间为Xus(16为计数器***大数65536,即65536us,若所 定时间大于65535,则要用if语句控制,现假设X<65535))< font=""> 1.时钟周期的时间t=1/12M=1/12 us 2.机器周期的时间T=12*1/12=1 us 3.因为每经过一个机器周期计数器+1,所以,计数器+1,经过的时间为 1 us。 若所定时间为X,则要求经过Xus,中断响应,又因为16为计数器要全部置1(即达到65535)+1后,中断才会 响应,所以,初值=(65536-X) 4.将初值转化为16进制码,分别付给THO和TLO eg:所定时间5ms 初值=(65536-5000)=60536=EC78 TH0=0XEC; TL0=0X78; (当工作方式不同时,TH0/TL0的赋值也不同,个人觉得有了16位计数器了,其余的没什么用,不介绍了) 5.写程序时另一种THO/TLO赋值方法 TH0=(65536-20000)/256;
TL0=(65536-20000)%6; 这样设置,每经过20ms,发生一次中断,中断时间一般以秒为单位,所以经过n次中断即可。