1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      LPC2294的實時時鐘顯示工程設計分析

      更新時間: 2007-06-12 10:31:24來源: 粵嵌教育瀏覽量:803

      摘要 LPC2294是飛利浦半導體公司生產的基于ARM7TDMI-S內核的芯片。本文介紹一個基于LPC2294的完整的時鐘顯示設計工程,給出啟動代碼的詳細設計過程,以廈時鐘顯示應用程序的主要函敷說明。其中的啟動代碼設計過程可供一般的基于ARM7TDMI-S內核的嵌入式處理囂芯片參考使用。

      關鍵詞 LPC2294 ARM嵌入式系統啟動代碼RTC模塊 定時器模塊VFD模塊PT6311

      引 言

        嵌入式系統是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式系統有復雜和簡單之分。通常代碼量少的系統完成的功能有限,可以不使用嵌人式操作系統,直接在裸機上開發,使用的開發工具可以是匯編語言和C語言;復雜的嵌入式系統推薦使用嵌入式操作系統。

        ARM(Advarlced RISC Machine)是設計這種處理器內核的公司的名字,ARM核并非芯片。ARM核與其他部件,如RAM、ROM、片內外設,組合在一起才構成現實的芯片。ARM作為一類微處理器的通稱,作為一種低功耗、高性能的32位嵌入式微處理器,現在已經被廣泛應用在各個領域中。

        ARM應用的開發工具主要包括集成開發環境IDE、評估板和JTAG仿真器等。國內使用較多的IDE為ARM公司的SDT、ADS以及英蓓特公司的Embest IDE。仿真器有ARM公司的Muti-ICE和英蓓特公司的Embest系列ARM JTAG仿真器等。

        可以在PC機上開發一個嵌入式系統,利用集成開發環境編寫并編譯鏈接產生ARM處理器執行代碼。然后用仿真器等調試工具調試,并下載代碼到硬件上,如圖1所示。

        在嵌入式系統的編程開發過程中,技術難點主要在于系統引導程序的編寫。為此提供一個較完整的小工程,詳細分析在ARM7基礎上開發嵌入式系統時引導程序的關鍵代碼,并簡要介紹應用程序的主要函數。

        LPC2294是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-SCPU,帶有256 KB嵌入的高速Flash存儲器。它有極低的功耗、多個32位定時器、RTC模塊、WDT模塊等。

        本文主要是在以LPC2294為核心的ARM小系統中,在不采用操作系統的情況下,試編寫了一個工程,并下載到該開發板的外部存儲器(該開發板的片外存儲器為4 MB片外32位數據總線寬度Flash存儲器),接上VFD顯示模塊后,脫機運行時,顯示實時時鐘成功。

        該工程利用ADS開發軟件,在CodeWarrior IDE集成開發環境下,編寫編譯并使用AXD和技創公司的techorICE仿真器訶試,并下載程序,VFD模塊采用PT6311驅動芯片。

        工程的程序主要分兩部分:系統引導(BOOT)部分和應用程序部分。

      1 系統引導部分

        系統引導(BOOT)是芯片復位后進入應用程序之前執行的一段代碼,主要是為運行應用程序提供基本的運行環境,對系統硬件和軟件運行環境進行初始化。這些工作是用匯編語言和C語言完成的,是嵌入式系統中應用程序的開頭部分,與應用程序一起固化在ROM中,并首先在系統上運行。

        設計好系統引導(BOOT)是設計嵌入式程序的關鍵,也是系統能夠正常工作的前提。系統引導(BOOT)所執行的操作主要依賴于CPU內核的類型,以及正在開發的嵌入式系統軟件中需要使用的CPU芯片上的資源。針對該款芯片和應用程序的系統引導(B00T)代碼的流程如圖2所示。

         以下按在片內RAM調試該工程時,順序出現的啟動代碼的有關文件,給出關鍵代碼分析:;中斯向量表,給出CPU芯片出現異常時應該轉去執行的程序

       

        系統引導模塊完成各種初始化工作后,用一條跳轉指令進入C的主入口Main,從此控制權移交給了C應用程序。

      2 應用程序部分

        對于該工程中使用到的LPC2294芯片里的各個模塊,如I/O端口、RTC、TIMERl,應該首先在相應函數中對該模塊里的各個寄存器全部進行初始化,這樣脫機運行時才能順利顯示。

        下面簡要介紹一下main.c主程序里用到的各主要函數。

      hitVfdl312();
        該函數首先初始化LPC2294的P0口全部為GPIO口。本工程中設置PO.6與P0.7、P0.8為輸出,并在硬件連接上分別接到PT6311模塊的數據線、片選線、時鐘線,然后利用P0.6與P0.7、P0.8送出數據到VFD模塊,初始化VFD,舔加初始化數據。實際上初始化為空格,然后全部點亮VFD。

      RTCIni();
        初始化實時時鐘并啟動RTC。

      TIMERl_InitTimef();
        初始化定時器1,設置每過1ms產生1次中斷,即置位定時器里IR中的MR0位;并復位定時器計數器TC。

      TIMERl_StartTimer();
        使定時器1離開復位狀態,并開始計時。

      pollint();
        設置變量_mSet、_10mSct、_100mSct,其數值代表的單位分別為1ms,10ms,110ms。隨著定時器1的不斷置位中斷和復位,它們的數值也相應產生變化。

      GetTime();
        每過1s,讀一下RTC里的時間,送到VFD緩沖區。

      UpdateVfdl312();
        每過100ms,讀取VFD緩沖區里的數值,刷新VFD顯示。

      結語
        把該工程應用于基于LPC2294的開發板外部存儲器后,能夠脫機運行,VFD實時時鐘全部點亮,并且顯示時間正確。
        LPC2294適用于開發稅控設備。稅控設備上有較多的模塊,VFD客顯模塊是其中之一,可用來顯示時間。

        這個工程是一個較完整的工程,可以在該工程上擴展稅控機的其他模塊和應用程序等。不需要改動啟動代碼,只需在mian.c和其他應用程序中添加相應的函數。以期以后開發成一個完整的稅控機系統。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 天天看片高清观看免费国产 | 中文字幕s级优女区 | 久久免费最新免费视频 | 日本一区二区三区免费精品 | 中文字幕在线人成视频欧美 | 亚洲Aⅴ一区二区 |