我們知道EIA-RS-232C是用正負電壓來表示邏輯狀態(tài),單片機串行口采用正邏輯TTL電平,這樣單片機和PC機的COM1或者COM2就不能直接連接。為了能夠同計算機接口或終端的TTL器件連接,必須在EIA-RS一232C與TTL電路之間進行電平和邏輯關系的變換。實現這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉換器件,如MCl488、SN75150芯片可完成TTL電平到EIA電平的轉換,MCl489、SN75154可實現EIA電平到TTL電平的轉換。而MAX232芯片可完成TTL←→EIA雙向電平轉換,MAX232系列芯片集成度高,+5V電源(內置了電壓倍增電路及負電源電路),只需外接5個容量為0.1μF~1μF的小電容即可完成兩路RS-232與TTL電平之間轉換。MAX232引腳圖如下圖所示。
把它和單片機連接起來,以實現PC機與下位機的通信:單片機串口使用查詢法接收和發(fā)送資料。PC機發(fā)出指定字符,單片機收到后返回給上位機原字符。
首先來完成電路連接,單片機AT89S2O51串行口經MAX232電平轉換后,與PC機串行口相連,電路圖如下圖所示。
PC機使用串口調試助手V2.2.exe,實現PC機與單片機的通信。
打開串口調試助手V2.2.exe應用程序,進行設置:
波特率--4800
數據位--8
奇偶校驗--無
停止位--1(因為采用沒有聯絡信號的通信,下位機也需相同協議設置)在‘發(fā)送的字符/數據'區(qū)輸入字符/數據,接手動發(fā)送,接收區(qū)收到相同的字符/數據,或者按自動發(fā)送,接收區(qū)將接受到發(fā)送的字符/數據(注:自動發(fā)送的時間可以在串口調試助手中改動)如下圖所示。
單片機預先編制的程序清單如下: