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

下載本文檔

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

文檔簡介

1、<p>  第一章 單片機(jī)概述</p><p>  單片機(jī)是20世紀(jì)70年代中期發(fā)展起來的一種大規(guī)模集成電路器件。它在一塊芯片內(nèi)芯片內(nèi)集成了計(jì)算機(jī)的各種功能部件,構(gòu)成一種單片式的微型計(jì)算機(jī)。20世紀(jì)80年代以來,國際上單片機(jī)的發(fā)展迅速,其產(chǎn)品之多令人目不暇接,單片機(jī)應(yīng)用不斷深入,新技術(shù)層出不窮。單片機(jī)的應(yīng)用技術(shù)是一項(xiàng)新型的工程技術(shù),其內(nèi)涵隨著單片機(jī)的發(fā)展而發(fā)展。由于MCS-51系列的單

2、片機(jī)的模塊化結(jié)構(gòu)比較典型、應(yīng)用靈活,為許多大公司所采納,使8051系列的單片產(chǎn)品日新月異。在Intel公司20世紀(jì)80年代初推出MCS-51系列單片機(jī)以后,世界上許多著名的半導(dǎo)體廠商相繼生產(chǎn)和這個(gè)系列兼容的單片機(jī),使產(chǎn)品型號(hào)不斷地增加、品種不斷豐富、功能不斷加強(qiáng),在國內(nèi)外單片機(jī)應(yīng)用中占有重要地位。由于單片機(jī)具有功能強(qiáng)、體積小、價(jià)格低等一系列優(yōu)點(diǎn),在各個(gè)領(lǐng)域都有廣泛的應(yīng)用,有力地推動(dòng)了各行各業(yè)的技術(shù)改造和產(chǎn)品更新?lián)Q代。20世紀(jì)末,電子技

3、術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。</p><p>  第二章 MSC-51芯片簡介</p><p>  8051是MCS-51系列單片機(jī)的典型產(chǎn)品。</p><p>  8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(

4、ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p><b>  ·中央處理器:</b></p><p>  中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)

5、的工作,完成運(yùn)算和控制輸入輸出功能等操作。</p><p>  ·數(shù)據(jù)存儲(chǔ)器(RAM)</p><p>  8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。</p>

6、<p>  ·程序存儲(chǔ)器(ROM):</p><p>  8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p><p>  ·定時(shí)/計(jì)數(shù)器(ROM):</p><p>  8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p>  

7、83;并行輸入輸出(I/O)口:</p><p>  8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。</p><p><b>  ·全雙工串行口:</b></p><p>  8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。&

8、lt;/p><p><b>  ·中斷系統(tǒng):</b></p><p>  8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。</p><p><b>  ·時(shí)鐘電路:</b></p><p>  8051內(nèi)

9、置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。</p><p>  單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列

10、單片機(jī)則采用普林斯頓結(jié)構(gòu)。</p><p><b>  第三章 設(shè)計(jì)方案</b></p><p><b>  1.課程設(shè)計(jì)要求:</b></p><p>  1)、以MCS-51系列單片機(jī)為核心器件組成交通燈控制系統(tǒng),采用定時(shí)中斷實(shí)現(xiàn)精確定時(shí);</p><p>  2)、利用提供單元模塊構(gòu)成硬件系統(tǒng)

11、。</p><p><b>  系統(tǒng)完成內(nèi)容如下:</b></p><p>  正常情況下,A、B道(A、B道交叉組成十字路口,A是主道,B是支道)輪流放行,A道放行60秒(兩個(gè)數(shù)碼管從60秒開始倒數(shù),其中5秒用于警告),B道放行30秒(兩個(gè)數(shù)碼管從30秒開始倒數(shù),其中5秒用于警告)。</p><p>  3)、一道有車而另一道無車(用按鍵開關(guān)

12、S1、S2模擬)時(shí),使有車車道放行。</p><p>  4)、有緊急車輛通過(用按鍵開關(guān)S0模擬)時(shí),A、B道均為紅燈(兩次按下S0后,回復(fù)正常狀態(tài))。</p><p><b>  要求:</b></p><p>  3)、編寫系統(tǒng)的程序,完成系統(tǒng)的分、秒的計(jì)時(shí)功能</p><p><b>  2.具體編程過

13、程:</b></p><p><b>  根據(jù)要求我首先想到</b></p><p>  顯示界面:采用數(shù)碼管和LED燈相結(jié)合的方法,因?yàn)閷?shí)際既要求倒計(jì)時(shí)施主輸出,又要求又狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)狀況,用2個(gè)數(shù)碼管與12個(gè)LED分別顯示時(shí)間和提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度??紤]到數(shù)碼顯示我采用了動(dòng)態(tài)顯示的方法,這

