1. 怎樣編寫單片機的串口通信的程序
GCC只是一個編譯器,和別的編譯器一樣。 串口通訊程序一般都是這樣一個流程(AVR單片機正常工作的情況下): 1 配置時鍾,包括使能時鍾,配置串口波特率。 2 其他配置,包括校驗設置,使能串口等。 3 收發數據。主要過程為查詢串口標志位,然後根據串口標志位去判斷是否完成了收發數據。 按照這三個步驟去寫程序,應該很快就能完成一個通訊程序。
2. 51單片機 串口程序
void
main()
{
scon
=
0x50;
tmod
=
0x20;
//設置定時器1為工作方式2
th1
=
0xf4;
tl1
=
0xf4;
tr1
=
1;
ea
=
1;
es
=
1;
while(1)
{
if(flag)
{
flag
=
0;
//不關閉串口中斷,要讓它繼續接收
num1++;
//超過255,自動就是0
sbuf
=
num1;
while(!ti);
ti
=
0;
sbuf
=
a;
while(!ti);
ti
=
0;
}
}
}
void
ser()
interrupt
4
{
if
(ri)
{
ri
=
0;
a
=
sbuf;
flag
=
1;
}
}
3. 怎樣編寫單片機的串口通信的程序,一般的步驟是怎麼樣
編寫串口通訊程序步驟為:
1、設置波特率
2、設置串口工作方式
3、收發數據。
比如:
main()
{
unsignedchardat;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
while(1)
{
while(RI==0);
RI=0;
dat=SBUF;
SBUF=~dat;
while(TI==0)
TI=0;
}
}
4. 單片機串口通信程序
串口部分沒有對,你好好看看串列口控制器SCON裡面RI和TI的用法。TI=1不是啟動發送,而是表示發送完畢。一般來說,發送一個數據,可以這樣寫:
voidSend_Char(charp)
{
SBUF=p;
while(!TI);
TI=0;
}
發送一串數據,假設是p[],那麼程序代碼可以這樣寫:
voidSend_Str(char*p)
{
chari=0;
while(p[i]!='