pic單片機(jī)與pc機(jī)的串行通信_(tái)第1頁(yè)
pic單片機(jī)與pc機(jī)的串行通信_(tái)第2頁(yè)
pic單片機(jī)與pc機(jī)的串行通信_(tái)第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

pic單片機(jī)與pc機(jī)的串行通信

pic熱控制板的設(shè)計(jì)pic系列遭到廣泛應(yīng)用,因?yàn)樗鼘?shí)用、便宜、省電、小型和高速。pic系列鱗片設(shè)備只能連接到pc機(jī),最簡(jiǎn)單的自動(dòng)連接方法是使用字符串通信。由于PIC單片機(jī)沒(méi)有專(zhuān)用的異步通訊口(RXD,TXD)及波特率發(fā)生器,因此要實(shí)現(xiàn)PIC單片機(jī)與PC機(jī)的串行通信,必須由軟件指定PIC的兩個(gè)I/O端口(如RA0為RXD,RA1為T(mén)XD)為異步通訊口,并按照預(yù)定的波特率編寫(xiě)軟件延時(shí)子程序。PC機(jī)可選用Delphi,VC及VB等軟件來(lái)實(shí)現(xiàn)串行通信,但由于前兩者均要調(diào)用Windows函數(shù),編程較麻煩,而VB由于有MSComm(電話(huà)盒)控件,編程很方便。不管PC機(jī)采用哪種軟件,串行通信時(shí)PC機(jī)與PIC單片機(jī)的硬件連接方式是相同的,PIC單片機(jī)的程序設(shè)計(jì)也是相同的。本文以VB6.0為例,說(shuō)明PIC單片機(jī)與PC機(jī)串行通信的硬件連接及軟件設(shè)計(jì)方法。端口調(diào)用屬性vbfVB6.0的版本分為普及版、專(zhuān)業(yè)版及企業(yè)版,MSComm控件包含在專(zhuān)業(yè)版及企業(yè)版中,如果是普及版,無(wú)法使用MSComm控件來(lái)實(shí)現(xiàn)串行通信。MSComm控件的調(diào)出VB6.0的MSComm控件并不會(huì)主動(dòng)出現(xiàn)在工具箱中,在需要時(shí),讓它出現(xiàn)在工具箱中的步驟如下:(1).選擇菜單上的“工程”(2).在“工程”菜單中選擇“部件”(3).出現(xiàn)對(duì)話(huà)框后,在可勾選的項(xiàng)目中勾選MicrosoftCommControl6.0(4).按下“確定”按鈕,即可在工具箱中見(jiàn)到“電話(huà)盒”的圖標(biāo),我們就可以將此控件加載進(jìn)行串行通信。MSComm屬性MSComm屬性很多,其重要的屬性說(shuō)明如下:(1).CommPort:設(shè)定或返回通信端口號(hào)。端口號(hào)由1開(kāi)始往上遞增,最大值是16。必須注意的是:所設(shè)定的端口號(hào)必須是沒(méi)有被其它應(yīng)用程序所占用的端口,否則當(dāng)打開(kāi)或關(guān)閉端口時(shí),程序會(huì)出錯(cuò)。(2).Settings:設(shè)定通信端口初始化參數(shù)。其格式為“Baud,P,D,S”,其中Baud為波特率,可設(shè)為1200、2400、9600、14400、19200、28800等幾種;P為校驗(yàn)位(E表示偶校驗(yàn)、O表示奇校驗(yàn)、M表示符號(hào)校驗(yàn)(即在校驗(yàn)位放置一個(gè)1的位)、S表示空白校驗(yàn)(即在校驗(yàn)位放置一個(gè)0的位)、N表示無(wú)校驗(yàn)位(默認(rèn)值));D為數(shù)據(jù)位數(shù),可選值為4、5、6、7、8(默認(rèn)值);S表示停止位數(shù),可選值為1、1.5、2。(3).PortOpen:設(shè)定并返回通信端口的狀態(tài)。使用串行端口之前必須先打開(kāi)該端口(PortOpen=True),而在使用完畢后必須關(guān)閉該端口(PortOpen=False)。(4).Input:從輸入緩沖區(qū)返回并清除字符。這是一種FIFO(FirstinFirstOut)機(jī)制。如Buffer$=MSComm1.Input,表示將輸入緩沖區(qū)的字符讀入Buffer字符串變量中。(5).Output:將一個(gè)字符或字符串寫(xiě)入傳輸緩沖區(qū)。如:MSComm1.Output=“ABCD”。此即將ABCD5個(gè)字符通過(guò)串行端口傳送出去。(6).InputLen:指定由串行端口讀入的字符串長(zhǎng)度。VB6.0所寫(xiě)的程序可以使用Input指令將存放在輸入緩沖區(qū)的字符讀入,但欲指定讀入的字符長(zhǎng)度則要使用本屬性的設(shè)定。(7).Handshaking:指定通信雙方的交握協(xié)議。VB6.0的交握協(xié)議之設(shè)定如表1所示。有關(guān)HandShaking的詳細(xì)說(shuō)明請(qǐng)參見(jiàn)參考文獻(xiàn)1。(8).RThreshold:設(shè)定或返回引發(fā)接收事件的字符數(shù)。如MSComm1.RThreshold=20,當(dāng)接收緩沖區(qū)達(dá)到20個(gè)字符時(shí),引發(fā)接收事件。(9).SThreshold:設(shè)定或返回引發(fā)傳送事件的字符數(shù)。該屬性若設(shè)為0,則數(shù)據(jù)傳送事件不會(huì)產(chǎn)生OnComm事件中的傳送事件;若設(shè)為非0的某個(gè)數(shù),則當(dāng)傳送緩沖區(qū)字符少于該數(shù)時(shí),引發(fā)傳送事件。(10).CommEvent:只要有通信錯(cuò)誤或事件發(fā)生時(shí)都會(huì)產(chǎn)生OnComm事件,CommEvent屬性存有該錯(cuò)誤或事件的數(shù)值碼。通信錯(cuò)誤設(shè)定值一共有10個(gè),常用的四個(gè)如表2所示。(11).InBufferCount:傳回在接收緩沖區(qū)中的字符數(shù),是指已接收、并在接收緩沖區(qū)等待讀取的字符數(shù)。(12).InputMode:設(shè)定和返回類(lèi)型。該屬性設(shè)為0時(shí),數(shù)據(jù)通過(guò)Input屬性以文本方式取回;如設(shè)為1,則數(shù)據(jù)通過(guò)Input屬性以二進(jìn)制方式取回。txd的硬件連接設(shè)PIC單片機(jī)的型號(hào)為PIC16C57,其RA0為RXD,RA1為T(mén)XD串行通信硬件連接如圖1所示。圖中R=10KΩ

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論