新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于GPRS的自來水流量監(jiān)測終端的設(shè)計(jì)

基于GPRS的自來水流量監(jiān)測終端的設(shè)計(jì)

作者: 時(shí)間:2010-07-01 來源:網(wǎng)絡(luò) 收藏

的軟件設(shè)計(jì)
的軟件設(shè)計(jì)中,采用模塊化設(shè)計(jì),根據(jù)功能將程序劃分為多個(gè)模塊分別設(shè)計(jì)。這種設(shè)計(jì)方法不僅使得程序結(jié)構(gòu)清晰,而且為以后新功能的擴(kuò)展以及程序的移植提供了便利,在調(diào)試過程中也便于對軟件故障的定位。


軟件在MPLAB IDE8.10環(huán)境下,采用PICC編譯器,用C語言實(shí)現(xiàn)。主程序流程如圖3所示。上電后,先進(jìn)行初始化,然后進(jìn)入循環(huán),根據(jù)條件調(diào)用各個(gè)子程序。其中初始化包括各I/O端口的方向設(shè)置、SPI初始化、中斷標(biāo)志的設(shè)置等。寫數(shù)據(jù)到Flash時(shí),須先判斷整個(gè)Flash是否寫滿,惹是須先擦除才能寫入新數(shù)據(jù)。

圖3 主程序流程圖


在本系統(tǒng)中,單片機(jī)需處理多個(gè)任務(wù),而且有的任務(wù)又是隨機(jī)的,故MCU采用查詢和中斷相結(jié)合的工作方式。其中,定時(shí)上報(bào)采用查詢方式,如圖3所示,而斷電檢測、來電喚醒則通過PIC單片機(jī)的RB0電平變化中斷來完成。但是,在中斷服務(wù)程序中,只簡單的設(shè)置掉電/復(fù)電標(biāo)志,并不執(zhí)行其他復(fù)雜的操作,相應(yīng)的掉電/復(fù)電服務(wù)是在主程序中檢測到掉電/復(fù)電標(biāo)志后才執(zhí)行的。這是因?yàn)镻IC16F877A單片機(jī)只有8層深度的硬件堆棧,在中斷里調(diào)用子程序極易出現(xiàn)堆棧溢出的情況。為了保證程序的可靠運(yùn)行,故將讀取DS1302的時(shí)間、轉(zhuǎn)入睡眠模式等操作都放在主程序中執(zhí)行,使中斷服務(wù)程序盡量短小,提高系統(tǒng)運(yùn)行的可靠性。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