如何编写串口程序:单片机串口采用方式1,波特率9600,晶振11.0592M,只发送,不收,发送采用查询方式

如何编写串口程序:单片机串口采用方式1,波特率9600,晶振11.0592M,只发送,不收,发送采用查询方式,第1张

void init1(void)

{

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12489972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存