您的位置:首页 > 其它

单片机中断(定时器)实践

2017-08-03 20:07 253 查看
#include<reg52.h>

/*
原理:通过每单位中断50毫秒,每次中断20单位实现定时显示
为方便我只是点亮了LED,还可以操作位选与段选点亮指定数码管显示指定数字
*/

unsigned char count=0;

sbit led=P2^1;

void main()
{
//GATE=0,C/T=0,M1M0=01,结果TMOD为0x01
TMOD=0x01;

//装入数据
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

//总中断
EA=1;

//定时器中断请求标志位
ET0=1;

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

//点亮LED
while(1)   //之前少了while循环导致无法正常显示
{
if(count==20)
{
led=0;
}
if(count==40)
{
led=1;
count=0;
}
}
}

void inter() interrupt 1
{
//再一次重新装入数据方便进行下一次中断
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: