51定时器定时器封装delay函数

定时器以12mhz,计算1ms

#include<REG52.h>
sbit LED=P2^5;
int base_count_ms=0;
int count_ms=0;
int count_ms_end=0;
void timer0_interrupt(void){
TMOD|=0x01;
TH0=0xfc;
TL0=0x18;
ET0=1;
EA=1;
TR0=1;
}
void time0() interrupt 1{
   TH0=0xfc;
   TL0=0x18;
   count_ms++;
}
void delay_ms(int i){//参数为ms
count_ms=0;
count_ms_end=i;
timer0_interrupt();
while(1){
if(count_ms==count_ms_end){
ET0=0;
EA=0;
TR0=0;
break;
}
}
count_ms=0;
count_ms_end=0;
}
int main(void){
   delay_ms(100);
   LED=!LED;
	return 0;
}

 

版权声明:
作者:幻浮辰
链接:https://www.fuchen33.com/2022/04/24/720.html
来源:幻浮辰博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录