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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于MCS-51單片機(jī)的簡(jiǎn)易數(shù)字直流電壓表設(shè)計(jì)</p><p>  設(shè)計(jì)一個(gè)簡(jiǎn)易數(shù)字直流電壓表。(量程0V-2V、測(cè)量速度為大于等于2 次/秒、測(cè)量誤差在±0.05V以內(nèi),有超限報(bào)警、數(shù)碼管顯示。)</p><p><b>  1:系統(tǒng)設(shè)計(jì)</b></p><p>  (1)分析任務(wù)要求,寫(xiě)出系統(tǒng)整體設(shè)計(jì)思路&l

2、t;/p><p>  從試題的要求分析,主要包括的內(nèi)容為ADC 轉(zhuǎn)換電路的控制、采用定時(shí)器定時(shí)讀取ADC 轉(zhuǎn)換器的數(shù)據(jù)、將ADC 轉(zhuǎn)換器的數(shù)據(jù)計(jì)算為對(duì)應(yīng)的電壓值,最后在數(shù)碼管上顯示出來(lái)。</p><p><b>  整體設(shè)計(jì)思路:</b></p><p>  硬件采用單片機(jī)的P0 輸出數(shù)碼管的7 段碼,P2 口輸出數(shù)碼管的位控信號(hào)。用P1 的三個(gè)I

3、/O 管腳連接ADC 轉(zhuǎn)換器的接口,通過(guò)查詢定時(shí)器T0 中斷標(biāo)志是否有效來(lái)啟動(dòng)ADC 轉(zhuǎn)換</p><p>  器的工作,并讀取ADC 轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果。然后,根據(jù)ADC 轉(zhuǎn)換器的參考電壓將ADC 轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果計(jì)算為對(duì)應(yīng)的電壓值,并在數(shù)碼管上顯示出來(lái)。</p><p> ?。?)選擇單片機(jī)型號(hào)和所需外圍器件型號(hào),設(shè)計(jì)單片機(jī)硬件電路原理圖</p><p>  采用

4、MCS51 系列單片機(jī)At89S51 作為主控制器,外圍電路器件包括數(shù)碼管驅(qū)動(dòng)、AD 轉(zhuǎn)換器TLC549、基準(zhǔn)電壓TL431 等。數(shù)碼管驅(qū)動(dòng)采用2 個(gè)四聯(lián)共陰極數(shù)碼管顯示,由于單片機(jī)驅(qū)動(dòng)能力有限,采用74HC244 作為數(shù)碼管的驅(qū)動(dòng)。在74HC244 的7 段碼輸出線上串聯(lián)100 歐姆電阻起限流作用。AD 轉(zhuǎn)換器的參考電壓由精密基準(zhǔn)電源TL431 提供,標(biāo)準(zhǔn)參考電壓Vref+為2.5 伏, Vref-為0 伏。由于0V-2V 內(nèi)的測(cè)量誤

5、差控制在±0.05V 內(nèi),因此8 位A/D 轉(zhuǎn)換器即可滿足要求。AD 轉(zhuǎn)換器TLC549是以8 位開(kāi)關(guān)電容逐次逼近A/D 轉(zhuǎn)換器為基礎(chǔ)而構(gòu)造的CMOS A/D 轉(zhuǎn)換器。它們?cè)O(shè)計(jì)成能通過(guò)3態(tài)數(shù)據(jù)輸出和模擬輸入與微處理器或外圍設(shè)備串行接口。TLC549 僅用輸入/輸出時(shí)鐘(I/O CLOCK)和芯片選擇(CS)輸入作數(shù)據(jù)控制。TLC549 的IO CLOCK 輸入頻率最高可達(dá)1.1MHz。TLC549 提供了片內(nèi)系統(tǒng)時(shí)鐘,它通常工

6、作在4MHz 且不需要外部元件。片內(nèi)系統(tǒng)時(shí)鐘使內(nèi)部器件的操作獨(dú)立于串行輸入/輸出的時(shí)序并允許TLC548 和TLC549 象許</p><p>  圖1 TLC549 的引腳排列</p><p>  TLC549 的工作時(shí)序如圖2所示。</p><p>  圖2 TLC549 的工作時(shí)序</p><p>  轉(zhuǎn)換周期需要36 個(gè)系統(tǒng)時(shí)鐘周期(

7、最大為17μs),它開(kāi)始于CS 變?yōu)榈碗娖街驣/O CLOCK的第8 個(gè)下降沿,這適用于該時(shí)刻其地址存在于存儲(chǔ)器中的通道。在CS 變?yōu)榈碗娖胶?,最高有效位(A7)自動(dòng)被放置在DATA OUT 總線上。其余的7 位(A6-A0)在前7 個(gè)I/O CLOCK 下降沿由時(shí)鐘同步輸出。</p><p>  TLC549 的工作原理</p><p>  TLC549 是在單個(gè)芯片內(nèi)的完善的數(shù)據(jù)采集

