C51串口发送实时数据,每隔1s,如何实现?51串口发送程序
下面是我写的程序,希望对你有帮助。
#include <reg51.h>
//晶振11.0592MZH
//每次中断误测约为0.434微秒
unsinged char T = 0;
void InitTimer0(void)
{
TMOD = TMOD0x01;
TH0 = 0x0FC;
TL0 = 0x66;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void InitUART(void)
{
TMOD = TMOD0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
InitTimer0();
InitUART();
while(1);
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0FC;
TL0 = 0x66;
if(T ==1000)
{
T = 0;
SendOneByte(k);//要发送的数据
}
esle
{
T++;
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
//如果有接收信息,在这加入。
}
else
TI = 0;
}