#include "REG938.h"
#define U8 unsigned char;
void init();
void UART_init();
void DataRev(void);
U8 FrameReg[8]; //串口数据缓冲区,长度为8个字节
U8 FrameRegPtr; //缓冲区偏移地址
void main(void)
{
init();
UART_init();
while(FrameRegPtr <= 7) {};
FrameRegPtr = 0;
do{
TI = 0;
SBUF = 0x5a;
while(!TI) {};
TI = 0;
while(FrameRegPtr == 8) {};
}while(1);
}
void init(void)
{
P1M1 = 0x00; //push pull except RX
P1M2 = 0xFD;
P2M1 = 0x00; // push pull
P2M2 = 0xFF;
ESR = 1; // enable UART interrupt
EST = 0;
EA = 1;
}
void UART_init()
{
//PCON |= 0x00;
SCON = 0x50; // select BRG as UART Baud Rate Gen
SSTAT = 0x40; // separate Rx / Tx interrupts
//BRGCON = 0x02;
BRGR0 = 0x70; // setup BRG for 19200 baud @ 7.373
BRGR1 = 0x01;
BRGCON = 0x03; // enable BRG
}
void DataRev(void) interrupt 4
{
RI = 0;
FrameReg[FrameRegPtr] = SBUF;
if(FrameRegPtr <= 7)
FrameRegPtr++;
}
串口不停发送数据,即使我发送再多数据也停不下来。