《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測(cè)試測(cè)量 > 業(yè)界動(dòng)態(tài) > 基于LabVIEW的PIC12FX與PC模擬串行通信

基于LabVIEW的PIC12FX與PC模擬串行通信

2008-07-16
作者:劉華昌, 黃振衛(wèi)

??? 摘??要: 基于LabVIEW平臺(tái)對(duì)PC機(jī)與PIC12FX小型單片機(jī)的串行通信" title="串行通信">串行通信進(jìn)行了具體分析。
??? 關(guān)鍵詞: PIC12FX? LabVIEW? 模擬串行通信

?

??? PIC系列單片機(jī)是美國(guó)Microchip公司推出的新型CMOS工藝單片機(jī),PIC12FX單片機(jī)是 PIC中檔系列中的一款小型單片機(jī),該單片機(jī)具有實(shí)用、低價(jià)、省電、小巧、高速等特點(diǎn),是一種適合在小型設(shè)備中使用的高性價(jià)比單片機(jī),在許多領(lǐng)域有相關(guān)應(yīng)用。
??? PIC12FX的計(jì)算功能需要借助PC機(jī)的強(qiáng)大數(shù)據(jù)處理功能,這就需要實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的數(shù)據(jù)通信。串行通信是比較方便的通信方式,然而該單片機(jī)內(nèi)沒有提供串行口,因而實(shí)現(xiàn)串行通信需要自己設(shè)計(jì)硬件電路" title="硬件電路">硬件電路和通信軟件實(shí)現(xiàn)。PC機(jī)可選用LabVIEW、Delphi、VC、VB、PowerBuilder等軟件來實(shí)現(xiàn)串行通信,不管PC機(jī)采用哪種軟件,串行通信時(shí)PC機(jī)與PIC12FX的硬件連接方式是相同的,PIC單片機(jī)的程序設(shè)計(jì)也基本相同。本文基于LabVIEW分析了PIC12FX與PC機(jī)串行通信的硬件連接及軟件設(shè)計(jì)" title="軟件設(shè)計(jì)">軟件設(shè)計(jì)方法。
1 PIC12FX單片機(jī)硬件電路和通信軟件設(shè)計(jì)
1.1 PIC12FX硬件實(shí)現(xiàn)方法和電路設(shè)計(jì)

??? PIC12FX沒有專門的通信口(RXD、TXD)及波特率發(fā)生器,需要通過I/O口來模擬串行通信口進(jìn)行通信。PC機(jī)的串行接口是符合EIARS232C規(guī)范的外部總線標(biāo)準(zhǔn)接口。RS-232C采用的是負(fù)邏輯,即邏輯“1”:-5V~-15V;邏輯“0”:+5V~+15V。而CMOS電平為:邏輯“1”:4.99V,邏輯“0”:0.01V;TTL電平的邏輯“1”和“0”則分別為2.4V和0.4V。因此在用RS-232C總線進(jìn)行串行通信時(shí)需外接電路實(shí)現(xiàn)電平轉(zhuǎn)換" title="電平轉(zhuǎn)換">電平轉(zhuǎn)換。在發(fā)送端用驅(qū)動(dòng)器將TTL或CMOS電平轉(zhuǎn)換為RS-232C電平,在接收端用接收器將RS-232C電平再轉(zhuǎn)換為TTL或CMOS電平。這里選用了MAXIM公司的MAX232來實(shí)現(xiàn)電平轉(zhuǎn)換。MAX232屬于MAXIM公司的通用串行接收/發(fā)送驅(qū)動(dòng)器芯片。其外圍電路簡(jiǎn)單,只需外接4個(gè)0.1μF的電容(104)即可,如圖1所示。

?????????????????????????????
??? 圖1中MAX232將PIC12FX的TX(GP1)輸出的TTL電平信號(hào)轉(zhuǎn)換為RS-232C電平,輸入到PC機(jī),并將PC機(jī)輸出的RS-232C電平轉(zhuǎn)換為TTL電平,輸出到PIC12FX的RX(GP2)引腳。
1.2 PIC12FX通信軟件設(shè)計(jì)
??? PIC12FX 硬件電路通過RS-232C串口與PC機(jī)通信,完成數(shù)據(jù)接收和發(fā)送;由PC機(jī)決定是發(fā)送還是接收數(shù)據(jù),控制指令與數(shù)據(jù)通信情況在PC機(jī)上" title="機(jī)上">機(jī)上顯示。圖2和圖3分別是串行發(fā)送和接收數(shù)據(jù)的子程序流程圖。