14、是原理圖里只有一個(gè)數(shù)碼顯示管亮的原因。按鍵方面我用了三個(gè),一個(gè)用于A道無車,一個(gè)用于B道無車,一個(gè)用于特殊情況,都紅的情況。 </p><p><b>  主控制方案</b></p><p>  采用AT89C51單片機(jī)作為控制器,控制整個(gè)反感實(shí)行通行倒計(jì)時(shí)及A道、B道、一道有車和特殊情況都為無車情況、通過變成方案設(shè)計(jì)占用單片機(jī)的端口盡量最少,硬件也做到能少最好的地步

15、。 </p><p>  第四章 具體實(shí)現(xiàn)的程序</p><p>  #include <at89x52.h></p><p><b>  bit flag;</b></p><p>  void Adao(void);</p><p>  void Bdao(void);</

16、p><p>  void theshu(void);</p><p>  #define uint unsigned char</p><p>  #define uchar unsigned char</p><p>  void delay_ms(uint delay);</p><p>  void jjj(voi

17、d) ;</p><p>  uchar sum=0;</p><p>  uchar count=0;</p><p>  uchar flag3=0;</p><p>  void xianshi(void);</p><p><b>  bit flag;</b></p>&

18、lt;p>  sbit p36=P3^6 ;</p><p>  sbit p37=P3^7 ;</p><p>  sbit p32=P3^2;</p><p>  uchar code LED_Val[]={0xc0,0xf9,0xa4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x98};</p><p>

19、  uchar data num[4];</p><p>  uchar data led_point[2]={0xfd,0xfe};</p><p>  void disp(uint disp_value);</p><p>  void bcd(uint bcd_value);</p><p>  uchar att;</p>

20、<p>  void system(void);</p><p>  /////////////// 定時(shí) 1s</p><p>  void T0_srv(void) interrupt 1 using 2</p><p><b>  {</b></p><p><b> 

21、 TH0=0x3c;</b></p><p><b>  TL0=0xb0;</b></p><p><b>  count++;</b></p><p>  if(count==20)</p><p><b>  {count=0;</b></p>

22、<p><b>  flag=1;</b></p><p><b>  sum++ ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ///////////////////

23、中斷全紅的情況</p><p>  void int_0srv(void) interrupt 0 using 1</p><p>  { flag3++;</p><p><b>  }</b></p><p>  /////////int//111/// 特殊</p><p>  void

24、jjj (void)</p><p><b>  {</b></p><p>  uchar temp1,temp=sum;</p><p><b>  sum=0; </b></p><p><b>  temp1=P1;</b></p><p>&l

25、t;b>  P1=0x36;</b></p><p>  //delay_ms(2);</p><p>  //if(!INT0)</p><p>  if(flag3==1)</p><p>  {while(sum<15)</p><p><b>  { </b>&l

26、t;/p><p>  disp(15-sum);</p><p>  //while(!INT0);</p><p><b>  } } </b></p><p>  ////////////</p><p>  if(flag3==2)</p><p><b>  

27、{ </b></p><p><b>  P1=temp1;</b></p><p><b>  sum=temp;</b></p><p><b>  flag3=0;</b></p><p><b>  }</b></p>&

28、lt;p><b>  }</b></p><p>  /////////////////////////////// 延時(shí) </p><p>  void delay_ms(uint delay)</p><p><b>  {</b>&l

29、t;/p><p><b>  uchar i;</b></p><p>  while(delay--)</p><p><b>  {</b></p><p>  for(i=0;i<125;i++);</p><p><b>  }</b><

30、/p><p>  } </p><p>  //////////////////////// B道正常情況</p><p>  void Bdao(void)</p><p><b>  {</b></p><p><b>  sum=0; </b></

31、p><p>  while(sum<25)</p><p>  { if(flag3!=0) jjj(); </p><p>  if(p36==0) { EA=0; </p><p><b>  P1=0x1e;</b></p><p><b>  }</b></

32、p><p><b>  EA=1;</b></p><p>  if(p37==0){EA=0; </p><p><b>  P1=0x33;</b></p><p><b>  }</b></p><p><b>  EA=1;</b

33、></p><p><b>  P1=0x33;</b></p><p>  disp(30-sum);</p><p>  //while(!flag);</p><p><b>  flag=0;</b></p><p><b>  //sum++;<

34、;/b></p><p><b>  }</b></p><p><b>  //sum=0;</b></p><p>  while(sum<30)</p><p>  {if(flag3==1) jjj(); </p><p>  while(p36==0){

35、</p><p><b>  EA=0; </b></p><p><b>  P1=0x1e;</b></p><p><b>  }</b></p><p><b>  EA=1;</b></p><p>  while(p3

36、7==0){EA=0; </p><p><b>  P1=0x33;</b></p><p><b>  }</b></p><p><b>  EA=1;</b></p><p><b>  P1=0x2D;</b></p><

37、p>  disp(30-sum);</p><p>  while(!flag);</p><p><b>  flag=0;</b></p><p><b>  //sum++;</b></p><p><b>  }</b></p><p>&

