




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機課程設置萬年歷報表一、系統(tǒng)介紹:電子萬年歷是一種非常廣泛的日常計時工具,在現(xiàn)代社會中越來越流行。可對年、月、日、時、分、秒等多種功能進行計時,DS1302使用壽命長,誤差小。數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可同時顯示年、月、日、時、分、秒等信息,還具有時間校準等功能。本設計是基于51系列單片機的電子萬年歷設計,可顯示年、月、日、時、分、秒的信息,并具有日期和時間可調功能。在設計的同時,更全面地準備了單片機的理論基礎和外圍擴展知識。在軟硬件設計上,沒有良好編制依據(jù)知識和實踐經(jīng)驗,會受到很大的限制。每個功能需要什么樣的硬件來實現(xiàn),程序怎么寫,算法怎么實現(xiàn)等等,沒有一定編制依據(jù)是不可能很好的
2、。實現(xiàn)。在編寫程序的過程中,發(fā)現(xiàn)僅憑現(xiàn)有的相關知識很難單獨完成編寫任務。在老師和同學的幫助下,程序的編寫完成了。萬年歷的設計過程在硬件和軟件方面是同步設計的。硬件部分主要由AT89C5 1單片機、LED顯示電路、定時按鍵電路組成。在單片機的選擇上,我使用了AT89C5 1單片機,適用于很多復雜的控制應用。軟件方面主要包括日歷程序、時間調整程序、顯示程序等。該程序是用高級語言C編寫的,以便更容易調整時間。所有程序都寫好后,確認沒有問題后,將單片機嵌入到Proteus軟件中進行仿真。在大部分后總在老師和同學的幫助下,電子萬年歷的設計都是自己努力完成的。二、系統(tǒng)功能說明一、設計要求:1.具有年、月、
3、日、周、時、分、秒等功能;2.具有年、月、日、周、時、分、秒的調整和校準功能;2、單片機芯片的選型方案及演示:以89C51芯片為硬件核心,數(shù)碼管顯示,為了讓用戶更清晰易懂,萬年歷日期和時間分別顯示,同時對應兩個74LS138芯片控制數(shù)碼管顯示器,還有74LS373解碼芯片,74LS21芯片用來控制鍵盤的功能。如圖所示:74LS138的8個輸出管腳要么隨時為高電平1,即芯片處于非活動狀態(tài),要么只有一個為低電平0,其余7個輸出管腳全部為高電平1。兩個輸出腳同時為0,說明芯片已經(jīng)損壞。74LS373原理圖當74LS373用作地址鎖存器時,OE應為低電平,當鎖存使能端G為高電平時,輸出Q 1 Q 8
4、的狀態(tài)與輸入D1D 8的狀態(tài)相同;當G發(fā)生負跳變時,輸入端 D 1 D 8的數(shù)據(jù)被鎖存到 Q 1 Q 8中。 51單片機的ALE信號可以直接接74LS373的G。在MCS-51單片機系統(tǒng)中,經(jīng)常使用74LS373作為地址鎖存器,其連接方法如上圖所示。其中,輸入端1D8D接單片機的P0口,輸出端提供低8位地址,G端接單片機的地址鎖存使能信號ALE。輸出使能端OE接地,表示輸出三態(tài)門常開。顯示模組選型方案:LED數(shù)碼管用于動態(tài)掃描。 LED數(shù)碼管價格適中,最適合顯示數(shù)字。并且,采用動態(tài)掃描方式與單片機連接時,占用的單片機端口線較少。使用多個數(shù)碼管顯示 LED 數(shù)碼管使用二極管顯示數(shù)字和字母,具有亮
5、度高、界面設計簡單、價格相對便宜等優(yōu)點,因此使用 LED 數(shù)碼管作為顯示器。數(shù)碼管電路3、鍵盤的選擇采用獨立的按鍵電路。每個按鍵占用單獨的I/O接口線,每個I/O口的工作狀態(tài)互不影響。該款鍵盤采用端口直接掃描方式。而且這個實驗課使用的鍵盤很少,所以使用獨立鍵比較實用。4.實現(xiàn)定時:直接用單片機定時計數(shù)器提供秒信號,用程序計算年、月、日、時、分、秒。這種方案雖然減少了芯片的使用,節(jié)省了成本,但實現(xiàn)的時間誤差比較大。5.電路設計的最終決定綜上所述,本工作的方案選擇:采用AT89S51作為主控系統(tǒng); LED數(shù)碼管動態(tài)掃描顯示。兩個 74LS138 和一個 74LS21 芯片。圖-5 LED動態(tài)掃描顯
6、示實驗經(jīng)驗:經(jīng)過兩周的學習和實驗,我終于完成了單片機萬年歷課程的設計。從開始接到課程設計要求,到萬年歷的實現(xiàn),再到報告的完成,每一步對我來說都是一次新的嘗試和挑戰(zhàn)。這也是我在大學期間獨立完成的最大項目。這段時間,我學到了很多知識,也有很多感悟。我開始了獨立的學習和實驗,查閱了相關的資料和書籍,逐漸把腦海中模糊的概念弄清楚了,一步步改進了自己很不成熟的作品。 ,每一次進步都是我學習的收獲。這份報告的撰寫也將使我受益終生。我覺得做報告是我必須用心去做的事情。這是我自己學習和研究的真實過程。沒有學習,就不可能有研究的能力。你自己的研究不會有突破。通過這次MCU課程,我獲得了豐富的理論知識,大大提高了
7、我的實踐能力。在MCU領域,對我以后進一步學習計算機知識有很大的幫助。參考1 建中.單片機原理與應用。中國電子科技大學, 2006.022 君莫 MCU 中級課程。航空航天大學出版 2006.033 于發(fā)山單片機原理與應用技術。中國礦業(yè)大學, 2003.124 凌霄微機原理與應用中國礦業(yè)大學, 2004.085 何立民.選定的 MCU 應用技術。航空航天大學, 2000.086 萬廣義.單片機實驗和實用教程。航空航天大學, 2005.017 周航慈.微控制器程序設計基礎。航空航天大學, 1991.118 黃遵熹單片機原理接口及應用西北工業(yè)大學, 1997.059鎮(zhèn)江,杜鐵軍,群.流行單片機實用
8、子程序及應用實例M.:電子科技大學,200210紫文編微控制器原理與應用電子科技大學200611 王發(fā)能單片機原理與應用科學2004附上源代碼:#include位 p1_0=P10;位 p1_1=P11;位 p1_2=P12;位 p1_3=P13;位 p1_4=P14;位 p3_2=P32;無符號字符碼 zimal13=0X 3F,0X06, 0X5B, 0X 4F,0X66,0X6D,0X7D,0X07,0X 7F,0X 6F,0 x40, 0 x80, 0 x00, ;/*共陰字號,顯示0-9字號,后三位代表-,.off*/unsigned int year,month,day,hour,
9、minute,second;/定義變量year,month,day,hour,minute,second;無效延遲(); /延時函數(shù);void xianshi(unsigned int h,min,s); /顯示時間函數(shù);void ymdxianshi(unsigned int year,month,day); /顯示年月日;無效鳳鳴(); /蜂鳴器功能;int 飛躍(無符號整數(shù)年); /判斷閏年函數(shù);無符號整數(shù) h,m,s=5; /記錄計時時間;無符號整數(shù)模式=1,td=0,yw=0; /地位;無效的主要()年=2010;月=5;日=20;小時=23;分鐘=59;秒=0;/*初始化年月日時分
10、秒*/TMOD=0 x10; /定時器1;模式一;TL1=0 xb0;TH1=0 x 3c;時間為50msTR1=1;/開啟定時器1ET1=1;/定時器1溢出中斷使能位EX0=1;/外部中斷0使能IT0=1;/外部中斷0觸發(fā)方式為邊沿觸發(fā)EA=1;while(1) /主循環(huán);if(hour=h&minute=m&second=s) fengming(); /當定時器到時,蜂鳴器響起;if(mode%2=0) ymdxianshi(年,月,日); /顯示年月日別的if(td%3=2) 閑時(h,m,s); /定時狀態(tài); else xianshi(時、分、秒); /正常顯示時間狀態(tài); void d
11、elay() /延遲函數(shù);無符號整數(shù) i;for(i=0;i400;i+);void ymdxianshi(unsigned int year,month,day) /年月日的顯示和調整int i,j;我+;if(td%2=1&yw%8=0&i%2=0) /點亮年初一P2=0 x 7f;P0=zimal12;for(j=0;j2000;j+);別的P2=0 x 7f;P0=zimal年/1000;延遲();if(td%2=1&yw%8=1&i%2=0) /點亮第二年P2=0 xbf;P0=zimal12;for(j=0;j1800;j+);別的 P2=0 xbf;P0=zimal年%1000/
12、100;延遲();if(td%2=1&yw%8=2&i%2=0)/點亮第三年P2=0 xdf;P0=zimal12;for(j=0;j1800;j+);別的 P2=0 xdf;P0=zimal年%100/10;延遲();if(td%2=1&yw%8=3&i%2=0) /點亮第四年P2=0 xef;P0=zimal12;for(j=0;j1800;j+);else /顯示年份P2=0 xef;P0=zimal年%10;延遲();if(td%2=1&yw%8=4&i%2=0)/顯示月光P2=0 xf7; P0=zimal12; P2=0 xfb;P0=zimal12;for(j=0;j1800;j
13、+);別的P2=0 xf7;P0=zimal月/10;延遲();P2=0 xfb;P0=zimal月%10;延遲();P2=0 xef;/顯示點P0=zimal11;for(j=0;j100;j+);P2=0 xfb;P0=zimal11;for(j=0;j100;j+);if(td%2=1&yw%8=5&i%2=0)/顯示當天的第一天P2=0 xfd;P0=zimal12; for(j=0;j1800;j+);別的 P2=0 xfd;P0=zimal天/10;延遲();if(td%2=1&yw%8=6&i%2=0)/顯示當天的第二天P2=0 xfe;P0=zimal12;for(j=0;j1
14、800;j+);別的P2=0 xfe;P0=zimal天%10;延遲();void xianshi(unsigned int h,min,s) /顯示時間函數(shù); 無符號整數(shù) i,j;我+;如果(td%3!=0&yw%6=0&i%2=0) P2=0 x 7f; /第一個顯示時;P0=zimal12; for(j=0;j2000;j+);別的P2=0 x 7f;P0=zimalh/10;延遲();if(td%3!=0&yw%6=1&i%2=0)/顯示時第二個P2=0 xbf;P0=zimal12;for(j=0;j2000;j+);別的 P2=0 xbf;P0=zimalh%10;延遲();/顯示
15、-_ P2=0 xdf; P0=zimal10;延遲();if(td%3!=0&yw%6=2&i%2=0) /顯示第一個點;P2=0 xef;P0=zimal12; for(j=0;j2000;j+);別的P2=0 xef; /顯示第二個點;P0=zimalmin/10;延遲();如果(td%3!=0&yw%6=3&i%2=0)P2=0 xf7;P0=zimal12;for(j=0;j2000;j+);別的P2=0 xf7;P0=zimalmin%10;延遲();P2=0 xfb ; /顯示-P0=zimal10;延遲();if(td%3!=0&yw%6=4&i%2=0) /顯示第二個中的第一
16、個;P2=0 xfd;P0=zimal12; for(j=0;j2000;j+);別的P2=0 xfd; ;P0=zimals/10;延遲();if(td%3!=0&yw%6=5&i%2=0) /顯示秒的秒P2=0 xfe;P0=zimal12;for(j=0;j2000;j+);別的P2=0 xfe;P0=zimals%10;延遲();void ex0()interrupt 0 /外部中斷零;無符號整數(shù) i;如果(p1_3=0)延遲();如果(p1_3=0)模式+;td=0;如果(p1_1=0)延遲();如果(p1_1=0)yw+; /移位;如果(p1_0=0)延遲();如果(p1_0=0)
17、td+; /修改調整時間狀態(tài);if(mode%2=0) /調整日期; 如果(td%2=1) for(i=0;i=2500)年=0; /年份小于2500;如果(月12)月=1; /月小于12;switch(month) /日期限制案例4:案例6:案例9:11月4,6,9,30天;案例2:if (leap(year) /閏年2 月29 日;而(天 29)天= 1;別的while(day28)day=1;/非閏年28天; 休息;31)天=1; /12月的1,3,5,7,8,10,31天;/else if(td%3=1) /調整時間;否則如果(td%3=1)ET1=0; /時鐘中斷對于 (i=0;i
18、23)小時=0;如果(分鐘 59)分鐘=0;如果(秒59)秒=0;else /定時狀態(tài);ET1=1;如果(td%3=2)for(i=0;i23)h=0;如果(m59)m=0;如果(s59)s=0;void time1()interrupt 3 /定時器1中斷;無符號字符 i;TF0=0;TL0=0 xb0;TH0=0 x 3c;我+;if(i=20) /1秒到;第二+;我=0;if(second=60)/1分鐘;秒=0;分鐘+;if(minute=60)/1小時;分鐘=0;小時+;如果(小時=24)/1天;小時=0;天+;switch(month) /1月;案例4:案例6:案例9:case 11:if(day30)month+;day=1;break;/4,6,9,11月30天;案例2:if(閏(年)if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 船備修理行業(yè)深度研究分析報告(2024-2030版)
- 消防驗收評估報告(范文7)
- 2025年中國吸塑面具行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國珠寶首飾檢測市場運營態(tài)勢分析及投資前景預測報告
- 2025年中國輪胎模具行業(yè)市場調研分析及投資戰(zhàn)略咨詢報告
- 中國百變魔尺行業(yè)市場規(guī)模及未來投資方向研究報告
- 2025年中國錄音錄像機芯行業(yè)市場深度研究及投資戰(zhàn)略咨詢報告
- 中國高壓氣筒行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 2025年中國電子制造服務行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃報告
- 業(yè)務系統(tǒng)管理軟件行業(yè)深度研究分析報告(2024-2030版)
- 單光纖光鑷數(shù)值仿真和光阱力計算的中期報告
- 一份完整的鹵菜店創(chuàng)業(yè)計劃書 工作計劃
- 手術物品清點手術室護理實踐指南課件
- 中國鋁業(yè)股份有限公司偃師市東溝鋁土礦礦山地質環(huán)境保護與土地復墾方案
- 2023-2024學年河南省濮陽市小學語文五年級期末通關考試題附參考答案和詳細解析
- 國語經(jīng)典歌曲歌詞接龍考試題庫(180題)
- 2021年暖通工程師專業(yè)基礎考試真題及答案
- 項目信息報備表(模板)
- 壓力容器制造過程控制點一覽表
- 《干部履歷表》填寫樣本-1999年
- 工程建設EHS管理協(xié)議
評論
0/150
提交評論