????????????????????????????????
??? 發(fā)送時(shí),數(shù)據(jù)發(fā)送端TX為低電平并保持N秒(N=1/波特率,如波特率為9600b/s,N為104μs)作為發(fā)送起始位,隨后每隔N秒發(fā)送一位數(shù)據(jù)位(1bit),最后一個(gè)數(shù)據(jù)位發(fā)送完后,TX為高電平并保持N秒作為發(fā)送停止位。接收時(shí),接收端RX要以約N/2秒(如波特率為9 600b/s,N/2為52μs)檢測(cè)一次起始位,如果檢測(cè)到起始位,則在約1.5ns(如波特率為9600b/s,1.5N為156μs)檢測(cè)第一位數(shù)據(jù)位,隨后每N秒檢測(cè)一次,接收其他的數(shù)據(jù)位,直至接收到停止位。
??? 發(fā)送與接收子程序清單如下:
;----------------------------
LIST?? ??????????? ?P=12FX
#INCLUDE??????????? P12FX.INC
  CBLOCK??????????? 0X20
RTX????????????????????????????????
RCV                ?
R_CNT???????????????????????????????
???? ENDC
;===========================引腳定義
#DEFINE???? ?RX???? ?GPIO,GPIO0
#DEFINE???? ?TX???? ?GPIO,GPIO1
???? ORG???? ?0X000
???? GOTO??? ?MAIN
;===========================
MAIN
???? BCF???????????? ??STATUS,RP0
???? CLRF??????????? ??RCV
;===========================串口初始化
???? CLRF??????????? ??GPIO
???? MOVLW????????? ?07H
???? MOVWF????????? ?CMCON??
???? BSF????????????? ??STATUS,RP0
???? MOVLW????????? ?01H
???? MOVWF????????? ?TRISIO
;===========================接收數(shù)據(jù)
RX_START
???? MOVLW????????? ?.8
???? MOVWF????????? ?R_CNT
START_CHECK
???? BTFSC??????????? ?RX
 ? GOTO???????????? ?START_CHECK
???? CALL???????????? ??DELAY1
???? CALL???????????? ??DELAY1
RX_DATA_START
???? BTFSC??????????? ?RX
???? BSF?????????????? ??RCV,7
???? BTFSS???????????? ?RX
???? BCF?????????????? ??RCV,7
???? DECFSZ?????????? ?R_CNT
???? GOTO???????????? ?RX_NEXT
???? GOTO???????????? ?TX_START
RX_NTXT
???? RRF?????????????? ?RCV
???? CALL????????????? ?DELAY1
 ? GOTO???????????? ??RX_DATA_START
;===========================發(fā)送數(shù)據(jù)
TX_START
  MOVLW?????????? ?.8
  MOVWF?????????? ?R_CNT
  BCF?????????????? ?TX
  CALL????????????? ?DELAY2
TX_NEXT
  RRF?????????????? ?RTX
  BTFSC???????????? ?STATUS,C
  BSF?????????????? ?TX
  BTFSS???????????? ?STATUS,C
  BCF?????????????? ?TX
  CALL????????????? ?DELAY1
  DECFSZ??????????? ?R_CNT
