PIC單片機與PC機的串行數(shù)據(jù)交換
4PIC16F877單片機與PC機實現(xiàn)電平轉(zhuǎn)換
PC機的串行接口是符合EIA RS-232C規(guī)范的外部總線標準接口。RS-232C采用的是負邏輯,即邏輯1:-5~-15 V;邏輯0:+5~+15 V。而CMOS電平為:邏輯“1”:4.99 V,邏輯“0”:0.01 V;TTL電平的邏輯“1”和“0”則分別為2.4 V和0.4 V。因此在用RS-232C總線進行串行通信時需外接電路實現(xiàn)電平轉(zhuǎn)換。在發(fā)送端用驅(qū)動器將TTL或CMOS電平轉(zhuǎn)換為RS-232C電平,在接收端用接收器將RS-232C電平再轉(zhuǎn)換為TTL或CMOS電平。這里選用了MAXIM公司的MAX232來作電平轉(zhuǎn)換。MAX232屬于MAXIM公司的通用串行接收/發(fā)送驅(qū)動器芯片。其外圍電路簡單,只需外接4個0.1 μF的電容即可,其系統(tǒng)硬件電路如圖1所示。圖中MAX232將PIC16F877的TX輸出的TTL電平信號轉(zhuǎn)換為RS-232C電平,輸入到PC機,并將PC機輸出的RS-232C電平轉(zhuǎn)換為TTL電平,輸出到PIC16F877單片機的RX引腳。
5PC機支持與PIC16F877進行數(shù)據(jù)交換的編程
本文中PC 機可與PIC16F877編程一起完成以下功能:PC機和單片機均可發(fā)送和接收數(shù)據(jù),由PC機決定是發(fā)送還是接收;程序設定當PC機鍵盤輸入發(fā)送指令時,PC機分別顯示PC機發(fā)送的數(shù)據(jù)和單片機會送的數(shù)據(jù);當PC機鍵盤輸入接收指令時,PC機將接收單片機發(fā)送過來的數(shù)據(jù),并將其數(shù)據(jù)顯示。
在編程中,必須要注意設置PC 機與PIC16F877單片機在進行數(shù)據(jù)交換時的數(shù)據(jù)傳輸格式相同。通常采用的通訊協(xié)議如下:波特率為9 600 bps,8位數(shù)據(jù)位,1位停止位,無奇偶效驗位。PC機發(fā)送命令給單片機,鍵盤輸入發(fā)送命令時,控制單片機接收數(shù)據(jù),當PC機鍵盤輸入接收命令時,控制單片機發(fā)送數(shù)據(jù)給PC機。PC機與PIC16F877單片機進行數(shù)據(jù)交換的程序編制流程如圖2所示。
評論