以下为51单片机,11.0592的晶振

直接定义一个初始化时钟的函数,这里定义的是1毫秒,一般情况足够了

/*定时器0初始化*/
void Timer0Init(void)		//1毫秒@11.0592MHz
{
	TMOD &= 0xF0;		//设置定时器模式
	TMOD |= 0x01;		//设置定时器模式
	TL0 = 0x66;		//设置定时初值
	TH0 = 0xFC;		//设置定时初值
	TF0 = 0;		//清除TF0标志
	TR0 = 1;		//定时器0开始计时
	ET0=1;    
	EA=1;      
}

定义时钟周期事件的函数 这个函数后面跟随着interrupt 1 系统会自动调用

Timer0_Routine() interrupt 1{//1毫秒周期事件
	static unsigned int T0Count;
	TL0=0x18;
	TH0=0xFC;
	T0Count++;
	if(T0Count>=1000){//每次达到1000毫秒,就是1秒,可以自定义一个每秒的周期事件函数,在此处调用
		T0Count=0;	   
		//shijian();每秒的事件 
	}
}


然后在函数入口处先调用一下  初始化一下 时钟就创建好了

void main(){
	Timer0Init();//初始化时钟   
	while(1){
	    //其他代码
	}
}

这样就实现了让程序  每秒或者每毫秒执行一个事件了,比如倒计时秒数之类的功能就都可以精准实现了

相关推荐

51单片机点亮一个LED 和 LED闪烁

在51单片机的原理图中,共有8个LED 其中一侧在串联电阻后,连接到了电源的正极(VCC)另一端分别连接到了P20,P21,P22,P23.....P27(这些相当于编号,跟单片机对应的编号都是通着

51单片机函数

在51单片机开发板的晶振上写着11.0592代表了11.0592MHz我们可以用STC-ISP软件上的 软件延时计算器 来生成一个代码,需在系统频率那里选择11.0592指令集选择STC-Y1(因为我

51单片机数码管显示多位数数字

(此数码管为共阴极)首先写一个函数,在指定的其中数码管显示单个1位数数字参数一:第几个数码管参数二:要显示的数字unsigned char arr[]={0x3f,0x06,0x5b,0x4f,0x6

74HC245的作用 引脚图以及功能 (解决单片机输出功率不足的问题)

以下仅为简单总结,详情请参阅购买开发板附带的资料作用: 由于单片机输出的功率不足,所以可以通过74HC245来增强他的电流上限功能:八个输入信号原封不动的输出,只不过可接的电流更大一些。可解决led太

电脑浏览网页定时自动刷新,如何实现一直刷新插

分别说一下浏览器的自动刷新 和网页代码的自动刷新方法吧:第一种:浏览器设置自动刷新方法:(这里我使用的是360浏览器)点击扩展中心,在上面搜索【刷新】关键词搜索后出现几个自动刷新的插件。安装即可每个人

window7任务计划程序 添加定时运行某程序

首先在【计算机】上点击右键》管理然后点击任务计划程序右键,创建任务然后按照提示一步步填写即可因为我自己用的程序都是我自己写的。运行后执行完任务我的程序会自动退出所以我就只管定时让程序运行就可以了。至于

定时插座 可编程插座使用说明书