ARM課程設(shè)計完結(jié)版_第1頁
ARM課程設(shè)計完結(jié)版_第2頁
ARM課程設(shè)計完結(jié)版_第3頁
ARM課程設(shè)計完結(jié)版_第4頁
ARM課程設(shè)計完結(jié)版_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、jishou university課程設(shè)計報告書題目:基于s3c2410的實時時鐘及鬧鐘設(shè)計作者:聲學(xué)號:20124055069所屬學(xué)院: 信息科學(xué)與工程學(xué)院專業(yè)年級:2012級通信工程指導(dǎo)教師: 侯冬晴 職稱:完成時間:2015年6月12日吉首大學(xué)教務(wù)處制摘要2abstract2第1章項目分析31.1項目的背景和意義31.2項目的介紹與設(shè)計的目的31.3項目的程序流程圖及硬件實驗平臺31.4項目的開發(fā)及運行環(huán)境6第2章 項目內(nèi)容62. 1實時時鐘(rtc) 62. 2iic 總線72. 3zlg72908第3章項目設(shè)計與實現(xiàn)83. 1程序設(shè)計與實現(xiàn)83.2 程序功能代碼8第4章 個人總結(jié)與改

2、進方案14基于s3c2410的實時時鐘及鬧鐘設(shè)計摘要隨著科技的發(fā)展,嵌入式系統(tǒng)廣泛應(yīng)用于工業(yè)控制和商業(yè)管理領(lǐng)域,在智能手機、平板 電腦、筆記本電腦、車載導(dǎo)航器等方面的應(yīng)用,更是極大地促進了嵌入式技術(shù)深入到生活和 工作各個方面。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件及嵌入式軟件系統(tǒng)組成;木 課題主要介紹基于s3c2410的實吋吋鐘及鬧鐘設(shè)計與實現(xiàn),利用rtc模塊、iic,通過八位七 段數(shù)碼管動態(tài)顯示時間,并在鬧鐘設(shè)定后能通過蜂鳴器報警。實時時鐘單元在系統(tǒng)電源關(guān)閉 的情況下可以在備用電池下繼續(xù)工作。關(guān)鍵詞:s3c2410; rtc; iicabstractwith the developmen

3、t of science and technology.the embedded system is widely used in industrial control and in the field of business management,and also greatly promote the embedded technology into the life and work in the smartphone, tablet pc, computer, the application of vehicle navigationan embedded system is main

4、ly composed of embedded processor and related support of hardware and embedded software system;this topic mainly introduced that real time clock and alarm clock design based on s3c2410 , utilization of rtc module and iic, through seven segment digital tube dynamic display of time, and set the alarm

5、clock through the buzzer alarm real time clock unit can continue to work under the backup battery when the system power was turned off.keyword: s3c2410; rtc; iic第1章項目分析1.1項目的背景和意義一般電子系統(tǒng)都會提供實時時鐘(rtc)給不同功能使用,例如系統(tǒng)的時間、日期和定時工作的啟動, 定期喚醒系統(tǒng)執(zhí)行任務(wù)。己有許多系統(tǒng)解決方案將實時時鐘(rtc)和完整的“獨立”功能整合至微控制 器,將微控制器整合的許多好處付諸實現(xiàn)。實時時鐘(rt

6、c)由于有了嵌入式的技術(shù)支持,已經(jīng)大量生產(chǎn), 并且廣泛地應(yīng)用于電子信息行業(yè)。實時時鐘最基本的是可以實現(xiàn)時間和日期等同步,此外,實時時鐘還提 供了很多比如看門狗等功能。所以,選擇rtc芯片除了需要考慮其時間和日期跟蹤功能外,還要針對相應(yīng) 的應(yīng)用來對rtc的功能、成本、功耗、尺寸等進行綜合的考慮。本課程設(shè)計簡單的介紹了時鐘的時間同步 和鬧鐘功能的設(shè)計與實現(xiàn)。1.2項目的介紹與設(shè)計的目的1)能夠通過鍵盤輸入進入?yún)肩娫O(shè)定模式設(shè)定實時時鐘的初始參數(shù);2)能夠通過鍵盤輸入進入鬧鐘設(shè)定模式設(shè)定鬧鐘的基本參數(shù),通過調(diào)用蜂鳴器實現(xiàn)鬧鐘報警;3)通過iic總線傳送鍵盤的輸入信號到cpu;4)zlg7290控制8位

7、的七段led數(shù)碼管顯示:00 00 00,分別為時、分、秒;1.3項目的程序流程圖及硬件實驗平臺程序流程圖:程序初始化時間設(shè)定模式時間同步模式鬧鐘設(shè)定模式圖1程序流程圖硬件實驗平臺:本次設(shè)計主要使用s3c2410芯片內(nèi)部rtc單元,spi, 1ic總線及uar(o等。zlg7290 是iic接口鍵盤及l(fā)ed數(shù)碼管驅(qū)動器。提供鍵盤屮斷信號,方便與處理器接口,可驅(qū)動8位共陰數(shù)碼管 或64只獨立led和64個按鍵。圖2 s3c2410開發(fā)板結(jié)構(gòu)圖t1cnttime tickt«ne tick generatorrtcrstpmwkuppwdnalmintj128hz圖3 rtc模塊結(jié)構(gòu)圖n

8、co nci nc2vssvcaiy0i o / r ct /9/lu亟vdd wp scl sdaks24c080cmm v 圖4 lie led控制器連接電路rir14510kr14610kncscl ncsda圖5 iic的eeprom連接電路13_212236dig? d禎 dqdig4d0dg2 digldig0segd sege segfvcc osc2 osc1/res20_19j1tsdascl ant gndzlg7290圖6 zlg7290引腳圖.8 g3j encscl > nesda >1.4項目的開發(fā)及運行環(huán)境codewarrior for arm dev

9、eloper suiteaxd debugerh-jtag仿真器超級終端第2章項目內(nèi)容2. 1實時時鐘(rtc)實時時鐘(real time clock): s3c2410提供了一個實時時鐘,該時鐘使用獨立的一路18v供電,電 池與專用于rtc電源的引腳rtcvdd連接,保證主電源切斷吋能正常維持rtc工作。s3c2410的rtc 支持兩個中斷:time tick (固定在一個頻率內(nèi)發(fā)出的時鐘中斷)和alarm中斷(在某個時刻產(chǎn)生鬧鈴中 斷)。利用這兩個中斷可以設(shè)置每一秒中斷一次顯示變化時間,用alarm屮斷實現(xiàn)鬧鐘功能。s3c2410內(nèi) 部rtc模塊結(jié)構(gòu)圖,如圖3。s3c2410的rtc主要

10、由五部分構(gòu)成:/時鐘發(fā)生器“節(jié)拍發(fā)生器/時間與日期計數(shù)器/報警發(fā)生器/控制邏輯寄存器有以下組成:“控制寄存器:rtccon丁報警控制寄存器:rtcalm/實時時鐘計數(shù)器:ticnt/ 報警時間寄存器:almsec, almmin, almhour, almdate, almmon, almyearrtc最重要的功能就是顯示時間。rtc時間顯示功能是通過讀/寫寄存器實現(xiàn)的。要顯示秒、分、時、 日、月、年,cpu 必須讀取存于 bcdsec, bcdmin, bcdhour, bcdday, bcddate, bcdmon 與bcdyear寄存器屮的值。時間的設(shè)置也是通過以上的寄存器實現(xiàn)的,即以上

11、寄存器是可讀可寫的。本 課程設(shè)計只顯示秒、分、時。2. 2 iic總線iic (interintegrated circuit)總線是一種由philips公司開發(fā)的兩線式串行總線,用于連接微控制器 及其外圍設(shè)備。iic總線產(chǎn)生于80年代,最初為音頻和視頻設(shè)備開發(fā),如今主耍在服務(wù)器管理中使用,其 中包括單個組件狀態(tài)的通信。例如管理員可對各個組件進行查詢、管理系統(tǒng)的配置或掌握組件的功能狀態(tài), 如電源和系統(tǒng)風(fēng)扇??呻S吋監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個參數(shù),增加了系統(tǒng)的安全性,方便管 理。iic總線在傳送數(shù)據(jù)過程屮共有三種類型信號:開始信號:scl為高電平時,sda由高電平向低電平跳變,開始傳送數(shù)

12、據(jù)。結(jié)朿信號:scl為低電平時,sda由低電平向高電平跳變,結(jié)朿傳送數(shù)據(jù)。應(yīng)答信號:接收數(shù)據(jù)的iic在接收到8 bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的iic發(fā)出特定的低電平脈沖,表示已 收到數(shù)據(jù)。cpu向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應(yīng)答信號,cpu接收到應(yīng)答信號后, 根據(jù)實際情況做出是否繼續(xù)傳遞信號的判斷。若未收到應(yīng)答信號,則判斷為受控單元岀現(xiàn)故障。開始信號結(jié)束信號圖7超始和停止信號圖iic總線進行數(shù)據(jù)傳送吋,吋鐘信號為高電平期問,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在吋鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。數(shù)據(jù)穩(wěn)定狀態(tài)數(shù)據(jù)變化允許圖8數(shù)據(jù)傳送時序圖iic接口: c

13、pu內(nèi)置iic總線控制器,為了方便用戶測試iic總線讀寫,搭載兩個iic設(shè)備,一個是iic 接口的led數(shù)碼管顯示控制器zlg7290,通過控制器,控制8位七段數(shù)碼管的動態(tài)掃描(見圖4);另一 個是iic接口的eeprom24c16,為16k-bit的串行eeprom (見圖5),方便用戶存儲一些小容量的數(shù) 據(jù),掉電不丟失。iic總線(iicsda、iicscl)經(jīng)過vdd33的上拉后,進入zlg7290。2. 3 zlg7290zlg7290 (見圖6)能夠直接驅(qū)動8位共陰式數(shù)碼管(或64只獨立的led),同時還可以掃描管理多 達64只按鍵。其中有8只按鍵還可以作為功能鍵使用,就像電腦鍵盤上

14、的ctrl、shift、alt鍵一樣。采 用iic總線方式,與微控制器的接口僅需兩根信號線??煽刂茠呙栉粩?shù),可控制任-數(shù)碼管閃爍。第3章項目設(shè)計與實現(xiàn)3.1程序設(shè)計與實現(xiàn)本課程設(shè)計采用軟件延時的方法來實現(xiàn)實時時鐘和鬧鐘功能。時鐘模式和鬧鐘模式分別采用 disp_bufl8和clock_bufl8兩個顯示緩沖區(qū)來存儲數(shù)值,在時鐘模式下,可以對disp_buf8重新賦值,即設(shè) 定同步時間,通過一個延時函數(shù)達到計數(shù)時間的功能;在鬧鐘模式下,可以對clock_bufl8重新賦值,即 設(shè)定鬧鐘的時間,當(dāng)同步時間計時到和設(shè)定的鬧鐘時間相等的時候,調(diào)用蜂鳴器函數(shù)發(fā)出警報,達到鬧蝕 的功能。由于是8位的led

15、數(shù)碼管,而本實驗只要求顯示:00 00 00即:吋 分 秒,所以在第三個和第六個 led數(shù)碼管最開始賦初值的時候利用oxlf讓其不顯示,以達到時鐘顯示的基本效果。然后通過4糾鍵盤 進入時鐘設(shè)置模式和鬧鐘設(shè)置模式,函數(shù)zlg7290_sendcmd ()和zlg7290_sendbuf ()使設(shè)置時對應(yīng) 位閃爍并讀取鍵值,鍵值通過按鍵獲得,每按一次就存在顯示緩沖區(qū),直到時間設(shè)置完成。通過if語句的 嵌套,再加上延時顯示來達到時間同步的效果,并且在23 59 59時自動清零。3.2程序功能代碼#include uconfig.hu#define beep(l«10)/* gph10,低電

16、平時蜂鳴 */#define beep_mask(beep)/定義顯示緩沖區(qū)char disp_buf8= 0x01,0x00,ox 1 f,0x00,0x00,ox 1 f,0x00,0x00; char clock_buff8= 0x00,0x00,ox 1 f,0x00,0x00,ox 1 f,0x00,0x00);/ zlg7290控制led數(shù)碼管閃爍命令#define glitter.com 0x70 int control =0;int stop =0;int flag_look =0;延時函數(shù)void delayns(uint32 dly)uint32 i;for(; dly&g

17、t;0; dly-)for(i=0; i<50000; i+);蜂鳴器函數(shù)void runbeep(void)irgphdat = rgphdat & beep_mask; / beep = 0delayns ;rgphdat = rgphdat | beep;/ beep = 1delayns(8);控制時間汁數(shù)延時函數(shù)void delay (int dly)uint32 i;for(; dly>0; dly-)for(i=0; i<5000; i+);/50000主函數(shù)int main(void)賦初值int cont=0x8();int model = 0;in

18、t num =-l;int j;char data;uintl6 key;uintl6 key_tmp;/ gpio設(shè)置rgpacon = rgpacon& (1«21);a 口,run 燈控制口 (gpa21)rgphcon = (rgphcon & (0x03«20) | (0x01«20);/ i*gphcon21:20 = 01b,設(shè)置 gph10 為i/o輸出模式/初始化i2c接口lniti2c();runbeepo;zlg7290_sendbuf(uint8 *)disp_buf, 8);/讀取按鍵,設(shè)置鍵值對應(yīng)的顯示位閃爍while(

19、l)delayns(l);/*>0表示鍵值(低8位為鍵碼,高8位為按鍵次數(shù))=0表示無鍵按下*/key = zlg7290_getkey(); 獲取鍵值key_tmp = key&oxooff;delayns(30);軟件去抖key = zlg7290_getkey();key = key&oxooff;判定鍵值,讀取鍵值為11吋進入?yún)奸g設(shè)置模式,讀取鍵值為12時進入鬧鐘設(shè)置模式 if(key_tmp = key)if(key = 12 && model = 0)zlg7290_sendbuf(uint8 *)clock_buf, 8); zlg7290_

20、sendcmd(glitter_com, 0x80);model = 2;num =7;cont = 0x80;stop = 1;if(key = 11 && model = 0)zlg7290_sendbuf(uint8 *)disp_buf, 8);zlg7290_sendcmd(glilter_com, 0x80);model = 1;num =7;cont = 0x80;stop = 1;進入設(shè)置模式后進行初始值設(shè)定,可以任意設(shè)定時鐘和鬧鐘的時間 if(model = l|model =2) && num >=0 && key &g

21、t;=l&&key <=10 &&s(op = 1) if(model =2)data = (uint8 )key;clock_bufnum = data-1;if(num = 3|num = 6) 第三個和第六個led數(shù)碼管不顯示,所以不進行賦值 num-;cont = cont » 1;num-;cont = cont » 1;zlg7290_sendbuf(uint8 *)clock_buf, 8);zlg7290_sendcmd(glitter_com, cont);if(num = -l) 賦值完成后的判定imodel = 0

22、;stop = 0;zlg7290_sendcmd(glitter_com,0x00);else if(model = 1)data = (uint8 )key;disp_buftnum = data-1;if(num = 3|num = 6) /第三個和第六個led數(shù)碼管不顯示,所以不進行賦值 num-;cont = cont » 1;num-;cont = cont» 1;zlg7290_sendbuf(uint8 *)disp_buf, 8);zlg7290_sendcmd(glitter_com, cont);if(num = -1)model = 0;stop =

23、 0;zlg7290_sendcmd(glitter_com, 0x00);)賦值是否完成通過stop來判定,stop=0則賦值完成,進入if嵌套語句通過control來控制延時,以達 到最佳的計時效果if(stop = 0)if(control = 9)/10disp_buf0 +;if(disp_bufo >= 10)idisp_buf0 = 0;disp_bufl卄; 秒的顯示if(disp_buf 1 >= 6)disp_buffl = 0;disp_buf3 +;if(disp_buf3 >= 10)disp_buf3 = 0;disp_buf4卄;if(disp_

24、buf4j >= 6) 分的顯示disp_buf4 = 0;disp_buf6 +;if(disp_buf6 >= 10)disp_buf6 = 0;disp_buf7j +;if(disp_buf7 >= 2&&disp_buf6 >= 4) 時的顯示,計時到 23 59 59 時自動清零forg=0;j<8;j+)disp_bufj=o;disp_buf2=0xlf;disp_buf5=0xlf;control =0;zlg7290_senclbuf(uint8 *)disp_buf, 8);zlg7290_sendcmd(giitter_com, 0x00);elsecontrol+;delay(l);當(dāng)兩個緩沖區(qū)的數(shù)值相等時調(diào)用runbeep (),即實現(xiàn)鬧鐘報警的功能。if(flag_look >0)|(disp_buf7 = clock_buf7)&&(disp_buf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論