2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  學(xué)院單片機課程設(shè)計</b></p><p>  基于51單片機的數(shù)字時鐘的設(shè)計</p><p>  學(xué)生姓名: </p><p>  學(xué)生學(xué)號: </p><p>  院(系): </p><p><b>  年級專業(yè): &

2、lt;/b></p><p><b>  指導(dǎo)教師: </b></p><p><b>  二〇一一年六月</b></p><p><b>  摘 要</b></p><p>  本文設(shè)計的是一個基于單片機AT89C51的數(shù)字鐘自動計時器,附有復(fù)位電路,顯示電路,按

3、鍵電路等。復(fù)位電路是單片機的初始化操作,除了正常的初始化外,為擺脫困境,通過復(fù)位電路可以重新開始。時鐘電路采用12MHz的晶振,作為系統(tǒng)的時鐘源,具有較高的準(zhǔn)確性。</p><p>  在上電時LED顯示器開始顯示時間并自動計時,在按鍵電路中只設(shè)置了三個按鍵,通過檢測第一個按鍵按下的次數(shù)來實現(xiàn)調(diào)時、調(diào)分、調(diào)秒按鍵的作用,再通過LED顯示器顯示時、分、秒的改變。并且在P1端口處接了一個指示燈,指示按鍵的按下。在這里

4、主要是以AT89C51單片機為核心控制器,P0口接LED顯示模塊,P1口接按鍵的,通過按鍵輸入來控制顯示器的顯示。</p><p>  關(guān)鍵字 AT89C51,LED顯示器,數(shù)字時鐘</p><p><b>  ABSTRACT</b></p><p>  This design is based on AT89C51 single-chip

5、 digital clock auto-timer, with a reset circuit, display circuit, the key circuit. Reset circuit is a microcontroller initialization, in addition to the normal initialization, for the bail out through the reset circuit c

6、an begin again. 12MHz crystal clock circuit, as the system clock source, with high accuracy. </p><p>  LED display on power began to show time and automatic timing, set in the key circuit only three buttons,

7、 a button pressed by detecting the number of the first to achieve the transfer, the transfer points, transfer second key role, through the LED display hours, minutes, seconds to change. And then at the P1 port of a light

8、 to indicate the button press. Here is AT89C51 microcontroller as the core of the main controller, P0 port access the LED display module, P1 port access keys, keystrokes to con</p><p>  Keywords AT89C51, L

9、ED display, digital clock </p><p><b>  目 錄</b></p><p><b>  摘要Ⅰ</b></p><p>  ABSTRACTⅡ</p><p><b>  1 緒論2</b></p><p>

10、  1.1課程設(shè)計要求2</p><p>  1.2課程設(shè)計的基本原理2</p><p><b>  2 硬件設(shè)計3</b></p><p>  2.1振蕩電路的設(shè)計3</p><p>  2.2復(fù)位電路的設(shè)計3</p><p>  2.3 鍵盤接口電路設(shè)計4</p>&

11、lt;p>  2.4 顯示電路的設(shè)計4</p><p>  2.5整體電路的設(shè)計5</p><p><b>  3軟件設(shè)計6</b></p><p>  3.1 單片機資源使用6</p><p>  3.2 定時計數(shù)器中斷子函數(shù)6</p><p>  3.3判鍵子函數(shù)7</

12、p><p>  3.4按鍵調(diào)試流程8</p><p><b>  4仿真與測試9</b></p><p><b>  4.1自動計時9</b></p><p><b>  4.2按鈕調(diào)時9</b></p><p><b>  心得體會10

13、</b></p><p><b>  參考文獻11</b></p><p><b>  附錄12</b></p><p><b>  1 緒 論 </b></p><p><b>  1.1課程設(shè)計要求</b></p>&l

14、t;p>  1. 應(yīng)用MCS-51單片機設(shè)計單片機實現(xiàn)數(shù)字鐘(LED顯示:小時、分、秒)仿真電路;</p><p>  2. 選用8位LED數(shù)碼顯示,實時顯示時、分、秒,采用組合按鍵實現(xiàn)時鐘對表功能,能調(diào)時、調(diào)分、調(diào)秒;</p><p>  3. 要求顯示范圍最大到23小時59分59秒,用定時中斷來實現(xiàn)。</p><p><b>  4.用鍵選位。&

