摘 要:本文介紹了一種基于MSP430F149單片機(jī)芯片開(kāi)發(fā)的SVT626T型傾角傳感器的數(shù)顯模塊,MSP430f149單片機(jī)向傳感器循環(huán)發(fā)送一定格式的數(shù)據(jù),傳感器持續(xù)返回一定格式的數(shù)據(jù),單片機(jī)將返回?cái)?shù)據(jù)進(jìn)行解析,然后通過(guò)1602液晶顯示出來(lái)。
關(guān)鍵詞:傳感器;單片機(jī);數(shù)顯模塊
SVT626T是一款針對(duì)工業(yè)現(xiàn)場(chǎng)控制領(lǐng)域推出的數(shù)字輸出型雙軸傾角傳感器,通常情況下,此款傳感器與電腦連接,通過(guò)專(zhuān)用軟件進(jìn)行讀數(shù)操作,傳感器的讀數(shù)過(guò)程就不太方便,在這種情況下,提出設(shè)計(jì)一種基于MSP型單片機(jī)的數(shù)顯模塊,用于實(shí)時(shí)顯示SVT626T型傳感器的狀態(tài)值,方便用戶(hù)使用。
1 設(shè)計(jì)思路
根據(jù)SVT626T型傳感器的工作手冊(cè)規(guī)定,MSP430f149單片機(jī)向傳感器循環(huán)發(fā)送一定格式的數(shù)據(jù),傳感器持續(xù)返回一定格式的數(shù)據(jù),單片機(jī)將返回?cái)?shù)據(jù)進(jìn)行解析,然后通過(guò)1602液晶顯示出來(lái)。
2 主要硬件電路設(shè)計(jì)
主控芯片選擇MSP430f149單片機(jī),主要是考慮到三個(gè)方面,一是該芯片綜合性能優(yōu)越,二是該芯片的超低功耗特性,三是該芯片正常工作電壓3.3V,與SVT626T主控芯片stm32供電電壓一致,便于設(shè)計(jì)電路。MSP430f149單片機(jī)最小工作系統(tǒng)包括時(shí)鐘電路和復(fù)位電路,為了下載程序方便,還設(shè)置了JTAG下載電路,P3_4、P3_5引腳分別連接MAX232芯片T1IN、R1OUT引腳,經(jīng)MAX232芯片轉(zhuǎn)換后,通過(guò)串口與SVT626T傾角傳感器通信。1602液晶RS端接P5_0口,RW端接P5_1口,E端接P5_2口,P4_0-P4_7作為數(shù)據(jù)通信口
3 軟件設(shè)計(jì)
查閱SVT626T型傾角傳感器工作手冊(cè),得知其通信規(guī)則如下。
讀X、Y軸角度時(shí),發(fā)送命令:68 04 00 04 08,傳感器應(yīng)答命令格式如表1所示。
數(shù)據(jù)域?yàn)?2字節(jié)返回角度值,分為三組,每組四個(gè)字節(jié),最后一組預(yù)留備用,每組為一個(gè)符號(hào)位和三個(gè)壓縮BCD碼。符號(hào)位00表示正,10表示負(fù),第一組為x軸角度,第二組為y軸角度。如返回?cái)?shù)據(jù)域第一組和第二組數(shù)據(jù)為00 02 01 03 10 00 51 32則表示X軸:+2.0103°,Y軸:-0.5132°。
MSP430系列MCU提供了三種串行通信外設(shè),分別是USI、UART和USCI,UART其實(shí)是滿(mǎn)足RS232、RS422和RS485等接口標(biāo)準(zhǔn)規(guī)范的一系列串行通信接口的總稱(chēng)。在本設(shè)計(jì)中,采用MAX232作為信號(hào)轉(zhuǎn)換處理芯片,遵循RS232通信標(biāo)準(zhǔn),因此,傳感器和單片機(jī)芯片的通信采用了UART方式。
軟件編程中主要是三個(gè)方面的內(nèi)容。一是相關(guān)寄存器的配置。選擇8M晶振為串口時(shí)鐘,設(shè)置波特率為9600bps,將發(fā)送和接收位使能,設(shè)置好通信端口,本設(shè)計(jì)中P3_4作為發(fā)送引腳,P3_5作為接收引腳。二是串口發(fā)送數(shù)據(jù)的實(shí)現(xiàn)。為了使程序架構(gòu)更合理,采用了子函數(shù)編寫(xiě)方式,編寫(xiě)了串口發(fā)送數(shù)據(jù)子函數(shù),判斷出在發(fā)送寄存器空的時(shí)候發(fā)送數(shù)據(jù)。
void Send_Byte(uchar data)
{ while((IFG1UTXIFG0)==0);
U0TXBUF=data;}
三是接收傳感器返回?cái)?shù)據(jù)并顯示。接收引發(fā)中斷,中斷服務(wù)子函數(shù)如下,
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{ uchar data=0;
data=U0RXBUF;}
將接收數(shù)據(jù)中屬于有效數(shù)據(jù)域的數(shù)據(jù)提取出來(lái),通過(guò)1602液晶寫(xiě)數(shù)據(jù)子函數(shù),逐位寫(xiě)入顯示。單片機(jī)以100ms的時(shí)間間隔循環(huán)發(fā)送指令,進(jìn)而接收數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)更新。
4 結(jié)語(yǔ)
本設(shè)計(jì)實(shí)現(xiàn)了SVT626T型傾角傳感器的數(shù)顯模塊設(shè)計(jì),避免了只有傳感器與電腦連接才能讀取測(cè)試值的情況,給實(shí)際工作帶來(lái)了便利。經(jīng)實(shí)際測(cè)試,本設(shè)計(jì)效果良好,且具有制作成本低、工作穩(wěn)定、壽命長(zhǎng)等優(yōu)點(diǎn),達(dá)到了產(chǎn)品級(jí)要求,公司量產(chǎn)后逐步推向市場(chǎng)。
[參考文獻(xiàn)]
[1]謝楷,等.MSP430系列單片機(jī)系統(tǒng)工程設(shè)計(jì)與實(shí)踐.[M].機(jī)械工業(yè)出版社.2009.7.
[2]丁武峰,莊嚴(yán),等.MCU工程師煉成記.[M].機(jī)械工業(yè)出版社.2013.9.
[3]楊艷,傅強(qiáng).從零開(kāi)啟大學(xué)生電子設(shè)計(jì)之路.[M].北京航空航天大學(xué)出版社.2014.8.