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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 零件計(jì)數(shù)器 </p><p><b>  摘要</b></p><p>  本次單片機(jī)課程設(shè)計(jì)我組選擇的題目是零件計(jì)數(shù)器,零件計(jì)數(shù)器本身在生產(chǎn)實(shí)踐中具有很實(shí)際的用途,選擇這個項(xiàng)目可以繞過我們更好的把課堂上學(xué)到的課本

2、知識和理論內(nèi)容與生產(chǎn)實(shí)踐結(jié)合起來,提高對實(shí)際問題的動手操作能力以及解決問題的能力,進(jìn)一步加深學(xué)生對于實(shí)際的電子元件電路功能的理解與運(yùn)用,對于設(shè)計(jì)實(shí)際的實(shí)用程序來解決一系列生產(chǎn)生活遇到的問題的能力有著顯著的家加強(qiáng)與提高。零件計(jì)數(shù)器的功能是通過感應(yīng)器對零件數(shù)量進(jìn)行中斷計(jì)數(shù),并由數(shù)碼管動態(tài)顯示出來,并通過實(shí)用的程序?qū)⒘慵?shù)目通過串口傳送給PC機(jī),還能夠通過實(shí)時的檢測電路將之與蜂鳴器連接起來,起到整十報(bào)警以及零件打包的功能。</p>

3、<p>  基于單片機(jī)構(gòu)成的零件計(jì)數(shù)器研究的主要內(nèi)容包括:AT89C51單片機(jī)用何種方式對外部計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)顯示控制、LED顯示驅(qū)動模塊的選擇、如何通過串口與PC機(jī)完成實(shí)時連接。在這個設(shè)計(jì)中主要需要解決的問題便是如何提高AT89C51單片機(jī)的抗干擾能力以及穩(wěn)定性。</p><p>  關(guān)鍵字:單片機(jī) 零件計(jì)數(shù)器 LED顯示 串口連接</p><p><b>

4、  目錄</b></p><p><b>  第1章 系統(tǒng)設(shè)計(jì)</b></p><p>  1.1電路框圖·····················

5、·························3</p><p>  1.2軟件設(shè)計(jì)方框圖及流程圖·····&#

6、183;··························4</p><p>  1.3電路功能·····

7、;····································

8、83;····6</p><p><b>  第2章 計(jì)數(shù)器程序</b></p><p>  2.1分段程序及功能··················

9、······················8</p><p>  2.2問題及解決方案·········

10、······························11</p><p>  第3章 實(shí)驗(yàn)結(jié)果及討論<

11、/p><p>  3.1實(shí)驗(yàn)結(jié)果································&#

12、183;············11</p><p>  3.2結(jié)論···················

13、······························11</p><p>  3.3心得體會·&#

14、183;····································

15、·······12</p><p>  參考文獻(xiàn)·························

16、;························12</p><p>  附錄········

17、····································

18、3;········13</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  1.1 電路框圖</b></p><p>  電路總圖與功能如圖所示,每當(dāng)來一次外部中斷時,內(nèi)部計(jì)數(shù)一次,并將數(shù)值通過4位共陰數(shù)碼管動態(tài)顯示出來

19、。而單片機(jī)的P2口可以選擇四根不同的數(shù)碼管來動態(tài)顯示,通過視覺暫留達(dá)到同時顯示的效果。同時內(nèi)部程序檢測每當(dāng)計(jì)數(shù)十次時,會形成一個繼電器閉合的零件打包動作,并通過程序使得蜂鳴器發(fā)出警報(bào)。</p><p>  1.2 軟件設(shè)計(jì)方框圖及流程圖</p><p>  由于單片機(jī)實(shí)驗(yàn)箱的存在,因此硬件部分無需做過多準(zhǔn)備,只需根據(jù)硬件部分完成軟件設(shè)計(jì)即可,在此,我們使用基于單片機(jī)的C語言編程。C語言是一

20、種高級程序設(shè)計(jì)語言,其語法簡單適用性強(qiáng),在單片機(jī)編程時很方便。本次設(shè)計(jì)中使用的C語言編程軟件為Keil。</p><p><b>  軟件設(shè)計(jì)框圖如下:</b></p><p><b>  流程圖如下:</b></p><p>  編寫零件計(jì)數(shù)程序時應(yīng)當(dāng)注意需要事先的幾個功能,可以分段編寫,最后通過主程序連接。這段程序的重

21、點(diǎn)便是一段循環(huán)中斷計(jì)數(shù)程序,在數(shù)值加1的同時要給串口發(fā)出同樣的信息,每當(dāng)計(jì)數(shù)十次時還需要轉(zhuǎn)到零件打包以及蜂鳴器程序中執(zhí)行。</p><p><b>  1.3 電路功能</b></p><p>  B部分是單片機(jī)的最小系統(tǒng)部分,只有這部分電路正常,整個系統(tǒng)才能工作。單片機(jī)為內(nèi)含8K FLASH程序存儲器的STC89C52RC,EA接高電平;各并行口都加了10K的上拉電

22、阻;晶振為11.0592M。設(shè)置了上電復(fù)位和手動復(fù)位電路。S1為手動復(fù)位按鈕。</p><p>  C部分電路由4位一體的數(shù)碼管LED1、單個數(shù)碼管LED2和8個獨(dú)立發(fā)光二極管L1-L7組成。這3個部分都是共陰結(jié)構(gòu),并聯(lián)在一起,連接在P0口上。LED1用于完成LED動態(tài)顯示實(shí)驗(yàn),各個位選線為P24-P27,段碼由P0口輸出;LED2的COM端接地,完成LED靜態(tài)顯示實(shí)驗(yàn);L1-L7,可以方便地讀出P0輸出的二進(jìn)制

23、數(shù)據(jù),亦可做流水燈實(shí)驗(yàn)。7407在此起驅(qū)動作用。</p><p>  F部分電路是由555和電容組成的單穩(wěn)電路。當(dāng)S_INT0按鈕按下后產(chǎn)生一個低電平單穩(wěn)信號送單片機(jī)的INT0,同時D_PLUS1亮一次,作為外部中斷請求信號。</p><p>  I部分電路為蜂鳴器和繼電器電路。</p><p>  蜂鳴器采用9012三極管驅(qū)動,其基極接到RD端,當(dāng)RD端為低電平時

24、,三極管導(dǎo)通,蜂鳴器響。否則關(guān)斷。</p><p>  繼電器采用9013三極管驅(qū)動,其基極接到WR端,當(dāng)WRD端為低電平時,三極管關(guān)斷,繼電器不吸合,常閉觸點(diǎn)閉合,常開觸點(diǎn)打開,D1熄滅;反之則反。</p><p><b>  第2章 計(jì)數(shù)器程序</b></p><p>  2.1 分段程序及功能</p><p>  

25、*******************開頭及引腳對應(yīng)程序******************</p><p>  #include < reg51.h ></p><p>  sbit BEEP=P3^7; </p><p>  sbit JDQ=P3^6;</p><p>  unsigned int Ledcount=0;&

26、lt;/p><p>  unsigned int LedOut[8];</p><p>  **********************LED數(shù)字碼表********************</p><p>  unsigned char code MABIAO[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

27、</p><p>  ************************延時函數(shù)***********************</p><p>  void delay(unsigned int i)</p><p><b>  {</b></p><p><b>  char j;</b></

28、p><p>  for(i;i>0;i--)</p><p>  for(j=200;j>0;j--);</p><p><b>  }</b></p><p>  **********************串口發(fā)送函數(shù)*********************</p><p>  vo

29、id sint()</p><p><b>  {</b></p><p>  SBUF = Ledcount%10000/1000 + 0x30;</p><p>  while(!TI);</p><p><b>  TI=0;</b></p><p>  SBUF=Le

30、dcount%1000/100+ 0x30;</p><p>  while(!TI);</p><p><b>  TI=0;</b></p><p>  SBUF=Ledcount%100/10+ 0x30;</p><p>  while(!TI);</p><p><b>  T

31、I=0;</b></p><p>  SBUF=Ledcount%10+ 0x30;</p><p>  while(!TI);</p><p><b>  TI=0;</b></p><p>  SBUF='\n';</p><p>  while(!TI);<

32、/p><p><b>  TI=0;</b></p><p><b>  }</b></p><p>  **********************LED顯示程序********************</p><p>  void display()</p><p><

33、b>  { </b></p><p><b>  int i;</b></p><p>  LedOut[0]=MABIAO[Ledcount%10000/1000];</p><p>  LedOut[1]=MABIAO[Ledcount%1000/100];</p><p>  LedOut[2]

34、=MABIAO[Ledcount%100/10];</p><p>  LedOut[3]=MABIAO[Ledcount%10];</p><p>  for(i=0;i<4;i++) </p><p><b>  { </b></p><p>  P0=LedOut[i];</p><

35、;p>  switch(i) </p><p><b>  { </b></p><p>  case 0:P2=0xef;</p><p>  break; </p><p>  case 1:P2=0xdf;</p><p>  break;

36、 </p><p>  case 2:P2=0xbf;</p><p><b>  break; </b></p><p>  case 3:P2=0x7f;</p><p><b>  break; </b></p><p><b>  }<

37、/b></p><p>  delay(100);</p><p><b>  }</b></p><p><b>  }</b></p><p>  ***********************初始化函數(shù)**********************</p><p>

38、  void init()</p><p><b>  {</b></p><p>  EA=1; //允許中斷</p><p>  EX0=1; //允許外部中斷0</p><p>  IT0=1; //下降沿觸發(fā)</p><p>  TR1=1; //啟

39、動T1定時器</p><p>  TMOD=0x20; //定時器T1為工作方式2,初值自動重裝八位計(jì)數(shù)器 </p><p>  TL1=0xfd; //預(yù)備單元</p><p>  TH1=0xfd; //計(jì)數(shù)初值設(shè)定,波特率9600</p><p>  SCON=0x50; //串行口為方式1,10步異位收發(fā)(1+8+1)<

40、;/p><p>  PCON=0x00; //特殊功能寄存器都為0,波特率不加倍</p><p><b>  }</b></p><p>  *********************INT0中斷函數(shù)*********************</p><p>  void int0(void) interrupt 0 &l

41、t;/p><p><b>  {</b></p><p>  Ledcount++; //中斷計(jì)數(shù)</p><p>  if((Ledcount%10==0)&&(Ledcount!=0))</p><p><b>  {</b></p><p><

42、b>  BEEP=0;</b></p><p>  delay(10000);</p><p><b>  BEEP=1;</b></p><p><b>  JDQ=~JDQ;</b></p><p><b>  }</b></p><p

43、>  if(Ledcount>9999) //超出計(jì)數(shù)上限后清零</p><p>  Ledcount=0;</p><p><b>  sint(); </b></p><p><b>  }</b></p><p>  *************************主程序

44、************************</p><p>  void main(void)</p><p><b>  { </b></p><p><b>  init();</b></p><p><b>  while(1)</b></p>&l

45、t;p><b>  { </b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p>  2.2問題及解決方案</p><p>  問題1:運(yùn)用指數(shù)函數(shù)計(jì)數(shù)

46、以及選擇四根數(shù)碼管顯示,導(dǎo)致程序運(yùn)行速度過慢,燈光閃爍。</p><p>  解決方案:改進(jìn)后去掉指數(shù)函數(shù),改用每一根數(shù)碼管分別使用計(jì)算出顯示數(shù)值的方法。</p><p>  問題2:計(jì)數(shù)值達(dá)到時蜂鳴器持續(xù)響,直到按下第十一次計(jì)數(shù)按鍵方才停止。</p><p>  解決方案:在蜂鳴器程序中增加BEEP清零和延時語句,可以讓蜂鳴器在計(jì)數(shù)第十次時只響一聲,并可改變響的時

47、間。</p><p>  第3章 實(shí)驗(yàn)結(jié)果及討論</p><p><b>  3.1實(shí)驗(yàn)結(jié)果</b></p><p>  本此課程設(shè)計(jì),使用到Keil C51編程器、燒寫工具以及串口助手等軟件工具。先是利用Keil軟件編寫程序,編譯無錯后再利用燒寫工具將其燒寫進(jìn)52單片機(jī)中,按下S_INT0按鈕,可得到LED動態(tài)顯示數(shù)據(jù)的變化,本次設(shè)計(jì)中用到4

48、個數(shù)碼管,也就是說,最高顯示零件數(shù)目可達(dá)9999個。另外,還可以利用串口助手,將零件數(shù)目實(shí)時傳送給PC機(jī),此結(jié)果可在串口助手上觀察到。結(jié)果是完全符合所需零件計(jì)數(shù)器的要求的。至此,可以說本次設(shè)計(jì)是成功的。</p><p><b>  3.2結(jié)論</b></p><p>  本次課程設(shè)計(jì)的主要特點(diǎn)是利用C51編程實(shí)現(xiàn)基于單片機(jī)的零件計(jì)數(shù)器,而非使用匯編語言。在編程中,要學(xué)

49、會寫出各種子程序,然后合理的調(diào)用它們,還要根據(jù)實(shí)際顯示結(jié)果不斷地去修改和完善,使其最終顯示出符合要求的結(jié)果,這不僅考察了我對于單片這門課的學(xué)習(xí)掌握情況,還考察了我對C語言的基礎(chǔ)知識是否扎實(shí),是否可以將所學(xué)的學(xué)科融會貫通。此外,還有其他的特點(diǎn),設(shè)計(jì)中用到燒寫工具以及串口助手等軟件工具,無需考慮硬件設(shè)計(jì),只需完成軟件設(shè)計(jì)部分。本次課程設(shè)計(jì)完成了基于單片機(jī)的零件計(jì)數(shù)器的設(shè)計(jì),讓我對于單片機(jī)的學(xué)習(xí)有了更深一層的領(lǐng)悟。</p>&l

50、t;p><b>  3.3心得體會</b></p><p>  經(jīng)過這段時間的學(xué)習(xí),我對單片機(jī)原理與運(yùn)用也有了更深層次的了解,同時也對過去所學(xué)的知識進(jìn)行了溫習(xí),對我組設(shè)計(jì)的課題《零件計(jì)數(shù)器》所用到的知識也進(jìn)行了專門的梳理和消化。這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高

51、自己的實(shí)際動手能力和獨(dú)立思考的能力。通過這次課程設(shè)計(jì),我也知道了自己的不足。書本上的知識是死的,只有通過實(shí)踐和具體的實(shí)例運(yùn)用,才能真正掌握知識、取得進(jìn)步。 這次課程設(shè)計(jì)的經(jīng)歷使我終身受益,我感受到做任何事情都是要真正用心去做的,也是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會有所突破。</p><p><b>  參考文獻(xiàn)</b></p>

52、<p>  [1] 張有德 趙志英 涂時亮編著,單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).第五版.</p><p>  上海.復(fù)旦大學(xué)出版社.2006</p><p>  [2] 丁海軍、何坤金、王林等編著,程序設(shè)計(jì)基礎(chǔ)(C語言).北京.北京航空航天大學(xué)出版社.2009</p><p><b>  附錄</b></p><

溫馨提示

  • 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

提交評論