15、lt;/b></p><p>  1.2課程設(shè)計基本原理</p><p>  通過對以上功能要求可知其基本原理,以AT89C51單片機為核心控制器,P0口接LED顯示模塊,P1口接按鍵,通過按鍵輸入來控制顯示器的顯示。在上電時LED顯示器開始顯示時間并自動計時,自動計時采用單片機內(nèi)部T0中斷實現(xiàn),在按鍵電路中只設(shè)置了三個按鍵,通過檢測第一個按鍵按下的次數(shù)來實現(xiàn)調(diào)時、調(diào)分、調(diào)秒按鍵的作

16、用,再通過LED顯示器顯示時、分、秒的改變。</p><p><b>  2 硬件設(shè)計</b></p><p>  2.1振蕩電路的設(shè)計</p><p>  單片機內(nèi)部有一個高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取33pF)。這樣就構(gòu)成一個穩(wěn)定

17、的自激振蕩器。 振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時鐘信號,再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號,此時得到的信號時機器周期信號。振蕩電路如圖2.1所示:</p><p>  圖2.1 振蕩電路</p><p>  2.2復(fù)位電路的設(shè)計 </p><p>  復(fù)位操作有兩種基本形

18、式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實現(xiàn)單片機自動復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復(fù)位操作。按鍵復(fù)位電路圖如圖2.2所示。&

19、lt;/p><p>  圖2.2 復(fù)位電路</p><p>  鍵盤接口電路的設(shè)計 </p><p>  獨立式鍵盤:獨立式鍵盤中,每個按鍵占用一根I/O口線,每個按鍵電路相對獨立。I/O口通過按鍵與地相連,I/O口有上拉電阻

20、,無鍵按下時,引腳端為高電平,有鍵按下時,引腳電平被拉低。I/O口內(nèi)部有上拉電阻時,外部可不接上拉電阻。鍵盤接口電路如圖2.3所示:</p><p>  圖2.3 鍵盤接口電路</p><p>  2.4顯示電路的設(shè)計</p><p>  對于現(xiàn)實電路我們可以采用數(shù)碼管,也可以采用液晶顯示在這里我采用8位的LED顯示器。顯示電路如圖2.4所示: </

21、p><p>  圖2.4 顯示電路 </p><p>  2.5整體電路的設(shè)計</p><p>  圖2.5 整體電路設(shè)計</p><p><b>  3 軟件設(shè)計</b></p><p>  3.1單片機資源使用</p><p>  在本次設(shè)計中像電路鍵盤用到了P1口,

22、其中P1.0到P1.2口作為鍵盤的輸入,指示燈用P1.4口控制,LED顯示用到了P0口和P3口,P0口外接鎖存器控制LED顯示的段選,P3口控制LED顯示的位選。</p><p>  3.2定時計數(shù)器中斷子函數(shù)</p><p>  對于中斷程序,只要定時器計數(shù)滿就會產(chǎn)生中斷50ms中斷一次,共計20次,秒鐘加1,秒鐘計滿60秒,分鐘加1,分鐘記滿60,小時加1.當(dāng)小時加到23時全部清零。

23、以下是中斷子函數(shù)的流程圖如圖3.1所示:</p><p>  圖3.2 定時計數(shù)器中斷子函數(shù)流程圖</p><p>  3.3 判鍵子函數(shù)</p><p>  對于獨立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時一會兒,在判斷是否真的有鍵按下,如果確實有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3.2所示: </p&g

24、t;<p>  圖3.3 判鍵子程序流程圖</p><p><b>  3.4按鍵調(diào)時流程</b></p><p>  按鍵k1為選調(diào)按鈕,當(dāng)con=1時為調(diào)秒,con=2時為調(diào)分按鈕,con=3時為調(diào)時按鈕,con=4時退出按鈕調(diào)節(jié)。k3、k2按鈕分別為調(diào)減和調(diào)增按鈕。</p><p>  圖3.4 按鍵調(diào)時流程圖<

