單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  單片機(jī)原理與應(yīng)用 課程設(shè)計(jì)報(bào)告</p><p> ?。?014—2015學(xué)年 第二學(xué)期)</p><p>  題 目 基于單片機(jī)的電子時(shí)鐘設(shè)計(jì) </p><p>  系 別 電子與電氣工程系 </p><p>  專 業(yè) 電子信息工程 </p><p> 

2、 班 級(jí) </p><p>  學(xué) 號(hào) </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  完成時(shí)間 2015年6月13日 </p><p>

3、  評(píng)定成績(jī) </p><p><b>  目 錄</b></p><p>  一、設(shè)計(jì)的目的3</p><p>  二、設(shè)計(jì)的內(nèi)容與要求3</p><p><b>  三、設(shè)計(jì)方案3</b></p><p>  四、

4、硬件、軟件設(shè)計(jì)5</p><p><b>  五、設(shè)計(jì)總結(jié)8</b></p><p>  六、參考文獻(xiàn)10</p><p><b>  設(shè)計(jì)的目的</b></p><p>  在基本掌握了《單片機(jī)原理與應(yīng)用》課程知識(shí)的基礎(chǔ)上,完成課程設(shè)計(jì)項(xiàng)目的設(shè)計(jì)。通過(guò)課程設(shè)計(jì)環(huán)節(jié)的訓(xùn)練,包括設(shè)計(jì)方案的

5、論證、硬件設(shè)計(jì)、程序編寫(xiě)和設(shè)計(jì)報(bào)告的撰寫(xiě),掌握單片機(jī)應(yīng)用項(xiàng)目的設(shè)計(jì)流程和方法,加深對(duì)《單片機(jī)原理與應(yīng)用》課程知識(shí)的理解和掌握,培養(yǎng)應(yīng)用系統(tǒng)的設(shè)計(jì)能力,初步積累單片機(jī)系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),以及分析問(wèn)題和解決問(wèn)題的方法,并進(jìn)一步拓寬專業(yè)知識(shí)面,培養(yǎng)實(shí)踐應(yīng)用技能和創(chuàng)新意識(shí)。 </p><p><b>  設(shè)計(jì)的內(nèi)容與要求</b></p><p>  根據(jù)《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)

6、教學(xué)大綱、《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)指導(dǎo)書(shū),開(kāi)展課程設(shè)計(jì)環(huán)節(jié)。有三個(gè)設(shè)計(jì)項(xiàng)目供選擇:電子密碼鎖、電子琴或電子時(shí)鐘。</p><p><b>  設(shè)計(jì)內(nèi)容與要求:</b></p><p>  (1)選擇其中一個(gè)設(shè)計(jì)項(xiàng)目,進(jìn)行設(shè)計(jì)方案的比較和論證,確定設(shè)計(jì)思路和方案;</p><p> ?。?)進(jìn)行硬件設(shè)計(jì),畫(huà)出硬件結(jié)構(gòu)框圖,完成電路原理圖的設(shè)計(jì)

7、和元器件選型,必要時(shí)應(yīng)給出重要電路參數(shù)的設(shè)計(jì)和計(jì)算過(guò)程,以及元器件參數(shù)的選型依據(jù);</p><p> ?。?)編寫(xiě)單片機(jī)的軟件程序,先理清程序設(shè)計(jì)思路并繪制程序流程圖,再編寫(xiě)具體的匯編語(yǔ)言或C語(yǔ)言程序語(yǔ)句,并注釋說(shuō)明。</p><p>  成績(jī)?cè)u(píng)定依據(jù):(分值百分比)</p><p> ?。?)確定設(shè)計(jì)思路和方案——20%;</p><p>

8、 ?。?)畫(huà)出硬件結(jié)構(gòu)框圖、原理圖的設(shè)計(jì)、元器件選型,給出電路參數(shù)的設(shè)計(jì)依據(jù)——30%;</p><p> ?。?)繪制程序流程圖,再編寫(xiě)程序語(yǔ)句,并注釋說(shuō)明——30%;</p><p> ?。?)設(shè)計(jì)成果的功能完善程度、創(chuàng)新點(diǎn)、演示效果,撰寫(xiě)設(shè)計(jì)報(bào)告的規(guī)范性——20%。</p><p><b>  設(shè)計(jì)方案</b></p>&l

