php网站数据库修改,中国铁建门户网登录入口,网页游戏手机怎么才可以玩,行政机关 网站源码一 什么是定时器 定时器/计数器是一种能够对内部时钟信号或外部输入信号进行计数#xff0c;当计数值达到设定要求时#xff0c;向cpu提出中断处理请求#xff0c;从而实现#xff0c;定时或者计数功能的外设。
二 51单片机的定时/计数器 单片机外部晶振12MHZ#xff0c;…一 什么是定时器 定时器/计数器是一种能够对内部时钟信号或外部输入信号进行计数当计数值达到设定要求时向cpu提出中断处理请求从而实现定时或者计数功能的外设。
二 51单片机的定时/计数器 单片机外部晶振12MHZ12分频后计数脉冲为1MHZ即每个时钟脉冲周期为1us定时器T0的16位工作模式最大定时时间位65535us如果要定时10ms的计数器的话就不能从0开始计数了必须给定一个计数初值。 TH0 65535-10000/256 TL0 (65535-10000)%256
三 定时器/计数器编程思想 通常有2个函数1个是初始化函数1个是对外做中断服务函数 配置工作环境-计算计数初值-使能定时/计数器中断即ET0或者ET1置0- 打开总中断即EA1-启动定时器即TR0或者TR1置0
在中断服务函数中如果不是自动重装模式需要对THX和TLX重新赋值。
四 工程 代码
利用51单片机的定时/计数T0模式实现定时每隔1sL1指示灯闪烁一下也就是点亮0.5s熄灭0.5s每隔10sL8指示灯闪烁一下即点亮5s熄灭5s。
#includereg52.hsbit L1 P0^0;
sbit L8 P0^7;void InitHC138(unsigned char n)
{switch (n){ case 4HC138_C 1;HC138_B 0;HC138_A 0;//输出Y4break;case 5HC138_C 1;HC138_B 0;HC138_A 1;//输出Y5break;
case 4HC138_C 1;HC138_B 1;HC138_A 0;//输出Y6break;case 5HC138_C 1;HC138_B 1;HC138_A 1;//输出Y7break;}
}//锁存器选择//
void InitTimer()
{THOD 0x01;TH0 (65535-50000)/256;TL0 (65535-50000)%256;ET0 1;EA 1;TR0 1;
}unsigned char count 0;
unsigned char count1 0;
void ServiceTimer() interrupt 1
{TH0 (65535-50000)/256;TL0 (65535-50000)%256;count;count1;if(count 10){L1~L1;count 0;}if(count1 100){L8~L8;count1 0;
}//void mian()
{void InitTimer();while(1){}
}