1 引言
在農(nóng)業(yè)現(xiàn)代化生產(chǎn)和食品質量安全追蹤體系的建設過程中,,需要完整、及時,、可靠的記錄農(nóng)事操作的信息(包括育苗,、定植,、灌溉、施肥,、對花,、防治病蟲害等操作);然而傳統(tǒng)的記錄方法不僅操作麻煩,,而且隨意性太強,,時常導致誤記、漏記,、記錄檔案丟失及虛假記錄等現(xiàn)象時有發(fā)生,。為了改善這種現(xiàn)狀,我們利用現(xiàn)代電子技術和計算機技術,,設計了一種電子農(nóng)事信息記錄系統(tǒng),,解決了傳統(tǒng)方法存在的許多缺陷,并能有效實現(xiàn)大范圍質量追蹤,。
2 系統(tǒng)實現(xiàn)
農(nóng)事信息采集系統(tǒng)由手持操作終端和上位機數(shù)據(jù)庫組成,。操作者使用手持終端記錄隨時進行的農(nóng)事操作信息,信息記錄被保存在手持終端的存儲器中,;數(shù)據(jù)記錄通過RS232傳輸?shù)缴衔粰C數(shù)據(jù)庫,,由上位機生成農(nóng)事操作的存檔報表(見圖1)。
3 手持終端的硬件組成
硬件系統(tǒng)主要組成部分如圖1所示,,主控制器選用Cygnal的C8051F022芯片,,該芯片具有雙串行口,內(nèi)部集成64K可自擦除的FLASH程序存儲區(qū)并有4K字節(jié)的RAM,,此外該單片機具有豐富的外部接口(共100個引腳,,64個I/O接口),其運行速度可以高達25MIPS(25MHZ時鐘時),,它是一個功能強大的片上系統(tǒng),,具有高速、可靠等特點配置和開發(fā)都比較方便,。終端通過點陣LCD和18個按鍵與用戶交互,,LCD顯示中文信息,中文字庫由容量為512K字節(jié)的存儲器28VF040保存,,農(nóng)事信息也保存在28VF040中,。
3.1鍵盤電路
系統(tǒng)中共有18個按鍵,4×4組成了16個按鍵,,另外的兩個按鍵通過中斷口連接到單片機上,。4×4的鍵盤隊列依靠程序的掃描實現(xiàn)。
3.2 28VF040和液晶的連接和地址分配
C8051F022有較多的端口,,可以設置為地址和數(shù)據(jù)線用不同引腳的模式,;液晶和FLASH共用數(shù)據(jù)線,,他們需要設置為不同的地址空間,即通過他們的片選信號控制(見圖3),。
由于28VF040有19條地址線,,共512K字節(jié)的存儲空間,而51單片機的可以訪問的地址空間是64K,,即16條地址線,,所以把28VF040分成了16頁,每頁為32K,,也就是單片機的A0-A14連接28VF040的A0-A14,A15-A18則由P40:P43這4個IO口控制,,P40-P43選擇頁,低地址選擇該頁內(nèi)的地址,。P45做為28VF040的片選信號,,在訪問時,首先輸出片選信號,,然后設置頁地址,最后通過MOVX指令訪問該頁內(nèi)的地址即可,。
LCD通過并行方式訪問,,與28VF040共用數(shù)據(jù)線。因此,,兩個芯片不允許同時使能,。
4 手持終端軟件系統(tǒng)的構成及功能實現(xiàn)
手持終端軟件部分較復雜,其主要部分為菜單子程序,、按鍵子程序,、上下位機通信子程序、漢字輸入法子程序,、存儲器操作子程序等,。
4.1菜單子程序
多層菜單的實現(xiàn)主要由菜單結構體、菜單棧和菜單項來實現(xiàn),;其中菜單結構體用來描繪每一個菜單畫面,,通過菜單結構體,實現(xiàn)了菜單操作界面[2],。
typedef struct
{
BYTE MenuState; // 菜單狀態(tài)
BYTE MenuLines; // 菜單總行數(shù)
BYTE MenuSelLine; // 選中的行在當前窗口中的編號
BYTE WindowUp; //顯示窗口上限
BYTE WindowDown; // 顯示窗口下限
}MenuStruct;
整個操作是由一系列的菜單界面組成,。一個菜單棧描述了菜單的操作層次關系,比如,,在啟動界面下,,當按下菜單鍵后,進入到主菜單界面,,此時首先要保存原來的菜單界面以方便用戶按返回按鍵時重新顯示啟動界面,。這一功能是通過對菜單棧的操作實現(xiàn)的[3],。其主要實現(xiàn)函數(shù):
PushMenu():菜單入棧函數(shù);
PopMenu():菜單彈棧函數(shù),;
MoveSel():移動當前選擇的行函數(shù),;
程序中定義了若干個菜單狀態(tài),代表了不同的操作階段,,根據(jù)階段進行顯示和操作,;每個操作階段就是一個菜單項。比如,,主菜單共有4個子菜單,,其地址由MAINMENU表示,MAINMENU是一個數(shù)組的名稱,,定義入下:
code BYTE MAINMENU[][16]=
{{"1 農(nóng)事操作"},{"2 農(nóng)事信息"},{"3 參數(shù)設置"},{"4 設備信息"}};
4.2按鍵子程序
按鍵是在定時中斷中進行掃描的,。標準的4×4矩陣鍵盤掃描,當檢測到有鍵按下時,,產(chǎn)生按鍵消息,,并降按鍵的代碼保存到變量中。主循環(huán)檢測到按鍵消息后,,調用按鍵處理函數(shù),,該函數(shù)根據(jù)按鍵的代碼和當前菜單的狀態(tài)調用響應的處理函數(shù)進行處理。
4.3上下位機通信子程序
定義字庫和產(chǎn)品信息下載通信協(xié)議如下:
格式: [起始符][命令][地址][幀序號][長度][內(nèi)容][校驗]
起始符:0xAA
命令: 不同命令代表不同操作,,一個字節(jié),,取值范圍0x00-0xFF
地址: 0x02
禎序號:下載的數(shù)據(jù)禎的編號
長度: 數(shù)據(jù)禎信息內(nèi)容的的長度,2字節(jié),,低字節(jié)在前,,高字節(jié)在后。
內(nèi)容: 信息內(nèi)容
校驗: 從[起始符]開始到信息內(nèi)容結束的所有數(shù)據(jù)字節(jié)求和,,溢出的部分丟棄,。
4.4軟件系統(tǒng)主要流程
軟件總體結構采用消息驅動的前/后臺結構,程序主體在中斷(定時,、串口)的驅動下運行[4],,系統(tǒng)軟件主流程見圖4,軟件中定義了兩類信號:UART0通信信號和主節(jié)拍信號,。
定義主節(jié)拍信號定義如下:
MSI_HSEC: 半秒信號
MSI_SECD: 秒信號
MSI_MINU: 分信號
MSI_10MS: 10ms信號
MSI_SKEY: 按住不放,,每秒產(chǎn)生一個按鍵信號
MSI_KEYC: 確定和取消鍵按鍵信號
MSI_DISP: 顯示信號
MSI_KEYD: 按鍵信號
系統(tǒng)定時器0中斷處理流程如圖5。
5 系統(tǒng)應用
上位機數(shù)據(jù)庫用SQL Server開發(fā),,該系統(tǒng)研制成功后,,在四格莊示范基地投入試驗;有效實現(xiàn)了農(nóng)事信息的電子存檔和管理,操作簡單,、可靠[5],,上傳部分數(shù)據(jù)庫資料見表1。
6 結語
電子技術和計算機技術的有機結合,,使得農(nóng)事信息采集系統(tǒng)能很好的迎合農(nóng)業(yè)現(xiàn)代化生產(chǎn)的需求,,實現(xiàn)了全程電子無紙化可靠、便捷操作,;如果現(xiàn)有網(wǎng)絡充分利用互聯(lián)網(wǎng)技術,,則可以有效實現(xiàn)大范圍區(qū)域農(nóng)產(chǎn)品質量追蹤體系的建立;而且區(qū)域越大,,本系統(tǒng)體現(xiàn)的的技術優(yōu)勢和實現(xiàn)的經(jīng)濟效益更為顯著.
本文作者創(chuàng)新點:1,、手持操作終端及其多層菜單式操作方式便于農(nóng)事信息記錄。
2,、運用數(shù)據(jù)庫技術管理上傳的農(nóng)事資料,。
導師評語:本文針對農(nóng)產(chǎn)品安全追蹤體系的建立,提出了一種基于現(xiàn)代電子技術和計算機技術全新的信息記錄和管理思路,,尤其是手持操作終端的引入,,方便了信息的采集和存儲;而數(shù)據(jù)庫技術和網(wǎng)絡技術的引入,,無疑方便了信息的管理和傳輸,。