8、系統(tǒng)。每一個(gè)器件包含內(nèi)部系統(tǒng)時(shí)鐘,采樣和保持,8 位A/D 轉(zhuǎn)換器,數(shù)據(jù)寄存器以及控制邏輯電路。為了提高靈活性和訪問(wèn)速度,器件有兩個(gè)控制輸入:I/OCLOCK 和芯片選擇(CS)。這些控制輸入和與TTL 兼容的3 態(tài)輸出易于與微處理器或小型計(jì)算機(jī)的串行通信。器件可在17μs 或更短時(shí)間內(nèi)完成轉(zhuǎn)換。TLC549 每25μs 重復(fù)一次完整的輸入-轉(zhuǎn)換-輸出(input-conversion-output)周期。內(nèi)部系統(tǒng)時(shí)鐘和I/OCLOCK

9、 獨(dú)立使用且不需要任何特定的速度或二者之間的相位關(guān)系。這種獨(dú)立性簡(jiǎn)化了器件的硬件和軟件控制任務(wù)。由于這種獨(dú)立性和系統(tǒng)時(shí)鐘的內(nèi)部產(chǎn)生,控制硬件和軟件只需關(guān)心利用I/O 時(shí)鐘讀出先前轉(zhuǎn)換結(jié)果和啟動(dòng)轉(zhuǎn)換。內(nèi)部系統(tǒng)時(shí)鐘以這種方式驅(qū)動(dòng)轉(zhuǎn)換電路以便控制硬件和軟件不需要涉及此項(xiàng)任務(wù)。</p><p>  當(dāng)CS 為高電平時(shí),DATAOUT 處于高阻狀態(tài)且I/OCLOCK(I/O 時(shí)鐘)被禁止。正常控制時(shí)序?yàn)椋?lt;/p>

10、;<p>  1.CS 被拉至低電平。當(dāng)CS 變?yōu)榈碗娖綍r(shí),前次轉(zhuǎn)換結(jié)果的最高有效位(MSB)開(kāi)始出現(xiàn)在DATAOUT端。</p><p>  2.前4 個(gè)I/OCLOCK 周期的下降沿輸出前次轉(zhuǎn)換結(jié)果的第2、第3、第4 和第5 個(gè)最高有效位。在I/OCLOCK 第4 個(gè)高電平至低電平的跳變之后,片內(nèi)采樣和保持電路開(kāi)始對(duì)模擬輸入采樣。采樣操作主要包括內(nèi)部電容器充電到模擬輸入電壓的電平。</p&

11、gt;<p>  3.其后再把三個(gè)I/OCLOCK 周期加至I/OCLOCK 端,在這些時(shí)鐘周期的下降沿,第6、第7 和第8 個(gè)轉(zhuǎn)換位被移出。</p><p>  4.最后(第8 個(gè))時(shí)鐘周期被加至I/OCLOCK。此時(shí)鐘周期高電平至低電平的跳變使片內(nèi)采樣和保持電路開(kāi)始保持功能。保持功能在接著四個(gè)內(nèi)部系統(tǒng)時(shí)鐘周期內(nèi)繼續(xù)進(jìn)行,在此之后保持功能結(jié)束且在下面32 個(gè)系統(tǒng)時(shí)鐘周期內(nèi)完成轉(zhuǎn)換,總共為36 個(gè)周

12、期。在第8 個(gè)I/OCLOCK 周期之后,CS必須變?yōu)楦唠娖?,否則I/OCLOCK 必須保持低電平達(dá)至少36 個(gè)系統(tǒng)時(shí)鐘周期以供保持和轉(zhuǎn)換功能的完成。在多個(gè)轉(zhuǎn)換周期內(nèi)CS 可保持低電平。在多個(gè)轉(zhuǎn)換周期內(nèi)使CS 保持低電平時(shí)必須特別注意防止I/OCLOCK 線上的噪聲閃變。如果在I/OCLOCK 上發(fā)生閃變,那么在微處理器/控制器和器件之間的I/O 時(shí)序?qū)⑹ネ?。此外,如果CS 變?yōu)楦唠娖?,那么它必須保持高電平直至轉(zhuǎn)換結(jié)束為止。否則,C

