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

下載本文檔

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

文檔簡介

1、<p><b>  單</b></p><p><b>  片</b></p><p><b>  機(jī)</b></p><p><b>  課</b></p><p><b>  程</b></p><p

2、><b>  設(shè)</b></p><p><b>  計(jì)</b></p><p><b>  報(bào)</b></p><p><b>  告</b></p><p><b>  一、目的與意義</b></p><

3、p>  《單片微機(jī)原理及應(yīng)用》是一門技術(shù)性、應(yīng)用性很強(qiáng)的學(xué)科,實(shí)驗(yàn)課教學(xué)是它的一個(gè)極其重要的環(huán)節(jié)。不論是硬件擴(kuò)展、接口應(yīng)用還是編程方法、程序調(diào)試,都離不開實(shí)驗(yàn)課教學(xué)。如果不在切實(shí)認(rèn)真地抓好學(xué)生的實(shí)踐技能的鍛煉上下功夫,單憑課堂理論課學(xué)習(xí),勢必出現(xiàn)理論與實(shí)踐脫節(jié),學(xué)習(xí)與應(yīng)用脫節(jié)的局面。任隨書本上單片微機(jī)技術(shù)介紹得多么重要、多么實(shí)用、多么好用,同學(xué)們?nèi)匀粫?huì)感到那只是空中樓閣,離自己十分遙遠(yuǎn),或者會(huì)因此對它失去興趣,或者會(huì)感到它高深莫測

4、無從下手,這些情況都會(huì)令課堂教學(xué)的效果大打折扣。</p><p>  《單片微機(jī)課程設(shè)計(jì)》的目的就是讓同學(xué)們在理論學(xué)習(xí)的基礎(chǔ)上,通過完成一個(gè)涉及MCS-51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用,使學(xué)生不但能夠?qū)⒄n堂上學(xué)到的理論知識與實(shí)際應(yīng)用結(jié)合起來,而且能夠?qū)﹄娮与娐?、電子元器件、印制電路板等方面的知識進(jìn)一步加深認(rèn)識,同時(shí)在軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面 得到

5、較全面的鍛煉和提高,為今后能夠獨(dú)立進(jìn)行單片機(jī)應(yīng)用系統(tǒng)的開發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。</p><p><b>  二、硬件電路圖</b></p><p><b>  1、主板</b></p><p><b>  2、四位數(shù)碼管</b></p><p>  3、八位LED流水燈&l

6、t;/p><p><b>  4、蜂鳴器</b></p><p><b>  5、串口</b></p><p><b>  三、程序流程圖</b></p><p>  五、實(shí)現(xiàn)的功能及現(xiàn)象</p><p><b>  1、鍵盤掃描輸入</b&

7、gt;</p><p>  當(dāng)程序運(yùn)行時(shí),自動(dòng)檢測是否有按鍵按下,是哪個(gè)按鍵按下,并且通過返回值,在四位數(shù)碼管上顯示出按下鍵所對應(yīng)的數(shù)字、字母或執(zhí)行相應(yīng)的功能。</p><p><b>  2、四位數(shù)碼管顯示</b></p><p>  通過四位數(shù)碼管顯示相應(yīng)的按鍵值、提示語或者執(zhí)行相關(guān)功能。</p><p><b

8、>  3、八位流水燈</b></p><p>  程序運(yùn)行時(shí),當(dāng)按下“B”功能鍵,八位流水燈依次循環(huán)點(diǎn)亮熄滅。</p><p><b>  4、秒表</b></p><p>  程序運(yùn)行時(shí),當(dāng)按下“C”功能鍵,數(shù)碼管清零,從零開始逐秒增加。</p><p><b>  5、串口通信</b

9、></p><p>  程序運(yùn)行時(shí),當(dāng)按下“F”功能鍵,數(shù)碼管顯示“232C”,提示進(jìn)行串口輸入,當(dāng)從串口助手中輸入控制字符時(shí),八位LED燈得到對應(yīng)的結(jié)果。例如:當(dāng)輸入“00”時(shí),八位燈全亮;當(dāng)輸入“AA”時(shí),八位燈間隔亮。</p><p>  6、蜂鳴器做按鍵提示音</p><p>  程序運(yùn)行時(shí),除串口功能鍵“F”外,按下任意鍵,在執(zhí)行功能的同時(shí),會(huì)有短暫

10、的“滴”聲,當(dāng)執(zhí)行秒表功能時(shí),蜂鳴器會(huì)持續(xù)發(fā)聲,直到秒表停止。</p><p><b>  六、收獲體會(huì)</b></p><p>  通過這次單片機(jī)課程設(shè)計(jì),我對單片機(jī)系統(tǒng)設(shè)計(jì)更加熟悉,初步學(xué)會(huì)了單片機(jī)程序的編程及調(diào)試和主板硬件的焊接技術(shù)。在這個(gè)過程中,我認(rèn)識到,單片機(jī)的學(xué)習(xí)需要有耐心,并且持之以恒,堅(jiān)持不懈,同時(shí)還要不斷進(jìn)行嘗試,不要害怕犯錯(cuò),要在錯(cuò)誤中學(xué)習(xí)、進(jìn)步。

