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