4 軟件流程及其程序的編寫

數據存儲及讀取模塊軟件的程序設計主要對象是鐵電存儲器FM25V10,通過對單片機內部集成的A/D采集模塊進行數據的采集,並將數據進行實時的存儲在鐵電存儲器FM25V10中,並且在存儲結束後將數據讀取出來,通過通信模塊將數據傳輸給上位機。

數據的存儲及讀取過程中是通過SPI總線方式進行傳輸的,該方式可以有效地對數據進行快速、準確的存儲及讀取。C8051F單片機中的SPI提供了一個靈活的四線全雙工串行總線,SPI所使用的4個信號分別是:MOSI、MISO、SCK、NSS。

該程序的編寫主要分為兩部分:一部分是對FM25V10的數據存儲程序的編寫;另一部分是對FM25V10的數據讀取程序的編寫。在對FM25V10的操作過程中,我們要根據FM25V10手冊中所提供的操作碼來操作,而且還要根據手冊中提供的程序時序圖來編寫程序。

對於軟件的編程之前,首先要把要編寫程序的基本流程畫出來,可以更清晰地了解程序的主要內容及其工作流程,本文中的讀寫數據軟件流程。

下邊是用到的最基本的程序塊,包含了三個方麵:數據的寫入、數據的讀取、地址的自動加一。

(1)將R0數據寫入到SPI端口寄存器:

SPI_write:

CLR SPIF

MOV SPI0DAT,R0

JNB SPIF,$

CLR SPIF

RET

(2)讀取SPI端口寄存器中的數據到R0:

SPI_read:

CLR SPIF

MOV SPI0DAT,#00H

JNB SPIF,$

CLR SPIF

MOV R0,SPI0DAT

RET

(3)地址自動加1:

DPTR_INC:

INC DPTR_LL

MOV A,#00H

CJNE A,DPTR_LL,DPTR_RET

INC DPTR_HL

MOV A,#00H

CJNE A,DPTR_HL,DPTR_RET

INC DPTR_HH

DPTR_RET:

RET

5 結語

通過對硬件電路進行設計及相對應的軟件編程實現了數據的存儲和讀取功能,完成了基於SPI串口總線的單片機對FRAM存儲芯片的讀寫操作,完成了實時參數及其數據保存功能,通過實驗可以說明數據通信穩定可靠。由於FM25V10存儲芯片具有重複擦寫、非易失性等特點,所以目前采用SPI總線接口的芯片越來越多,在儀器儀表、工業控製、數字家電等方麵普遍得到應用。本文采用的C5051F單片機SPI接口,該方法也可以適用於其他帶SPI接口電路的微處理器。

參考文獻

[1] 洪亮,鄢萍,易潤忠.基於SPI和單片機的嵌入式係統擴展方法[J].微型電腦應用,2008,24(9).

[2] 汪永琳,丁一.一種3線製半雙工SPI接口設計[J].集成電路設計與開發,2010,35(5).

[3] 宋曄,蔡慧,趙榮祥.采用SPI接口實現TMS3230F240DSP之間的通信[J].機電工程,2005,22(5).

[4] 楊瑞帆,郭曉鵬,崔順.基於C8051F330D單片機的多路數據采集係統設計[J].電子測試,2010,(4).

[5] 馮金霞,張輪,熊天聖.基於SPI接口的異步串口擴展技術研究[J].微型電腦應用,2009,25(12).

[6] 賈偉,邵左文,張玉猛.基於SPI總線的高速串行數據采集係統設計[J].國外電子測量技術,2007,26(4).

(責任編輯:周加轉)