#include <REG51.H>
#include <intrins.h>
#include <absacc.h>
#define uint unsigned long int
#define uchar unsigned char
uchar code commm[]={'0','1','2','3','4','5','6','7','8','9'};
uint aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,lll,ttt;
void interint1() interrupt 2 //using ** 入口
//外部中断1处理
{
TR0=1; //启动T0
ttt=1; //状态标记
}
void interint0() interrupt 0 //using ** 出口
//外部中断0处理
{
if(ttt==1)
{
TR0=0; //停止T0
ttt=2;
}
}
void intertimer1() interrupt 1 //using **
//T1定时中断处理
{
TR0=0; //启动T0
TH0= 0x00; // T0高8位
TL0= 0x03; // T0低8位 //补偿
TR0=1; //启动T0
hhh++;
}
void main()
{
//unsigned int aaa,bbb,ccc; // mmm;//mmm99
//2400bps@24.000MHz
EA=1; //开全局中断
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
// AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
// AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
// TMOD = 0x21;
TL1 = 0xE6; //设定定时初值
TH1 = 0xE6; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
EX0=1; //开外部中断0
EX1=1; //开外部中断1
ET0=1; //开定时中断1
// ET1=1; //开定时中断2
IT0=0; //外部中断0低电平触发
IT1=0; //外部中断1低电平触发
PX0=1; //外部中断0高 优先级
PX1=1; //外部中断1高 优先级
TMOD = 0x21; //T0T1方式控制
TH0= 0x00; // T0高8位
TL0= 0x00; // T0低8位
while(1)
{
if(ttt==2)
{
ttt=3;
SBUF='=';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
aaa=TH0;
bbb=TL0;
TH0=0;
TL0=0;
ccc=hhh*65535+aaa*255+bbb*2;
ddd=ccc*2;
fff=1026400000/ddd;
SBUF='a';
while(!TI);
TI=0;
SBUF='a';
while(!TI);
TI=0;
SBUF='a';
while(!TI);
TI=0;
SBUF='=';
while(!TI);
TI=0;
SBUF=commm[aaa/100%10];
while(!TI);
TI=0;
SBUF=commm[aaa/10%10];
while(!TI);
TI=0;
SBUF=commm[aaa%10];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
SBUF='b';
while(!TI);
TI=0;
SBUF='b';
while(!TI);
TI=0;
SBUF='b';
while(!TI);
TI=0;
SBUF='=';
while(!TI);
TI=0;
SBUF=commm[bbb/100%10];
while(!TI);
TI=0;
SBUF=commm[bbb/10%10];
while(!TI);
TI=0;
SBUF=commm[bbb%10];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
SBUF='h';
while(!TI);
TI=0;
SBUF='h';
while(!TI);
TI=0;
SBUF='h';
while(!TI);
TI=0;
SBUF='=';
while(!TI);
TI=0;
SBUF=commm[hhh/100%10];
while(!TI);
TI=0;
SBUF=commm[hhh/10%10];
while(!TI);
TI=0;
SBUF=commm[hhh%10];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
SBUF='c';
while(!TI);
TI=0;
SBUF='c';
while(!TI);
TI=0;
SBUF='c';
while(!TI);
TI=0;
SBUF='=';
while(!TI);
TI=0;
SBUF=commm[ccc/1000000%10];
while(!TI);
TI=0;
SBUF=commm[ccc/100000%10];
while(!TI);
TI=0;
SBUF=commm[ccc/10000%10];
while(!TI);
TI=0;
SBUF=commm[ccc/1000%10];
while(!TI);
TI=0;
SBUF=commm[ccc/100%10];
while(!TI);
TI=0;
SBUF=commm[ccc/10%10];
while(!TI);
TI=0;
SBUF=commm[ccc%10];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
SBUF='f';
while(!TI);
TI=0;
SBUF='f';
while(!TI);
TI=0;
SBUF='f';
while(!TI);
TI=0;
SBUF='=';
while(!TI);
TI=0;
SBUF=commm[fff/1000000000%10];
while(!TI);
TI=0;
SBUF=commm[fff/100000000%10];
while(!TI);
TI=0;
SBUF=commm[fff/10000000%10];
while(!TI);
TI=0;
SBUF=commm[fff/1000000%10];
while(!TI);
TI=0;
SBUF=commm[fff/100000%10];
while(!TI);
TI=0;
SBUF=commm[fff/10000%10];
while(!TI);
TI=0;
SBUF='.';
while(!TI);
TI=0;
SBUF=commm[fff/1000%10];
while(!TI);
TI=0;
SBUF=commm[fff/100%10];
while(!TI);
TI=0;
SBUF=commm[fff/10%10];
while(!TI);
TI=0;
SBUF=commm[fff%10];
while(!TI);
TI=0;
SBUF='M';
while(!TI);
TI=0;
SBUF='/';
while(!TI);
TI=0;
SBUF='S';
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
hhh=0;
}
aaa++;
if(aaa>30)
{
aaa=0;
bbb++;
}
if(bbb>300)
{
bbb=0;
SBUF='*';//28;
while(!TI);
TI=0;
ccc++;
if(ccc>36)
{
ccc=0;
SBUF='<';//28;
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
}
} // bbb >1000
}//w1
}//ma
完成核心代码, 通过串口发送数据给Pc机通过串口接收软件接收显示数据