① 如何完成兩個80C51單片機之間的通信
就利用單片機的串口嗎。如果兩個單片機比較近,1米以內,就可以用TTL方式連接,即是兩個單片機的TXD,TXD對接,GND相連,共地。
如果距離再遠的,就是RS232介面,實現標准
的串口通信,這很容易的,電路也簡單,是最典型的串口通信電路了。
② 使用8051單片機的串列通信方式1,要求波特率9600bps,請編寫初始化程序。
初始化程序:
SCON = 0x50 ; //方式1,允許接受
TMOD = 0x20 ; //設置time1,方式2
TH1 = 0xfd; //波特率9600b/s 晶振12MHz
TL1 = 0xfd;
ES = 1 ; //允許串口中斷
EA = 1; //中斷總開啟
TR1 = 1 ; //T1開啟
③ 8051單片機的串列口可以直接與rs232串列口想連接嗎
當然不可以。單片機的「串列口」是TTL電平的,需要經過TTL-RS232電平轉換器之後,才能轉換為RS-232電平並與RS232串口相連接。
④ 兩個8051單片機之間用方式2串列通信
串列口是單片機與外界進行信息交換的工具,8051單片機的通信方式有兩種:
並行通信:數據的各位同時發送或接收。
串列通信:數據一位一位次序發送或接收。
串列通信的方式
非同步通信
用一個起始位0表示字元的開始,用停止位1表示字元的結束,中間夾著8個數據位,字元能一個接一個傳送
CPU與外設之間必須有字元格式和波特率兩項規定
字元格式規定能使雙方把0和1串理解成同一種意義,原則上自由制定,通用角度使用標准如ASCII
波特率即數據傳輸速率,每秒傳送的二進制位數,如120字元/s,每個字元10數位,則傳送波特率為1200波特
同步通信
去掉了開始結束標志提高速度,但由於數據塊傳遞開始要用同步字元來指示,同時要求由時鍾來實現發送端與接收端之間的同步,故硬體較復雜。
通信方向
在串列通信中,把通信介面只能發送或接收的單向傳送辦法叫單工傳送;把數據能雙向傳遞稱為雙工傳送。半雙工傳送兩機之間不能同時進行發送和接收,任一時該,只能發或者只能收信息。全雙工傳送是能同時發送接收。
串列介面結構
51單片機一個可編程的全雙工串列通信介面。可用作非同步通信方式(UART),與串列傳送信息的外部設備相連接。或用於通過同步或非同步標准通信協議進行全雙工的8051多機系統,使用TTL或CMOS移位寄存器來擴充I/O口。
8051單片機通過管腳RXD(P3.0,串列數據接收端)和管腳TXD(P3.1,串列數據發送端)與外界通信。SBUF是串列口緩沖寄存器,包括發送寄存器和接收寄存器。它們有相同名字和地址空間,但不會出現沖突,因為它們兩個一個只能被CPU讀出數據,一個只能被CPU寫入數據。
⑤ 80C51單片機串口通信工作方式1怎樣發送字元串
1)數據發送與接收使用方式0實現數據的移位輸入輸出時,實際上是把串列口變成並行口使用。串列口作為並行輸出口使用時,要和CD4049或74LS164配合使用,其電路連接如圖10。圖(b)為74LS164的引腳圖,晶元各引腳功能如下:Q0~Q7為並行輸出引腳。DSA、DSB為 串列輸入引腳。
清零引腳,低電平時,使74LS164輸出清零。CP為時鍾脈沖輸入引腳,在CP脈沖的上升沿作用下實現移位。在CP=0,
=1時,74LS164保持原來數據狀態不變。
利用串列口與74LS164實現八位串入並行輸出的連接如圖(a)所示,當8位數據全部移出後,SCON寄存器的TI位被自動置1。用P1.0輸出低電平可將164輸出清零。
如果把能實現「並入串出」功能的CD4014或74LS165與串列口配合使用,就可以把串列口變為並行輸入口使用。如圖所示。
圖(b)為74LS165引腳圖,當
=1時,允許串列移位,
=0時允許並行輸入。當CPINH=1時,從CP引腳輸入的每一個正脈沖使QH輸出移位一次。REN=0,