9、t;p>  根據(jù)定時(shí)中斷的原理,數(shù)碼管顯示和鍵盤(pán)掃描電路,以及和MCS-51單片機(jī)的接口方式,通過(guò)軟件編程,實(shí)現(xiàn)時(shí)間初值設(shè)置,時(shí)鐘運(yùn)行和顯示。</p><p>  1、可供使用的硬件電路:</p><p>  1)顯示電路可選用數(shù)碼管顯示電路或LCD1602;</p><p>  2)P2驅(qū)動(dòng)七段顯示器,P3為七段顯示器的掃描模塊;</p>&l

10、t;p>  3)揚(yáng)聲器和按鈕可接至P1口</p><p>  2、七段數(shù)碼管的字型代碼表如下表: </p><p>  2、數(shù)碼管動(dòng)態(tài)掃描時(shí)間</p><p>  數(shù)碼管動(dòng)態(tài)掃描顯示的時(shí)間要根據(jù)數(shù)碼管的數(shù)量來(lái)定的。一般來(lái)說(shuō),每一位數(shù)碼管需要一定的顯示時(shí)間,也就是說(shuō),你輸出一位數(shù)碼管的數(shù)據(jù)點(diǎn)亮這個(gè)數(shù)碼管之后,需要一定的時(shí)間才能熄滅它并點(diǎn)亮下一個(gè)數(shù)碼管,而不能一輸

11、出就馬上熄滅它,否則亮度會(huì)非常低。 全部數(shù)碼管全部掃描一遍的總時(shí)間最好不要超過(guò)25mS,否則閃爍會(huì)比較嚴(yán)重,通??偟膾呙桀l率要在60Hz以上,才看不到閃爍。比如說(shuō)要掃描8位數(shù)碼管,那么可以讓每一位數(shù)碼管點(diǎn)亮1mS,這樣全部顯示一遍就大約是8mS或稍微多一點(diǎn)點(diǎn)(算上顯示處理的指令執(zhí)行時(shí)間),此時(shí)的總掃描頻率就是125Hz左右,這樣的話,即能保證亮度,又看不到閃爍。</p><p>  3、LCD1602的

12、基本操作時(shí)序:</p><p>  寫(xiě)指令 輸入:RS=L,=L,D0~D7=指令碼,E=正脈沖 輸出:D0~D7=數(shù)據(jù);</p><p>  寫(xiě)數(shù)據(jù) 輸入:RS=H,=L,D0~D7=數(shù)據(jù),E=正脈沖 輸出:無(wú)</p><p> ?。?)LCD1602內(nèi)部帶有80B的RAM緩沖區(qū),對(duì)應(yīng)的地址為第一行地址:00H~27H,第二行地址為為:40H~67H,當(dāng)我

13、們向00H~0FH和40H~4FH寫(xiě)入顯示的數(shù)據(jù)時(shí),液晶可以立即顯示出來(lái),當(dāng)寫(xiě)入到10H~27H和50H~67H時(shí),必須通過(guò)移屏指令將它們移入可現(xiàn)實(shí)區(qū)域方可正常顯示。</p><p><b> ?。?)數(shù)據(jù)指針設(shè)置</b></p><p>  指令碼:0x80+地址碼(00H~27H, 40H~67H)</p><p><b>  硬

14、件和軟件設(shè)計(jì)</b></p><p><b>  4.1硬件設(shè)計(jì)思想</b></p><p>  主要用到這些元件:AT89C51單片機(jī)與單片機(jī)的最小系統(tǒng),八位顯示數(shù)字管,74LS245鎖存器。用12MHZ的晶振和兩個(gè)較小的22pF的電容組成振蕩器電路,用一個(gè)按鍵,一個(gè)電解電容,一個(gè)10K電阻組成具有上電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種操作的復(fù)位電路。用P0口作為輸

