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

下載本文檔

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

文檔簡介

1、<p>  電子技術(shù)應(yīng)用綜合課程設(shè)計</p><p>  —51單片機八位搶答器</p><p>  院部名稱 :機電與信息工程學(xué)院</p><p><b>  專業(yè)名稱 :自動化</b></p><p>  班 級 :(1)</p><p><b>  姓名:</

2、b></p><p>  學(xué)號: 目錄</p><p>  第一章:內(nèi)容提要……………………………………………………………………4</p><p>  1.1設(shè)計要求………………………………………………………………4</p><p>  1.2總體設(shè)計方案…………………………………………………………5</p>

3、<p>  第二章:硬件設(shè)計及分析……………………………………………………………5</p><p>  2.1單片機最小系統(tǒng)………………………………………………………5</p><p>  2.2 LCD1602顯示電路……………………………………………………7</p><p>  2.3獨立式按鍵鍵盤設(shè)計…………………………………………………7<

4、;/p><p>  2.4蜂鳴器設(shè)計……………………………………………………………8</p><p>  2.5復(fù)位電路設(shè)計…………………………………………………………9</p><p>  第三章:軟件設(shè)計及分析……………………………………………………………10</p><p>  3.1系統(tǒng)程序……………………………………………………………1

5、0</p><p>  3.2程序流程圖…………………………………………………………10</p><p>  第四章:體會感想……………………………………………………………………11</p><p>  參考文獻……………………………………………………………………………12</p><p>  附錄…………………………………………………………

6、………………………13</p><p><b>  第一章:內(nèi)容摘要</b></p><p>  數(shù)字搶答器由主體電路與擴展電路組成。優(yōu)先編碼電路、鎖存器、譯碼電路將參賽隊的輸入信號在顯示器上輸出;用控制電路和主持人開關(guān)啟動報警電路,以上兩部分組成主體電路。通過定時電路和譯碼電路將秒脈沖產(chǎn)生的信號在LCD602顯示器上輸出實現(xiàn)計時功能,構(gòu)成擴展電路。經(jīng)過布線、焊接、調(diào)

7、試等工作后數(shù)字搶答器成形。單片機體積小價格低,應(yīng)用方便,穩(wěn)定可靠。單片機將很多任務(wù)交給了軟件編程去實現(xiàn),大大簡化了外圍硬件電路,使外圍電路的實現(xiàn)簡單方便。單片機系統(tǒng)的硬件結(jié)構(gòu)給予了搶答系統(tǒng)“身軀”,而單片機的應(yīng)用程序賦予了其新的“生命”,使其在傳統(tǒng)的搶答器面前具有電路簡單、成本低、運行可靠等特色。對于搶答器我們大家都知道那是用于選手做搶答題時用的,選手進行搶答,搶到題的選手來回答問題。搶答器不僅考驗選手的反應(yīng)速度同時也要求選手具備足夠的

8、知識面和一定的勇氣。選手們都站在同一個起跑線上,體現(xiàn)了公平公正的原則。</p><p>  關(guān)鍵字: 搶答電路 定時電路 報警電路 </p><p><b>  1 .1設(shè)計要求</b></p><p>  以單片機為核心,設(shè)計一個8位競賽搶答器:同時供8名選手或8個代表隊比賽,分別用8個按鈕S0~S7表示。</p><p&

9、gt;  設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。</p><p>  搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。</p><p>  搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。</p><p>  當主持人啟動“開始”鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的

10、聲響,聲響持續(xù)的時間為0.5s左右。 </p><p>  參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。</p><p>  如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。</p><p>  1 .2總體方案設(shè)計</p><p&

11、gt;  圖1.2 總體電路設(shè)計框圖</p><p>  獨立式按鍵鍵盤:用于輸入高低電平,連接到P1口,由P1口檢測電平的變化。</p><p>  搶答器倒計時顯示電路:用LCD1602液晶顯示,第一行顯示成功搶答選手編號,第二行顯示選手搶答用的時間和倒計時時間。</p><p>  蜂鳴電路:有選手搶答成功,P2.0口發(fā)出脈沖,使蜂鳴器發(fā)出聲音。</p

