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