15、出需接上拉電阻,即需RESPACK-8排阻,74LS245鎖存器保存要開(kāi)通的位碼。通過(guò)控制P0,P2,P3口來(lái)控制時(shí)間的計(jì)時(shí)。P0口送入要顯示的字段,P2口送入要顯示的位碼,P3口低三位即為查詢是否需要調(diào)整時(shí)分秒數(shù)。開(kāi)通計(jì)時(shí)器中斷0來(lái)查表得到要顯示的數(shù)字。</p><p>  4.2 軟件設(shè)計(jì)思想</p><p>  整個(gè)程序先給數(shù)碼管送初值12 00 00,然后進(jìn)行初始化工作。程序由一個(gè)

16、主函數(shù),一個(gè)定時(shí)器中斷程序,一個(gè)延時(shí)子程序,三個(gè)判斷子程序,一個(gè)顯示子程序構(gòu)成。程序通過(guò)按鍵掃描程序來(lái)確定是否調(diào)用中斷程序來(lái)對(duì)時(shí)間進(jìn)行調(diào)整。用一子程序完成時(shí)分秒的調(diào)整,通過(guò)循環(huán)掃描三個(gè)按鍵的電平變化來(lái)判斷對(duì)應(yīng)按鍵是否按下,并帶有去抖動(dòng)功能,當(dāng)某個(gè)按鍵按下時(shí),則對(duì)應(yīng)的進(jìn)行增一操作。若分秒增一到達(dá)60次或者時(shí)增一到達(dá)24次,將對(duì)其清零,各個(gè)操作均實(shí)時(shí)的通過(guò)數(shù)碼管顯示。</p><p><b>  4.3 流

17、程圖</b></p><p><b>  (1)軟件系統(tǒng)框圖</b></p><p>  圖4.1 軟件系統(tǒng)框圖</p><p>  (2)系統(tǒng)流程圖:如圖4.2所示整個(gè)程序先給數(shù)碼管送初值12 00 00,然后進(jìn)行初始化工作,包括定時(shí)器及其初值設(shè)置、開(kāi)中斷等。程序通過(guò)按鍵掃描程序來(lái)確定是否調(diào)用中斷程序來(lái)對(duì)時(shí)間進(jìn)行調(diào)整,整個(gè)程序較為

18、簡(jiǎn)短,但是時(shí)間誤差很小。</p><p>  圖4.2 系統(tǒng)流程圖</p><p>  (3)按鍵子函數(shù)流程圖: 如圖4.3所示加一子程序完成時(shí)分秒的調(diào)整,通過(guò)循環(huán)掃描三個(gè)按鍵的電平變化來(lái)判斷對(duì)應(yīng)按鍵是否按下,并帶有去抖動(dòng)功能,當(dāng)某個(gè)按鍵按下時(shí),則對(duì)應(yīng)的進(jìn)行增一操作。若分秒增一到底60次或者時(shí)增一到達(dá)24次,將對(duì)其清零,各個(gè)操作均實(shí)時(shí)的通過(guò)數(shù)碼管顯示。</p><p&

19、gt;  圖4.3 按鍵子函數(shù)流程圖</p><p><b>  設(shè)計(jì)總結(jié)</b></p><p>  1.當(dāng)按下K1鍵一次即進(jìn)入時(shí)間秒秒鐘設(shè)定狀態(tài),然后再按一次K1鍵即進(jìn)入時(shí)間分鐘設(shè)定狀態(tài)。最后再按一次K1進(jìn)入時(shí)間小時(shí)設(shè)定狀態(tài)。設(shè)定完成后如圖5-1所示。</p><p><b>  圖5-1</b></p>

20、<p>  2.按K1鍵進(jìn)入時(shí)間秒鐘設(shè)定狀態(tài)后,然后按一下K2鍵進(jìn)行加時(shí)。設(shè)定完成后如圖5-2所示。</p><p><b>  圖5-2</b></p><p>  3.按K1鍵進(jìn)入時(shí)間秒鐘設(shè)定狀態(tài)后,然后按一下K3鍵進(jìn)行減時(shí)。設(shè)定完成后如圖5-3所示。</p><p><b>  圖5-3</b></

