《電子技術(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亚洲国产精品_日韩亚洲一区二区
一本高清dvd不卡在线观看| 欧美一区视频在线| 亚洲在线黄色| 夜夜嗨av色一区二区不卡| 亚洲黄色一区| 亚洲级视频在线观看免费1级| 韩日精品视频一区| 国内精品久久久久影院 日本资源| 国产精品一区久久久久| 国产精品久久久久久户外露出| 欧美三级网址| 欧美午夜寂寞影院| 欧美午夜电影在线| 欧美日韩综合精品| 国产精品久久久久久久7电影| 欧美视频第二页| 欧美性开放视频| 国产精品日韩欧美一区| 国产欧美日韩在线观看| 国产欧美三级| 国内精品久久久久影院 日本资源| 国内外成人在线视频| 尤物网精品视频| 亚洲第一区色| 日韩一级大片在线| 亚洲一区视频| 欧美中文字幕第一页| 亚洲国产精品成人va在线观看| 亚洲青涩在线| 一区二区三区国产精品| 亚洲一区在线免费观看| 欧美一级欧美一级在线播放| 久久精品在线免费观看| 蜜臀av国产精品久久久久| 欧美激情小视频| 欧美色欧美亚洲另类七区| 国产精品自拍视频| 黄色精品一区| 亚洲精品乱码久久久久久日本蜜臀 | 久久精品论坛| 老司机一区二区三区| 欧美国产日本在线| 国产精品久久久久高潮| 国产午夜精品在线观看| 在线看视频不卡| 一本综合久久| 欧美一级大片在线免费观看| 亚洲精品精选| 午夜精品久久久久久久99樱桃| 久久嫩草精品久久久精品一| 欧美电影在线| 国产精品一区二区久久| 黄页网站一区| 一本色道**综合亚洲精品蜜桃冫| 香港久久久电影| 日韩亚洲欧美在线观看| 香蕉久久夜色| 欧美激情在线观看| 国产日本欧美视频| 亚洲欧洲综合另类在线| 亚洲欧美日韩国产成人| 亚洲日韩第九十九页| 性欧美大战久久久久久久久| 欧美成人精品一区| 国产精品视频在线观看| 亚洲国产导航| 午夜久久影院| 亚洲一本大道在线| 欧美成人性生活| 国产乱码精品一区二区三区av | 亚洲午夜精品久久| 亚洲韩国青草视频| 欧美一区二区三区男人的天堂| 你懂的一区二区| 国产啪精品视频| 99热免费精品在线观看| 久久国产黑丝| 亚洲一区高清| 欧美精品二区| 黑人一区二区| 午夜视频一区二区| 亚洲午夜久久久久久久久电影院 | 国产主播精品在线| 一区二区三区四区五区精品| 亚洲日本va午夜在线影院| 欧美在线视频二区| 欧美三级中文字幕在线观看| 久久免费国产| 欧美精品亚洲二区| 国产亚洲欧美一区| 一区二区欧美精品| 亚洲激情啪啪| 久久久久国产精品一区三寸| 国产精品盗摄一区二区三区| 亚洲电影自拍| 久久国产免费看| 欧美一区二区三区精品| 欧美体内she精视频在线观看| 在线观看欧美日韩国产| 欧美一区二区三区啪啪| 性久久久久久久久| 国产精品久久久久久久久动漫| 亚洲免费激情| 99精品国产高清一区二区| 免费亚洲婷婷| 影音先锋亚洲一区| 亚洲第一区在线观看| 久久久久久久999| 国产一区二区久久精品| 午夜精品成人在线| 欧美一站二站| 国产伦理一区| 午夜精品久久久久久久久久久久| 亚洲一区视频| 国产精品成人aaaaa网站| 一本一本久久a久久精品综合妖精| 一本色道久久综合| 欧美久久久久久久久| 亚洲黄色在线| 99视频有精品| 欧美日韩视频在线一区二区| 99精品久久久| 亚洲性人人天天夜夜摸| 欧美日韩一级视频| 亚洲视频电影图片偷拍一区| 亚洲尤物影院| 国产精品久久久久毛片软件| 亚洲一区二区三区乱码aⅴ| 亚洲综合欧美日韩| 国产精品天美传媒入口| 午夜激情一区| 久久一区二区三区四区| 伊人久久亚洲热| 亚洲美女淫视频| 欧美日韩亚洲国产精品| 亚洲社区在线观看| 欧美一级午夜免费电影| 国产一二精品视频| 91久久精品一区二区别| 欧美激情一区二区久久久| 日韩一区二区精品在线观看| 亚洲永久免费av| 国产美女精品| 亚洲高清久久网| 欧美精品18| 亚洲图片欧美一区| 久久精品国产亚洲精品| 影音先锋日韩精品| 一区二区三区久久精品| 国产精品香蕉在线观看| 久久国产日韩欧美| 欧美激情综合亚洲一二区| 洋洋av久久久久久久一区| 欧美在线啊v| 亚洲电影在线免费观看| 国产精品99久久久久久宅男| 国产精品日韩欧美一区二区三区| 欧美一区二区私人影院日本| 欧美jjzz| 亚洲天堂av在线免费| 久久久亚洲欧洲日产国码αv| 亚洲成色www久久网站| 亚洲午夜一区二区| 国产在线观看一区| 亚洲精品视频一区二区三区| 国产精品久久久久aaaa| 久久精品国产第一区二区三区最新章节 | 久久精品国产精品亚洲精品| 欧美精品日韩一区| 亚洲免费视频一区二区| 免费成人高清视频| 亚洲午夜在线观看| 美女999久久久精品视频| 一区二区成人精品| 久久久噜噜噜| 一区二区高清| 久久蜜桃精品| 一区二区三区回区在观看免费视频| 久久精品国产91精品亚洲| 亚洲黄色性网站| 久久精品官网| 亚洲最黄网站| 久久综合狠狠综合久久综合88| 日韩视频二区| 美女视频网站黄色亚洲| 亚洲一区久久久| 欧美激情一区| 久久精品av麻豆的观看方式| 欧美性感一类影片在线播放| 亚洲观看高清完整版在线观看| 欧美性猛交xxxx免费看久久久| 亚洲国内欧美| 国产欧美精品在线| 一区二区三区毛片| 在线观看成人网| 久久国产日本精品| 亚洲午夜高清视频| 欧美国产精品v| 欧美在线www| 国产精品免费观看视频|