GOTO ??????????? ?TX_NEXT
TX_STOP
???? BSF??????????????? ?TX
???? CALL????????????? ?DELAY1
TX_OVER????????????? ?GOTO? RX_START
;===========================延時(shí)子程序
DELAY1
???? MOVLW?????????? ?17H
???? MVWF??????????? ?TEMP
LOOP1
???? DECFSZ?????????? ?TEMP
???? GOTO???????????? ?LOOP1
???? RETLW??????????? ?0
DELAY2
???? MOVLW?????????? ?1EH
???? MOVWF?????????? ?TEMP
LOOP2
???? DECFSZ?????????? ?TEMP
???? GOTO???????????? ?LOOP2
???? RETLW??????????? ?0
;-------------------------------
END
;-------------------------------
2 PC機(jī)主控端通信軟件設(shè)計(jì)
??? 要實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的數(shù)據(jù)通信,不僅要對(duì)硬件電路及單片機(jī)進(jìn)行軟件設(shè)計(jì),還要在PC機(jī)上設(shè)計(jì)通信軟件,下面以LabVIEW為例介紹其在串行通信中的軟件設(shè)計(jì)。
??? LabVIEW是美國(guó)國(guó)家儀器公司NI(National Instruments)推出的一種基于圖形方式的集成化開發(fā)環(huán)境,是目前國(guó)際上唯一的編譯型圖形化編程語言(G語言),在以PC機(jī)為基礎(chǔ)的測(cè)量和控制通信軟件中得到廣泛應(yīng)用。在編寫LabVIEW通信程序時(shí),通過在前面板(應(yīng)用程序界面)和后面板(程序的代碼窗口)進(jìn)行編程,前面板將后面板程序的運(yùn)行結(jié)果反應(yīng)出來,圖4所示為PC機(jī)上串行通信的程序編寫流程圖。

