|
51系列單片機(jī)內(nèi)部的串行口具有通信的功能,該串口可以作為通信接口,利用該串行口與PC機(jī)的串行口COM1或COM2進(jìn)行串行通信,將單片機(jī)采集的數(shù)據(jù)傳送到PC機(jī)中,由PC機(jī)的高級語言或數(shù)據(jù)庫語言對數(shù)據(jù)進(jìn)行整理及統(tǒng)計(jì)等復(fù)雜處理,就能滿足實(shí)際的應(yīng)用需要。 PC機(jī)的COM口,輸入輸出為RS-232C電平,而51單片機(jī)串行口的輸入輸出均為TTL電平。由于TTL電平和RS-232C電平互不兼容,所以兩者接口時,必須進(jìn)行電平轉(zhuǎn)換。(電平轉(zhuǎn)換最常用的芯片是傳送線驅(qū)動器MC1489,其作用除了電平轉(zhuǎn)換外,還實(shí)現(xiàn)正負(fù)邏輯電平轉(zhuǎn)換) PC機(jī)和單片機(jī)在進(jìn)行通信時,首先分別對各自的串行口進(jìn)行初始化,確定串行口工作方式,設(shè)定波特率(兩者應(yīng)一致),傳輸數(shù)據(jù)長度等,然后才開始數(shù)據(jù)傳輸,這些工作是由軟件來完成的,因此對PC機(jī)和單片機(jī)均需設(shè)計(jì)相應(yīng)的通信軟件。 1. DOS環(huán)境下,串行通信一般用中斷方式來實(shí)現(xiàn),用戶對通信端口進(jìn)行完全控制。而在Windows環(huán)境下,系統(tǒng)禁止應(yīng)用程序直接對硬件進(jìn)行操作在Windows環(huán)境下提供了完備的API應(yīng)用程序接口函數(shù),程序員通過這些函數(shù)與通信硬件接口。 通信函數(shù)是中斷驅(qū)動的:發(fā)送數(shù)據(jù)時,先將數(shù)據(jù)存入緩存區(qū),串口準(zhǔn)備好后,就將其發(fā)送出去;傳來的數(shù)據(jù)迅速申請中斷,使Windows接收它并將其存入緩沖區(qū),以供讀取。 接收方式中以中斷方式效率高,接收準(zhǔn)確,編程簡單。它無需測試串口,一旦有數(shù)據(jù)傳至,CPU終止當(dāng)前任務(wù),由中斷服務(wù)完成操作。 |
|
|