25、;/p><p><b>  4 仿真與測試</b></p><p><b>  4.1自動計時</b></p><p>  圖4.1 自動計時仿真</p><p><b>  4.2按鈕調(diào)試</b></p><p>  圖4.2 調(diào)試仿真</p&

26、gt;<p><b>  心得體會</b></p><p>  通過這次的課程設(shè)計讓我學(xué)到了很多東西,也夯實了我在書本上所學(xué)的知識,通過一個課題的設(shè)計,讓我明白了如何很好的設(shè)計一個項目,從課題的入手到中間過程的修改的設(shè)置,再到最后的仿真與測試。每一個過程自己都去親自實施和設(shè)計從而讓自己在這個過程中學(xué)到了自己應(yīng)該熟練掌握的知識和技能。</p><p>  

27、編程軟件keil的使用自己通過這次的課程設(shè)計也已熟練掌握了,并且自己的編程能力也得到了好大的提高,仿真測試軟件proteus自己也很好的掌握了,自己能夠獨立的應(yīng)用proteus完成各項仿真與測試。</p><p>  總之,這一次的單片機課程設(shè)計讓我學(xué)到了很多有用的知識和技能。</p><p><b>  參考文獻</b></p><p>  

28、[1] 李廣弟,朱月秀,冷祖祁.單片機基礎(chǔ)[M].第3版.北京航空航天大學(xué)出版社,2007年1月</p><p>  [2]李華.MCS-51系列單片機實用接口技術(shù)[M].北京航空航天大學(xué)出版社,1996</p><p>  [3] 馬忠梅,張凱,馬巖,單片機的C語言應(yīng)用程序設(shè)計,[M],北京:北京航空航天大學(xué)出版社,2003.11;</p><p>  [4] 胡

29、輝,單片機原理及應(yīng)用設(shè)計—21世紀(jì)高等院校規(guī)劃教材[M],水利水電出版社,2005.7;</p><p>  [5] 劉守義,單片機應(yīng)用技術(shù)[M],西安:西安電子科技大學(xué)出版社,1996.8;</p><p><b>  附 錄</b></p><p><b>  數(shù)字時鐘源代碼</b></p><p

30、>  //本程序?qū)崿F(xiàn)一個按鈕來控制兩個按鈕功能,按一下調(diào)秒(調(diào)增或減),</p><p>  //按兩下調(diào)分(增或減),按三下時(增或減),按四下時退出。</p><p>  #include<reg51.h></p><p>  unsigned int m=0,f=0,s=0,con=0;</p><p>  uns

31、igned char</p><p>  d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//段選</p><p>  unsigned char x=0x00;</p><p>  #define uint unsigned int</p><p&

32、gt;  #define uchar unsigned char</p><p>  sbit k1=P1^0;//按鈕</p><p>  sbit k2=P1^1;</p><p>  sbit k3=P1^2;</p><p>  sbit s1=P1^4;</p><p>  void delay(unsig

33、ned int x)//延時1ms</p><p><b>  {</b></p><p>  unsigned char j;</p><p>  while(x--)</p><p><b>  {</b></p><p>  for(j=0;j<125;j++)

34、</p><p><b>  {;} </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void display()//顯示</p><p>  { P3=0x01;//顯示小時的十位<

35、;/p><p>  P0=d[s/10];</p><p><b>  delay(5);</b></p><p>  P3=0x02;//顯示小時個位</p><p>  P0=d[s%10];</p><p><b>  delay(5);</b></p>&l

36、t;p>  P3=0x04;//顯示--</p><p><b>  P0=d[11];</b></p><p><b>  delay(5);</b></p><p>  P3=0x08;//顯示分十位</p><p>  P0=d[f/10];</p><p>&l

37、t;b>  delay(5);</b></p><p>  P3=0x10;//顯示分個位</p><p>  P0=d[f%10];</p><p><b>  delay(5);</b></p><p>  P3=0x20;//顯示--</p><p><b>  

