LPC2294的實時時鐘顯示工程設(shè)計分析
系統(tǒng)引導(dǎo)模塊完成各種初始化工作后,用一條跳轉(zhuǎn)指令進(jìn)入C的主入口Main,從此控制權(quán)移交給了C應(yīng)用程序。
2 應(yīng)用程序部分
對于該工程中使用到的LPC2294芯片里的各個模塊,如I/O端口、RTC、TIMERl,應(yīng)該首先在相應(yīng)函數(shù)中對該模塊里的各個寄存器全部進(jìn)行初始化,這樣脫機(jī)運行時才能順利顯示。
下面簡要介紹一下main.c主程序里用到的各主要函數(shù)。
hitVfdl312();
該函數(shù)首先初始化LPC2294的P0口全部為GPIO口。本工程中設(shè)置PO.6與P0.7、P0.8為輸出,并在硬件連接上分別接到PT6311模塊的數(shù)據(jù)線、片選線、時鐘線,然后利用P0.6與P0.7、P0.8送出數(shù)據(jù)到VFD模塊,初始化VFD,舔加初始化數(shù)據(jù)。實際上初始化為空格,然后全部點亮VFD。
RTCIni();
初始化實時時鐘并啟動RTC。
TIMERl_InitTimef();
初始化定時器1,設(shè)置每過1ms產(chǎn)生1次中斷,即置位定時器里IR中的MR0位;并復(fù)位定時器計數(shù)器TC。
TIMERl_StartTimer();
使定時器1離開復(fù)位狀態(tài),并開始計時。
pollint();
設(shè)置變量_mSet、_10mSct、_100mSct,其數(shù)值代表的單位分別為1ms,10ms,110ms。隨著定時器1的不斷置位中斷和復(fù)位,它們的數(shù)值也相應(yīng)產(chǎn)生變化。
GetTime();
每過1s,讀一下RTC里的時間,送到VFD緩 沖區(qū)。
UpdateVfdl312();
每過100ms,讀取VFD緩沖區(qū)里的數(shù)值,刷新VFD顯示。
結(jié)語
把該工程應(yīng)用于基于LPC2294的開發(fā)板外部存儲器后,能夠脫機(jī)運行,VFD實時時鐘全部點亮,并且顯示時間正確。
LPC2294適用于開發(fā)稅控設(shè)備。稅控設(shè)備上有較多的模塊,VFD客顯模塊是其中之一,可用來顯示時間。
這個工程是一個較完整的工程,可以在該工程上擴(kuò)展稅控機(jī)的其他模塊和應(yīng)用程序等。不需要改動啟動代碼,只需在mian.c和其他應(yīng)用程序中添加相應(yīng)的函數(shù)。以期以后開發(fā)成一個完整的稅控機(jī)系統(tǒng)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論