?????????????????????????????
??? 文中分析了PIC12FX小型單片機(jī)與PC機(jī)串行通信的硬件和軟件設(shè)計(jì)方法,給出了演示參考程序,在實(shí)際應(yīng)用中,只要按照具體需求對(duì)該程序作相應(yīng)的修改就可滿足實(shí)際應(yīng)用需求。隨著PIC單片機(jī)越來越廣泛的應(yīng)用,PC機(jī)與PIC單片機(jī)之間的通信成為實(shí)際設(shè)計(jì)中必須解決的問題,本文對(duì)串行通信問題的解決具有較好的參考價(jià)值。
參考文獻(xiàn)
[1] ?Microchip. PIC12FX數(shù)據(jù)手冊(cè)[S]. Microchip公司.2004.
[2] ?石朝林(譯).PIC單片機(jī)宏匯編與集成開發(fā)環(huán)境[M].北京:清華大學(xué)出版社,2002.
[3] ?王有緒,許杰,李拉成. PIC系列單片機(jī)接口技術(shù)及應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航天航空大學(xué)出版社,2003.
[4] ?鄧焱,王磊.LABVIEW7.1測(cè)試技術(shù)與儀器應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2004.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲电影激情视频网站| 日韩亚洲欧美综合| 在线国产精品播放| 国产一区av在线| 国产精品永久免费视频| 欧美亚州一区二区三区 | 亚洲欧美影音先锋| 亚洲视频在线播放| 日韩视频不卡| 日韩视频免费大全中文字幕| 亚洲精品乱码| 亚洲黄色视屏| 亚洲人体一区| 亚洲精品免费在线播放| 亚洲精品社区| 亚洲美女网站| 一区二区三区免费观看| 在线一区观看| 亚洲图片欧洲图片日韩av| 亚洲少妇在线| 亚洲图片欧洲图片av| 亚洲一区日韩在线| 亚洲欧美成人| 香蕉精品999视频一区二区| 香蕉国产精品偷在线观看不卡| 性色av一区二区怡红| 久久精品30| 另类图片国产| 欧美精品一区三区| 欧美亚州一区二区三区| 国产精品视频导航| 国产曰批免费观看久久久| 欧美在线影院| 欧美在线视频免费| 久久爱另类一区二区小说| 久久精品国产精品| 亚洲人被黑人高潮完整版| 日韩天堂在线视频| 亚洲午夜一区二区三区| 香蕉久久夜色精品国产| 久久久久国产免费免费| 嫩草国产精品入口| 欧美日韩亚洲激情| 国产精品一二| 精品成人国产| 亚洲日韩中文字幕在线播放| 99精品欧美一区| 亚洲综合成人婷婷小说| 久久激情五月激情| 99视频在线精品国自产拍免费观看| 亚洲午夜日本在线观看| 久久不见久久见免费视频1| 六十路精品视频| 欧美日一区二区在线观看| 国产欧美精品一区二区三区介绍| 国产综合精品一区| 亚洲人成网站999久久久综合| 一区二区三区日韩欧美| 欧美在线观看视频| 99re6热只有精品免费观看 | 一本色道综合亚洲| 欧美一区二区三区精品| 女仆av观看一区| 国产精品女人久久久久久| 一区免费观看视频| 在线一区二区三区做爰视频网站| 久久xxxx精品视频| 亚洲婷婷国产精品电影人久久| 久久久久九九九九| 欧美视频亚洲视频| 一区二区三区在线免费观看| 一区二区三区国产在线| 亚洲国产精品电影在线观看| 亚洲伊人久久综合| 免费观看久久久4p| 国产精品三区www17con| 91久久精品国产91性色tv| 午夜精品视频| 亚洲色无码播放| 亚洲黄色精品| 亚洲免费影视| 欧美精品18| 国产主播一区二区三区四区| 一区二区免费看| 亚洲三级免费| 久久蜜桃精品| 国产精品理论片在线观看| 亚洲国产精品久久久久婷婷老年 | 香蕉成人久久| 亚洲天天影视| 欧美激情一二区| 国产真实久久| 亚洲欧美在线一区二区| 中文日韩在线视频| 欧美高清视频在线| 狠狠色狠色综合曰曰| 亚洲综合精品| 亚洲视频欧洲视频| 欧美精品日韩综合在线| 在线观看成人网| 欧美一区二区三区成人| 午夜精品一区二区三区在线视 | 亚洲美女在线视频| 开心色5月久久精品| 国产日韩精品一区观看| 一区二区免费在线观看| 亚洲最新中文字幕| 欧美成人亚洲成人日韩成人| 狠狠久久亚洲欧美| 新片速递亚洲合集欧美合集| 午夜精品福利视频| 国产精品久久久久久久久免费樱桃| 亚洲精品影视| 99精品国产高清一区二区| 女同性一区二区三区人了人一 | 久久精品一区| 久久久久国产精品一区二区| 国产视频在线观看一区二区三区| 亚洲综合国产精品| 午夜亚洲福利| 国产精品一区在线播放| 亚洲一区二区三区视频播放| 亚洲一区二区三区精品在线观看| 欧美日韩大陆在线| 亚洲免费激情| 在线视频一区二区| 欧美日韩一区国产| 中日韩男男gay无套| 亚洲综合欧美| 免费在线观看一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品综合网站| 亚洲在线不卡| 久久99在线观看| 国产视频在线观看一区二区| 久久av一区二区三区亚洲| 久久久综合精品| 极品尤物一区二区三区| 亚洲精美视频| 欧美激情在线| 99精品视频一区二区三区| 亚洲免费影视| 国产一区再线| 亚洲人成在线影院| 欧美日韩精品在线播放| 亚洲午夜电影在线观看| 欧美一区久久| 激情婷婷欧美| 日韩视频在线观看| 欧美无乱码久久久免费午夜一区| 亚洲一区精彩视频| 久久九九99视频| 亚洲国产精品久久精品怡红院| 一本色道久久99精品综合| 欧美色大人视频| 亚洲欧美一区二区三区久久 | 亚洲欧洲精品一区二区三区| 欧美日韩国产va另类| 亚洲午夜日本在线观看| 久久精品国产99| 亚洲高清毛片| 亚洲一级黄色片| 国产亚洲精品久久久久久| 亚洲国产婷婷综合在线精品| 欧美日韩国内自拍| 欧美一级久久久| 欧美激情国产日韩| 亚洲天堂av电影| 久久香蕉精品| 99国产精品国产精品久久| 欧美一级理论片| 亚洲国产精品www| 亚洲欧美激情一区| 伊人久久综合| 亚洲一区三区在线观看| 黑人一区二区| 一区二区日韩| 国内成人精品2018免费看| av成人老司机| 黄网站免费久久| 亚洲色图制服丝袜| 激情久久久久| 亚洲嫩草精品久久| 亚洲成色999久久网站| 亚洲欧美清纯在线制服| …久久精品99久久香蕉国产| 亚洲欧美福利一区二区| 在线欧美日韩| 欧美一区成人| 欧美性猛交视频| 亚洲精品影院在线观看| 欧美在线免费播放| 亚洲蜜桃精久久久久久久| 久久露脸国产精品| 亚洲一区二区三区激情| 欧美激情国产高清| 久久不射网站| 国产精品视频久久| 一区二区三区黄色| 在线精品国产成人综合|