13、S 的有效高電平至低電平跳變將引起復(fù)位,它使正在進(jìn)行的轉(zhuǎn)換失敗。在36 個(gè)系統(tǒng)時(shí)鐘周期發(fā)生之前,通過(guò)完成步驟1 至4 可以啟動(dòng)新的轉(zhuǎn)換,同時(shí)正在進(jìn)行的轉(zhuǎn)換中止。此操作產(chǎn)生先前的轉(zhuǎn)換結(jié)果而不是正在進(jìn)行的轉(zhuǎn)換結(jié)果。</p><p> ?。?)分析軟件任務(wù)要求,寫(xiě)出程序設(shè)計(jì)思路,分配單片機(jī)內(nèi)部資源,畫(huà)出程序流程圖</p><p>  軟件的任務(wù)包括定時(shí)器的定時(shí)功能、AD 轉(zhuǎn)換器TLC549 的控

14、制與數(shù)據(jù)的讀取,數(shù)碼管的動(dòng)態(tài)掃描。程序設(shè)計(jì)思路,采用查詢定時(shí)器中斷標(biāo)志的方式來(lái)啟動(dòng)AD 轉(zhuǎn)換器TLC549 的工作,在讀取AD轉(zhuǎn)換器的數(shù)據(jù)之后,再對(duì)數(shù)據(jù)進(jìn)行計(jì)算換算為對(duì)應(yīng)的電壓值。</p><p>  需要分配的單片機(jī)存儲(chǔ)資源包括AD 轉(zhuǎn)換器數(shù)據(jù)的暫存變量(re_data)、定時(shí)器溢出次數(shù)的計(jì)數(shù)變量(T_cnt)、數(shù)據(jù)換算的系數(shù)(xishu)以及電壓值(volt)等。</p><p>  

15、主程序的流程圖如圖3所示。由于采用查詢中斷標(biāo)志的方式來(lái)響應(yīng)的中斷,所以主程序要循環(huán)完成如下任務(wù):中斷標(biāo)志的查詢、AD 轉(zhuǎn)換器數(shù)據(jù)的讀取、電壓值的換算以及數(shù)碼管的動(dòng)態(tài)掃描顯示。</p><p>  圖3 數(shù)字電壓表的主程序流程圖</p><p> ?。?)設(shè)計(jì)系統(tǒng)軟件調(diào)試方案、硬件調(diào)試方案及軟硬件聯(lián)合調(diào)試方案</p><p><b>  軟件調(diào)試方案:<

16、;/b></p><p>  偉福軟件中,在“文件\新建文件”中,新建C 語(yǔ)言源程序文件,編寫(xiě)相應(yīng)的程序。在“文件\新建項(xiàng)目”的菜單中,新建項(xiàng)目并將C 語(yǔ)言源程序文件包括在項(xiàng)目文件中。在“項(xiàng)目\編譯”菜單中將C 源文件編譯,檢查語(yǔ)法錯(cuò)誤及邏輯錯(cuò)誤。在編譯成功后,產(chǎn)生以“*.hex”和“*.bin” 后綴的目標(biāo)文件。</p><p><b>  硬件調(diào)試方案:</b&g

17、t;</p><p>  在設(shè)計(jì)平臺(tái)中,將單片機(jī)的P1.0 接TLC549 的CLK 管腳,P1.1 接TLC549 的DOUT 管腳,P1.2 接TLC549 的CS 管腳。在偉福中將程序文件編譯成目標(biāo)文件后,將下載線安裝在實(shí)驗(yàn)平臺(tái)上,運(yùn)行“MCU 下載程序”,選擇相應(yīng)的flash 數(shù)據(jù)文件,點(diǎn)擊“編程”按鈕,將程序文件下載到單片機(jī)的Flash 中。然后,上電重新啟動(dòng)單片機(jī),檢查所編寫(xiě)的程序是否達(dá)到題目的要求,

18、是否全面完整地完成試題的內(nèi)容。</p><p><b>  2 程序設(shè)計(jì)</b></p><p>  //晶振:11.0592MHz,定時(shí)器T0 每50ms 中斷一次,每隔0.1 秒讀ADC 一次</p><p>  /* AD 轉(zhuǎn)換器使用TLC549</p><p>  p1.0-Clock</p>&l

