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

下載本文檔

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

文檔簡介

1、<p>  單機(jī)微機(jī)原理與接口技術(shù)課程設(shè)計實(shí)驗(yàn)報告</p><p><b>  一、課程設(shè)計目的</b></p><p>  (1)鞏固、加深和擴(kuò)大單片機(jī)應(yīng)用的知識面,提高綜合及靈活運(yùn)用所學(xué)知識解決工業(yè)控制的能力;</p><p>  (2)培養(yǎng)針對課題需要,選擇和查閱有關(guān)手冊、圖表及文獻(xiàn)資料的自學(xué)能力,提高組成系統(tǒng)、編程、調(diào)試的動手

2、能力;</p><p>  (3)過對課題設(shè)計方案的分析、選擇、比較、熟悉單片機(jī)用系統(tǒng)開發(fā)、研制的過程,軟硬件設(shè)計的方法、內(nèi)容及步驟。</p><p>  二、課程設(shè)計實(shí)現(xiàn)的功能</p><p><b>  1、功能說明</b></p><p> ?。?)本電子鐘可以顯示當(dāng)前時刻、年月日和鬧鐘時刻。不同時間的顯示可以用k

3、ey4來切換。</p><p>  (2)獨(dú)立鍵盤key1-key4(左到右)調(diào)節(jié)不同功能,7段數(shù)碼管顯示。</p><p>  (3) 鬧鈴功能:本程序有鬧鈴功能,當(dāng)定時時間到時,鬧鈴會滴滴滴報警,報警30秒</p><p> ?。?)時、分、秒之間和年、月、日之間也是用“.”分割。</p><p><b>  2、鍵盤控制<

4、;/b></p><p> ?。?)key1-鍵移動調(diào)整單位,每按一次移動一個單位,可調(diào)整時分秒、年月日和鬧鐘時間。比如:在顯示時分秒時,按下key1鍵,可通過key2和key3對‘秒’加減;再按一下key1,可對‘分’加減;再按一下key1,可對‘時’加減;再按key1,時間開始走動</p><p>  (2)key2-加1;key3-減1;</p><p>

5、; ?。?)key4-鍵切換時分秒、年月日和鬧鈴時間的顯示。比如:當(dāng)前為時分秒,按一下key4,則顯示年月;再按一下,則顯示鬧鈴時間;再按一下,則顯示時分秒時間。 </p><p><b>  三、硬件結(jié)構(gòu)概括</b></p><p><b> ?。ㄒ唬?fù)位電路</b></p><p>  單片機(jī)復(fù)位的條件是:必須使R

6、ST/VPD 或RST引(9)加上持續(xù)兩個機(jī)器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12 MHz,每機(jī)器周期為1μs,則只需2μs以上時間的高電平,在RST引腳出現(xiàn)高電平后的第二個機(jī)器周期執(zhí)行復(fù)位。單片機(jī)常見的復(fù)位如圖所示。電路為上電復(fù)位電路,它是利用電容充電來實(shí)現(xiàn)的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時間大于兩個機(jī)器周期,便能正常復(fù)位。該

7、電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的RESET鍵,此時電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復(fù)位高電平</p><p><b> ?。ǘ┚д耠娐?lt;/b></p><p><b> ?。ㄈ┌存I電路</b></p><p><b> ?。ㄋ模╋@示部分</b></p&g

8、t;<p><b> ?。ㄎ澹?整體電路圖</b></p><p><b>  四、軟件結(jié)構(gòu)概述</b></p><p><b>  (1)代碼說明</b></p><p>  // ****************************************************

9、//</p><p>  //設(shè)計項(xiàng)目:帶鬧鈴的電子鐘 (梁紹科 林望桐)</p><p>  //功能: key1-鍵:開始/調(diào)時分秒/調(diào)年月日/調(diào)定時</p><p>  // key2-鍵:加1</p><p>  // key3-鍵:減1</p><p>  // key

10、4-鍵:切換頁面</p><p>  //****************************************************//</p><p>  #include<reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint u

11、nsigned int</p><p>  //sbit dula=P2^6;</p><p>  //sbit wela=P2^7;</p><p>  sbit key1=P3^4;</p><p>  sbit key2=P3^5;</p><p>  sbit key3=P3^6;</p><