38、lt;b>  sum=0;</b></p><p><b>  P1=0;</b></p><p><b>  }</b></p><p>  //////////////////////// A到正常</p><p>  void Adao(void)</p>

39、<p><b>  { </b></p><p>  while(sum<55)</p><p>  {if(flag3==1) jjj(); </p><p>  while(p36==0) { EA=0; </p><p><b>  P1=0x1e;</b></p>

40、;<p><b>  }</b></p><p><b>  EA=1;</b></p><p>  while(p37==0){EA=0; </p><p><b>  P1=0x33;</b></p><p><b>  }</b>&

41、lt;/p><p><b>  EA=1;</b></p><p>  disp(60-sum);</p><p><b>  P1=0x1e;</b></p><p>  ////////while(!flag);</p><p><b>  flag=0;</

42、b></p><p><b>  //sum++;</b></p><p><b>  }</b></p><p><b>  //sum=0;</b></p><p>  //P1=0x11;</p><p>  while(sum<60)

43、</p><p>  {if(flag3==1) jjj(); </p><p>  while(p36==0) {</p><p><b>  EA=0; </b></p><p><b>  P1=0x1e;</b></p><p><b>  }</

44、b></p><p><b>  EA=1;</b></p><p>  while(p37==0){</p><p><b>  EA=0; </b></p><p><b>  P1=0x33;</b></p><p><b>  

45、}</b></p><p><b>  EA=1;</b></p><p><b>  P1=0x2D;</b></p><p>  disp(60-sum);</p><p>  while(!flag);</p><p><b>  flag=0;&

46、lt;/b></p><p><b>  sum++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ///////////////////////系統(tǒng)初始化</p><p>  v

47、oid system(void)</p><p><b>  {</b></p><p>  TMOD=0x01;</p><p><b>  TH0=0x3c;</b></p><p><b>  TL0=0xb0;</b></p><p><b

48、>  ET0=1;</b></p><p><b>  EA=1;</b></p><p><b>  TR0=1;</b></p><p><b>  EX0=1;</b></p><p><b>  IT0=1;</b></p&

49、gt;<p><b>  }</b></p><p>  ///////////////////////顯示函數(shù)</p><p>  void disp(uint disp_value)</p><p><b>  {</b></p><p><b>  uchar i;

50、</b></p><p>  bcd(disp_value);</p><p>  for(i=0;i<2;i++)</p><p><b>  {</b></p><p><b>  P2=0;</b></p><p>  P0=LED_Val[num[i

51、]];</p><p>  P2=led_point[i];</p><p>  delay_ms(50);</p><p><b>  }</b></p><p><b>  }</b></p><p>  ////////////</p><p>

52、  void bcd(uint bcd_value)</p><p><b>  {</b></p><p>  num[0]=bcd_value/10;</p><p>  num[1]=bcd_value%10;</p><p><b>  }</b></p><p> 

53、 //////////////////主函數(shù)</p><p>  void main(void)</p><p><b>  {P1=0x00;</b></p><p>  system() ;</p><p>  while(1) {</p><p><b>  Adao();

54、</b></p><p><b>  Bdao();</b></p><p><b>  } }</b></p><p>  第五章 課程設(shè)計(jì)總結(jié)</p><p>  本次課程設(shè)計(jì)時(shí)間雖然非常短暫,但給我的收獲是非常大的。在上課的時(shí)候,就對單片機(jī)產(chǎn)生了非常濃厚的興趣。對單片機(jī)編程有了新

55、的認(rèn)識(shí),在課程有通過自己動(dòng)手實(shí)際做,對編程和硬件焊接都有了新的認(rèn)識(shí),這次我做的十字路口紅綠燈的問題。在編程時(shí)由于對有些基礎(chǔ)知識(shí)掌握不夠準(zhǔn)確,編程時(shí)出了很多麻煩,和走了很多彎路。最后在同學(xué)幫助和指點(diǎn)完成了編程任務(wù)。之后老師發(fā)下硬件之后我和我組的**同學(xué)同了一天吧硬件連接完成,在焊接過程中出現(xiàn)了問題。我們都是首先討論分析問題,之后解決問題加強(qiáng)了團(tuán)隊(duì)寫作能力。直至最后完成了本次課程設(shè)計(jì)。</p><p>  在課程設(shè)計(jì)

56、中到老師的實(shí)驗(yàn)室借用老師的硬件做了驗(yàn)證,并且由于我是中午去的老師實(shí)驗(yàn)室,打擾了老師的休息,深感愧疚,并對老師一直認(rèn)真負(fù)責(zé)教學(xué)態(tài)度,和耐心的講解我們提出的問題,真心感謝老師給了我和同學(xué)們很多在單片機(jī)課程方面幫助。</p><p><b>  參考文獻(xiàn):</b></p><p>  1. 李廣弟等 單片機(jī)基礎(chǔ) 北京航空航天出版社, 2006.7 </p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論