38、P0=d[11];</b></p><p>  delay(5); </p><p>  P3=0x40;//顯示秒</p><p>  P0=d[m/10];</p><p>  delay(5);</p><p><b>  P3=0x80;</b></p><

39、;p>  P0=d[m%10];</p><p><b>  delay(5);</b></p><p><b>  }</b></p><p>  void key()//按鍵判斷選擇按鍵</p><p><b>  {</b></p><p>

40、;  EA=0;//中斷關(guān)閉</p><p><b>  if(k1==0)</b></p><p><b>  { </b></p><p>  delay(30); </p><p>  while(k1==0); </p><p><b>  s1=~s1

41、;</b></p><p>  delay(20);</p><p>  con++;TR0=0;ET0=0;</p><p>  if(con>=4)</p><p><b>  {</b></p><p>  con=0;TR0=1;ET0=1;</p><

42、;p><b>  } </b></p><p><b>  }</b></p><p>  if(con==1)//按了一下表示調(diào)秒</p><p><b>  { </b></p><p>  if(k2==0)//增加</p><p>&

43、lt;b>  {</b></p><p>  delay(30);</p><p>  while(k2==0);</p><p><b>  m++;</b></p><p><b>  if(m==59)</b></p><p><b>  {

44、m=0;}</b></p><p><b>  }</b></p><p>  if(k3==0)//減</p><p><b>  {</b></p><p>  delay(30);</p><p>  while(k3==0);</p><

45、;p><b>  m--;</b></p><p><b>  if(m>=60)</b></p><p><b>  {m=59;}</b></p><p><b>  }</b></p><p><b>  }</b>

46、</p><p>  if(con==2)</p><p><b>  {</b></p><p><b>  if(k2==0)</b></p><p><b>  {</b></p><p>  delay(30);</p><p

47、>  while(k2==0);</p><p><b>  f++;</b></p><p><b>  if(f==59)</b></p><p><b>  {f=0;}</b></p><p><b>  } </b></p>

48、<p><b>  if(k3==0)</b></p><p><b>  {</b></p><p>  delay(30);</p><p>  while(k3==0);</p><p><b>  f--;</b></p><p>&l

49、t;b>  if(f>=60)</b></p><p><b>  {f=59;}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(con==3)</p><p>

50、<b>  {</b></p><p><b>  if(k2==0)</b></p><p><b>  {</b></p><p>  delay(30);</p><p>  while(k2==0);</p><p><b>  s++

51、;</b></p><p><b>  if(s==23)</b></p><p><b>  {s=0;}</b></p><p><b>  } </b></p><p><b>  if(k3==0)</b></p><

52、;p><b>  {</b></p><p>  delay(30);</p><p>  while(k3==0);</p><p><b>  s--;</b></p><p>  if(s>=24)//實現(xiàn)循環(huán)減</p><p><b>  {s=

53、23;}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  EA=1;//中斷開啟 </p><p><b>  } </b></p><p>  void main()//設(shè)

54、置定時50ms</p><p><b>  {</b></p><p>  TH0=(65535-50000)/256;</p><p>  TL0=(65535-50000)%256;</p><p>  TMOD=0X01;ET0=1;TR0=1;EA=1;//開啟定時中斷</p><p>&

55、lt;b>  while(1)</b></p><p><b>  { key();</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p>  

56、void int0() interrupt 1//中斷服務(wù)程序</p><p><b>  {ET0=0;</b></p><p><b>  TR0=0;</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;

57、</p><p><b>  TR0=1;</b></p><p><b>  x++;</b></p><p>  if(x==20)//計數(shù)20恰好為1秒</p><p><b>  { </b></p><p><b>  x=0;m++

58、;</b></p><p>  if(m==60)//秒到60</p><p><b>  {</b></p><p><b>  m=0;f++;</b></p><p>  if(f==60)//分到60</p><p><b>  f=0;s++;

59、</b></p><p><b>  if(s==24)</b></p><p><b>  {</b></p><p><b>  s=0;</b></p><p><b>  }</b></p><p><b&

溫馨提示

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

評論

0/150

提交評論