《電子技術應用》
您所在的位置:首頁 > 測試測量 > 業界動態 > 基于LabVIEW的PIC12FX與PC模擬串行通信

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

2008-07-16
作者:劉華昌, 黃振衛

??? 摘??要: 基于LabVIEW平臺對PC機與PIC12FX小型單片機的串行通信" title="串行通信">串行通信進行了具體分析。
??? 關鍵詞: PIC12FX? LabVIEW? 模擬串行通信

?

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

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

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

????????????????????????????????
??? 發送時,數據發送端TX為低電平并保持N秒(N=1/波特率,如波特率為9600b/s,N為104μs)作為發送起始位,隨后每隔N秒發送一位數據位(1bit),最后一個數據位發送完后,TX為高電平并保持N秒作為發送停止位。接收時,接收端RX要以約N/2秒(如波特率為9 600b/s,N/2為52μs)檢測一次起始位,如果檢測到起始位,則在約1.5ns(如波特率為9600b/s,1.5N為156μs)檢測第一位數據位,隨后每N秒檢測一次,接收其他的數據位,直至接收到停止位。
??? 發送與接收子程序清單如下:
;----------------------------
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
;===========================接收數據
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
;===========================發送數據
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
;===========================延時子程序
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機主控端通信軟件設計
??? 要實現單片機與PC機之間的數據通信,不僅要對硬件電路及單片機進行軟件設計,還要在PC機上設計通信軟件,下面以LabVIEW為例介紹其在串行通信中的軟件設計。
??? LabVIEW是美國國家儀器公司NI(National Instruments)推出的一種基于圖形方式的集成化開發環境,是目前國際上唯一的編譯型圖形化編程語言(G語言),在以PC機為基礎的測量和控制通信軟件中得到廣泛應用。在編寫LabVIEW通信程序時,通過在前面板(應用程序界面)和后面板(程序的代碼窗口)進行編程,前面板將后面板程序的運行結果反應出來,圖4所示為PC機上串行通信的程序編寫流程圖。

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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 青苹果乐园在线影院免费观看完整版| a视频免费在线观看| 欧男同同性videos免费| 亚洲综合伊人久久大杳蕉| 精品国产三级a∨在线| 国产中老年妇女精品| 国产h片在线观看| 国产精品欧美激情在线播放| Av鲁丝一区鲁丝二区鲁丝三区| 性色av免费观看| 久久久99视频| 日韩亚洲第一页| 亚洲av无码专区在线观看成人 | 日韩电影免费在线观看视频| 亚洲国产精品成人精品无码区在线| 激情综合婷婷色五月蜜桃| 免费观看国产网址你懂的| 美女开嫩苞视频在线播放| 国产三级在线观看免费| 骆驼趾美女图片欣赏| 国产欧美日韩一区二区三区在线| 在线观看91精品国产入口| 国模丽丽啪啪一区二区| www亚洲精品少妇裸乳一区二区| 性xxxx视频播放免费| 中文字幕久久久久一区| 无码精品人妻一区二区三区漫画 | 日韩精品视频免费网址| 亚洲一区二区三区丝袜| 欧美剧情影片在线播放| 亚洲日韩第一页| 欧美日韩高清在线观看| 亚洲男人的天堂在线| 污污的网站免费观看| 亚洲综合精品第一页| 热re99久久精品国产99热| 从镜子里看我怎么c你| 理论片高清免费理论片| 伊甸园在线观看国产| 第一区免费在线观看| 免费毛片a线观看|