12、><p>  第二章:硬件設(shè)計及分析</p><p>  2.1單片機最小系統(tǒng)</p><p>  單片機選用的是Atmel公司推出的AT89S52,它是一種低功效、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。在單芯片上擁有靈巧的8位CPU和在線系統(tǒng)可編程Fla

13、sh,使得AT89S52具有以下標準功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器串口、中斷繼續(xù)工作。掉電保護方式下RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。而且,它還具有一個看門狗(WDT)定時/計數(shù)器。如果程序沒有

14、正常工作,就會強制整個系統(tǒng)復(fù)位,還可以在程序陷入死循環(huán)的時候,讓單片機復(fù)位而不用整個系統(tǒng)斷電,從而保護你的硬件電路。T89S52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中端口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,片上Flash允許程序存儲器在系統(tǒng)</p><p>  圖2.1 最小系統(tǒng)電路</p><p>  2.2LCD顯示電路</p&g

15、t;<p>  液晶顯示器是一種功耗極低的被動式顯示器件,1602廣腳介紹:D0—D7數(shù)據(jù)傳送引腳,VSS為接地線,VDD為電源線,VEE為 LCD驅(qū)動電壓調(diào)節(jié),由此可以調(diào)節(jié)顯示亮度。RS為寄存器選擇信號,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器。RW為讀寫控制信號,高電平讀,低電平寫。EN使能信號,讀狀態(tài)下高電平有效,寫狀態(tài)下下降沿有效。     </p>

16、<p>  RS連接P2^0;     寄存器選擇信號  </p><p>  RW連接P2^1;    讀寫控制信號線 </p><p>  EN連接P2^2;     使能信號線 </p>&

17、lt;p>  圖2.2 LCD1602電路</p><p>  2.3獨立式按鍵鍵盤設(shè)計</p><p>  鍵盤接口中使用多少根I/O線,鍵盤中就有幾個按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。</p><p>  最簡單的編碼方式就是根

18、據(jù)I/O輸入口所直接反映的相應(yīng)按鍵,按下的狀態(tài)進行編碼,稱按鍵直接狀態(tài)碼,對于這樣編碼的獨立式鍵盤,CPU可以通過直接讀取I/O口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個值直接進行按鍵識別,這樣形式的鍵盤結(jié)構(gòu)簡單,按鍵識別容易。</p><p>  獨立式鍵盤的缺點是需要占用比較多的I/O口線,當單片機應(yīng)用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時,可以采用這樣類型的鍵盤。 </p><

19、;p>  獨立式按鍵鍵盤:用于輸入高低電平,八位選手搶答時高低電平發(fā)生變化,如圖所示。</p><p>  圖2.3 搶答按鍵電路</p><p><b>  2.4蜂鳴器設(shè)計</b></p><p>  我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的巨型

20、波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。單片機通過內(nèi)部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動揚聲器發(fā)聲,有選手搶答成功,使蜂鳴器發(fā)出聲音,如圖 所示。</p><p>  圖2.4 蜂鳴器電路</p><p><b>  2.5復(fù)位電路設(shè)計</b></p>

21、<p>  MCS-5l的復(fù)位輸入引腳RST為MCS-51提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在MCS-5l的時鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個機器周期以上的高電平時,即可產(chǎn)生復(fù)位的操作.只要RST保持高電平,則MCS-5l循環(huán)復(fù)位.只有當RST由高電平變低電平以后。MCS-51才從0000H地址開始執(zhí)行程序。本系統(tǒng)采用按鍵復(fù)位方式的復(fù)位電路。</p><p>  復(fù)位電路:當一

22、輪進行完時,由主持人按下,下一輪倒計時開始,如圖3.2所示。</p><p>  圖2.4 復(fù)位電路</p><p>  第三章:軟件設(shè)計及分析</p><p><b>  3.1系統(tǒng)程序</b></p><p>  分為主程序、lcd1602顯示程序、按鍵掃描程序、初始化等程序。</p><p&g

23、t;  當主持人啟動“開始”鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為0.5s左右。</p><p>  參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。</p><p>  如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。</p><

24、p>  按鍵復(fù)位再來一次執(zhí)行下次程序</p><p><b>  3.2程序流程圖</b></p><p><b>  第四章:體會感想</b></p><p>  通過本次單片機課程設(shè)計,使我所學(xué)的知識能夠得到實際的應(yīng)用,過程中也發(fā)現(xiàn)自身所學(xué)的知識存在許多的不足和問題,當然同時也學(xué)到了不少寶貴的知識,提高了自己的動

25、手實踐能力。在整個設(shè)計過程中從設(shè)計方案確定,到具體的電路仿真,最后到總體電路的連接構(gòu)建以及程序的編寫燒制,特別是程序的編寫要求對LCD1602的初始化操作,指令和數(shù)據(jù)的操作都非常熟悉。通過這次對數(shù)字鐘的設(shè)計與制作讓我了解了設(shè)計電路的程序也讓我了解了關(guān)于數(shù)字鐘的原理與設(shè)計理念要設(shè)計一個電路總要先用仿真仿真成功之后才實際接線的。但是最后的成品卻不一定與仿真時完全一樣因為再實際接線中有著各種各樣的條件制約著。而且在仿真中無法成功的

26、電路接法在實際中因為芯片本身的特性而能夠成功。所以在設(shè)計時應(yīng)考慮兩者的差異從中找出最適合的設(shè)計方法。在這次實習中遇到了許多問題,但通過向老師同學(xué)請教都得到了解決。通過這次課程設(shè)計,我知道了做任何事都要有一顆平常心,不要想著走捷徑,要一步一個腳印才能取得最后成功,在此過程中更要注重自主學(xué)習,發(fā)揮自己的主管能動性。總之這次課程設(shè)計試一次很好的鍛煉,讓我有了全方位的提高,受益匪淺,為我以后的工作學(xué)習打下了</p><

27、p><b>  參考文獻:</b></p><p>  [1]張義和.例說51單片機[M].北京:人民郵電出版社,2010年  </p><p>  [2] 閻石編著  數(shù)字電子技術(shù)基礎(chǔ) (第五版)   北京高等教育出版社]   2006.1~550&l

28、t;/p><p>  [3] 蔡明文 馮先成主編  單片機課程設(shè)計  華中科技大學(xué)出版社  2007.3</p><p>  [4]陳明螢 編著  8051單片機課程設(shè)計實訓(xùn)教材  清華大學(xué)出版社  2004 </p>&

29、lt;p>  [5] 康華光 編著  模擬電子技術(shù)基礎(chǔ)(第五版) 高等教育出版社  2006 </p><p>  [6 ]黃智偉 編著  全國大學(xué)生電子設(shè)計競賽電路(第一版)航空航天大學(xué)出版社 2006.36</p><p><b>  附錄:

30、</b></p><p><b>  實物圖:</b></p><p><b>  元件清單</b></p><p>  Lcd1602 一個</p><p>  蜂鳴器 一個</p><p>  三極管 一個</p><

31、p>  89c52單片機一個</p><p>  Led 一個</p><p>  按鍵 九個</p><p><b>  10K電阻器 一個</b></p><p><b>  最小系統(tǒng)板一個</b></p><p><b>  (

32、3)程序清單</b></p><p>  #include<reg52.h></p><p>  #include<intrins.h></p><p>  sbit RS = P2^4; //定義端口 </p><p>  sbit RW = P2^5;</p><p>  s

33、bit EN = P2^6;</p><p>  sbit s = P3^7; </p><p>  sbit s0 = P1^0;</p><p>  sbit s1 = P1^1;</p><p>  sbit s2 = P1^2;</p><p>  sbit s3 = P1^3;</p><

34、;p>  sbit s4 = P1^4;</p><p>  sbit s5 = P1^5;</p><p>  sbit s6 = P1^6;</p><p>  sbit s7 = P3^6;</p><p>  sbit beep = P2^0;</p><p>  #define RS_CLR RS=0

35、</p><p>  #define RS_SET RS=1</p><p>  #define RW_CLR RW=0 </p><p>  #define RW_SET RW=1 </p><p>  #define EN_CLR EN=0</p><p>  #define EN_SET EN=1</p&g

36、t;<p>  #define DataPort P0</p><p>  unsigned char table[10] ={'0','1','2','3','4','5','6','7','8','9'};</p><

37、p>  unsigned char shu,key,count=0;</p><p>  unsigned char flag=0;</p><p>  unsigned char DATA,num;</p><p>  /*------------------------------------------------</p><p>

38、;  uS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值</p><p>  unsigned char 是定義無符號字符變量,其值的范圍是</p><p>  0~255 這里使用晶振12M,精確延時請使用匯編,大致延時</p><p>  長度如下 T=tx2+5 uS </p><p>  --------------

39、----------------------------------*/</p><p>  void DelayUs2x(unsigned char t)</p><p><b>  { </b></p><p>  while(--t);</p><p><b>  }</b></p&

40、gt;<p>  /*------------------------------------------------</p><p>  mS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值</p><p>  unsigned char 是定義無符號字符變量,其值的范圍是</p><p>  0~255 這里使用晶振12M,精確延時

41、請使用匯編</p><p>  ------------------------------------------------*/</p><p>  void DelayMs(unsigned int t)</p><p><b>  {</b></p><p>  while(t--)</p><

42、;p><b>  {</b></p><p><b>  //大致延時1mS</b></p><p>  DelayUs2x(245);</p><p>  DelayUs2x(245);</p><p><b>  }</b></p><p>&

43、lt;b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  判忙函數(shù)</b></p><p>  ------------------------------------------------*/</p&

44、gt;<p>  bit LCD_Check_Busy(void) </p><p><b>  { </b></p><p>  DataPort= 0xFF; </p><p><b>  RS_CLR; </b></p><p><b>  RW_SET; </b

45、></p><p><b>  EN_CLR; </b></p><p><b>  _nop_(); </b></p><p><b>  EN_SET;</b></p><p>  return (bit)(DataPort & 0x80);</p>

46、;<p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  寫入命令函數(shù)</b></p><p>  ------------------------------------------

47、------*/</p><p>  void LCD_Write_Com(unsigned char com) </p><p><b>  { </b></p><p>  while(LCD_Check_Busy()); //忙則等待</p><p><b>  RS_CLR; </b>&l

48、t;/p><p><b>  RW_CLR; </b></p><p><b>  EN_SET; </b></p><p>  DataPort= com; </p><p><b>  _nop_(); </b></p><p><b>  E

49、N_CLR;</b></p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  寫入數(shù)據(jù)函數(shù)</b></p><p>  -----------------

50、-------------------------------*/</p><p>  void LCD_Write_Data(unsigned char Data) </p><p><b>  { </b></p><p>  while(LCD_Check_Busy()); //忙則等待</p><p><b

51、>  RS_SET; </b></p><p><b>  RW_CLR; </b></p><p><b>  EN_SET; </b></p><p>  DataPort= Data; </p><p><b>  _nop_();</b></p&

52、gt;<p><b>  EN_CLR;</b></p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  清屏函數(shù)</b></p><

53、p>  ------------------------------------------------*/</p><p>  void LCD_Clear(void) </p><p><b>  { </b></p><p>  LCD_Write_Com(0x01); </p><p>  DelayMs(

54、5);</p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  寫入字符串函數(shù)</b></p><p>  -----------------------------

55、-------------------*/</p><p>  void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) </p><p><b>  { </b></p><p>  if (y == 0) </p><p>

56、<b>  { </b></p><p>  LCD_Write_Com(0x80 + x); //表示第一行</p><p><b>  }</b></p><p><b>  else </b></p><p><b>  { </

57、b></p><p>  LCD_Write_Com(0xC0 + x); //表示第二行</p><p><b>  } </b></p><p>  while (*s) </p><p><b>  { </b></p><p> 

58、 LCD_Write_Data( *s); </p><p>  s ++; </p><p><b>  }</b></p><p><b>  }</b></p><p>  /*------------------------------------------------&l

59、t;/p><p><b>  寫入字符函數(shù)</b></p><p>  ------------------------------------------------*/</p><p>  void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) </p

60、><p><b>  { </b></p><p>  if (y == 0) </p><p><b>  { </b></p><p>  LCD_Write_Com(0x80 + x); </p><p><b>  } </b

61、></p><p><b>  else </b></p><p><b>  { </b></p><p>  LCD_Write_Com(0xC0 + x); </p><p><b>  } </b></p><p&

62、gt;  LCD_Write_Data( Data); </p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  初始化函數(shù)</b></p><p>  -----

63、-------------------------------------------*/</p><p>  void LCD_Init(void) </p><p><b>  {</b></p><p>  LCD_Write_Com(0x38); /*顯示模式設(shè)置*/ </p><p>  DelayMs(

64、5); </p><p>  LCD_Write_Com(0x38); </p><p>  DelayMs(5); </p><p>  LCD_Write_Com(0x38); </p><p>  DelayMs(5); </p><p>  LCD_Write_Com(0x38); </p>&

65、lt;p>  LCD_Write_Com(0x08); /*顯示關(guān)閉*/ </p><p>  LCD_Write_Com(0x01); /*顯示清屏*/ </p><p>  LCD_Write_Com(0x06); /*顯示光標移動設(shè)置*/ </p><p>  DelayMs(5); </p><p>  LCD

66、_Write_Com(0x0C); /*顯示開及光標設(shè)置*/</p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  定時器中斷子程序</b></p><p>

67、  ------------------------------------------------*/</p><p>  void Timer0_isr(void) interrupt 1 </p><p><b>  {</b></p><p>  unsigned char temp,temp1,i,j=2;</p>&l

68、t;p>  TH0=(65536-50000)/256;//重新賦值 50ms</p><p>  TL0=(65536-50000)%256;</p><p>  // beep=~beep;</p><p>  // DelayMs(100);</p><p><b>  i++;</b></p>

69、<p><b>  if(i==20)</b></p><p><b>  { i=0;</b></p><p><b>  DATA--;</b></p><p>  if(DATA>0)</p><p>  { DelayMs(50);</p&

70、gt;<p>  temp=DATA/10;</p><p>  temp1=DATA%10; </p><p>  LCD_Write_Char(7,1,table[temp]);</p><p>  LCD_Write_Char(8,1,table[temp1]);</p><p><b>  }</b>

71、;</p><p>  else if(DATA==0)</p><p>  { P1=0xFF;</p><p><b>  ET0=0;</b></p><p>  DelayMs(50);</p><p>  LCD_Write_Char(7,1,'0');</p>

72、;<p>  LCD_Write_Char(8,1,'0');</p><p>  for(;j--;j>0)</p><p><b>  {</b></p><p><b>  beep=0;</b></p><p>  DelayMs(500);</p&

73、gt;<p><b>  beep=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p

74、><p>  void beepon(void)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<10;i++)</p><p><b>  {</b></p><p&

75、gt;<b>  beep=0;</b></p><p>  DelayMs(50);</p><p><b>  beep=1;</b></p><p><b>  }</b></p><p><b>  } </b></p><p&

76、gt;  unsigned char keyscan(void)</p><p><b>  {</b></p><p>  unsigned char scan1;</p><p><b>  scan1=P1;</b></p><p>  if(scan1!=0xff)</p>&

77、lt;p><b>  {</b></p><p>  DelayMs(30);</p><p>  if(scan1==P1)</p><p><b>  {</b></p><p>  switch(scan1)</p><p><b>  {</b&

78、gt;</p><p>  case 0xff:</p><p>  scan1 = 0;</p><p><b>  break; </b></p><p>  case 0xfe:</p><p>  scan1 = 1;</p><p><b>  bre

79、ak;</b></p><p>  case 0xfd:</p><p>  scan1 = 2;</p><p><b>  break;</b></p><p>  case 0xfb:</p><p>  scan1 = 3;</p><p><b

80、>  break;</b></p><p>  case 0xf7:</p><p>  scan1 = 4;</p><p><b>  break;</b></p><p>  case 0xef:</p><p>  scan1 = 5;</p><p&

81、gt;<b>  break;</b></p><p>  case 0xdf:</p><p>  scan1 = 6;</p><p><b>  break;</b></p><p>  case 0xbf:</p><p>  scan1 = 7;</p>

82、<p><b>  break;</b></p><p>  case 0x7f:</p><p>  scan1 = 8;</p><p><b>  break;</b></p><p><b>  }</b></p><p><

83、b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  scan1=0;</b></p><p>  return(scan1);</p><p><b

84、>  }</b></p><p>  void display(void)</p><p>  {unsigned char a,b;</p><p>  key=keyscan();</p><p>  if(key!=0 & flag==0 )</p><p>  {ET0=0;cou

85、nt++;</p><p>  DelayMs(200);</p><p>  LCD_Write_Char(10,0,table[key]);</p><p><b>  flag=1;</b></p><p>  a=(shu-DATA)/10;</p><p>  b=(shu-DATA)%

86、10;</p><p>  LCD_Write_Char(7,1,table[a]);</p><p>  LCD_Write_Char(8,1,table[b]);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void

87、 main(void)</p><p>  {unsigned char k;</p><p>  unsigned a,b;</p><p>  LCD_Init(); //初始化液晶</p><p>  DelayMs(20); //延時有助于穩(wěn)定</p><p>  LCD

88、_Clear(); //清屏</p><p>  LCD_Write_String(0,1,"time");</p><p>  LCD_Write_String(0,0,"xuanshou");</p><p>  //Init_Timer0(); //定時器0初始化</p><

89、p>  while(count==0)</p><p><b>  { </b></p><p><b>  if(s0==0)</b></p><p>  { DelayMs(10);</p><p><b>  if(s0==0)</b></p>&l

90、t;p><b>  { </b></p><p><b>  count++;</b></p><p>  while(count==1)</p><p><b>  {</b></p><p><b>  if(s==0)</b></p&

91、gt;<p><b>  {</b></p><p>  DelayMs(10);</p><p><b>  if(s==0)</b></p><p>  {while(!s);</p><p><b>  count++;</b></p>&l

92、t;p><b>  }</b></p><p><b>  }</b></p><p><b>  if(s1==0)</b></p><p><b>  {</b></p><p>  DelayMs(10);</p><p&g

93、t;<b>  if(s1==0)</b></p><p><b>  {</b></p><p>  while(!s1);</p><p><b>  {</b></p><p><b>  DATA++;</b></p><p&

94、gt;<b>  shu=DATA;</b></p><p>  if(DATA==31){DATA=0;count=0;}</p><p>  a=DATA/10;</p><p>  b=DATA%10;</p><p>  LCD_Write_Char(7,1,table[a]);</p><p

95、>  LCD_Write_Char(8,1,table[b]);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&

96、lt;p>  while(count==2)</p><p><b>  { </b></p><p>  TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響 </p><p>  TH0=(65536-50000)/256;//重新賦值 50ms&

97、lt;/p><p>  TL0=(65536-50000)%256;</p><p>  EA=1; //總中斷打開</p><p>  ET0=1; //定時器中斷打開</p><p>  TR0=1; //定時器開關(guān)顙</p><p><b>  

98、beepon();</b></p><p><b>  count++;</b></p><p><b>  } </b></p><p>  while(count==3)</p><p>  { //P1=0xFF;</p><p>  DelayMs(1

99、00);</p><p>  key=keyscan();</p><p>  if(key!=0 & flag==0 )</p><p><b>  {</b></p><p>  ET0=0;count++;</p><p>  DelayMs(200);</p>&l

100、t;p>  LCD_Write_Char(10,0,table[key]);</p><p><b>  flag=1;</b></p><p>  a=(shu-DATA)/10;</p><p>  b=(shu-DATA)%10;</p><p>  LCD_Write_Char(7,1,table[a]);

101、</p><p>  LCD_Write_Char(8,1,table[b]); </p><p><b>  }</b></p><p><b>  }</b></p><p>  while(count==4)</p><p><b>  {</b>

102、;</p><p><b>  if(s==0)</b></p><p><b>  {</b></p><p>  for(k=0;k<20;k++)</p><p><b>  {</b></p><p>  DelayMs(100);<

103、/p><p><b>  }</b></p><p><b>  if(s==0)</b></p><p><b>  {</b></p><p>  while(!s);</p><p>  {DelayMs(50);</p><p&

104、gt;  LCD_Write_Char(10,0,table[0]); </p><p>  LCD_Write_Char(7,1,'0');</p><p>  LCD_Write_Char(8,1,'0');</p><p>  DelayMs(100);</p><p><b>  count=

105、0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論