版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> ARM嵌入式系統(tǒng)基礎教程</p><p><b> 課程設計</b></p><p> 專 業(yè):計算機科學與技術學院 </p><p> 班 級:10級科技一班 </p><p> 姓 名:
2、 </p><p> 學 號: </p><p> 完成時間:2013年6月15日 </p><p><b> 摘要:</b></p><p> 本設計采用LCD液晶屏幕顯示系統(tǒng),以STC89C52RC單片機為核心,由鍵盤、溫度采集、定時鬧鈴、日期
3、提醒等功能模塊組成?;陬}目基本要求,本系統(tǒng)對時間顯示、鬧鈴方式進和溫度采集系統(tǒng)行了重點設計。此外,擴展了整點報時、非易失鬧鈴信息存儲、國內外重要節(jié)日提醒等功能。本系統(tǒng)大部分功能由軟件來實現(xiàn),吸收了硬件軟件化的思想,大部分功能通過軟件來實現(xiàn),使電路簡單明了,系統(tǒng)穩(wěn)定性大大提高。本系統(tǒng)不僅成功的實現(xiàn)了要求的基本功能,多數(shù)發(fā)揮部分也得到了實現(xiàn),而且還具有一定的創(chuàng)新功能。</p><p><b> 關鍵字:
4、</b></p><p> STC89C52RC單片機、LCD液晶顯示、雙電源供電、溫度采集、非易失定時鬧鈴、生日提醒、重要節(jié)日提醒、整點報時</p><p><b> 多功能時鐘設計</b></p><p><b> 一、任務設計:</b></p><p> 1、設計任務:設計
5、并制作一個多功能數(shù)字鐘。</p><p><b> 2、設計要求:</b></p><p> 設計能支持年、月、日、星期、時、分、秒的時鐘,時鐘有時間調整功能及鬧鐘功能;</p><p> 時鐘附帶有一個溫度計功能,溫度檢測精度高于2度,顯示精度為1度;</p><p> 時鐘具有裝卸電池時掉電保護功能,保護時間
6、大于5分鐘;</p><p> 時鐘功耗小于0.5MA/5V。</p><p><b> 3.發(fā)揮部分:</b></p><p> 提高溫度檢測精度,在0℃-40℃顯示0.1℃;</p><p> 實現(xiàn)雙電源供電(220V及電池供電);</p><p> 能夠提供生日提醒指示;能夠每天提
7、供3個時間點的鬧鐘報時功能;</p><p><b> 非接觸止鬧功能。</b></p><p><b> 4.創(chuàng)新部分:</b></p><p><b> 非易失定時鬧鈴</b></p><p><b> 重要日期提醒</b></p>
8、<p><b> 整點報時</b></p><p><b> 二、方案論證:</b></p><p><b> 1.顯示部分:</b></p><p> 顯示部分是本次設計的重要部分,一般有以下兩種方案:</p><p><b> 方案:<
9、;/b></p><p> 采用LED顯示,分靜態(tài)顯示和動態(tài)顯示。對于靜態(tài)顯示方式,所需的譯碼驅動裝置很多,引線多而復雜,且可靠性也較低。而對于動態(tài)顯示方式,雖可以避免靜態(tài)顯示的問題,但設計上如果處理不當,易造成亮度低,有閃爍等問題。</p><p><b> 2.數(shù)字時鐘:</b></p><p> 數(shù)字時鐘是本設計的核心的部分。
10、根據(jù)需要可采用以下兩種方案實現(xiàn):</p><p><b> 方案:</b></p><p> 方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內部存儲器設三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現(xiàn)1秒定時中斷,每產生一次中斷,存儲器內相應的秒值加1;若秒值達到60,則將其清零,并將相應的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;
11、若時值達到24,則將時字節(jié)清零。該方案具有硬件電路簡單的特點,但當單片機不上電,程序將不執(zhí)行。而且由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。</p><p><b> 3.溫度采集:</b></p><p> 由于現(xiàn)在用品追求多樣化,多功能化,給系統(tǒng)加上溫度測量顯示模塊,能夠方便人們的生活,使該設計具有人性化。</p><p
12、><b> 方案:</b></p><p> 采用熱敏電阻,可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻精度、重復性、可靠性較差,對于檢測小于1攝氏度的信號是不適用的。</p><p><b> 4.鬧鈴部分:</b></p><p> 一般的時鐘都帶有鬧鈴,實現(xiàn)鬧鈴方式可采用以下兩種:</p>
13、;<p><b> 方案:</b></p><p> 將鬧鐘信息存放在單片機自帶的存儲器中。該方案成本低而且易于實現(xiàn),但是一但掉電會造成之前信息的丟失。</p><p><b> 5.電源模塊:</b></p><p><b> 方案:</b></p><p&
14、gt; 采用干電池作為系統(tǒng)電源。但需經常換電池,不符合節(jié)約型社會的要求。</p><p><b> 三、總體方案:</b></p><p><b> 1.工作原理:</b></p><p> 本設計采用STC89C52RC單片機作為本系統(tǒng)的控制模塊。單片機可把由DS18B20、DS1302、AT24C02中的數(shù)據(jù)利
15、用軟件來進行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊,實現(xiàn)溫度、日歷和鬧鈴的顯示。以LCD液晶顯示器為顯示模塊,把單片機傳來的數(shù)據(jù)顯示出來,并且顯示多樣化。在顯示電路中,主要靠按鍵來實現(xiàn)各種顯示要求的選擇與切換。</p><p><b> 2.總體設計:</b></p><p> 設計總體框架圖如圖1</p><p> 四、系統(tǒng)硬件設計(單元電路設
16、計及分析):</p><p> 1. STC89C52RC單片機最小系統(tǒng):</p><p> 最小系統(tǒng)包括晶體振蕩電路、復位開關和電源部分。圖2為STC89C52RC單片機的最小系統(tǒng)。</p><p> 圖2 最小系統(tǒng)電路圖</p><p><b> 2.溫度測量模塊:</b></p><p&
17、gt; 溫度測量傳感器采用DALLAS公司DS18B20的單總線數(shù)字化溫度傳感器,測溫范圍為-55℃~125℃,可編程為9位~12位A/D轉換精度,測溫分辨率達到0.0625℃,采用寄生電源工作方式,CPU只需一根口線便能與DS18B20通信,占用CPU口線少,可節(jié)省大量引線和邏輯電路。接口電路如圖3所示。</p><p> 圖3 DS18B20測量電路</p><p><b&
18、gt; 3.時鐘模塊:</b></p><p> 時鐘模塊采用DS1302芯片,DS1302是DALLAS公司推出的涓流充電時鐘芯片內含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM通過簡單的串行接口與單片機進行通信實時時鐘/日歷電路提供秒分時日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動調整時鐘操作可通過AM/PM指示決定采用24或12小時格式DS1302與單片機之間能簡單地采用同步串行的方式進行通信僅
19、需用到三個口線:</p><p> RST復位、I/O數(shù)據(jù)線、SCLK串行時鐘。時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1mW,其接線電路如圖4所示:</p><p><b> 圖4 時鐘電路</b></p><p><b> 4.存儲器模塊
20、:</b></p><p> 存儲器采用Atmel公司的AT24C02芯片。該芯片帶有2KB的串行COMS EEPROM,內部含有256個8位字節(jié),可通過I2C總線對其接口進行讀寫操作,而且?guī)в袑懕Wo功能。其接線圖如圖5所示。</p><p> 圖5 AT24C02存儲器電路</p><p> 5. LCD液晶顯示模塊:</p>
21、<p> LCD液晶顯示模塊采用LCD1602型號,具有很低的功耗,正常工作時電流僅2.0mA/5.0V。通過編程實現(xiàn)自動關閉屏幕能夠更有效的降低功耗。LCD1602分兩行顯示,每行可顯示多達16個字符。LCD1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,通過內部指令可實現(xiàn)對其顯示多樣的控制,并且還能利用空余的空間自定義字符。其接線如圖6所示:</p><p>
22、; 圖6 LCD顯示電路</p><p><b> 6.系統(tǒng)電源:</b></p><p> 雙電源設計是本設計的重點。220V交流轉5V直流穩(wěn)壓電源會更加安全、實用。當沒有交流電時,系統(tǒng)采用干電池供電;當接通交流電時,則電路自動切換到交流電供電,并且對干電池進行慢性充電。電路圖如圖7:</p><p><b> 圖7 電源
23、電路</b></p><p><b> 7.整體電路:</b></p><p> 系統(tǒng)整體電路如圖8 所示:</p><p> 圖8 系統(tǒng)總體電路圖</p><p> 五、系統(tǒng)軟件設計流程:</p><p> 1.主程序流程如圖9所示:</p><p>
24、; 圖9 系統(tǒng)主程序流程</p><p> 2.時間設定程序流程如圖10所示:</p><p> 圖10 顯示時間子程序流程</p><p> 3. 溫度測量流程圖如圖11所示:</p><p> 圖11 溫度測量程序流程圖</p><p> 4.鬧鈴設定流程圖如圖12所示:</p><
25、p> 圖12 鬧鈴設定程序流程圖</p><p> 5. 生日設定流程圖如圖13所示:</p><p> 圖13 生日設定程序流程圖</p><p><b> 六、程序:</b></p><p> //實時時鐘寫入一字節(jié)(內部函數(shù)) </p><p> void DS1302I
26、nputByte(uchar d) </p><p> { uchar i;</p><p><b> ACC = d;</b></p><p> for(i=8; i>0; i--)</p><p> { io = ACC0; //相當于匯編中的 RRC </p&g
27、t;<p><b> clk = 1;</b></p><p><b> clk = 0;</b></p><p> ACC = ACC >> 1; </p><p><b> } </b></p><p><b> }</b
28、></p><p> //實時時鐘讀取一字節(jié)(內部函數(shù)) </p><p> uchar DS1302OutputByte(void) </p><p> { uchar i;</p><p> for(i=8; i>0; i--)</p><p> { ACC = ACC >&g
29、t;1; //相當于匯編中的 RRC </p><p> ACC7 = io;</p><p><b> clk = 1;</b></p><p><b> clk = 0;</b></p><p><b> } </b></p>
30、<p> return(ACC); </p><p><b> }</b></p><p> //寫入DS1302數(shù)據(jù)</p><p> //參數(shù)說明:ucAddr --DS1302地址, ucData--要寫的數(shù)據(jù) *</p><p> void Write1302(uchar ucAddr, u
31、char ucDa) </p><p> { rst = 0;</p><p><b> clk = 0;</b></p><p><b> rst = 1;</b></p><p> DS1302InputByte(ucAddr); // 地址,命令 </p&
32、gt;<p> DS1302InputByte(ucDa); // 寫1Byte數(shù)據(jù) </p><p><b> clk = 1;</b></p><p><b> rst = 0;</b></p><p><b> } </b></p><p
33、> //讀取DS1302某地址的數(shù)據(jù)</p><p> uchar Read1302(uchar ucAddr) </p><p> { uchar ucData;</p><p><b> rst = 0;</b></p><p><b> clk = 0;</b></
34、p><p><b> rst = 1;</b></p><p> DS1302InputByte(ucAddr|0x01); // 地址,命令 </p><p> ucData = DS1302OutputByte(); // 讀1Byte數(shù)據(jù) </p><p><b>
35、 clk = 1;</b></p><p><b> rst = 0;</b></p><p> return(ucData);</p><p><b> }</b></p><p> //獲取時鐘芯片的時鐘數(shù)據(jù)到自定義的結構型數(shù)組</p><p> v
36、oid DS1302_GetTime(SYSTEMTIME *Time) </p><p> {uchar ReadValue;</p><p> ReadValue = Read1302(DS1302_SECOND);</p><p> Time->Second = ((ReadValue&0x70)>>4)*10 + (Rea
37、dValue&0x0F);//由高低各四位組成,轉BCD碼為十進制碼</p><p> ReadValue = Read1302(DS1302_MINUTE);</p><p> Time->Minute = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);</p><p>
38、ReadValue = Read1302(DS1302_HOUR);</p><p> Time->Hour = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);</p><p> ReadValue = Read1302(DS1302_DAY);</p><p> Time->D
39、ay = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);</p><p> ReadValue = Read1302(DS1302_WEEK);</p><p> Time->Week = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);&l
40、t;/p><p> ReadValue = Read1302(DS1302_MONTH);</p><p> Time->Month = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);</p><p> ReadValue = Read1302(DS1302_YEAR);</p>
41、;<p> Time->Year = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);</p><p><b> }</b></p><p><b> 七、設計心得體會:</b></p><p> 經過大家多天的努力,終于完成
42、了第一次任務,設計出了匯集外觀精美、方便實用、功能強大于一體的數(shù)字電子鐘。該數(shù)字鐘采用桌面式擺放設計,精美雅觀;附帶雙電源裝備,可供不時之需,而且具有溫度、鬧鈴、生日一些列常用的附加功能,更加方便實用,符合現(xiàn)實要求;多功能時鐘還具有掉電也不會丟失時間、鬧鈴、生日等信息的優(yōu)點,可避免不必要的煩惱,設計更加的人性化和智能化。同時還能夠自定義調整顯示灰度和屏幕背光亮度,帶背光功能,夜里更實用!</p><p> 經過
43、這次的實踐,也可以說是經過了多天的學習,盡管期間苦難重重,但我們還是從中學習了不少新的知識和解決困難的方法,也體驗到了自主創(chuàng)作的快樂。</p><p><b> 八、參考資料:</b></p><p> [1]求是科技. 單片機典型模塊設計實例導航. 北京:人民郵電出版社. 2005.8</p><p> [2]徐淑華, 程退安等.單片微
44、型機原理及應用. 哈爾濱:哈爾濱工業(yè)大學出版社. 2005.1</p><p> [3]孫余凱. 精選實用電子電路260例. 北京:電子工業(yè)出版社. 2007.6</p><p> [4]殷春浩, 崔亦飛. 電磁測量原理及應用. 徐州:中國礦業(yè)大學出版社. 2003.7</p><p> [5]《LCD1602A數(shù)據(jù)手冊》</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計---多功能時鐘
- 單片機課程設計---多功能時鐘設計
- 單片機課程設計---多功能時鐘設計
- 多功能數(shù)字時鐘 單片機課程設計
- 單片機課程設計---多功能電子時鐘設計
- 單片機課程設計--多功能電子時鐘
- 單片機數(shù)字時鐘課程設計--單片機多功能電子鐘設計
- 單片機課程設計--多功能系統(tǒng)
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機課程設計----多功能秒表
- 單片機課程設計---單片機數(shù)字時鐘
- 基于單片機的多功能時鐘設計
- 單片機課程設計--單片機多功能測量儀的設計
- 單片機課程設計報告---單片機數(shù)字時鐘
- 單片機課程設計--數(shù)字時鐘
- 單片機簡易時鐘課程設計
- 基于單片機多功能秒表課程設計
- 單片機課程設計---時鐘系統(tǒng)設計
- 單片機課程設計---單片機數(shù)字時鐘.doc
- 單片機數(shù)字時鐘課程設計
評論
0/150
提交評論