基于AT89C52的數(shù)字時鐘_第1頁
基于AT89C52的數(shù)字時鐘_第2頁
基于AT89C52的數(shù)字時鐘_第3頁
基于AT89C52的數(shù)字時鐘_第4頁
基于AT89C52的數(shù)字時鐘_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

電子糹統(tǒng)設(shè)計創(chuàng)薪實報告題目.基于AT89C52的數(shù)字時鐘學(xué)生姓名,學(xué)生學(xué)號. 專業(yè)名稱. 電子信息工程指導(dǎo)教師:2013年12月29.系統(tǒng)總體設(shè)計數(shù)字時鐘設(shè)計框圖如圖所示,系統(tǒng)共由三部分組成:主控制器、按鍵控制電路,1602LCD顯示電路。其中按鍵控制電路用于校準(zhǔn)時,分,秒。1602液晶實時顯示時間。.系統(tǒng)硬件電路設(shè)計(0系統(tǒng)的復(fù)位電路任何含有計算機的系統(tǒng),在啟動運行時都需要復(fù)位,以便CPU和系統(tǒng)中的其他部件都處于某一確定的初始狀態(tài),并從這個狀態(tài)開始執(zhí)行工作。同樣,單片機在外界的十?dāng)_下出現(xiàn)程序跑飛或者進入死循環(huán)的狀況時,需要人為低進行復(fù)位操作,恢復(fù)正常狀態(tài)。因此,手動復(fù)位是微機子系統(tǒng)的一個基本功能要求。復(fù)位電路如下圖所示該復(fù)位電路由R2,C3和開關(guān)K組成,當(dāng)開關(guān)K斷開時,C3兩端電壓較高,單片機RST端則為高電平,而當(dāng)開關(guān)K閉合時,RST端接地,變?yōu)榈碗娖?,此時單片機復(fù)位時鐘電路此系統(tǒng)的時鐘電路設(shè)計是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。MCS-51內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。這個放大器外接品體諧振器以及電容和CX2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中構(gòu)成時鐘電路。時鐘頻率越高,單片機控制器的控制節(jié)拍越快,運算速度也就越快。獨立按鍵本例所需要三個獨立按鍵,由于此設(shè)計較功能簡單,按鍵數(shù)目較少。故本系統(tǒng)采用掃描式的獨立按鍵,同時利用軟件消抖。(4)LCD1602液晶顯小本設(shè)計僅需要顯示數(shù)字和分隔號,故選擇直接可以和的TTL電平兼容16*2的LCD1602液晶集成模塊..系統(tǒng)軟件設(shè)計0)軟件流程圖主函數(shù)流程圖#include<reg52.h>externvoiddisplay();externvoidlcdinit();sbitIA3;sbitI"4;sbitadjustsecond—PIA5;unsignedinthour,minute,second;unsignedcharcount,show[16];voiddelay1(){unsignedchari;voidmain()EA-I?,ETO-I;TMOD-OXOI,THO=-5000/256;TLO--5000%256;show[3]show[6]count=0;minute=0;hour—O;second=0;lcd_init();while(l){if(adjust_second—0){delayl();if(adjust_second==0){TRO=O;if(++second—60)second—O;while(!adjust_second)display();}elseif(adjust_minute==0){delayl();if(adjust_minute—TRO-O;if(++minute—60)minute0;while(!adjust_minute)display();}else{delayl();{TRO=O?,110111—0;while(!adjust_hour)display();}else{TRO-I;display();voidtimer()interruptI{count=0;if(++second—60){second—O;if(++minute=—60){minute=0;110111—0;#include"intrins.h"#include<reg52.h>sbitrs—P2A4;sbitrw=P2A5;sbitep=P2A6;externunsignedcharshow[16];externunsignedintsecond,minute,hour;voiddelay(unsignedcharms){unsignedchari;while(ms--){for(i—0;i<250;i--){_nop_();_nop_();_nop_();_nop_();bitlcdbz(){bitlesult;rs—0;rw=l;ep—l;nop_nop_nopnopresultep—0;returnresult; voidLCDcls() //LCD{while(lcdbz());rs=0;rw=0;PO-I;ep—l;ep=0;voidlcdwcmd(unsignedcharcmd){while(lcdbz());rs—0;ep0;_nop_();_nop_();PO=cmd;nopnopnop_nop_();ep—l;_nop_();_nop_();ep=0;voidlcdpos(unsignedcharpos){lcd_wcmd(pos10x80);voidlcdwdat(unsignedchardat){while(lcdbz());rs—l;rw=0;ep0;PO-dat;_nop_();_nop_();_nop_();_nop_();ep—l;_nop_();ep—0;voidlcd_init(){lcdwcmd(0x38);delay(l);lcd_wcmd(0x0c);delay(l);lcd_wcmd(0x06);delay(l);delay(l);LCDcls();voiddisplay(){unsignedchari;show[l10+0x30;show[5]—minute%10+0x30;Icdpos(0x42);Icd_wdat(show[i]);WJ?afZH?f,校校準(zhǔn)之后顯示的時間從仿真效果上來看基本上完成了設(shè)計要求五.系統(tǒng)整體電路圖如下六、系統(tǒng)測試及調(diào)試(仿真)0軟件調(diào)試軟件調(diào)試,我們是在ken軟件平臺和單片機學(xué)習(xí)板上來完成的。當(dāng)我們寫部分程序在keil軟件經(jīng)過調(diào)試,開始出現(xiàn)很多錯誤和警告。通過逐個錯誤排錯及修改。得出下列經(jīng)驗.(1)調(diào)用函數(shù)最好在頭文件中進行申明,主函數(shù)寫在最后;(2)特別注意一些字母的大小寫,一般要用英語文字寫,不要用中文漢寫,這是最不容易檢查的,如我在檢查液晶顯示程序時,時鐘沒檢查到錯誤,最后我刪掉此行重新寫,錯誤排除了,據(jù)我分析可能是中英文變換時出現(xiàn)問題。經(jīng)過一系列排錯,最后文件沒有錯誤但還有警告。由于c語言中有警告是沒關(guān)系的,我將HEX文件下在到單片機竟顯示一些亂碼。我有回到文件,經(jīng)過對警告的分析及上網(wǎng)查閱。將程序稍微修改警告慢慢被排除,最后沒有錯誤和警告了,下載到單片機,發(fā)現(xiàn)亂碼竟然還出現(xiàn),還有多個界面疊加顯示,里面還有一些亂碼。經(jīng)過分析,疊屏現(xiàn)象是沒有對液品清平所致。于是我又在不同界面程序前加入調(diào)用填充窄格函數(shù)(voidclrramIcd0),然后又下載,結(jié)果與前面一樣,崩潰啊!經(jīng)過幾個小時后,無意間我去掉調(diào)用函數(shù)前v。id。結(jié)果疊屏現(xiàn)象解決。但是顯示還是亂碼。又經(jīng)過幾天,排錯,上網(wǎng)查閱與參考程序?qū)φ?。最后在voidR13020函數(shù)中DS13021nputByte(ucAddr10x01);掉了x01,加上生成HEX文件,下載到單片機中。能夠正常顯示了。界面的閃爍不能閃經(jīng)過一段時間,我發(fā)現(xiàn)界面程序中的a—I與功能設(shè)置中a重賦值(a=0)相沖突,最后將if0語句中a==l改為a一0。相應(yīng)的問題也解決了。最后對程序進行相應(yīng)的擴展完善,由于按鍵不靈敏我們加上聲音程序。加上另一個鬧鐘實現(xiàn)設(shè)計需求。通過單片機學(xué)習(xí)板對照,程序基本實現(xiàn)我所預(yù)期的要求,但是界面顯示鬧鐘1,鬧鐘2閃爍時,液晶竟然出現(xiàn)顯示淡化。據(jù)分析,可能使程序的問題。由于這部分顯示復(fù)雜,用了多個語句,可能出現(xiàn)語句冗余。2)硬件調(diào)試硬件調(diào)試,我們用萬用表,單片機學(xué)習(xí)板來完成的。首先,我們調(diào)試LCD1602顯示。我將液晶顯示程序下載到單片機內(nèi),連好所有的線,通電后,觀察顯示結(jié)果。唉!液品竟然不顯示。我們用萬用表測試各連線是否導(dǎo)通及某些點的電壓,發(fā)現(xiàn)沒問題。最后在網(wǎng)上發(fā)現(xiàn)我的po口竟然沒接上拉電阻,通過計算電阻應(yīng)該去5K至10K,我們選用4.7k的電阻。由于沒準(zhǔn)備多的電阻,我在以前買的電阻找到了4.7k的電阻。開始布局沒有為上拉電阻留下空間,我們在單片機插槽里插電阻,解決一些連線的復(fù)雜度。后來在調(diào)試液晶能夠顯示了。然后,我們調(diào)試DS1302時鐘芯片。連上按鍵模塊,液晶顯示模塊,單片機最小系統(tǒng),時鐘系統(tǒng),溫度系統(tǒng),連接所有線,通上電源后,我們觀察到液

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論