(c51学习笔记)计时器和中断

什么是中断

中断系统是为使CPU具有对外界异步事件的处理能力而设置的。

单片机是单线程的,通常情况下都是在执行死循环,一旦遇到外部情况,就无法跳出当前的循环,这时候就需要用到中断。

程序在执行一项工作时,遇到更紧急的任务时,暂停当前工作,转而去执行另更紧急的任务,执行完毕之后再回到原来的工作。

中断允许寄存器IE

EA: 总中断控制位,当EA = 1 , CPU 允许开放中断。当EA = 0 时, CPU 屏蔽所有中断。

ELVD : 低压检测中断允许位。ELVD=1,允许低压检测中断;ELVD=0,禁止低压检测中断。

EADC : A/D转换中断允许位。EADC=1,允许A/D转换中断;EADC=0,禁止A/D转换中断。

ES : 串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。

ET1 : 定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。

EX1 : 外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。

ET0 : T0的溢出中断允许位。ET0=1,允许T0中断;ET0=0禁止T0中断。

EX0 : 外部中断0中断允许位。EX0=1,允许中断;EX0=0禁止中断。

定时器

c51中定时器和计数器是由同一个硬件电路支持的,通过定时器/计数器工作模式寄存器TMOD进行配置,标准c51单片机中有两个定时器/计数器可供配置。

时钟周期和机器周期

时钟周期:时钟周期就是晶振频率的倒数,如果采用的是11.0592Mhz的晶振,晶振就是1/(1.10592*10^7)秒

机器周期:标准c51下,机器周期 = 12个时钟周期。

每经过一个机器周期,计数器就会加1,如果采用的是16位模式工作,那么计数范围就在0-65536,计时范围就为0-0.71s,当计数器累加到65536时,计数器就会溢出,并向CPU请求中断。如果要规定定时器多久触发中断,可以为定时器设定初始值,从初始值到65536,就是定时时长。

计数存储寄存器THX和TLX

初始值通过THX和TLX来设定,如果选用的是定时器0,则采用TH0和TL0,TH0代表高位,TL0代表低位。

如果希望定时器定时为10ms,应该如此计算,0.01s/(12/1.10592*10^7) = 9216,  65536-9216=56320,转化为16位进制,得DC00,所以定时器初始值应该设为DC00,即TH0 = 0XDC, TL0 = 0X00;

控制寄存器TCON

TF1:定时器/计数器1的溢出标志位。1表示计数存储器溢出,0表示计数存储器正常计数。

        清0方式:①通过代码修改TF1为0

                       ②当通过中断机制来使用定时器/计数器1时,进入中断处理函数后自动归0

TR1:定时器/计数器1的启动和停止位。1表示启动,0表示停止。

TF0:定时器/计数器0的溢出标志位。1表示计数存储器溢出,0表示计数存储器正常计数。

        清0方式:①通过代码修改TF0为0

                       ②当通过中断机制来使用定时器/计数器0时,进入中断处理函数后自动归0

TR0:定时器/计数器0的启动和停止位。1表示启动,0表示停止。

void initUart()
{
    TMOD |= 0X01;		//选择定时器0工作在16位模式
    TH0 = 0XDC;
    TL0 = 0X00;			//定时器初始化
    IE |= 1<<7;			//打开总中断EA
    IE |= 1<<1;			//打开定时器0中断ET0
    TR0 = 1;		//打开定时器0;
}

void timer () interrupt 1
{
	TF0 = 0;				//计时器中断溢出位,应软件置零
	TH0 = 0XDC;
    TL0 = 0X00;			//重置定时器
}

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值