{
TMOD=0x20
TH1=0xfd
TL1=0xfd
SCON=0x40
TR1=1
}
void init2(void)
{
TMOD=0x20
TH1=0xfd
TL1=0xfd
SCON=0x50
TR1=1
ES=1
EA=1
}
有错,再改改吧用串口接收弊罩扒、闷枯发送数据不是租昌通过rxd和txd引脚,而是通过SBUF寄存器。接收数据从SBUF,发送数据是把数据放在SBUF上。
最好用中断来做,用延时函数有点浪费CPU。
//适用于51单片机,在STC单片机上察野被使用typedef unsigned char uint8
typedef unsigned int uint16
typedef unsigned long uint32
#define FOSC 18432000L
#define BAUD 9600
void InitUart()
{
SCON = 0x5a//8 bit data ,no parity bit
TMOD = 0x20//T1 as 8-bit auto reload
TH1 = TL1 = -(FOSC/12/32/BAUD)//Set Uart baudrate
TR1 = 1 //T1 start running
TI=0
}
/亏或/以字符形式发送数字,如SendNumEx(123),发送字符:"123"
void SendNumEx(uint32 num)
{
uint8 n=0,m=0
uint32 i=1000000000//32bit共10位十进制
if(num==0)
{
SendData('0')
return
}
do{
n=num/i//获取败空喊最高位
if(n)m=1
if(m)//数字后的数字(包括0)都一概输出,前面的不输出
{
SendData(n+'0')
}
num%=i //把最高位去掉
i/=10
}while(i>0)
}
void uPrintStr(uint8 *str)//发送字符串
{
uint8 i=0
while(str[i]!='\0' &&i<255)
{
SendData(str[i])
i++
}
return
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)