12、;p>  sbit key4=P3^7;</p><p>  sbit bear=P3^2;</p><p>  uchar code table[]={0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,</p><p>  

13、0x79,0x71};</p><p>  uchar sec1,min1,hour1,year1,mon1,day1,temp1,temp2,sec2,min2,hour2;</p><p>  void keyscan();</p><p>  void display(uchar hour,uchar min,uchar sec);</p>&l

14、t;p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=0;x<z;x++)</p><p>  for(y=0;y<110;y++);</p>

15、<p><b>  }</b></p><p>  //***************************************//</p><p>  //初始化及數(shù)碼管顯示(林望桐負(fù)責(zé))</p><p>  //***************************************//</p><

16、p>  void init()</p><p><b>  {</b></p><p>  TMOD=0X02;</p><p><b>  TH0=6;</b></p><p><b>  TL0=6;</b></p><p><b>

17、  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b>  TR0=1;</b></p><p><b>  hour1=15;</b></p><p><b>  min1=59; </b></

18、p><p><b>  sec1=57;</b></p><p><b>  year1=11;</b></p><p><b>  mon1=12;</b></p><p><b>  day1=24;</b></p><p><

19、;b>  }</b></p><p>  void display(uchar hour,uchar min,uchar sec)</p><p><b>  {</b></p><p>  uchar s1,s2,m1,m2,h1,h2;</p><p>  s2=sec/10;</p>

20、<p>  s1=sec%10;</p><p>  m2=min/10;</p><p>  m1=min%10;</p><p>  h2=hour/10;</p><p>  h1=hour%10;</p><p>  // dula=1;</p><p>  P1=ta

21、ble[h2];</p><p>  //dula=0;</p><p><b>  P2=0XFF;</b></p><p>  //wela=1;</p><p><b>  P2=0XFE;</b></p><p><b>  delay(1);</

22、b></p><p>  // dula=1;</p><p>  P1=table[h1]+0x80;</p><p>  //dula=0;</p><p><b>  P2=0XFF;</b></p><p>  //wela=1;</p><p>&

23、lt;b>  P2=0XFd;</b></p><p><b>  delay(1);</b></p><p>  //dula=1;</p><p>  P1=table[m2];</p><p>  //dula=0;</p><p><b>  P2=0XFF

24、;</b></p><p>  //wela=1;</p><p><b>  P2=0XFb;</b></p><p><b>  delay(1);</b></p><p>  //dula=1;</p><p>  P1=table[m1]+0x80;&

25、lt;/p><p>  //dula=0;</p><p><b>  P2=0XFF;</b></p><p>  //wela=1;</p><p><b>  P2=0XF7;</b></p><p><b>  delay(1);</b><

26、/p><p>  //dula=1;</p><p>  P1=table[s2];</p><p>  //dula=0;</p><p><b>  P2=0XFf;</b></p><p>  //wela=1;</p><p><b>  P2=0Xef

27、;</b></p><p><b>  delay(1);</b></p><p>  //dula=1;</p><p>  P1=table[s1];</p><p>  //dula=0;</p><p><b>  P2=0XFF;</b></p

28、><p>  //wela=1;</p><p><b>  P2=0Xdf;</b></p><p><b>  delay(1);</b></p><p><b>  }</b></p><p>  //************************

29、***************//</p><p>  //***************************************//</p><p>  //按鍵掃描(梁紹科負(fù)責(zé))</p><p>  //***************************************//</p><p>  void keyscan

30、()</p><p><b>  {</b></p><p>  if(key1==0)</p><p><b>  {</b></p><p>  delay(10);</p><p>  if(key1==0)</p><p><b> 

31、 {</b></p><p><b>  //TR0=0;</b></p><p><b>  temp1++;</b></p><p>  if(temp1==4)</p><p><b>  {</b></p><p><b>

32、  temp1=0;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  while(!key1)</p><p>  switch(temp2)</p><p><b>  {</

33、b></p><p>  case 0:display(hour1,min1,sec1);break;</p><p>  case 1:display(year1,mon1,day1);break;</p><p>  case 2:display(hour2,min2,sec2);break;</p><p><b>  

34、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key2==0)</p><p><b>  {</b></p><p>  delay(10);</p>&

35、lt;p>  if(key2==0)</p><p><b>  {</b></p><p>  if(temp2==0)</p><p><b>  {TR0=0;</b></p><p>  switch(temp1)</p><p><b>  {&l

36、t;/b></p><p>  case 1:sec1++;if(sec1==60)sec1=0;break;</p><p>  case 2:min1++;if(min1==60)min1=0;break;</p><p>  case 3:hour1++;if(hour1==24)hour1=0;break;</p><p>&l

37、t;b>  }</b></p><p>  while(!key2)</p><p>  display(hour1,min1,sec1);</p><p><b>  }</b></p><p>  if(temp2==1)</p><p><b>  {TR0=1

38、;</b></p><p>  switch(temp1)</p><p><b>  {</b></p><p>  case 1:day1++;if(day1==32)day1=1;break;</p><p>  case 2:mon1++;if(mon1==13)mon1=1;break;</p

39、><p>  case 3:year1++;if(year1==100)year1=0;break;</p><p><b>  }</b></p><p>  while(!key2)</p><p>  display(year1,mon1,day1);</p><p><b>  }&

40、lt;/b></p><p>  if(temp2==2)</p><p><b>  {TR0=1;</b></p><p>  switch(temp1)</p><p><b>  {</b></p><p>  case 1:sec2++;if(sec2==6

41、0)sec2=0;break;</p><p>  case 2:min2++;if(min2==60)min2=0;break;</p><p>  case 3:hour2++;if(hour2==24)hour2=0;break;</p><p><b>  }</b></p><p>  while(!key2)

42、</p><p>  display(hour2,min2,sec2);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key3==0)</p>

43、;<p><b>  {</b></p><p>  delay(10);</p><p>  if(key3==0)</p><p><b>  {</b></p><p>  if(temp2==0)</p><p><b>  {TR0=0;&

44、lt;/b></p><p>  switch(temp1)</p><p><b>  {</b></p><p>  case 1:if(sec1==0)sec1=60;sec1--;break;</p><p>  case 2:if(min1==0)min1=60;min1--;break;</p&g

45、t;<p>  case 3:if(hour1==0)hour1=24;hour1--;break;</p><p><b>  }</b></p><p>  while(!key3)</p><p>  display(hour1,min1,sec1);</p><p><b>  }<

46、/b></p><p>  if(temp2==1)</p><p><b>  {TR0=1;</b></p><p>  switch(temp1)</p><p><b>  {</b></p><p>  case 1:if(day1==1)day1=32;d

47、ay1--;break;</p><p>  case 2:if(mon1==1)mon1=13;mon1--;break;</p><p>  case 3:if(year1==0)year1=100;year1--;break;</p><p><b>  }</b></p><p>  while(!key3)&l

48、t;/p><p>  display(year1,mon1,day1);</p><p><b>  }</b></p><p>  if(temp2==2)</p><p><b>  {TR0=1;</b></p><p>  switch(temp1)</p>

49、<p><b>  {</b></p><p>  case 1:if(sec2==0)sec2=60;sec2--;break;</p><p>  case 2:if(min2==0)min2=60;min2--;break;</p><p>  case 3:if(hour2==0)hour2=24;hour2--;brea

50、k;</p><p><b>  }</b></p><p>  while(!key3)</p><p>  display(hour2,min2,sec2);</p><p><b>  }</b></p><p><b>  }</b></p

51、><p><b>  }</b></p><p>  if(key4==0)</p><p><b>  {</b></p><p>  delay(10);</p><p>  if(key4==0)</p><p><b>  {</b

52、></p><p><b>  temp1=0;</b></p><p><b>  temp2++;</b></p><p>  if(temp2==3)</p><p><b>  temp2=0;</b></p><p>  while(!k

53、ey4)</p><p>  switch(temp2)</p><p><b>  {</b></p><p>  case 0:display(hour1,min1,sec1);break;</p><p>  case 1:display(year1,mon1,day1);break;</p><

54、;p>  case 2:display(hour2,min2,sec2);break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  switch(temp2)</p>

55、;<p><b>  {</b></p><p>  case 0:display(hour1,min1,sec1);break;</p><p>  case 1:display(year1,mon1,day1);break;</p><p>  case 2:display(hour2,min2,sec2);break;<

56、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  //***************************************//</p><p>  //***************************************//</

57、p><p>  //發(fā)聲子程序 (林望桐負(fù)責(zé))</p><p>  //***************************************//</p><p>  void Music(uchar t) </p><p><b>  { </b></p><p>  uchar i,j;

58、</p><p>  for(i=0;i<200;i++) </p><p><b>  { </b></p><p>  bear=~bear; </p><p>  for(j=0;j<t;j++); //由參數(shù)t行成不同的頻率 </p><p><b>  }

59、</b></p><p><b>  } </b></p><p>  //***************************************//</p><p>  //***************************************//</p><p>  //鬧鐘功能(梁紹科負(fù)

60、責(zé))</p><p>  //***************************************//</p><p>  void alarm()</p><p><b>  {</b></p><p>  //uint i;

61、 </p><p>  if((hour1==hour2&&min1==min2&&(sec1>=sec2&&sec1<sec2+10)))//||(min1==0&&sec1<20))整點(diǎn)報警</p>

62、<p><b>  {</b></p><p>  //for(i=0;i<20;i++)</p><p><b>  //{</b></p><p>  //bear=~bear;</p><p>  //P1=~P1;</p><p> 

63、 Music(90);</p><p>  Music(120);</p><p>  switch(temp2)</p><p><b>  {</b></p><p>  case 0:display(hour1,min1,sec1);break;</p><p>  case 1:displ

64、ay(year1,mon1,day1);break;</p><p>  case 2:display(hour2,min2,sec2);break;</p><p><b>  }</b></p><p>  delay(10);</p><p><b>  //}</b></p>

65、<p><b>  bear=1;</b></p><p>  //P1=0xff;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //***********************************

66、****//</p><p>  //***************************************//</p><p>  //主程序 </p><p>  //***************************************//</p><p>  void main()</p>

67、<p><b>  {</b></p><p><b>  init();</b></p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  keyscan();</p>

68、<p><b>  alarm();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //***************************************//</p><p>  //定時器0

69、功能(梁紹科負(fù)責(zé))</p><p>  //***************************************//</p><p>  void time1()interrupt 1</p><p><b>  {</b></p><p><b>  uint m;</b></p&

70、gt;<p><b>  m++;</b></p><p>  if(m==3686)</p><p><b>  {</b></p><p><b>  m=0;</b></p><p><b>  sec1++;</b></p>

71、;<p>  if(sec1==60)</p><p><b>  {</b></p><p><b>  sec1=0;</b></p><p><b>  min1++;</b></p><p>  if(min1==60)</p><p&

72、gt;<b>  {</b></p><p><b>  min1=0;</b></p><p><b>  hour1++;</b></p><p>  if(hour1==24)</p><p><b>  { </b></p><

73、;p><b>  hour1=0;</b></p><p><b>  day1++;</b></p><p>  if(day1==32)</p><p><b>  {</b></p><p><b>  day1=1;</b></p>

74、;<p><b>  mon1++;</b></p><p>  if(mon1==13)</p><p><b>  {</b></p><p><b>  mon1=1;</b></p><p><b>  year1++;</b><

75、;/p><p>  if(year1==100)</p><p><b>  year1=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p&

76、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //******************************

77、*********//</p><p><b>  (二)硬件效果圖</b></p><p><b>  年月日顯示</b></p><p><b>  鬧鐘定時設(shè)置</b></p><p><b>  時分秒顯示</b></p><p

78、><b>  五、心得體會</b></p><p>  單片機(jī)作為我們主要的專業(yè)課程之一,我覺得單片機(jī)課程設(shè)計很有必要,而且很有意義。在這次課程設(shè)計中,運(yùn)用到了很多以前的專業(yè)知識,雖然過去從未獨(dú)立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計的一大收獲。另外,要做好一個課程設(shè)計,就必須做到:在設(shè)計程序之前,對所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片

79、機(jī)內(nèi)有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常德,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設(shè)計結(jié)束了,但是從中學(xué)到的知識會讓我受益終身。發(fā)現(xiàn)、

80、提出、分析、解決問題和實(shí)踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識</p><p>  通過這次設(shè)計,我懂得了學(xué)習(xí)的重要性,了解到理論知識與實(shí)踐相結(jié)合的重要意義,學(xué)會了堅持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我學(xué)會對困難無所畏懼,以

溫馨提示

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

評論

0/150

提交評論