51单片机mysql_51单片机定时器中断(示例代码)

/*

配置的寄存器有

TMOD:模式控制寄存器

20200417214443391989.png

TCON:定时器控制器控制寄存器

20200417214443508193.png

IE:中断允许寄存器

20200417214443551159.png

IP:中断优先级寄存器

20200417214444661439.png

*/

#include "reg52.h"

#define BASE (50000/(12/11.0592)) // 定义50ms的基数

sbit led = P1^0;

void time_init()

{

TMOD = 0x01; // 使用模式1

TH0 = (65535 - BASE) / 255;

TL0 = (65535 - BASE) % 255;

EA = 1;// 启动总中断

ET0 = 1;// 启动定时器0中断

TR0 = 1;// 启动定时器0

}

void mian()

{

char count = 0;

time_init();

while(1)

{

if(count == 20) // 定时1s

{

led ~= led;

count = 0;

}

}

}

void timer0() interrupt 1

{

TH0 = (65535 - BASE) / 255;

TL0 = (65535 - BASE) % 255;

count++;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值