19、t;p>  p1.1-Data out</p><p><b>  p1.2-CS</b></p><p><b>  */</b></p><p>  #include "reg51.h"</p><p>  #include "intrins.h"&

20、lt;/p><p>  #include "math.h"</p><p>  sbit ad_clk=P1^0;</p><p>  sbit ad_dout=P1^1;</p><p>  sbit ad_cs=P1^2;</p><p>  unsigned char data re_data;&

21、lt;/p><p>  unsigned int data T_cnt;</p><p>  double volt,xishu;</p><p>  char code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  //led_

22、seg_code[0-9]代表0-9 的7 段碼</p><p>  //---------------</p><p>  void delay(unsigned int i)//延時(shí)</p><p>  { while(--i); }</p><p>  //---------------</p><p>  vo

23、id led_show(double f)</p><p>  { unsigned char i,s;</p><p>  unsigned int k,*j;</p><p><b>  if (f<2)</b></p><p>  { k=f;//取整數(shù)部分</p><p><b

24、>  i=k;</b></p><p>  P0=led_seg_code[i] | 0x80;</p><p><b>  P2=0xfb;</b></p><p>  delay(50);</p><p><b>  i=f*10;</b></p><p&g

25、t;<b>  i=i%10;</b></p><p>  P0=led_seg_code[i];</p><p><b>  P2=0xfd;</b></p><p>  delay(50);</p><p>  i=f*100; //取小數(shù)后1 位</p><p><

26、;b>  i=i%10;</b></p><p>  P0=led_seg_code[i];</p><p><b>  P2=0xfe;</b></p><p>  delay(50);</p><p>  else //超限報(bào)警,顯示“---”</p><p>  { P0=

27、0x40;</p><p><b>  P2=0xfb;</b></p><p>  delay(50);</p><p>  //---------</p><p><b>  P2=0xfd;</b></p><p>  delay(50);</p><

28、;p>  //-----------</p><p><b>  P2=0xfe;</b></p><p>  delay(50);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //----讀

29、取ADC 轉(zhuǎn)換器TLC549 的數(shù)據(jù)----</p><p>  unsigned char receive_data()</p><p>  {unsigned char i,d;</p><p><b>  d=0;</b></p><p>  ad_cs=1; // /CS 置高,片選無(wú)效</p>&

30、lt;p><b>  ad_clk=0;</b></p><p><b>  ad_cs=0;</b></p><p><b>  _nop_();</b></p><p>  for(i<0;i<8;i++)</p><p>  { ad_clk=1;<

31、;/p><p><b>  d=d<<1;</b></p><p>  if (ad_dout)</p><p><b>  { d++;}</b></p><p><b>  ad_clk=0;</b></p><p><b>  }

32、</b></p><p><b>  ad_cs=1;</b></p><p>  for(i=0;i<10;i++) // 適當(dāng)延時(shí)超過(guò)17us</p><p><b>  _nop_();</b></p><p><b>  return d;</b>&l

33、t;/p><p><b>  }</b></p><p>  //-------------</p><p><b>  main()</b></p><p><b>  {T_cnt=0;</b></p><p>  TMOD=0x01; //定時(shí)器設(shè)置T

34、0</p><p>  TH0=0x4c; //50000us=(65536-0x4c00)*12/11.0592</p><p><b>  TL0=00;</b></p><p><b>  EA=0;</b></p><p><b>  TR0=1;</b></p&

35、gt;<p>  re_data=0x00;</p><p><b>  volt=0;</b></p><p>  xishu=2.5/255.0;</p><p>  //-----------------------------</p><p><b>  while(1)</b>

36、;</p><p>  { if(TF0==1)</p><p><b>  { TF0=0;</b></p><p>  TH0=0x4c; //50000us=(65536-0x4c00)*12/11.0592</p><p><b>  TL0=0x0;</b></p><

37、p>  if (T_cnt<2) //T0 為50 毫秒溢出一次,每100ms 讀取一次AD 轉(zhuǎn)換器數(shù)據(jù)</p><p>  {T_cnt++;}</p><p><b>  else</b></p><p>  { T_cnt=0;//計(jì)時(shí)到100ms 了</p><p>  re_data=receive

38、_data();</p><p><b>  //轉(zhuǎn)換為電壓值</b></p><p>  volt=re_data;</p><p>  volt=volt*xishu;</p><p><b>  }</b></p><p><b>  }</b>&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論