單片機應(yīng)用課程設(shè)計基于DS1302電子時鐘的設(shè)計-報告參考模板_第1頁
單片機應(yīng)用課程設(shè)計基于DS1302電子時鐘的設(shè)計-報告參考模板_第2頁
單片機應(yīng)用課程設(shè)計基于DS1302電子時鐘的設(shè)計-報告參考模板_第3頁
單片機應(yīng)用課程設(shè)計基于DS1302電子時鐘的設(shè)計-報告參考模板_第4頁
單片機應(yīng)用課程設(shè)計基于DS1302電子時鐘的設(shè)計-報告參考模板_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

物理與電子工程學(xué)院PAGEPAGE2單片機應(yīng)用課程設(shè)計報告(2012~2013學(xué)年第2學(xué)期)設(shè)計題目:基于DS1302電子時鐘的設(shè)計班別:2010級自動化1班姓名:李永興賀孝言王永偉指導(dǎo)教師:顏麗娜時間:2013年5月目錄1設(shè)計任務(wù) 32系統(tǒng)總體方案設(shè)計 32.1各個模塊方案論證 32.1.1時鐘芯片的選擇 32.1.2顯示器的選擇 32.2總體方案設(shè)計 43硬件電路設(shè)計 43.1單片機最小系統(tǒng) 43.21302時鐘電路 53.3按鍵調(diào)時電路 64系統(tǒng)軟件設(shè)計 74.1主程序流程圖 74.2子程序流程圖 84.2.1DS1302子程序流程圖 84.2.21602子程序流程圖 94.3按鍵校正調(diào)時程序 95實物調(diào)試 105.1實物性能分析 105.2總結(jié) 13附錄1 15(1)系統(tǒng)總電路圖 15(2)系統(tǒng)仿真圖 15附錄2 17部分程序清單 17圖31302時鐘電路按鍵調(diào)時電路按鍵調(diào)時電路主要的作用是校正時間,它包含有五個動作:進入(S3),退出(S6),加一(S4),減一(S5),切換(S2)。要進行校正調(diào)時,要首先按啟動按鈕,啟動按鍵有效之后,其他按鍵才能被解鎖,如果啟動按鍵判斷無效,其余按鍵將被鎖定,按退出按鍵就會退出校正調(diào)時狀態(tài)。按鍵調(diào)時電路如圖3所示。圖4按鍵校正調(diào)時電路4系統(tǒng)軟件設(shè)計由于單片機是可編程的控制器,故需要采用C語言對單片機進行程序的編寫。主程序主要由DS1302程序、按鍵調(diào)整程序及1602液晶屏程序組成。4.1主程序流程圖圖5主程序流程圖開始時,先對變量進行初始化,然后對DS1302進行處理,使其不具備寫保護,這樣才能確保單片機與DS1302進行正常的數(shù)據(jù)交換。給DS1302連續(xù)的脈沖,接著向1302內(nèi)部寫入地址,直至寫完。最后由單片機與DS1302通信,讀取DS1302內(nèi)部的地址,直至讀取完畢,然后單片機把所讀到的數(shù)據(jù)傳送給1602,使數(shù)據(jù)顯示在液晶屏上,這樣,整個主程序流程圖就完成了。主程序流程圖如圖4所示。4.2子程序流程圖4.2.1DS1302子程序流程圖DS1302子程序流程圖如圖5所示。開始開始DS1302初始化DS1302初始化寫入數(shù)據(jù)寫入數(shù)據(jù)計數(shù)計數(shù)是否校正調(diào)時是 是否校正調(diào)時讀出數(shù)據(jù)否讀出數(shù)據(jù)圖6DS1302子程序流程圖圖5展示了DS1302的一個工作流程:首先是對DS1302進行初始化,使其不受寫保護,方便數(shù)據(jù)寫入,在連續(xù)的脈沖作用下,不斷有數(shù)據(jù)寫入1302的地址中,直至需要調(diào)時,這時改變后的數(shù)據(jù)就會儲存在新的地址上,讀取時便可把新的數(shù)據(jù)傳輸在1602上,即完成了調(diào)時。4.2.21602子程序流程圖開始開始1602初始化1602初始化寫入數(shù)據(jù)寫入數(shù)據(jù)是否有寫入是否有寫入否 是讀出數(shù)據(jù)顯示讀出數(shù)據(jù)顯示 圖71602子程序流程圖1602顯示器的工作流程圖展示了1602的工作流程:啟動時,首先對1602進行初始化,然后檢測有沒有數(shù)據(jù)寫入,當有數(shù)據(jù)寫入時,1602便讀出數(shù)據(jù)并顯示,沒有數(shù)據(jù)寫入時,1602就一直處于等待中,直至有數(shù)據(jù)寫入。1602子程序流程圖如圖6所示。4.3按鍵校正調(diào)時程序……………… if(num==1) { enable(0xc0+12); if(jia==0) delay(5); if(jia==0) { while(!jia); sec=bcdtodec(uc_R1302(0x81)&0x7f); sec++; if(sec>59) sec=0; L1602_char(2,12,sec/10+48); L1602_char(2,13,sec%10+48); v_W1302(0x80,dectobcd(sec)|0x80); } if(jian==0) delay(5); if(jian==0) { while(!jian); sec=bcdtodec(uc_R1302(0x81)); sec--; if(sec==-1) sec=59; L1602_char(2,12,sec/10+48); L1602_char(2,13,sec%10+48); v_W1302(0x80,dectobcd(sec)|0x80); } }………………這是整個調(diào)時系統(tǒng)的一部分,它實現(xiàn)了時間的調(diào)整這一功能。全部程序詳見附錄。5實物調(diào)試5.1實物性能分析用KEIL編寫程序軟件編寫程序、經(jīng)過Proteus仿真軟件仿真調(diào)試之后,確認了此系統(tǒng)可正常運行,在這樣的前提下,我們利用一個單片機最小系統(tǒng)、一塊用萬用板焊接的模塊和一個1602液晶完成了第一次實物仿真。本次實物如圖7所示。雖然本次調(diào)試測試沒有達到要求,但是為后續(xù)工作打下了不可替代的基礎(chǔ)。圖8萬用板實物我們在第一次的嘗試之后,發(fā)現(xiàn)無較大問題存在,于是就嘗試著做出了我們此次課程設(shè)計的第一塊PCB板,在仔細檢查了整個電路無誤之后我們就開始了我們的嘗試,第一塊板的造型是深思熟慮之后才最終定稿的??赡苁怯捎诘谝淮巫鲭p面板,技術(shù)不熟練,所以打板的時候就難免出現(xiàn)這樣那樣的問題,我們的第一塊板同樣出現(xiàn)了問題:液晶顯示屏上只顯示三個小亮點,不顯示數(shù)字,實物如圖8所示。圖9第一塊PCB板經(jīng)過這一次的挫折,我們發(fā)現(xiàn)了本來不會出錯的地方,無緣無故的出現(xiàn)了好多問題,導(dǎo)致了第一次試驗沒能成功。但是我們并不氣餒,經(jīng)過細致的檢查,我們找到了大部分的問題,最終我們的第二塊板也很快做出來了,可是問題又出現(xiàn)了:時鐘不走。第二塊PCB板如圖9所示。圖10第二塊PCB板因為時間數(shù)據(jù)一直不走,我們查閱了好多資料,又認真的把相關(guān)知識復(fù)習(xí)了一遍,最終問題解決了:原來是DS1302的兩個數(shù)據(jù)傳輸線的電流太小,于是我們就在P3.5、P1.6的端口加上了上拉電阻,加大了電流,最終我們完成了設(shè)計。完成的實物如圖10所示。圖11最終設(shè)計5.2總結(jié)首先,這次設(shè)計讓我們更加了解了單片機及其運用,讓我們受益匪淺,在這次設(shè)計中,我們想挑戰(zhàn)一下自己,于是就選用了1602液晶屏來顯示數(shù)字時鐘,我們知道這對我們來說還是有難度的,但是我相信我們一定會克服這個困難的,因為我堅信只有給自己真正的壓力,自己才會獲得真正的知識!在整個方案的探究與決策中,我們自己動手分析設(shè)計程序加深了對自己未知知識的理解和對指令的靈活運用。通過對程序的編譯和電路的仿真,讓我們更加熟悉了仿真軟件的應(yīng)用,最重要的是使我們能夠更直觀的看到程序運行的結(jié)果,這給了我們極大地鼓勵與信心!此外,通過這次單片機課程設(shè)計,不僅對我們的動手能力有進一步的提高,而且還對我們的性格成長上也產(chǎn)生了很大的影響:設(shè)計操作量大,對我們的習(xí)慣和技能要求高,對我們的素質(zhì)發(fā)展有著相當重要的作用,要在操作前應(yīng)該認真學(xué)習(xí)理論知識,以便更好地指導(dǎo)實踐,之后應(yīng)該繼續(xù)思考,把理論與實踐更好地結(jié)合起來,凡事不能操之過急,靜下心來,認真的思考,謹慎的處理好動手與動腦的有效結(jié)合。這種改變無疑讓我們在以后的生活中能獲取更多的益處與經(jīng)驗。本次課程設(shè)計給我印象最深刻的是它給我們啟發(fā):理論和實踐是兩個不同的過程,理論是不能等于實踐,反之也不行,兩者是有區(qū)別的,有時理論是對的,實踐不一定能體現(xiàn)出來。實踐出來了,不一定能和理論穩(wěn)合呼應(yīng)。比如,我們在仿真的時候,我們電路和程序沒有問題,完全正確,實驗結(jié)果也與我們預(yù)期的一樣,這是我們產(chǎn)生了“此次設(shè)計如此簡單,只要把電路圖連對就行了”錯誤想法,結(jié)果做出來的實物并沒有按照我們的預(yù)期展現(xiàn)給我們:又有問題了!經(jīng)過我們認真仔細的檢查,又查閱了眾多的資料,把以前的資料又習(xí)一遍,最終問題找到了。在找到問題的那一瞬間,我真切的感受到了理論與實際的切切實實的聯(lián)系,所有的東西并不是理論是正確的,實際也是正確的:我們按照仿真的電路圖連結(jié)起來的電路在真正做出來時,DS1302的兩個數(shù)據(jù)傳輸端口因為電流過小而不能工作,我們在P3.5和1.6端口的后面接上了上拉電阻,這樣我們的作品才真正的完成了?!白x萬卷書,不如行萬里路”,現(xiàn)在我終于明白這句從古至今都在流傳的話了,一句名言存在自有它存在的道理。我們會謹記此次設(shè)計帶給我們的啟發(fā),我們一定會認真的去思,仔細的去體會此次設(shè)計的真正意義……參考文獻[1]譚浩強主編.C程序設(shè)計題解與上機指導(dǎo)(第3版)[M].北京,清華大學(xué)出版社,2005.16-24[2]謝維成楊家國董秀成,單片機原理與應(yīng)用及C51程序設(shè)計(第2版)[M],北京,清華大學(xué)出版社,2009.7.25-36附錄1系統(tǒng)總電路圖系統(tǒng)總電路圖,如圖11所示。圖11系統(tǒng)總電路圖(2)系統(tǒng)仿真圖系統(tǒng)仿真圖,如圖12所示。圖12系統(tǒng)仿真圖(3)PCB板設(shè)計使用的PCB如圖13、14所示圖13PCB板正面圖14PCB板反面附錄2程序清單:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitACC0=ACC^0;sbitACC7=ACC^7;sbitt=P1^0;sbitjia=P1^1;sbitjian=P1^2; sbitm=P1^3;sbitT_CLK=P1^6;sbitT_IO=P3^5;sbitT_RST=P1^7;sbitE=P2^7;//1602sbitRW=P2^6; sbitRS=P2^5; voidv_W1302(ucharucAddr,ucharucDa); ucharuc_R1302(uchar); uchardectobcd(ucharbcd);ucharbcdtodec(uchar);voiddelay(ucharx){uchari;while(x--)for(i=0;i<110;i++);}voidenable(uchardel){RS=0;RW=0;P0=del;E=1;delay(3);E=0;}voidwrite(uchardel){RS=1;RW=0;P0=del;E=1;delay(3);E=0;}voidL1602_init(void){enable(0x01); enable(0x38); enable(0x06); enable(0x0c); E=0;}voidL1602_char(ucharhang,ucharlie,charsign){uchara;//if(hang==1)a=0x80;if(hang==2)a=0xc0;a=a+lie-1;enable(a);write(sign);}voidtimechange(){uchara,num=1;ucharhour,min,sec;while(num){if(t==0) delay(5); if(t==0){num++;//beep();while(!t);} if(m==0) delay(5); if(m==0) num=0; enable(0x0f); a=uc_R1302(0x81)|0x80; v_W1302(0x8e,0); v_W1302(0x80,a); if(num==4) num=1; if(num==1) { enable(0xc0+12); if(jia==0) delay(5); if(jia==0) { while(!jia); sec=bcdtodec(uc_R1302(0x81)&0x7f); sec++; if(sec>59) sec=0; L1602_char(2,12,sec/10/*%10*/+48); L1602_char(2,13,sec%10+48); v_W1302(0x80,dectobcd(sec)|0x80); } if(jian==0) delay(5); if(jian==0) { while(!jian); sec=bcdtodec(uc_R1302(0x81)); sec--; if(sec==-1) sec=59; L1602_char(2,12,sec/10/*%10*/+48); L1602_char(2,13,sec%10+48); v_W1302(0x80,dectobcd(sec)|0x80); } }if(num==2){enable(0xc0+9);if(jia==0)delay(5);if(jia==0){min=bcdtodec(uc_R1302(0x83));min++;while(!jia);if(min>59)min=0;L1602_char(2,9,min/10/*%10*/+48);L1602_char(2,10,min%10+48);v_W1302(0x82,dectobcd(min));}if(jian==0)delay(5);if(jian==0){ min=bcdtodec(uc_R1302(0x83)); min--; while(!jian); if(min==-1) min=59; L1602_char(2,9,min/10/*%10*/+48); L1602_char(2,10,min%10+48); v_W1302(0x82,dectobcd(min));}}if(num==3){ enable(0xc0+6); if(jia==0) delay(5);if(jia==0) { hour=bcdtodec(uc_R1302(0x85)); hour++; while(!jia); if(hour>23) hour=0; L1602_char(2,6,hour/10/*%10*/+48); L1602_char(2,7,hour%10+48); v_W1302(0x84,dectobcd(hour));} if(jian==0) delay(5); if(jian==0) { while(!jian); hour=bcdtodec(uc_R1302(0x85)); hour--; if(hour==-1) hour=23; L1602_char(2,6,hour/10/*%10*/+48); L1602_char(2,7,hour%10+48); v_W1302(0x84,dectobcd(hour)); }}}if(num==0){enable(0x0c);}v_W1302(0x80,uc_R1302(0x81)&0x7f); }voidv_RTInputByte(ucharucDa){uchari;ACC=ucDa;T_RST=1; for(i=8;i>0;i--){T_IO=ACC0;T_CLK=1;T_CLK=0;ACC=ACC>>1; }}ucharuc_RTOutputByte(void){uchari;T_RST=1;for(i=8;i>0;i--){ACC=ACC>>1;ACC7=T_IO;T_CLK=1;T_CLK=0;}return(ACC);}voidv_W1302(ucharucAddr,ucharucDa){T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(ucAddr); _nop_();_nop_();v_RTInputByte(ucDa); T_CLK=1;T_RST=0;}ucharuc_R1302(ucharucAddr){ucharucDa;T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(ucAddr);_nop_();_nop_();ucDa=uc_RTOutputByte();T_CLK=1;T_RST=0;return(ucDa);}ucharbcdtodec(ucharbcd){uchardata1;data1=((bcd&0x70)>>4)*10+(bcd&0x0f);returndata1;}uchardectobcd(uchardec){uchardat;dat=((dec/10)<<4|(dec%10));returndat

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論