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