版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課程設計說明書(論文)</p><p> 課程名稱:課程設計 </p><p> 設計題目:數(shù)字日歷鐘表的設計 </p><p> 院 系:電信學院通信工程 </p><p> 班 級: </p><p> 設 計 者:
2、 </p><p> 學 號: </p><p> 指導教師: </p><p> 設計時間:2013.6.12-3013.6.18 </p><p><b> 課程設計任務書</b></p><p> *注:此任務書由課程設
3、計指導教師填寫</p><p><b> 數(shù)字日歷鐘的設計</b></p><p><b> 一、課程設計要求</b></p><p> 1. 數(shù)碼管顯示:秒、分、時(可同時顯示,也可輪換顯示)</p><p> 2. 能夠設置時間,“設置按鍵”數(shù)量不限,以簡單合理易用為好。</p&g
4、t;<p> 3. 誤差:1秒/天(報告中要論述分析是否滿足要求)</p><p> 4. 設置校準鍵:當數(shù)字鐘顯示在“整點±30秒”范圍時,按動“校準鍵”,數(shù)字鐘即刻被調整到整點,消除了±30秒的誤差。</p><p> 5. 加上“星期”顯示(可以預置),并可以對其進行設置。</p><p><b> 二、方案
5、論證</b></p><p> 2.1單片機芯片的選擇方案和論證</p><p><b> 方案一:</b></p><p> 采用89C51芯片作為硬件核心,其內部采用Flash ROM,具有4KB ROM 存儲空間,能于3V的超低壓工作,但</p><p> 運用于電路設計中時由于不具備ISP在線
6、編程技術,燒入程序時需要專門的C編程器(當前可用的實驗燒寫開發(fā)板只支持具有ISP在線編程功能的AT89S**系列的芯片),當在對電路進行調試時,更顯麻煩,并且增加了造價,</p><p><b> 方案二:</b></p><p> 采用89S51芯片作為主控模塊,AT89S51是 MCS-51系列單片機目前運用較多的一種芯片,采用Flash ROM,內部具有4K
7、B ROM 存儲空間,能于3V的超低壓工作,而且具備ISP在線編程技術,方便對電路進行調試.但由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。針對該問題,可采用易于插拔的芯片插槽,芯片的程序燒寫用專門的實驗板進行燒寫(當前可用的實驗燒寫開發(fā)板支持AT89S**系列).AT89S51單片機的功能引腳圖如下圖所示:</p><p> AT89S51單片機的功能引腳圖<
8、;/p><p> 所以選擇采用AT89S51作為主控制系統(tǒng)。</p><p> 2.3時鐘芯片的選擇方案和論證</p><p><b> 方案一:</b></p><p> 采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),精度也較高
9、,工作電壓2.5V~5.5V范圍內,功耗也較低,但價格比較貴,且目前市場上采購不到</p><p><b> 方案二:</b></p><p> 直接采用單片機定時計數(shù)器提供秒信號,使用程序實現(xiàn)時、分、秒計數(shù)。采用此種方案實現(xiàn)雖然有一定的時間誤差,但可減少少芯片的使用,節(jié)約成本,易于實現(xiàn),符合初學者實驗選用。</p><p><b&g
10、t; 所以采用方案二。</b></p><p> 綜上各方案所述,對此次作品的方案選定: 采用AT89S51作為主控制系統(tǒng); 通過軟件編程采用定時器定時實現(xiàn)秒.分.時計時;LED數(shù)碼管靜態(tài)顯示時間。</p><p><b> 三、原理論述</b></p><p> 單片機控制的數(shù)字鐘的硬件結構與軟件設計,給出了匯編語言源程序
11、。此數(shù)字鐘是一個將“時”、“分”、“秒”顯示于人的視覺器官的計時裝置。顯示器件選用LED七段數(shù)碼管。在譯碼顯示電路輸出的驅動下,顯示出清晰、直觀的數(shù)字符號。針對數(shù)字鐘會產生走時誤差的現(xiàn)象,在電路中就設計有有校準時間功能的電路。使用動態(tài)數(shù)碼顯示的方法,運用獨立式按鍵識別過程,按“時”,“分”,“秒”數(shù)據(jù)送出顯示處理方法。</p><p> 這里采用應用廣泛的80C51單片機作為時鐘控制芯片,利用單片機內部的定時/
12、計數(shù)器T0 實現(xiàn)軟時鐘的目的。首先將T0設定工作于定時方式1,對機器周期計數(shù)形成基準時間(50ms),然后使用循環(huán)的程序結構使基準時間計數(shù)20次從而形成秒,秒計60次形成分,分計60形成小時,小時計到24形成一天,天計到7形成一星期,再重新循環(huán)。最后通過數(shù)碼管把它們的內容在相應的位置顯示出來,達到時、分、秒計時的功能。</p><p><b> 3.1系統(tǒng)原理圖</b></p>
13、<p> AT89C51的P1口接入三個按鍵,對時、分、秒進行調整。P0口輸出字段碼,控制要顯示的字符,外接74LS245芯片,驅動LED顯示。P3口輸出字位碼,去控制要顯示的位,其原理圖如圖3-6所示。</p><p> 圖3-6 電子鐘原理圖</p><p> 當接入電源時,數(shù)字電子鐘以秒為單位開始計時。運行狀態(tài)下,按下控制按鍵S-SET,對秒進行調整;按下M-S
14、ET調整分鐘;按下H-SET對小時進行調整。這樣通過三個按鍵,分別對時、分、秒進行調整,從而實現(xiàn)調時。</p><p> 3.2 程序設計流程圖</p><p> 這次的數(shù)字電子鐘設計用到很多子程序,它們的流程圖如下所示。</p><p> 主程序是先開始,然后啟動定時器,定時器啟動后在進行按鍵檢測,檢測完后,就可以顯示時間。</p><p
15、> 圖4-1 主程序流程圖</p><p> 按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加1;如果沒有按下,就把時間顯示出來。</p><p> 圖4-2 按鍵處理流程圖</p><p> 定時器中斷時是先檢測1秒是否到
16、,1秒如果到,秒單元就加1;如果沒到,就檢測1分鐘是否到,1分鐘如果到,分單元就加1;如果沒到,就檢測1小時是否到,1小時如果到,時單元就加1,如果沒到,就檢測1天是否到,1議案如果到,天單元就加1,如果沒到,就顯示時間。</p><p> 圖4-3 定時器中斷流程圖</p><p> 時間顯示是先秒個位計算顯示,然后是秒十位計算顯示,再是分個位計算顯示,再然后是分十位顯示,再就是時個
17、位計算顯示,然后是時十位顯示,最后是天的顯示。</p><p> 3.3 時鐘程序設計步驟</p><p> ?。?)選擇工作方式,計算初值;</p><p> ?。?)采用中斷方式進行溢出次數(shù)累計;</p><p> (3)從秒——分——時的計時是通過累加和數(shù)值比較實現(xiàn)的;</p><p> ?。?)時鐘顯示緩沖
18、區(qū):時鐘時間在方位數(shù)碼管上進行顯示,為此在內部</p><p> RAM中要設置顯示緩沖區(qū),共6個地址單元。顯示緩沖區(qū)從左到右依次存放時、分、秒數(shù)值;</p><p> (5)主程序:主要進行定時器/計數(shù)器的初始化編程,然后反復調用顯示</p><p> 子程序的方法等待中斷的到來。</p><p> ?。?)中斷服務程序:進行計時操作
19、</p><p> ?。?)加1子程序:用于完成對時、分、秒的加操作,中斷服務程序在秒、</p><p> 分、時加1時共有三種條調用加1子程序,包括三項內容:合字、加1并進行十進制調整、分字。</p><p><b> 四、分析運算</b></p><p><b> 4.1 硬件部分</b>
20、</p><p> 采用7SEG-MPX8-CC 八個共陰二極管顯示器來顯示日期和時間。</p><p> 通過設置功能按鍵來實現(xiàn)調整日期和整點調時的功能。</p><p> 電路連接使用PCB,使電路連接簡潔美觀。</p><p><b> 4.2 軟件部分</b></p><p>
21、“時鐘”基準時間由單片機內部的定時中斷T0提供,考慮因素:定時時間是“秒”的整除數(shù),且長短適宜。最長不能超過16位定時器的最長定時時間;最短不能少于中斷服務程序的執(zhí)行時間?;鶞蕰r間越短,越有利于提高時鐘的運行精確度。基準時間定為0.05秒。</p><p> ?。?)用一個計數(shù)器對定時中斷的次數(shù)進行計數(shù),由基準時間為0.05秒知計數(shù)值為20即可實現(xiàn)“秒”定時,同理進行“分”﹑“時”定時。</p>&
22、lt;p><b> 4.3計算</b></p><p> 該部分主要是對51單片機內部定時中斷T0的計時初值進行計算。該單片機使用的晶振為內部晶振,因此晶振頻率為fosc=12MHz,機器周期為Tj=12/fosc=12/12×106=1us。由上面分析可知,定時時間T=50ms</p><p> 定時初值為X=216-T/Tj=65536-50
23、000=15536=3CB0H</p><p><b> 五、程序</b></p><p> 簡要說明:實現(xiàn)24小時制電子鐘,8位數(shù)碼管顯示,顯示時分秒顯示格式:23-59-59(小時十位如果為0則不顯示)P0口輸出段選信號,P2口輸出位選信號P1.2為調時按鈕,P1.1為調分按鈕;晶振12M</p><p><b> 源
24、程序如下:</b></p><p> S_SETBITP1.0 ;數(shù)字鐘秒控制位</p><p> M_SETBITP1.1 ;分鐘控制位</p><p> H_SETBITP1.2 ;小時控制位</p><p> D_SET BIT P1.3
25、 ;天控制位</p><p> SECONDEQU30H</p><p> MINUTEEQU31H</p><p> HOUREQU32H</p><p> DAY EQU 33H</p><p> TCNTEQU34H</p><p&
26、gt;<b> ORG00H</b></p><p> SJMPSTART</p><p><b> ORG0BH</b></p><p> LJMPINT_T0</p><p> START:MOVDPTR,#TABLE</p><p> MO
27、VHOUR,#0;初始化</p><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p> MOV DAY,#0</p><p> MOVTCNT,#0</p><p> MOVTMOD,#01H</p><p&
28、gt; MOVTH0,#(65536-50000)/256;定時50毫秒</p><p> MOVTL0,#(65536-50000)MOD 256</p><p> MOVIE,#82H</p><p><b> SETBTR0</b></p><p> ;*****************
29、***********************************</p><p> ;判斷是否有控制鍵按下,是哪一個鍵按下</p><p> A1:LCALLDISPLAY</p><p> JNBS_SET,S1</p><p> JNBM_SET,S2</p><p> JNB
30、H_SET,S3</p><p><b> LJMPA1</b></p><p> S1:LCALLDELAY;去抖動</p><p> JBS_SET,A1</p><p> INCSECOND;秒值加1</p><p> MOVA,SECOND<
31、;/p><p> CJNEA,#60,J0;判斷是否加到60秒</p><p> MOVSECOND,#0</p><p><b> LJMPK1</b></p><p> S2:LCALLDELAY</p><p> JBM_SET,A1</p><p
32、> K1:INCMINUTE;分鐘值加1</p><p> MOVA,MINUTE</p><p> CJNEA,#60,J1;判斷是否加到60分</p><p> MOVMINUTE,#0</p><p><b> LJMPK2</b></p><p>
33、 S3:LCALLDELAY</p><p> JBH_SET,A1</p><p> K2:INCHOUR;小時值加1</p><p> MOVA,HOUR</p><p> CJNEA,#24,J2;判斷是否加到24小時</p><p> MOVHOUR,#0</p&g
34、t;<p><b> LJMP K3</b></p><p> K3: INC DAY ;天值加1</p><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p> LJMPA1;等待按鍵抬起</p><p
35、> J0:JBS_SET,A1</p><p> LCALLDISPLAY</p><p><b> SJMPJ0</b></p><p> J1:JBM_SET,A1</p><p> LCALLDISPLAY</p><p><b> SJMP
36、J1</b></p><p> J2:JBH_SET,A1</p><p> LCALLDISPLAY</p><p> SJMPJ2;定時器中斷服務程序,對秒,分鐘和小時的計數(shù)</p><p> INT_T0:MOVTH0,#(65536-50000)/256</p><p>
37、 MOVTL0,#(65536-50000)MOD 256</p><p><b> INCTCNT</b></p><p> MOVA,TCNT</p><p> CJNEA,#20,RETUNE;計時1秒</p><p> INCSECOND</p><p>
38、 MOVTCNT,#0</p><p> MOVA,SECOND</p><p> CJNEA,#60,RETUNE</p><p> INCMINUTE</p><p> MOVSECOND,#0</p><p> MOVA,MINUTE</p><p>
39、CJNEA,#60,RETUNE</p><p><b> INCHOUR</b></p><p> MOVMINUTE,#0</p><p> MOVA,HOUR</p><p> CJNEA,#24,RETUNE</p><p> MOVHOUR,#0</p
40、><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p> MOVTCNT,#0</p><p> RETUNE:RETI;</p><p><b> 顯示控制子程序</b></p><p> DISPLAY:M
41、OVA,SECOND;顯示秒</p><p> MOVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.6</b></p><p> MOVCA,@A+DPTR</p><p><b> M
42、OVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP3.6</b></p><p><b> MOVA,B</b></p><p><b> CLRP3.7</b></p><
43、p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP3.7</b></p><p><b> CLRP3.5</b></p>
44、<p> MOVP0,#40H;顯示分隔符</p><p> LCALLDELAY</p><p><b> SETBP3.5</b></p><p> MOVA,MINUTE;顯示分鐘</p><p> MOVB,#10</p><p><b>
45、; DIVAB</b></p><p><b> CLRP3.3</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b&
46、gt; SETBP3.3</b></p><p><b> MOVA,B</b></p><p><b> CLRP3.4</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p&
47、gt;<p> LCALLDELAY</p><p><b> SETBP3.4</b></p><p><b> CLRP3.2</b></p><p> MOVP0,#40H;顯示分隔符</p><p> LCALLDELAY</p>&l
48、t;p><b> SETBP3.2</b></p><p> MOVA,HOUR;顯示小時</p><p> MOVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.0</b></p>
49、;<p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP3.0</b></p><p><b> MOVA,B</b></p
50、><p><b> CLRP3.1</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP3.1</b>&l
51、t;/p><p><b> RET</b></p><p> TABLE: DB 3FH,06H,5BH,4FH,66H</p><p> DB6DH,7DH,07H,7FH,6FH</p><p> DELAY:MOVR6,#10</p><p> D1:MOVR7
52、,#250</p><p><b> DJNZR7,$</b></p><p> DJNZR6,D1</p><p><b> RET</b></p><p><b> END</b></p><p><b> 六、調試與運行&l
53、t;/b></p><p><b> 6.1 電路仿真</b></p><p> 此設計的電路在單片機仿真軟件[Proteus.Professional.7.1]中進行仿真,仿真電路如圖5-1所示:</p><p> 圖5-1 電子鐘仿真電路圖</p><p><b> 6.2 調試和運行<
54、/b></p><p> 在KEIL (單片機匯編) C51軟件中編寫好的程序,將程序放入單片機仿真軟件中,結合硬件電路進行調試與運行。</p><p> 通過按鍵對時間進行調整。如顯示時間為14-30-22,既是14點30分22秒,通過以下調整則可實現(xiàn)。</p><p> 按動S-SET鍵,將秒調到22;</p><p> 按
55、動M-SET鍵,將分調到30;</p><p> 按動H-SET鍵,將時調到14。</p><p> 則將時間調到了所要顯示的時間14-30-22,通過此方法可將時間調整到任何需要顯示的時間。</p><p><b> 七、PCB圖的設計</b></p><p><b> 總結</b><
56、;/p><p> 通過這次單片機課程設計,發(fā)現(xiàn)了自身所學知識存在許多的不足和問題,同時也學到了不少東西,提高了動手實踐的能力. </p><p> 在整個設計過程中,從設計方案的確定,到具體電路的設計,最后到總體電路的聯(lián)接構建工程量是比較大的,單靠個人能力,很多方面考慮不周,有的地方甚至毫無頭緒,想不出具體方案,因此,絕對不能心急,不明白的地方和其它的同學共同討論研究,畢竟群策群力辦法要多
57、些。</p><p> 作為初學者,盡管這次設計中遇到了許多難題,但也都一一得以解決。比如程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經過靜下心來思考,和同學們的共同討論,理清了思路,反而得心應手。</p><p> 雖然此次課程設計的作品有些簡單,但是通過自己的努力最終把電路成功設計出來,個人覺得還是很有成就感的,更為重要的是實實在在學到了不少東西,使自己這方面的知識技能有了
58、很大的進步。因此,我自己覺得這次課程設計對我而言算得上是一次全新的嘗試,也是一個小小的成功,更是一次很好的鍛煉,讓我有了全方位的提高和進步。</p><p><b> 九、設計相關說明</b></p><p><b> 元器件清單:</b></p><p><b> 單片機:80C51</b>&
59、lt;/p><p><b> 按鍵:BUTTON</b></p><p><b> 電阻:RES</b></p><p><b> 電容:CAP</b></p><p> 晶振:CRYSTAL</p><p> LED數(shù)碼管:7SEG-MPX8-C
60、A-BLUE(CA:共陽,CC:共陰)</p><p><b> 地:GRAND</b></p><p><b> 電源:POWER</b></p><p><b> 十、參考文獻</b></p><p> [1]《單片機原理與應用》 宗成閣 編著</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字日歷電路課程設計
- 日歷課程設計
- java課程設計--日歷
- 數(shù)字日歷倒計時牌電路課程設計
- 電子日歷的制作-課程設計
- 電子日歷的制作-課程設計
- 電子日歷課程設計報告
- 具有大小月份自動調節(jié)功能的數(shù)字日歷課程設計
- java課程設計簡單日歷
- 課程設計-- 網(wǎng)上日歷系統(tǒng)
- 電子日歷表課程設計
- 數(shù)據(jù)結構課程設計_日歷
- java課程設計鐘表(含代碼)
- java課程設計--日歷記事本
- c語言日歷顯示課程設計報告
- 單片機課程設計報告-日歷
- 電子日歷課程設計實訓報告
- java課程設計日歷記事本
- java課程設計實驗報告--java日歷設計
- java課程設計--日歷記事本
評論
0/150
提交評論