中断频率的思考

对于单片机定时器的一点思考
首先要计算出计数器加1的时间
比如说1Mhz,每秒钟运行10的6次方
加一的时间为10的-6次方即1微秒,
其次是定时器计数多少次发生中断,比如说5000次
那发生一次中断时间为5毫秒
中断频率为1/0.005=200hz

#include<reg52.h>
sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
sbit led3=P2^3;

void init(){
	TMOD=TMOD|0x01;//定时器工作方式寄存器 使用工作方式1工作16位
	TH0=0xfc;
	TL0=0x18;
	
	ET0=1;//中断允许控制寄存器IE,允许T0中断
	EA=1;//中断总开关
	TR0=1;//中断请求标志寄存器TCON ,T0控制位
}
void Int0() interrupt 1{
	static int i0;
	static int i1;
	static int i2;
	static int i3;
	TH0=0xfc;
	TL0=0x18;
	i0++;
	i1++;
	i2++;
	i3++;
	if(i0==1000){
	    i0=0;
		led0=~led0;
	}
	if(i1==500){
		i1=0;
		led1=~led1;
	}
	if(i2==250){
		i2=0;
		led2=~led2;
	}
	if(i3==125){
		i3=0;
		led3=~led3;
	}
}
		
void main(){
	init();
	while(1);
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值