51单片机之定时器

2018/3/25

51单片机

1.CPU时序

1.振荡周期:为单片机实现定时信号的振荡源周期(晶振周期或者外加振荡周期)

计算方法:1.振荡周期

2.状态周期:由两个振荡周期实现

3.机器周期:一个机械周期含12个振荡周期

4.指令周期:以机器周期为单位

2.定时器的操作

1.根据我的理解,对于定时器的操作其实就是对一些特殊寄存器的操作

2.定时器其实就是加一计数器,通过两个寄存器来控制:THx(高四位)和TLx(低四位);

3.TCON计数器:控制定时器T0,T1的开闭;

4.TMOD寄存器:设置定时器的工作方式:

3.关于定时器的操作顺序(包括中断)

1.首先实现TMOD寄存器的工作状态(注意高四位和低四位)

2.实现计数器TH0和TL0的初值(判断实现一次中断的时间)

3.设置TCON(寄存器开关),TCON=1;(打开计时器)

4.注意判断溢出情况(归0);

5.注意中断函数实行的interrupt值

4:注:中断函数的实现和主函数是并行运作的;

5.实现代码

#include<reg52.h>
	typedef unsigned char u8;
	typedef unsigned int u16;

	sbit led=P2^0; //D1

	void Time0init()
	{
		TMOD|=0X01;//设置低四位T0.00000001(门空位为0,设置c/t位为0:定时器,设置十六位定时器)
		//采用|运算符号,防止因拉低电平对后面造成影响
		TH0=0xFC;
		TL0=0X18;
		//定时1ms
		 ET0=1;//打开定时器中断
		 EA=1;//开启中断总开关
		 TR0=1;//开启定时器
	}

		void main()
		{
			Time0init();
			while(1);	
		}
	void Time0()interrupt 1
		{
			static u16 i;
				//重新装载
			 	TH0=0xFC;
				TL0=0X18;
				i++;
				if(i==1000)//定时了5s
				{
					i=0;//溢出时清0
					led=~led;
				}
		}





  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值