21、p><p>  4.按K1鍵兩次進(jìn)入時(shí)間分鐘設(shè)定狀態(tài)后,然后按一下K2鍵進(jìn)行加時(shí)。設(shè)定完成后如圖5-4所示。</p><p><b>  圖5-4</b></p><p>  5.按K1鍵兩次進(jìn)入時(shí)間分鐘設(shè)定狀態(tài)后,然后按一下K3鍵進(jìn)行減時(shí)。時(shí)間設(shè)定完成后如圖5-5所示。</p><p><b>  圖5-5<

22、;/b></p><p>  6.按K1鍵三次進(jìn)入時(shí)間小時(shí)設(shè)定狀態(tài)后,然后按一下K2進(jìn)行加時(shí)。時(shí)間設(shè)定完成后如圖5-6所示。</p><p><b>  圖5-6</b></p><p>  7.按K1鍵三次進(jìn)入時(shí)間小時(shí)設(shè)定狀態(tài)后,然后按一下K3進(jìn)行減時(shí)。時(shí)間設(shè)定完成后如圖5-7所示。</p><p><b&

23、gt;  圖5-7</b></p><p>  經(jīng)過(guò)這次電子鐘的設(shè)計(jì),讓我鞏固和運(yùn)用了在“模擬電子技術(shù)”、“數(shù)字電子技術(shù)”及“電路分析”等課程中所學(xué)的理論知識(shí)和實(shí)驗(yàn)技能,基本掌握了常用電子電路的一般設(shè)計(jì)方法,提高了設(shè)計(jì)能力和實(shí)驗(yàn)技能。 </p><p>  本次的電子鐘實(shí)驗(yàn)中,我學(xué)會(huì)了很多,平時(shí)的學(xué)習(xí)只是理論的學(xué)習(xí),課程設(shè)計(jì)使得我對(duì)理論知識(shí)有了更加深刻的認(rèn)識(shí),通過(guò)實(shí)驗(yàn)

24、的調(diào)試,我也初步學(xué)會(huì)了如何排解錯(cuò)誤,解決問(wèn)題。還有這次的課程設(shè)計(jì)告訴我,只有將理論和實(shí)踐相結(jié)合才是真正的學(xué)到了知識(shí)。碰到不懂的問(wèn)題要學(xué)會(huì)多自行查閱相關(guān)資料,提高自學(xué)能力。同時(shí)做事需要耐心,不能碰到一點(diǎn)困難就退縮。  </p><p>  本次設(shè)計(jì)使我對(duì)已學(xué)過(guò)的基礎(chǔ)知識(shí)有了更深入的理解,獨(dú)立思考、獨(dú)立工作以及應(yīng)用所學(xué)基本理化分析和解決實(shí)際問(wèn)題的能力有了很大的提高。另外,本次設(shè)計(jì)使我們的實(shí)際操作技

25、能得到了訓(xùn)練,同時(shí)也培養(yǎng)了我們嚴(yán)謹(jǐn)?shù)膽B(tài)度。 </p><p><b>  參考文獻(xiàn)</b></p><p>  單片機(jī)原理及接口技術(shù)(第二版),李全利,北京:高等教育出版社,2009年。</p><p>  單片機(jī)原理及應(yīng)用(第二版),李建忠,西安:西安電子科技大學(xué)出版社,2008。</p><p>  單片機(jī)原理及應(yīng)用

26、,馮文旭等,北京:機(jī)械工業(yè)出版社,2008。</p><p>  單片機(jī)基礎(chǔ)(第3版),李廣弟等, 北京:北京航空航天大學(xué)出版社,2007。</p><p>  單片機(jī)高級(jí)教程:應(yīng)用與設(shè)計(jì)(第2版),何立民,北京:北京航空航天大學(xué)出版社,2007。</p><p>  指導(dǎo)老師評(píng)閱依據(jù)和分?jǐn)?shù)</p><p>  綜合評(píng)定成績(jī):

27、 </p><p>  評(píng)閱人: </p><p><b>  附錄</b></p><p>  #include<reg51.h> </p><p>  #define uint unsigned int</p><p>  #define

28、 uchar unsigned char </p><p>  sbit k1=P3^5; </p><p>  sbit k2=P3^6; </p><p>  sbit k3=P3^7; </p><p>  uchar code duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F

