蘆宇翔,蔡志遠(yuǎn)
(沈陽工業(yè)大學(xué) 電氣工程學(xué)院,沈陽 110870)
?
Flowcode軟件平臺(tái)的PIC單片機(jī)編程方法的研究
蘆宇翔,蔡志遠(yuǎn)
(沈陽工業(yè)大學(xué) 電氣工程學(xué)院,沈陽 110870)
摘要:Flowcode是一個(gè)面向單片機(jī)開發(fā)的軟件平臺(tái),開發(fā)者可以在軟件中通過拖拽相應(yīng)的圖標(biāo)創(chuàng)建一個(gè)單片機(jī)應(yīng)用程序的流程圖,從而完成設(shè)計(jì)程序的任務(wù)。本文設(shè)計(jì)了一種壓力測(cè)量裝置的硬件電路,并使用Flowcode軟件為PIC單片機(jī)編寫了程序。
關(guān)鍵詞:Flowcode;PIC單片機(jī);PROTEUS
引言
Flowcode是一款使用流程圖編碼的設(shè)計(jì)仿真軟件,是為單片機(jī)量身定做的圖形化程序語言,目前支持PIC、AVR和ARM三類單片機(jī)。直接畫出流程圖,仿真成功后編譯成C語言和匯編代碼,即可生成hex文件,并直接燒寫到芯片中。目前Flowcode可以支持嵌入式C語言和匯編代碼。因?yàn)樾酒浦卜浅:?jiǎn)單,極大地方便了二次開發(fā),該軟件還具有強(qiáng)大的仿真功能。
1硬件設(shè)計(jì)
1.1設(shè)計(jì)功能
本文設(shè)計(jì)了一種壓力測(cè)量裝置,并且其在測(cè)量結(jié)束后可以存儲(chǔ)讀取的壓力數(shù)據(jù)。壓力傳感器選擇的是Freescale公司的MPX4250,該集成傳感器芯片除了具有壓阻式壓力傳感器外,還有用作溫度補(bǔ)償?shù)谋∧る娮杈W(wǎng)絡(luò),測(cè)壓范圍為20~250 kPa,輸出電壓為0.2~4.9 V,可以直接連接單片機(jī)進(jìn)行A/D轉(zhuǎn)換,工作溫度范圍為-40~+125 ℃[2]。單片機(jī)選用Microchip公司的PIC16F877A,實(shí)時(shí)測(cè)量壓力數(shù)值,并將測(cè)量后的結(jié)果存儲(chǔ)在單片機(jī)內(nèi)部的EEPROM中,PIC16F877A具有256字節(jié)的EEPROM,因?yàn)槭欠且资源鎯?chǔ)器,它被用于保存單片機(jī)斷電后仍需要保留的信息。可通過LCD顯示器顯示測(cè)量和存儲(chǔ)的數(shù)據(jù)。
1.2電路設(shè)計(jì)
PROTEUS軟件是由英國(guó)LabCenter Electronics公司開發(fā)的EDA工具軟件,由ISIS和ARES軟件構(gòu)成,其中ISIS是一款電子系統(tǒng)仿真軟件[3]。根據(jù)上述功能,設(shè)計(jì)電路圖如圖1所示,通過SW1切換讀寫模式,且每次存儲(chǔ)成功后D1將閃爍一次。
2Flowcode流程圖設(shè)計(jì)
首先根據(jù)設(shè)計(jì)需求,通過拖放工具欄上的圖標(biāo)構(gòu)建程序流程圖,圖標(biāo)包括輸入、輸出、延時(shí)、決策、開關(guān)、字符串處理等。在構(gòu)建流程圖的過程中,還可以為程序添加組件,如公共模塊、輸入模塊、輸出模塊、外圍設(shè)備、無線模塊等。本程序中根據(jù)功能為程序添加了相應(yīng)的元件宏,分別為L(zhǎng)CD組件宏、EEPROM組件宏、ADC組件宏,宏里面有大量打包好的代碼,可以直接調(diào)用,為設(shè)計(jì)帶來極大的便利。
圖2為主循環(huán)和顯示程序Flowcode圖。在主程序中首先調(diào)用LCD組件宏,初始化變量m、n為零,用來對(duì)存儲(chǔ)的數(shù)據(jù)標(biāo)號(hào),然后設(shè)置d0作為PORTD0的輸入狀態(tài)變量,這個(gè)開關(guān)量作為后面進(jìn)入存儲(chǔ)程序還是讀取程序的判斷程序。完成上述初始化后,采用Loop組件進(jìn)入程序的主循環(huán),相當(dāng)于C語言中的“while”循環(huán)。在Loop循環(huán)中可以設(shè)置循環(huán)的條件、次數(shù)等,然后進(jìn)入選擇Decision圖標(biāo),相當(dāng)于C語言中的“if”。本設(shè)計(jì)中判定的條件是d0(即開關(guān)的狀態(tài)),當(dāng)開關(guān)斷開時(shí)進(jìn)入讀取程序,閉合時(shí)進(jìn)入存儲(chǔ)程序。最下面是連接點(diǎn)和跳躍點(diǎn),可以用作特殊意義的標(biāo)簽,也可以用來跳躍到指定的連接處。
圖1 壓力測(cè)量電路
圖2 主循環(huán)和顯示程序Flowcode圖
在顯示程序Flowcode圖中,首先調(diào)用ADC宏,返回輸入端的電壓為一個(gè)字符串形式的變量,并存在weight整型變量中用來顯示。接下來調(diào)用Cursor命令,在指定的位置打印寫入數(shù)據(jù)的編號(hào)、壓力單位值等,然后顯示在顯示屏上。需要注意的是LCD顯示的是字符串型數(shù)值,需要將整型變量使用串操作函數(shù)ToString$將其轉(zhuǎn)換為字符串。
圖3為存儲(chǔ)和讀取程序Flowcode圖。設(shè)置變量a判斷PORTC端口的狀態(tài),當(dāng)PORTC3端口被置1(即a=4),說明存儲(chǔ)按鍵被按下,進(jìn)入存儲(chǔ)程序。為了保證存儲(chǔ)成功,首先調(diào)用延時(shí)Delay組件延時(shí)200 ms,然后調(diào)用EEPROM組件宏,在指定的m位置寫入壓力數(shù)值,接下來對(duì)PORTA2端口置1并延時(shí)200 ms,該端口連接的LED燈閃爍一次代表存儲(chǔ)成功一次。讀取程序與顯示程序原理類似,即在指定的位置顯示一些字符和數(shù)據(jù)。需要說明的是要調(diào)用EEPROM宏中的Read命令,在指定的位置n中讀取存儲(chǔ)在EEPROM中的數(shù)據(jù),并保存在整型變量read中。
圖3 存儲(chǔ)和讀取程序Flowcode圖
3PROTEUS仿真調(diào)試
PROTEUS中的虛擬仿真技術(shù)模塊可以對(duì)各種電子線路(包括單片機(jī))進(jìn)行仿真,支持眾多電子組件,組件庫中的組件多達(dá)上萬種,如Microchip公司的PIC系列單片機(jī),I2C、SPI接口的數(shù)字溫度傳感器、EEPROM等。PROTEUS支持單片機(jī)軟件仿真,可以根據(jù)單片機(jī)的程序仿真運(yùn)行。
圖4 MPX4250測(cè)量值
在PROTEUS中,在單片機(jī)屬性添加由Flowcode生成的程序文件路徑,并點(diǎn)擊運(yùn)行,運(yùn)行結(jié)果如圖4所示。當(dāng)開關(guān)選擇為寫模式時(shí),LCD能夠?qū)崟r(shí)顯示當(dāng)前的壓力值,并且顯示該數(shù)據(jù)將要被存儲(chǔ)的位置,如圖5、圖6所示,當(dāng)按下“存儲(chǔ)數(shù)據(jù)”按鍵后,該數(shù)值被存儲(chǔ)在相應(yīng)的地址中,LED燈D1閃爍一次,表示存儲(chǔ)完畢。當(dāng)開關(guān)選擇為讀模式時(shí),可以通過“向前
查詢”和“向后查詢”查到剛才被存儲(chǔ)的數(shù)據(jù),同時(shí)顯示該數(shù)據(jù)被存儲(chǔ)的位置。由于數(shù)據(jù)是被存在EEPROM中,因此被存儲(chǔ)的壓力數(shù)據(jù)具有掉電不丟失的特點(diǎn)。
圖5 LCD實(shí)時(shí)顯示測(cè)量值
圖6 LCD顯示存儲(chǔ)值和存儲(chǔ)位置
結(jié)語
參考文獻(xiàn)
[1] 聶典,葛松山,李北燕.PIC系列單片機(jī)的流碼編程:基于Flowcode V4的流碼設(shè)計(jì)平臺(tái)[M].北京:電子工業(yè)出版社,2012.
[2] 于雅莉,孫楓,王元昔.基于多傳感器的四旋翼飛行器硬件電路設(shè)計(jì)[J].傳感器與微系統(tǒng),2011(8):113-115,123.
[3] 江和.PIC16系列單片機(jī)C程序設(shè)計(jì)與PROTUES仿真[M].北京:北京航空航天大學(xué)出版社,2010.
蘆宇翔(碩士研究生)、蔡志遠(yuǎn)(教授),研究方向?yàn)橹悄茈娖鳌?/p>
(責(zé)任編輯:薛士然收修改稿日期:2015-07-11)
TI攜手微軟加速物聯(lián)網(wǎng)開發(fā)
德州儀器(TI)推出3款基于其嵌入式處理器的低成本評(píng)估套件,并支持微軟Azure物聯(lián)網(wǎng)認(rèn)證(Microsoft Azure Certified for IoT)。作為第一批擁有基于經(jīng)認(rèn)證無線微控制器與處理器評(píng)估套件且支持微軟Auzre 物聯(lián)網(wǎng)套件(Microsoft Azure IoT Suite)的半導(dǎo)體供應(yīng)商之一,TI在幫助開發(fā)人員快速啟動(dòng)IoT應(yīng)用開發(fā)方面有著得天獨(dú)厚的優(yōu)勢(shì)。
目前,微軟Azure物聯(lián)網(wǎng)套件的代理代碼已被預(yù)先植入到TI的低功耗SimpleLink Wi-Fi CC3200 無線MCU LaunchPad 套件以及基于Sitara AM335x處理器的BeagleBone Black與BeagleBoard Green套件中。未來,TI還將為開發(fā)人員提供更多經(jīng)過認(rèn)證的產(chǎn)品微軟的程序可驗(yàn)證成員的硬件與Azure物聯(lián)網(wǎng)套件之間的兼容性,并允許那些使用TI低成本開發(fā)套件的開發(fā)人員輕松下載合適的微軟Azure IoT代理,以實(shí)現(xiàn)與云端的快速連接。
PIC Microcontroller Programming Method Based on Flowcode
Lu Yuxiang,Cai Zhiyuan
(College of Electrical Engineering,Shenyang University of Technology,Shenyang 110870,China)
Abstract:Flowcode is a software platform of microcontroller development.The developers can complete the task by draging the icon of Flowcode to create a flowsheet.In this paper,the hardware circuit of a pressure measuring device is designed,and the program for the PIC microcontroller is written by using Flowcode software.
Key words:Flowcode;PIC microcontroler;PROTEUS
中圖分類號(hào):TP273
文獻(xiàn)標(biāo)識(shí)碼:A