




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、成績 _指導教師評定成績: 審定成績: 重 慶 郵 電 大 學 移 通 學 院課程設計報告 設計題目: 基于數碼管顯示的實時時鐘學 校: 重慶郵電大學移通學院 學 生 姓 名: 專 業(yè): 電氣工程及其自動化 班 級: 學 號: 指 導 教 師: 設計時間: 2015年 10 月重慶郵電大學移通學院嵌入式系統課程設計任務書引言:嵌入式系統課程設計是電氣工程及其自動化專業(yè)的一個重要教學環(huán)節(jié),既有別于畢業(yè)設計,又不同于課堂教學。它需要學生統籌運用所學各個專業(yè)的基本理論、基本方法對現實生活中的實際問題進行設計和調試。一、 設計題目:基于數碼管顯示的實時時鐘掌握嵌入式系統設計的基本方法,熟悉S3C244
2、0的開發(fā)環(huán)境及軟硬件的調試過程,了解S3C2440芯片各個引腳功能,工作方式,計時/定時,I/O口,中斷等的相關原理,根據控制要求進行編程,解決時鐘在數碼管的顯示問題。鞏固和加深對理論課中知識的理解,提高對所學知識的綜合運用能力。二、實驗要求:1. 作業(yè)由兩人一組完成,作業(yè)完成時要提交設計報告書、固化在教學平臺中的可執(zhí)行代碼(附錄)。2. 設計報告書要求:(1)對設計題目的描述。(2)設計思路說明,包括功能實現方法要點,硬件資源的使用,顯示符號的約定說明等。(3)軟件總體結構,層次,功能劃分等,核心代碼注解。(4)軟件的調試修改過程,其中遇到的問題如何解決的,有什么技術難點問題。(5)對完成的
3、設計進行總結,說明哪些地方沒有達到設計要求,是什么原因;哪些地方超過了設計要求,有什么優(yōu)點和特色;有哪些改進設想和建議。(6)程序代碼固化在平臺的片內flash中,上電后可以自動運行。(7)結課時收紙質版作業(yè)。摘 要本設計采用ARM9(S3C2440)開發(fā)板實現實時時鐘(RTC)的功能,在一個嵌入式系統中,實時時鐘單元可以提供可靠的時鐘,包括時、分、秒和年、月、日。即使系統處于關機狀態(tài)下,它也能夠正常工作(通常采用后備電池供電能夠可靠工作十年)其外圍也不需要太多的輔助電路,只需要一個高精度的晶振。S3C2440A集成了具有日歷功能的RTC模塊,它可以在系統關閉的情況下使用備用電池工作。RTC使
4、用STRBLDRB ARM操作傳輸二進制編碼的十進制數(BCD)的8位數據給CPU。數據包括年、月、日、星期、小時、分鐘、秒的時間信息。此外,RTC模塊還可以實現報警功能。RTC模塊采用32.768 kHz的外部晶體振蕩器,外部晶體振蕩器與S3C2440A的連接。XTIrtc和XTOrtc分別是RTC的32.768 kHz晶體振蕩器輸入和輸出,2個22 pF電容是晶體振蕩器的匹配電容,只有在外部所接電容為匹配電容的情況下,晶體振蕩器頻率才能保證在標稱頻率附近的誤差范圍內?!娟P鍵詞】ARM9;實時時鐘;晶振;報警;目 錄摘 要I第一章 緒論1一、設計目的1二、設計內容1三、實現目標1第二章 系統
5、分析及硬件設計2一、S3C2440芯片介紹2二、系統基礎知識2第三章 系統軟件設計9一、基本思路9二、基本方案9四、系統調試10總 結12參考文獻13附 錄14第一章 緒論一、設計目的(1)掌握系統IO口的配置 (2)掌握嵌入式系統中斷的編程 (3)掌握嵌入式系統實時時鐘的編程 二、設計內容(1)完成時鐘滴答功能,用數碼管顯示當前時間。 (2)可設置當前日期、時間。三、實現目標(1)時鐘數據采用BCD編碼或二進制表示;(2)能夠對閏年的年、月、日進行自動處理;(3)具有告警功能,當系統處于關機狀態(tài)時,能產生告警中斷;(4)具有獨立的電源輸入;(5)提供毫秒級的時鐘中斷,該中斷可用于嵌入式操作系
6、統的內核時鐘。第二章 系統分析及硬件設計一、S3C2440芯片介紹S3C2440A以 ARM920T為核心,采用0.13um CMOS標準單元和存儲器編譯器開發(fā)。它的低功耗,簡單,優(yōu)雅和全靜態(tài)設計特別適合于成本和功耗敏感的應用。它采用了被稱為高級微控制器總線架構(AMBA)的新的總線架構。S3C2440提供了出色的功能,其CPU內核,一個32位ARM920T RISC處理器設計的高級RISC機, ARM920T實現了MMU,AMBA總線,和哈佛緩存架構與獨立的16KB指令和16KB數據高速緩存,每一個字線的長度為8。S3C2440減少了系統整體成本,無需配置額外的組件通過提供一套完整的通用系統
7、外設。S3C2440的特征:(1)手持設備和通用嵌入式應用的集成系統。(2)16/32-位RISC架構和以ARM920T CPU為核心的強大的指令集。(3)增強ARM架構的MMU支持WinCE,EPOC32和Linux。(4)指令緩存,數據緩存,寫緩沖和物理地址TAG RAM性能,以減少主內存。帶寬和延遲的效果。二、系統基礎知識1、設計原理(1)實時時鐘RTC模塊S3C2440A 實時時鐘單元是處理器集成的片內外設,由開發(fā)板上的后備電池供電,可以在系統電源關閉的情況下運行,RTC發(fā)送8位BCD碼數據到CPU。傳送的數據包括秒、分、時、星期、日期、月份和年份。RTC單元時鐘源頻率由外部32.76
8、8 kHz晶振提供,可以實現鬧鐘(報警)功能及時間片中斷、置0計數功能,如圖2-1。圖2-1 RTC模塊示意圖RTC最重要的功能就是顯示時間,是通過讀/寫寄存器實現的。要顯示秒、分、時、日期、月、年,CPU必須讀取存于BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON與BCDYEAR寄存器中得值。時間的設置也是通過以上的寄存器實現的,即以上寄存器是可讀寫的。(2)RTC特殊功能寄存器所有RTC寄存器都是字節(jié)型的,必須使用字節(jié)型訪問指令(STRB、LDRB)或者字符型指令訪問。在小端模式和大端模式中所采用的地址不同,這里采用小端模式的地址。 時鐘BCD數據寄存
9、器時鐘BCD數據寄存器用于保存RTC的實時數據,包括BCDSEC、BCDMIN、BCDHOUR、BCDDATE、BCDDAY、BCDMON和BCDYEAR等7個寄存器,如圖2-2所列。寄存器地 址讀寫操作描 述未定義BCDYEAR0x57000088讀/寫B(tài)CD年數據寄存器未定義圖2-2 時鐘BCD數據寄存器BCDSEC用于保存報警的秒數據,其中的位6:0SECDATA保存報警秒數據的BCD碼,位6:4取值0-5,位3:0取值09。BCDMIN用于保存報警的分數據,其中的位6:0MINDATA保存報警分數據的BCD碼,位6:4取值0-5,位3:0取值0-9。BCDHOUR用于保存報警的時數據,
10、其中的位5:0HOURDATE保存報警時數據的BCD碼,位5:4取值0-2,位3:0取值0-9。BCDDATE用于保存報警的日數據,其中的位5:0DATEDATA保存報警日數據的BCD碼,取值0-28、29、30、31,位5:4取值0-3,位3:0取值0-9。BCDDAY用于保存報警的星期數據,其中的位2:0DAYDATA保存報警星期數據的BCD碼,取值1-7。BCDMON用于保存報警的月數據,其中的位4:0MONDATA保存報警月數據的BCD碼,位4取值0-1,位3:0取值0-9。BCDYEAR用于保存報警的年數據,其中的位7:0YEARDATA保存報警年數據的BCD碼,取值00-99。 實
11、時時鐘控制寄存器實時時鐘控制寄存器RTCCON如圖2-3所列,共有四位。寄存器地 址讀寫操作描 述復位值RTCCON0x57000040讀/寫RTC控制寄存器0x0圖2-3實時時鐘控制寄存器各位定義如下:3CLKRST:RTC時鐘計數器復位。0=不復位;1=復位。2CNTSEL:BCD計數器選擇。0=合并BCD計數器;1=保留(即分離BCD計數器)。1CLKSEL:BCD時鐘選擇。0=采用XTAL的1/215作為時鐘;1=保留(XTAL時鐘儀用于測試)。0RTCEN:RTC控制使能。0=禁止;1=使能。RTCEN控制BCD寄存器的讀/寫使能,CLKSEL、CNTSEL和CLKRST用于測試。R
12、TCEN控制著CPU和RTC的所有接口,為了使能數據可讀/寫,在系統復位后RTCEN應該置1。(3)串口通信模塊S3C2440A串行通信單元UART提供2個獨立的異步串行通信口,皆可工作于中斷和DMA模式。最高波特率達115200b/s。每個UART單元包含一個16字節(jié)FIFO,用于數據接收和發(fā)送。此外,每個UART模塊還包含可編程波特率、紅外發(fā)送/接收、1個或2個停止位、5/6/7/8位數據寬度和奇偶校驗。通過初始化好串口,與RTC進行通信,來設置RTC當前時間及報警時間。(4)液晶顯示LCD模塊S3C2410A處理器集成了數碼管控制器,支持4位單掃描、4位雙掃描和8位單掃描工作方式。處理器
13、使用內部RAM區(qū)作為顯示緩存,并支持屏幕水平和垂直滾動顯示。數據的傳送采用DMA(直接內存訪問)方式,以達到最小延遲。根據實際硬件水平和垂直像素點數、傳送數據位數、時間線和幀速率方式等進行編程,以支持多種類型的顯示屏。數碼管控制器主要液晶屏顯示數據的傳送、時鐘和各種信號的產生與控制功能。2、存儲器功能(1)控制存儲器圖2-4 控制存儲器(2)告警控制存儲器圖2-5 告警控制存儲器(3)實時時鐘計數器圖2-6 實時時鐘計數器(4)告警時間寄存器圖2-7 告警時間寄存器(5)實時時鐘寄存器圖2-8 實時時鐘寄存器3、數碼管顯示原理7段數碼管由7個發(fā)光二極管按“日”字形排列,所有發(fā)光二極管的陽極連在
14、一起稱共陽極接法,陰極連在一起稱為共陰極接法。一般共陰極可以不需外接電阻,但共陽極接法中發(fā)光二極管必須外接電阻。數碼管的結構及連接圖見圖2-9。圖2-9 數碼管結構及連接圖當選用共陰極的數碼管顯示器時,所有發(fā)光二極管的陰極連在一起接地,當某個發(fā)光二極管的陽極加入高電平時,對應的二極管點亮。因此要顯示某字形就應使此字形的相應段的二極管點亮,也就是送一個用不同電平組合代表的數據字來控制數碼管的顯示,此數據稱為字符的段碼。字符0、1、2F與數碼管碼段A、B、CF以及DP(小數點)的關系如表2-1所示。表2-1 數碼管字符與碼段對應表字符DPGFEDCBA段碼(共陰)段碼(共陽)0001111113F
15、HC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011116FH90HA0111011177H88HB011111007CH83HC0011100139HC6HD010111105EHA1HE0111100179H86HF0111000171H8EH-0100000040HBFH.1000000080H7FH熄滅0000000000HFFH說明:共陰的數碼管,被選中時的段為高電平有效,熄滅
16、的段碼為00H。共陽的數碼管,被選中時的段為低電平有效熄滅的段碼為FFH。4、數碼管控制的電路原理圖圖2-10數碼管控制的電路原理圖第三章 系統軟件設計一、基本思路(1)讀寫RTC模塊S3C2440A內部集成了RTC模塊,通過讀取RTC模塊中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和BCDYEAR的值得到當前的相應的時間值。還可以往這些寄存器里寫值以設置當前的時間值。(2)串口通信UART模塊采用S3C44B0X的UART模塊,利用PC機進行當前時鐘時間和時鐘報警時間的設置。設置時間時S3C2410A發(fā)送新的時間值到BCDYEAR、BCDMO
17、N、BCDDAY、BCDHOUR、BCDMIN、BCDSEC修改當前時間。(3)液晶屏數碼管顯示設計使用液晶屏顯示最基本的是像素控制數據的使用。像素控制數據的存放與傳送形式決定了顯示的效果,圖形顯示可以直接使用像素控制函數實現,把像素控制數據按一定形式存入即可實現字符顯示。本次課設通過調用字符顯示函數,將讀取的實時時鐘送到數碼管上顯示。二、基本方案本課設電子時鐘的設計主要是將RTC模塊中的時間傳到數碼管上進行實時顯示;此外,通過串口與PC機通信,設置RTC模塊中當前時間及報警時間,其結構框圖如圖3-1所示:PC串口RTC模塊數碼管顯示 圖3-1 整體結構框圖四、系統調試時鐘滴答功能測試1) 首
18、先需設置TICK的周期,在例程中設置的是1秒,并打開TIME TICK中斷rTICINT = 0x7f|0x80;計算公式:T = ( 1 + 0x7f ) / 128 秒2) 注冊中斷服務例程使用install_isr_handler(HandleRTC, (void*)rtc_int_isr)將中斷服務例程的地址填寫到中斷地址表中;rtc_int_isr函數為RTC TIMETICK的處理例程,在該例程中我們首先要清除中斷標志,接著可以刷新LED的顯示,在例程中我們使用了一個全局變量來實現LED顯示的更新。代碼如下:rI_ISPC=BIT_TICK; /*清除時鐘滴答中斷標志*/*(U8*
19、) 0x02000006) = 0x3E;/* 使能第一個數碼管 */*(U8*) 0x02000004) = seg7tableled_index&0xF; led_index+;3) 輸入當前時間,并通過串口顯示時間的運行情況設置當前時間,即向各個寄存器賦初值;rRTCCON = 0x01;rBCDYEAR = p_date->year;rBCDMON = p_date->mon;rBCDDAY = p_date->day;rBCDDATE = p_date->week_day;rBCDHOUR = p_date->hour;rBCDMIN = p_d
20、ate->min;rBCDSEC = p_date->sec;rRTCCON = 0x00;4) 每隔1秒讀取一下時鐘數據,并通過串口顯示該數據old_index = led_index;/* 保存當前的TICK計數 */Uart_Printf("rn");/* 串口顯示換行 */while(1)/* 每隔一秒更新一次數據 */if(old_index != led_index) rtc_get_date(&m_date); old_index = led_index;/* 實時時鐘數據為BCD碼格式,以16進制顯示*/ Uart_Printf(&quo
21、t;r%02x:%02x:%02x", m_date.hour, m_date.min, m_date.sec); ;時間告警功能測試首先設置告警時間,如下例程設置每分鐘的第5秒告警m_date.sec= 0x05 ;rtc_alarm_set(&m_date, 0x41);模式0x41表示使能RTC告警,以及使能秒時鐘告警;2) 注冊中斷例程,打開中斷install_isr_handler(HandleRTC, (void*)rtc_int_isr);rINTMSK=( rINTMSK&(BIT_GLOBAL| BIT_RTC);3) 中斷服務例程中清除中斷事件;r
22、I_ISPC=BIT_RTC; /*清除時鐘告警中斷*/if(alarm_count&1)*(unsigned char*)0x2000000 = 0x0f; else*(unsigned char*)0x2000000 = 0xff; alarm_count +;總 結嵌入式系統是一門很有意思的課程。到了大四我才剛接觸到嵌入式這門學科,學得還不夠深入,可以說僅僅只是了解皮毛。即使如此我也愿意花時間去了解、去學習這們課。由于基礎還不夠扎實,理所當然的,在實驗中遇到了種種困難,包括不了解專業(yè)術語、C語言編程、嵌入式開發(fā)板的使用等。第一次接觸開發(fā)平臺時也是一頭霧水,不知道從何處下手。于是我
23、查閱了許多網上的資料,雖然調試過程遇到了一些程序上的麻煩,以及軟件或者電腦的問題(電腦與嵌入式實驗平臺連接不上,系統提示ADT發(fā)現不了硬件設備),不過在老師的幫助下,還是順利的完成了這次實驗。通過這次課程設計,我發(fā)現了自己在課本知識上掌握的不足,同時把以前所學過的知識重新溫故,鞏固了所學的知識。我覺得這次的成功很大部分取決與團隊合作與冷靜,耐心與細心。團隊合作可以增強我們的創(chuàng)新能力與加大我們的完成速度,而程序的修改,調試,編譯則離不開冷靜,耐心和細心等心理素質。另外這次課程設計的完滿結束,給了我們日后畢業(yè)設計寶貴的經驗,使我們受益匪淺。參考文獻1 朱愷主編嵌入式系統基礎M.北京:機械工業(yè)出版社
24、,201242 劉彥文.嵌入式系統原理及接口技術.清華大學出版社2011年3月.3 三星公司ARM9三星S3C2440英文數據手冊4 王波波.ARM9完全學習手冊附 錄一、 源程序#include "def.h"#include "option.h"#include "2440addr.h"U8 beep=1;void _irq IsrAlarm(void);/下面這些都是函數聲明void delay(int x);void RTC_Alm_Set(U8 almyear,U8 almmon,U8 almdate,U8 almhour,
25、U8 almmin,U8 almsec);void RTC_Time_Set( U8 wRTCyear,U8 wRTCmon,U8 wRTCdate,U8 wRTCday,U8 wRTChour,U8 wRTCmin,U8 wRTCsec );void OpenAlarm(void);void CloseAlarm(void);/= void RTC_Time_Set( U8 wRTCyear,U8 wRTCmon,U8 wRTCdate,U8 wRTCday,U8 wRTChour,U8 wRTCmin,U8 wRTCsec )/時間設置函數,操作是不是比較簡單?呵呵r
26、RTCCON = 1 ;/RTC 讀寫使能rBCDYEAR = wRTCyear ;/年rBCDMON= wRTCmon ;/月rBCDDATE = wRTCdate ;/日 rBCDDAY= wRTCday ;/星期rBCDHOUR = wRTChour ;/小時rBCDMIN= wRTCmin ;/分rBCDSEC= wRTCsec ;/秒rRTCCON &= 1 ;/RTC read and write disablevoid RTC_Alm_Set(U8 almyear,U8 almmon,U8 almdate,U8almhour,U8 almmin,U8 almsec)/年、月、日、時、分、秒/鬧鐘設置rRTCCON=0x01; /RTCCON實時時鐘控制寄存器, /【0】位RTC使能信號控制位,0為禁止,1為允許 /對RTC模塊進行讀寫操作前應對其最低位至1rALMYEAR = almyear;rALMMON= almmon;rALMDATE = almdate;rALMHOUR = almhour;rALMMIN= almmin;rALMSEC= almsec;rRTCCON = 0; /讀取數據完后禁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟考網絡管理員考題動向試題及答案
- 腳本語言應用技巧試題及答案
- 公司戰(zhàn)略制定中的風險因素試題及答案
- 項目開發(fā)中的法律合規(guī)與約束考核試題及答案
- 企業(yè)戰(zhàn)略與文化匹配試題及答案
- 2025年中國鎘鎳可充電池市場調查研究報告
- 2025年中國鐵花鼓市場調查研究報告
- 軟件設計中的測試驅動開發(fā)方法探討試題及答案
- 2025年中國銅帶半成品市場調查研究報告
- 2025年中國針式POS打印機市場調查研究報告
- 2025年官方獸醫(yī)答題題庫附答案詳解(達標題)
- 國企物業(yè)考試試題及答案
- 軍隊文職-新聞專業(yè) (軍隊文職)真題庫-5
- 2025年下半年保山市消防救援支隊防火監(jiān)督科招聘消防文員4名易考易錯模擬試題(共500題)試卷后附參考答案
- 以患者為中心的醫(yī)療數據管理系統-基于區(qū)塊鏈技術
- 2025至2030中國寺廟經濟市場深度調研與未來前景發(fā)展研究報告
- 食用菌品牌形象塑造策略-全面剖析
- 上海公務員筆試真題2024
- 2025-2030中國寵物凍干主糧市場需求量預測與營銷戰(zhàn)略規(guī)劃研究報告
- 流媒體播放器性能優(yōu)化-全面剖析
- 移動護理管理平臺建設方案
評論
0/150
提交評論