29、,0x6F,0x40}; </p><p>  uchar hc[8]; </p><p>  uchar jishu,jishu1=0,k,set,shan,a,b,c,time; </p><p>  char shi,fen,miao;</p><p>  void delay(uint t) </p><p&g

30、t;  { uchar i; </p><p>  while(t--) </p><p>  for(i=110;i>0;i--);</p><p><b>  } </b></p><p>  void key() </p><p>  { if(k1==0) </p>

31、;<p>  { delay(5); </p><p>  while(k1==0); </p><p>  if(++set==4) </p><p><b>  set=0; </b></p><p><b>  }</b></p><p>  if

32、(k2==0) </p><p>  { delay(5); </p><p>  while(k2==0); </p><p>  if(set==1) </p><p>  { if(++miao==60) </p><p>  miao=0; </p><p><

33、b>  } </b></p><p>  if(set==2) </p><p><b>  { </b></p><p>  if(++fen==60) fen=0; </p><p><b>  } </b></p><p>  i

34、f(set==3) </p><p>  { if(++shi==24) </p><p><b>  shi=0; </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  if(k3==0

35、) </p><p>  { delay(5); </p><p>  while(k3==0); </p><p>  if(set==1) </p><p><b>  { </b></p><p>  if(--miao<0) </p><p> 

36、 miao=59; </p><p><b>  } </b></p><p>  if(set==2) </p><p><b>  { </b></p><p>  if(--fen<0) </p><p><b>  fen

37、=59; </b></p><p><b>  } </b></p><p>  if(set==3) </p><p><b>  { </b></p><p>  if(--shi<0) </p><p><b>  shi=23; &

38、lt;/b></p><p><b>  } </b></p><p><b>  } </b></p><p>  if(set==1) </p><p>  a=0xff*shan; </p><p>  else{a=0;} </p><

39、;p>  if(set==2) </p><p>  b=0xff*shan; </p><p>  else{b=0;} </p><p>  if(set==3) </p><p>  c=0xff*shan; </p><p>  else{c=0;}</p><p>

40、;<b>  } </b></p><p>  void init() </p><p><b>  { </b></p><p>  TMOD=0x01; </p><p>  TH0=(65535-5000)/256; </p><p>  TL0=(6553

41、5-5000)%256; </p><p><b>  EA=1; </b></p><p><b>  ET0=1; </b></p><p><b>  TR0=1; </b></p><p><b>  } </b></p><

42、p>  void tint(void) interrupt 1 </p><p>  { TH0=(65535-5000)/256; </p><p>  TL0=(65535-5000)%256; </p><p>  if(set!=0) </p><p>  {if((k1==0)||(k2==0)||(k3==0))

43、</p><p>  time=0; </p><p>  if(time>=10) </p><p><b>  {set=0;</b></p><p>  time=0; </p><p><b>  } </b></p><p>

44、;<b>  } </b></p><p><b>  jishu++; </b></p><p>  if(jishu==40) </p><p>  { jishu=0; </p><p>  shan=!shan;</p><p>  if(++k==4) &l

45、t;/p><p>  { k=0; </p><p><b>  time++; </b></p><p>  if(++miao==60) </p><p>  { miao=0; </p><p>  if(++fen==60) </p><p>  { f

46、en=0; </p><p>  if(++shi==24) </p><p><b>  shi=0; </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }

47、</b></p><p><b>  }</b></p><p>  hc[0]= c|shi/10; </p><p>  hc[1]= c|shi%10;</p><p>  hc[2]=10; </p><p>  hc[3]=b|fen/10;</p><

48、p>  hc[4]=b|fen%10;</p><p>  hc[5]=10; </p><p>  hc[6]=a|miao/10; </p><p>  hc[7]=a|miao%10;</p><p>  jishu1++; </p><p>  if(jishu1==8) </p>

49、<p>  jishu1=0; </p><p>  P2=(P2+1)%8;</p><p>  P0=duan[hc[jishu1]]; </p><p><b>  } </b></p><p>  void main() </p><p>  { init(); <

50、;/p><p><b>  P2=0x00;</b></p><p>  while(1) </p><p><b>  { </b></p><p><b>  key(); </b></p><p><b>  } </b>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論