11、</p><p>  其中,最困難的就是程序的編寫與調(diào)試,因?yàn)椋瑢懞靡粋€(gè)程序,往往需要很長時(shí)間,之后還需要不斷的調(diào)試,才能得到理想的結(jié)果。還有就是,要實(shí)現(xiàn)一個(gè)單獨(dú)的功能比較容易,然而,把這些功能綜合到一起,就會(huì)出現(xiàn)問題,會(huì)出現(xiàn)很多沖突,最后只好放棄一些功能。所以我們在設(shè)計(jì)和編寫程序的時(shí)候都必須充分考慮到這些因素,才能得到理想的效果。</p><p><b>  附:實(shí)驗(yàn)程序<

12、;/b></p><p>  #include<reg52.h></p><p>  #include<string.h></p><p>  #include<absacc.h></p><p>  #define WR273 XBYTE[0xc000]</p><p>  

13、#define RD244 XBYTE[0xc000]</p><p>  #define dis_play XBYTE[0Xa000]=XBYTE[0Xb000]=XBYTE[0X9000]=XBYTE[0X8000]</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int

14、</p><p><b>  uchar t1;</b></p><p>  uchar x,flag;</p><p>  sbit c=P0^1;</p><p>  void Delay(uint z);</p><p>  /////////////////////////////////

15、///////////////</p><p>  uchar m,fen,miao,t,temp;</p><p>  uchar dis_16_1[]={</p><p>  0xC0,0xF9,0xA4,0xB0,</p><p>  0x99,0x92,0x82,0xF8,</p><p>  0x80,0x9

16、0,0x88,0x83,</p><p>  0xC6,0xA1,0x86,0x8E};//無小數(shù)點(diǎn)</p><p>  uchar dis_16_2[]={</p><p>  0x40,0x79,0x24,0x30,</p><p>  0x19,0x12,0x02,0x78,</p><p>  0x00,0x1

17、0,0x08,0x03,</p><p>  0x46,0x21,0x06,0x0E};//含有小數(shù)點(diǎn)</p><p>  uchar dis_10[]={0xff,</p><p>  0xF9,0xA4,0xB0,0x99,0x92,//1~5</p><p>  0x82,0xF8,0x80,0x90,0xC0,//6~0</p&

18、gt;<p>  0x88,0x83,0xC6,0xA1,0x86,0x8E};//A~F </p><p>  /////////////////////////////////////////</p><p>  uchar key_test()</p><p><b>  {</b></p><p&g

19、t;  WR273=0xf0;</p><p>  if((RD244&0x0f)!=0x0f)</p><p><b>  {</b></p><p><b>  return 1;</b></p><p><b>  c=0;</b></p><

20、p><b>  }</b></p><p>  else return 0;</p><p><b>  }</b></p><p>  /////////////////////////////////////////////</p><p>  void time_init()</p

21、><p><b>  {</b></p><p>  TMOD=0x01;</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p>  EA=1;ET0=1;TR0=1;</p><p>

22、;  XBYTE[0x8000]=0xc7;</p><p>  XBYTE[0x9000]=0xc7;</p><p>  XBYTE[0xa000]=0x86;</p><p>  XBYTE[0xb000]=0x89;</p><p><b>  }</b></p><p>  void t

23、ime_dis()</p><p><b>  {</b></p><p>  XBYTE[0x8000]=dis_16_1[m%10];</p><p>  XBYTE[0x9000]=dis_16_2[miao%10];</p><p>  XBYTE[0xa000]=dis_16_1[miao/10];</p

24、><p>  XBYTE[0xb000]=dis_16_2[fen%10];</p><p><b>  }</b></p><p>  void time_work()</p><p><b>  {</b></p><p><b>  if(t1==2)</

25、b></p><p><b>  {</b></p><p><b>  t1=0;m++;</b></p><p><b>  if(m==10)</b></p><p><b>  {</b></p><p>  m=0;

26、miao++;</p><p>  if(miao==60)</p><p><b>  {</b></p><p>  miao=0;fen++;</p><p>  if(fen==10)fen=0;</p><p><b>  }</b></p><

27、p><b>  } </b></p><p><b>  }</b></p><p>  time_dis(); </p><p><b>  }</b></p><p>  /////////////////////////////////////////

28、////////延時(shí)</p><p>  void Delay(uint z)</p><p><b>  {</b></p><p><b>  uint y;</b></p><p>  for(;z>0;z--)</p><p><b>  {</

29、b></p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////////////////////////////////////////// 鍵盤掃描</p&

