您的位置:首页 > 其它

串口中断应用实例

2004-12-17 20:10 525 查看
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint j=0;
uint num=0;
uchar sl,sh,ml,mh,hl,hh;
uchar code x[13]={'0','1','2','3','4','5','6','7','8','9',':',0x0d,0x0a};
//--------------------------------------------------------------------------------------------
void Time0_int() interrupt 1 using 1
{
TH0=(65536-40000)/256;
TL0=(65536-40000)%256;
num++;
if(num>50)
{
num=0;sl++;
if(sl>9)
{
sl=0;sh++;
if(sh>5)
{
sh=0;ml++;
if(ml>9)
{
ml=0;mh++;
if(mh>5)
{
mh=0;hl++;
if(hl>9)
{
hl=0;hh++;
if(hh>5)
hh=0;
}
}
}
}
}
SBUF=x[hh];
while(TI==0);
TI=0;
SBUF=x[hl];
while(TI==0);
TI=0;
SBUF=x[10];
while(TI==0);
TI=0;
SBUF=x[mh];
while(TI==0);
TI=0;
SBUF=x[ml];
while(TI==0);
TI=0;
SBUF=x[10];
while(TI==0);
TI=0;
SBUF=x[sh];
while(TI==0);
TI=0;
SBUF=x[sl];
while(TI==0);
TI=0;
SBUF=x[11];
while(TI==0);
TI=0;
SBUF=x[12];
while(TI==0);
TI=0;
}
}
//------------------------------------------------------------------------------------------------------
main()
{
TMOD=0x21;
TH0=(65536-40000)/256; //20ms 中断周期,共中断3000次,显示1分钟
TL0=(65536-40000)%256;
TL1=0xfd;
TH1=0xfd;
SCON=0xd8;
PCON=0x00;
EA=1;
ET0=1;
TR0=1;
TR1=1;
while(1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: