




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
編號: 嵌入式系統(tǒng)設(shè)計 實訓(xùn) (論文)說明書 題 目: 基于嵌入式基于嵌入式 armarm 的日歷的制作的日歷的制作 院 (系): 應(yīng)用科技學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 農(nóng)惜童 學(xué) 號: 0701130204 指導(dǎo)教師: 符強(qiáng)、陳小毛、嚴(yán)素清、孫安青 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 2011 年 01 月 19 日 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 0 頁 摘 要 日歷在生活中經(jīng)常用到,電子制作的帶時鐘的日歷更是在生活中廣泛用到。 本課題是基于 arm 芯片的日歷制作,采用 lpc2138 中央控制單元,五個按鍵分別 用于調(diào)節(jié)和查詢時間日期,設(shè)定生日等。用 lcd1602 顯示。整個設(shè)計元器件少,簡潔 美觀,且模塊化。模塊化的設(shè)計和調(diào)試方法在整個課題研究過程中至關(guān)重要,事實上 在任何設(shè)計中也同樣關(guān)鍵和有效。 關(guān)鍵字:日歷;lpc2138;按鍵;lcd1602; 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 1 頁 abstract calendar in life are often used, electronic made with clock calendar is widely used in life. this topic is based on the arm of the chip making, use the calendar lpc2138 central control unit, five buttons respectively used to regulate and inquires the time or date, set a birthday, etc. with lcd1602 display. the whole design components less, concise and beautiful, and modularization. modular design and debug method in the whole subject research process is of vital importance to in fact in any design also key and effectively. keywords:calendar; lpc2138; button; lcd1602 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 0 頁 目 錄 引言.1 1 設(shè)計任務(wù).2 2 硬件設(shè)計.2 2.1 總體設(shè)計方案與系統(tǒng)構(gòu)成.2 2.2 lpc2138 芯片2 2.2.1lpc2138 管腳2 2.2.2lpc2138 主要性能3 2.2.3lpc2138 的應(yīng)用4 2.3 rtc 實時時鐘模塊5 2.3.1rtc 特性5 2.3.2rtc 寄存器5 2.3.3rtc 使用注意事項7 2.4 硬件電路圖.8 2.5 硬件電路 pcb9 3 軟件設(shè)計.9 3.1 整體設(shè)計.9 3.2 初始化程序流程圖.11 3.3 生日提示程序流程圖.11 4 基于 arm 日歷的調(diào)試12 4.1 硬件電路檢測.12 4.2 功能調(diào)試.12 5 改進(jìn)方案.12 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 1 頁 結(jié)論.13 謝 辭.14 參考文獻(xiàn)15 附 錄.1 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 0 頁 引言 rtc 的英文全稱是 real-time clock,翻譯過來是實時時鐘芯片. rtc 是 pc 主板上 的晶振及相關(guān)電路組成的時鐘電路的生成脈沖,rtc 經(jīng)過 8254 電路的變頻產(chǎn)生一個頻 率較低一點的 os(系統(tǒng))時鐘 tsc,系統(tǒng)時鐘每一個 cpu 周期加一,每次系統(tǒng)時鐘在系 統(tǒng)初起時通過 rtc 初始化。 rtc 通常情況下需要外接 32.768khz 晶體,匹配電容、備份電源等元件。 rtc 除了 i/o 口的定位不同,還有功能上的區(qū)別,比如與mcu 的接口,現(xiàn)在常用的是 i2c 接口(距離短,可以與其他器件共用)還有ram 的數(shù)量、靜態(tài)功耗大小、中斷 的數(shù)量,特別是精度的區(qū)別。 rtc 的精度可以說與溫度有很大的關(guān)系,而溫度會影 響晶體的頻率。所以就產(chǎn)生實時時鐘的衍生產(chǎn)品:時鐘模塊(內(nèi)置晶體、電容、電 池等等),其精度可保持在每天誤差小于0.50 秒。但時鐘模塊相比時鐘芯片而言 會高出許多。rtc 最重要的功能是提供到 2099 年內(nèi)的日歷功能,對于時間來說, 無論快慢都是誤差,而匹配電容在rtc 的外圍器件上其他非常重要的作用,它可以 適當(dāng)修正晶體與 rtc 之間匹配問題。特別是像 h1208 這樣的 rtc,把匹配電容內(nèi) 置,這樣就可以保證 rtc 精度的一致性,不會出現(xiàn)有的 rtc 走得快,有些又走得 慢。 它的主要作用就是提供穩(wěn)定的時鐘信號給后續(xù)電路用。主要功能有:時鐘 /清除 rtc 中斷標(biāo)志 alhour=12; /報警時間設(shè)置為 12::0:00 almin=0; / alsec=0; / amr=0xf8; /屏蔽年月日值,星期值 4.時間計數(shù)寄存器 時間值包含 8 個寄存器,見表 2.3.2(4)所示。 表 2.3.2(4)時間計數(shù)寄存器 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 6 頁 按讀時間計數(shù)寄存器方式讀取 rtc 時鐘程序如下所示: struct date uint16 year; uint8 mon; uint8 day; uint8 dow; struct time uint8 hour; uint8 min; uint8 sec; void gettime(struct date*d,struct time *t) d-year=year; d-mon=month; d-day=dom; d-hour=hour; d-min=min; d-sec=sec 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 7 頁 2.3.3rtc 使用注意事項 如果使用 rtc,vbat 必須連接到 v3 腳或一個獨立的電源(外部電池) 。否則, vbat 應(yīng)該接地(vss)。vbat 斷電時 lpc2131/2132/2138 不能保存 rtc 的狀態(tài),如果時 鐘源丟失、中斷或改變,rtc 也無法維持時間計數(shù)。 由于 rtc 有兩個可用的時鐘(vpb 時鐘(pclk)或來自 rtcx1-2 管腳的 32khz 的信 號) ,所選擇時鐘的任何中斷都會導(dǎo)致時間值的偏移。如果 rtc 初始化成這個時間 值或從 rtc 激活后運行的一段時間內(nèi)出現(xiàn)了一個錯誤,它們帶來的變化都將影響真實 的時鐘時間。 rtcx1-2 管腳的信號可隨時為 rtc 提供時鐘,選擇 pclk 作為 rtc 時鐘和進(jìn)入掉電 模式會使時間的更新出現(xiàn)誤差。而且,在系統(tǒng)操作過程中(重新配置 pll、vpb 定時 器或 rtc 預(yù)分頻器)改變 rtc 的時間基準(zhǔn)會使累加時間出現(xiàn)錯誤。當(dāng) rtc 時鐘由 pclk 轉(zhuǎn)變?yōu)?rtcx 管腳信號時也會出現(xiàn)累加時間誤差。 一旦 rtcx1-2 管腳的 32khz 信號被選擇用作 rtc 的時鐘源, rtc 可完全獨立工作, 與 vpb 時鐘(pclk)無關(guān)。因此,在要用到 rtc 且對功耗敏感的應(yīng)用中(如電池供電 設(shè)備)可通過使用 rtcx1-2 管腳的信號和清除 pconp 功率控制寄存器的 pcrtc 位來降 低功耗(見“系統(tǒng)控制模塊”一章的“功率控制” ) 。 2.4 硬件電路圖 lpc2138 的外圍電路及為簡單,如下圖所示,lcd1602 為顯示電路,按鍵 s1-s5 為 控制電路,蜂鳴器為生日提醒電路。 硬件電路圖如圖 2.4 所示: 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 8 頁 圖 2.4 硬件電路圖 2.5 硬件電路 pcb 為了檢測調(diào)試方便,在印制 pcb 的時候,將特性中的鏡像給選上,這樣制板時就 不用打孔,調(diào)試電路板時方便易檢查。 基于嵌入式 arm 日歷制作電路的 pcb 如圖 2.5 所示: 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 9 頁 圖 2.5 硬件電路 pcb 3 軟件設(shè)計 系統(tǒng)的主程序主要完成輸出3路pwm信號,并由按鍵來控制調(diào)節(jié)。 3.1 整體設(shè)計 由設(shè)計要求,可分析得出程序設(shè)計一共有以下幾個模塊: (1)初始化程序設(shè)計,包括lcd1602屏幕顯示初始化,lpc2138芯片的rtc模塊初始 化,設(shè)置管腳p0口為gpio口,設(shè)置p1.17,p1.19,p1.21,p1.23為按鍵輸入口。 (2)rtc時鐘提取設(shè)計,初始化后,開啟rtc專用定時器,通過它的匹配功能來提取 年月日時分秒星期等時間,并送至lcd顯示。 (3)變量控制,提取時鐘后,要通過按鍵來調(diào)節(jié)時鐘的大小。 (4)生日提醒,設(shè)置生日時間,生日那天,則蜂鳴器響,lcd顯示birthday提醒。 總體軟件設(shè)計流程圖如圖3.1所示。 掃描鍵盤 生日提示設(shè)置 開始 lcd 初始化 rtc 初始化 讀取 rtc 時間, 并發(fā)送到 lcd 顯 示 設(shè)置 p0 口為 gpio 口 s1? s2,數(shù)值+1s3,數(shù)值-1 掃描鍵盤 按 1 次按 2 次 按 3 次 按 4 次按 2 次 次 按 3 次按 4 次 年設(shè)置月設(shè)置日設(shè)置周設(shè)置時設(shè)置分設(shè)置秒設(shè)置 延時 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 10 頁 n y 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 11 頁 圖3.1 總程序流程圖 3.2 初始化程序流程圖 rtc初始化程序流程圖如圖3.2所示: 設(shè)置基準(zhǔn)時鐘分頻 設(shè)置年月日變量 year = int_year month int_month dom = int_day 設(shè)置時分秒變量 hour=int_hourm min = int_min sec= int_sec 設(shè)置周變量 dow = int_week 開啟 rtc ccr = 0x01 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 12 頁 圖3.2 rtc初始化程序流程圖 3.3 生日提示程序流程圖 n y 圖3.3 生日提示流程圖 4 基于 arm 日歷的調(diào)試 4.1 硬件電路檢測 制作好的pcb板,按照裝配圖或原理圖進(jìn)行器件裝配,裝配好之后進(jìn)行電路的調(diào)試。 調(diào)試規(guī)則為:打開電源之前,先按照系統(tǒng)原理圖檢查制作好的電路板的通斷情況, 并取下pcb上的集成塊,然后接通電源,用萬用表檢查板上的各點的電源電壓值,完好 之后再關(guān)掉電源,插上集成塊。 4.2 功能調(diào)試 設(shè)置生日日期 當(dāng)前日期與生日 日期相比較 相等 蜂鳴器響,lcd 顯示生日提醒 送當(dāng)前日期給 lcd 顯示 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 13 頁 將寫好的程序燒到板子上。然后板子接上電源,電源顯示燈亮,開始調(diào)試。 pwm信號發(fā)生器按鍵功能如圖4.2所示 圖4.2pwm信號發(fā)生器按鍵 (1)開啟電源,各模塊初始化。lcd屏幕顯示初始化時鐘2011-1-19-3-10-48- 56,表示電路工作正常。上述時鐘表示2011年1月19日星期三10點48分56秒。 (2)按下 s1 鍵 1 次,則等下按鍵修改功能作用于年變量,按 2 次為月變量,3 次 為日變量,以此類推。我們先按下 2 次 s1 鍵,則作用的是月變量。 (3)按下 s2 鍵,可以看到 lcd 屏顯上的月變量+1,每按一次+1。 (4)按下 s3 鍵,可以看到 cd 屏顯上的月變量-1,每按一次-1。 按照這個方法,調(diào)試其他時鐘變量。至此,基于 arm 日歷的調(diào)試完畢。 5 改進(jìn)方案 日歷的制作簡單,功能很多。若在以上我們制作的基礎(chǔ)上,加上一些模塊,還可 以實現(xiàn)諸多功能。 1.多功能鬧鐘,設(shè)置方式和設(shè)置生日提醒得方式一致。 2.實現(xiàn)對日歷的查詢,通過年月日,可以知道星期的查詢。 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 14 頁 結(jié)論 這次實訓(xùn)匆忙的結(jié)束了。由于考研的原因使得這次實訓(xùn)時間不夠,且在制作過程 中遇到了好多困難,但總的來說,我基本按要求完成了pwm信號發(fā)生器這個設(shè)計的要求。 盡管這次基本能完成了設(shè)計的要求,但我覺得我還有很多需要改進(jìn)的地方,也許是時 間有限的原因,所以,以后很長一段時間,還需加強(qiáng)這方面的學(xué)習(xí)。 在這實訓(xùn)中,把理論和實踐相結(jié)合,我學(xué)到了許多新的知識。 首先,設(shè)計電路的整個過程中,我深刻體會到電子電路的設(shè)計以及生產(chǎn)流程、安 裝、布局、布線、焊接等。提高了理論知識與實際動手結(jié)合的能力,這讓我對數(shù)字電 路和模擬電路都有了更深刻的理解。其次,這次設(shè)計,我從中了解到了各種集成電路 方面的知識,熟悉了很多以前從未接觸過的芯片,對各種芯片的功能以及其可能組成 的電路都有了一部分的了解。最后,掌握了protel的應(yīng)用技巧,用prolel制作電路板 的過程中,從繪制原理圖到封裝器件,到最后作出pcb圖都遇到很多問題,在同學(xué)和老 師的指導(dǎo)之下我都依次解決了這些問題。 設(shè)計過程,在調(diào)試電路的時候,遇到的問題最多,由于我是第一次嵌入式芯片, 剛開始調(diào)試都是從電路的最前面一點一點測試工作點的電壓值,以及當(dāng)輸入電壓變化 的時候每塊芯片的輸入輸出端應(yīng)有的變化,每一部分電路都應(yīng)實現(xiàn)自己的功能,才能 得出最終的結(jié)果,達(dá)到目標(biāo)。我認(rèn)為調(diào)試電路不但要熟悉基礎(chǔ)電路知識,還要有相當(dāng) 的調(diào)試經(jīng)驗,但電路出現(xiàn)問題的時候應(yīng)該大膽的做嘗試,在這方面我比較欠缺,我會 在以后的工作學(xué)習(xí)中盡量彌補(bǔ)自己的弱點。 經(jīng)過這次設(shè)計,我覺得自己真的學(xué)到了不少東西。同時學(xué)會了怎樣查閱資料和利用工 具書。在這次設(shè)計過程中經(jīng)常遇到一些不曾學(xué)過的東西,但能有針對性地查找資料, 然后加以吸收利用,提高了自己的應(yīng)用能力,而且還增長了自己的見識,補(bǔ)充了專業(yè) 知識,增強(qiáng)了自己的動手能力,而且還磨練了自己的耐性。收獲頗多。 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 15 頁 謝 辭 通過本次設(shè)計不僅是對我們的專業(yè)知識的檢查與總結(jié),而且是對今后學(xué)習(xí)研究的 一種的激勵。在陳小毛、符強(qiáng)、嚴(yán)素青、孫安青老師的指導(dǎo)下和同學(xué)們的協(xié)助下,我 的設(shè)計到此已經(jīng)完全結(jié)束。緊張的日子也總算告一段落?;匚镀饋?感觸頗多。在此過 程中,我遇到了許多問題,通過老師和同學(xué)的幫助以及自己查閱資料等多種途徑,解 決了許多問題,也提高了自己獨立思考問題、分析問題、解決問題的能力,同時也提 高了實踐能力。最后我要感謝這段時間來所有幫助過我的老師、同學(xué)和朋友,是你們 讓我的不斷發(fā)現(xiàn)自己的不足并幫助我解決一個個設(shè)計上的問題,給我留下了美好的回 憶。謝謝你們! 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 16 頁 參考文獻(xiàn) 1 崔更申 孫安青.arm 嵌入式系統(tǒng)開發(fā)與實踐m.北京:中國電力出版社,2008 2 何加銘. 嵌入式 32 位微處理器系統(tǒng)設(shè)計與應(yīng)用m. 北京:電子工業(yè)出版社,2006 3 楊宗德. 嵌入式 arm 系統(tǒng)原理與實例開發(fā)m. 北京:北京大學(xué)出版社,2007 4 劉天時等 .arm7 嵌入式開發(fā)基礎(chǔ)實驗m. 北京:北京航空航天大學(xué)出版社,2007 5 張綺文.arm 嵌入式常用模塊與綜合系統(tǒng)設(shè)計實例精講.北京:電子工業(yè)出版社,2007. 6 歐陽禹.arm7 嵌入式系統(tǒng)實訓(xùn)教程.北京:清華大學(xué)出版社,2008. 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 0 頁 附 錄 原理圖 主程序代碼 #include #define uint8 unsigned char #define uint32 unsigned long #define sw_1 (17) #define sw_2 (19) 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 1 頁 #define sw_3 (21) #define sw_4 (23) #define sw_5 (25) #define lcd_rs (116) /get year 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 7 頁 year_q = bak_year/1000; year_b = bak_year%1000/100; year_s = bak_year%1000%100/10; year_g = bak_year%1000%100%10; bak_month = (datas8) /get month month_s = bak_month/10; month_g = bak_month%10; bak_day = datas /get day day_s = bak_day/10; day_g = bak_day%10; bak_week = (times24) /get week bak_hour = (times16) /get hour hour_s = bak_hour/10; hour_g = bak_hour%10; bak_min = (times8) /get minutes 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 8 頁 min_s = bak_min/10; min_g = bak_min%10; bak_sec = times /get second sec_s = bak_sec/10; sec_g = bak_sec%10; /* * * 名稱:lcd_display() * 功能:顯示文本 * */ void lcd_display() lcd_write_command(0x80,1); lcd_write_data(year_q+0x30); lcd_write_data(year_b+0x30); lcd_write_data(year_s+0x30); lcd_write_data(year_g+0x30); lcd_write_data(-); lcd_write_data(month_s+0x30); lcd_write_data(month_g+0x30); 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 9 頁 lcd_write_data(-); lcd_write_data(day_s+0x30); lcd_write_data(day_g+0x30); lcd_write_data(-); lcd_write_data(bak_week+0x30); lcd_write_data(-); lcd_write_data(hour_s+0x30); lcd_write_data(hour_g+0x30); lcd_write_data(-); lcd_write_command(0xc0,1); lcd_write_data(min_s+0x30); lcd_write_data(min_g+0x30); lcd_write_data(-); lcd_write_data(sec_s+0x30); lcd_write_data(sec_g+0x30); int main (void) pinsel0=0x00000000; pinsel2=0x00000000; io0dir=0x000007ff; io1dir 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 10 頁 io1dir io1dir io1dir io1dir io1set |= (1 sw_1); io1set |= (1 sw_2); io1set |= (1 sw_3); io1set |= (1 sw_4); io1set |= (1 sw_5); io1dir |= (1 bell); io1clr |= (1 bell); lcd_init(); rtcinit(); while(1) if(bak_month=2)i10;i+) io1set |= (1 bell); for(j=0;j60000;j+); io1clr |= (1 bell); lcd_disp_string(6,1,txt0); 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 11 頁 lcd_write_command(0x01,1); if(io1pin j10000;j+); if(io1pin if(ting_flag=7)ting_flag=0; while(io1pin if(io1pin j10000;j+); if(io1pin ccr=0x00; else ccrflag=0; 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 12 頁 ccr=0x01; while(io1pin if(ting_flag=0) if(io1pin j10000;j+); if(io1pin year = int_year; while(io1pin if(io1pin j10000;j+); if(io1pin year = int_year; 桂林電子科技大學(xué)實訓(xùn)說明書專用紙 第 13 頁 while(io1pin if(ting_flag=1) if(io1pin j10000;j+); if(io1pin mon
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油罐租賃與綠色能源應(yīng)用推廣服務(wù)協(xié)議
- 汽車掛名投資合作協(xié)議范本及風(fēng)險控制措施
- 商用建筑集中供暖管道及配套設(shè)施安裝合同
- 車位租賃與車輛停放安全管理合同
- 綠色環(huán)保車庫租賃運營協(xié)議
- 吉利汽車銷售管理制度
- 2024屆廣東省河源市和平縣中考五模數(shù)學(xué)試題含解析
- 2019-2025年二級注冊建筑師之建筑結(jié)構(gòu)與設(shè)備通關(guān)提分題庫及完整答案
- nZVI強(qiáng)化培養(yǎng)好氧顆粒污泥處理低碳氮比含鹽廢水
- 培訓(xùn)學(xué)校校門管理制度
- 《活著》讀書分享課件
- 人機(jī)交互在醫(yī)療中的應(yīng)用原理
- 中藥材種植及深加工項目建議書
- 吉林大學(xué)物理化學(xué)實驗 習(xí)題與試卷
- 語文到底教什么
- 數(shù)學(xué)的力量:讓我們成為更好的人
- UPS電源管理系統(tǒng)升級
- 高等數(shù)學(xué)(南京理工大學(xué))智慧樹知到課后章節(jié)答案2023年下南京理工大學(xué)
- SA8000-2014社會責(zé)任績效委員會SPT組織架構(gòu)、職責(zé)和定期檢討及評審會議記錄
- 湖北省實驗動物從業(yè)人員培訓(xùn)考試題庫及答案(供參考)
- 回顧性中醫(yī)醫(yī)術(shù)實踐資料(醫(yī)案)表
評論
0/150
提交評論