30、gt;<p>  void scan(uchar value,uchar num,uchar *p)</p><p><b>  {</b></p><p>  uchar key;</p><p>  XBYTE[0Xc000]=value;</p><p>  key=XBYTE[0Xc000];<

31、;/p><p>  if((key&0X01)!=0X01)</p><p><b>  {</b></p><p>  Delay(2);key=XBYTE[0Xc000];</p><p>  if((key&0X01)!=0X01) *p=1+num;</p><p><

32、b>  } </b></p><p>  if((key&0X02)!=0X02)</p><p><b>  {</b></p><p>  Delay(2);key=XBYTE[0Xc000];</p><p>  if((key&0X02)!=0X02) *p=5+num;<

33、;/p><p><b>  }</b></p><p>  if((key&0X04)!=0X04)</p><p><b>  {</b></p><p>  Delay(2);key=XBYTE[0Xc000];</p><p>  if((key&0X04

34、)!=0X04) *p=9+num;</p><p><b>  } </b></p><p>  if((key&0X08)!=0X08)</p><p><b>  {</b></p><p>  Delay(2);key=XBYTE[0Xc000];</p><p

35、>  if((key&0X08)!=0X08) *p=13+num;</p><p><b>  } </b></p><p><b>  }</b></p><p>  uchar key_scan()</p><p><b>  {</b></p>

36、<p>  uchar key_value;</p><p>  scan(0Xf7,0,&key_value);//第一列</p><p>  scan(0Xfb,1,&key_value);//第二列</p><p>  scan(0Xfd,2,&key_value);//第三列</p><p>  

37、scan(0Xfe,3,&key_value);//第四列</p><p>  return key_value;</p><p><b>  }</b></p><p>  ///////////////////////////////////////////////////////////////</p><p&

38、gt;  //////////////////////////////////////////////////////////////串口</p><p>  void serial_init()</p><p><b>  {</b></p><p>  TMOD=0x20;//定時(shí)器一為工作方式二</p><p> 

39、 SM0=0;SM1=1;REN=1;</p><p>  TH1=0xf4;TL1=0xf4;</p><p>  TR1=1;ES=1;EA=1;</p><p><b>  }</b></p><p>  void serial()</p><p><b>  {</b>

40、;</p><p>  serial_init();</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(flag==1)</p><p><b>  {</b></p>

41、<p><b>  flag=0;</b></p><p><b>  ES=0;</b></p><p><b>  SBUF=x;</b></p><p>  while(!TI);</p><p><b>  TI=0;</b></p

42、><p><b>  ES=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void ser() interrupt 4</

43、p><p><b>  {</b></p><p><b>  RI=0;</b></p><p><b>  P1=SBUF;</b></p><p><b>  x=SBUF;</b></p><p><b>  flag

44、=1;</b></p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////////</p><p>  /////////////////////////////////////////////////////////

45、///</p><p>  void lsd() //流水燈</p><p><b>  {</b></p><p>  uchar temp,i;</p><p>  temp=0xfe;</p><p><b>  while(1)</b></p>&l

46、t;p><b>  { </b></p><p>  if(key_test())</p><p><b>  return;</b></p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p&

47、gt;  if(key_test())</p><p><b>  return;</b></p><p><b>  P1=temp;</b></p><p>  Delay(100);</p><p>  temp=(temp<<1)|0x01;</p><p&g

48、t;<b>  }</b></p><p>  temp=0x7f;</p><p>  for(i=7;i>0;i--)</p><p><b>  {</b></p><p>  if(key_test())</p><p><b>  return;&l

49、t;/b></p><p><b>  P1=temp;</b></p><p>  Delay(100);</p><p>  temp=(temp>>1)|0x80;</p><p><b>  }</b></p><p><b>  } &

50、lt;/b></p><p><b>  } </b></p><p>  //////////////////////////////////////////</p><p>  void key_firm()</p><p><b>  {</b></p><p>

51、  temp=key_scan();</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 1: dis_play=dis_10[temp]; break;//1</p><p>  case 2: dis_play=dis_10[temp]; break

52、;//2</p><p>  case 3: dis_play=dis_10[temp]; break;//3</p><p>  case 4: dis_play=dis_10[temp]; break;//4</p><p>  case 5: dis_play=dis_10[temp]; break;//5</p><p>  c

53、ase 6: dis_play=dis_10[temp]; break;//6</p><p>  case 7: dis_play=dis_10[temp]; break;//7</p><p>  case 8: dis_play=dis_10[temp]; break;//8</p><p>  case 9: dis_play=dis_10[temp

54、]; break;//9</p><p>  case 10: dis_play=dis_10[temp]; break;//0</p><p>  case 11: dis_play=dis_10[temp]; break;//A</p><p>  case 12: lsd(); break;//流水燈</p><p>

55、;  case 13: time_work(); break;//秒表</p><p>  case 15: time_init(); break;//復(fù)位</p><p>  case 16: {XBYTE[0x8000]=0xc6;XBYTE[0x9000]=0xa4;</p><p>  XBYTE[0xa000]=0xb0;XBYTE[0xb00

56、0]=0xa4;</p><p>  serial();}break;//串口</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b><

57、;/p><p>  time_init();</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  key_firm();</p><p><b>  }</b></p><p&

58、gt;<b>  }</b></p><p>  void time_sm() interrupt 1/*定時(shí)器0中斷程序,定時(shí)50毫秒*/</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論