#define uchar unsigned char
#define uint unsigned int
void PORT_Init (void)
{
XBR0 = 0x01; // Port I/O Crossbar Control 0
XBR1 = 0x40; //Port I/O Crossbar Control 1
P0MDOUT = 0x10; //Port 0 Output Mode Configuration 输出模式配置
}
void UART0_Init (void)
{
SCON0 |= 0x10; // Port I/O Crossbar Control 0
CKCON = 0x01; // Clock Control时钟控制
TH1 = 0x64; //波特率为9600 // Timer/Counter 1 High 计时器一高位
TL1 = TH1; // Timer/Counter 1 Low 计时器一低位
TMOD = 0x20; // Timer/Counter Mode 时间计数模式
TR1 = 1; /// Timer1 on/off control 启动time1
TI0 = 1; //Transmit interrupt flag 传输中断标示
}
void delay(void)
{
uint i;
for(i=1000;i>0;i--);
}
void main()
{
uchar g;
PCA0MD &= ~0x40; // PCA0 Mode 模式
OSCICN |= 0x03; // Internal Oscillator Control 内部振荡器控制
PORT_Init(); //端口初始化
UART0_Init(); //串口初始化
g=9;
while(1)
{
delay();
SBUF0=g;
}
}
向串口间断性发送数据,只发送一个字符'9'
不过PC端读取时 总是很乱的一大堆数
g=9是 读取的是/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r..........
g=a时 读取的是乱码了 但是很多
帮我看下 上面的程序有没有错误~ |