❶ 單片機串口通信過程
void output(void)
{if (flag==1)
flag=0;
ES=0;
SBUF=put;
while(!TI);
TI=0;
ES=1;
}
錯誤在於此:「SBUF=put;」,你是一直在讓單片機串口發送put值(2),所以串口調試助手一直在接收數據。
改正的辦法是:把這個output函數刪去,我剛才用單片機開發板驗證了,這樣就能顯示串口發送的數字了。
還有什麼問題,可以Hi我。
❷ 怎麼實現51單片機與電腦串口之間的通信
首先,單片機和微機通信的電氣標准要一致,微機串口一般是RS232電氣標准,所以要加電平轉換晶元,大多用MAX232,一般單片機實驗板上都提供這樣的標准串口。
其次,要分別編寫上位機和下位機軟體程序,單片機程序參照常式、教科書進行編寫;上位機微機可採用VB,組態軟體,Labview等軟體編寫,一般若是簡單的通信,上位機程序編寫很簡單,例如VB中學會使用mscomm控制項,有VB最基礎知識的一天就能學會。
最後,大可以沒有單片機,沒有MAX232,沒有串列介面這些硬體就可以實現學習並掌握單片機與微機之間的串口通信。proteus可以模擬單片機,也是主流軟體。另外,如今的筆記本電腦幾乎都沒有保留串口,而用USB介面取而代之,不過沒關系,有了虛擬串口和串口調試助手,這些都解決了。你可以搜索一下虛擬串口,真的很不錯的。
❸ 單片機串列通信
串列通信是指 使用一條數據線,將數據一位一位地依次傳輸,每一位數據占據一個固定的時間長度。其只需要少數幾條線就可以在系統間交換信息,特別使用於計算機與計算機、計算機與外設之間的遠距離通信。
而在單片機中,有一個專門的串列口,用於非同步通信方式(UART),與接收串列傳輸信息的外部設備相連,控制這個串列口的是兩個寄存器,分別是狀態寄存器和特殊功能寄存器。
狀態寄存器(scon)
有八位(每位有相應的地址),用於定義串列口的工作方式和接收,發送的控制
工作方式
方式0:八位同步移位寄存器:有允許信號時,寄存器中的存交換數據的八位同時以固定的波特率移動;(較常用)
方式1:10位UART(波特率可變)
方式2:11位UART (波特率固定)
方式3:11位UART(珀特率由定時器T1控制可變)
波特率:串列通信中收發雙方的數據傳輸率(即每秒傳輸多少數據)
特殊功能寄存器(pcon)
為了在51單片機上實現電源控制而附加的,功能有可以定義單片機得復位方式等。
❹ 單片機串口通信問題
P3=0xff的作用其實很簡單,就是為了更好的完成「讀--修改--寫」這個過程,其實對於P3口是沒有必要的,對於P0口這樣做是應該的。
❺ 單片機怎麼連接到串口,然後跟串口通信呢
單片機?是你 自己 設計的 還是 購買 的 產品?
成熟 的 產品 應該 配備 可以與 電腦直接連接的 串口
電腦 串口 == 單片機 串口
這樣就可以 組成 一個 串口通信線路
電腦 上 用 串口 調試軟體,單片機 上 用你自己設計的程序(也可以用 人家調試好 的程序)
這樣 就可以 串口通信 了
建議 搜搜 網路文庫,裡面 文檔 非常多
❻ 單片機串口通信程序
串口部分沒有對,你好好看看串列口控制器SCON裡面RI和TI的用法。TI=1不是啟動發送,而是表示發送完畢。一般來說,發送一個數據,可以這樣寫:
voidSend_Char(charp)
{
SBUF=p;
while(!TI);
TI=0;
}
發送一串數據,假設是p[],那麼程序代碼可以這樣寫:
voidSend_Str(char*p)
{
chari=0;
while(p[i]!='