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

下載本文檔

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

文檔簡介

1、<p>  本科生專業(yè)課程設(shè)計(jì)1</p><p>  題目: 數(shù)字頻率計(jì),數(shù)字時(shí)鐘 </p><p>  學(xué) 院 </p><p>  專 業(yè) </p><p>  學(xué) 號(hào)

2、 </p><p>  姓 名 </p><p>  成 績 </p><p>  年 月 日</p><p><b>  一、實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  1、掌握單片機(jī)S

3、TC89C52RC的結(jié)構(gòu)和編程方法;</p><p>  2、了解單片機(jī)的串行口通信;</p><p>  3、熟悉頻率計(jì)算法原理;</p><p>  4、知道燒錄軟件及操作方法;</p><p>  5、熟悉動(dòng)態(tài)輸出顯示原理、及編程方法。</p><p><b>  二、實(shí)驗(yàn)要求</b><

4、;/p><p>  通過硬件設(shè)計(jì)、焊接、調(diào)試,軟件編程、調(diào)試,程序固化,軟硬件系統(tǒng)調(diào)試,最終制作一個(gè)數(shù)字頻率計(jì)實(shí)物,并且能夠通過數(shù)碼管實(shí)時(shí)顯示被測頻率。</p><p><b>  二、硬件電路設(shè)計(jì)</b></p><p>  包括:電路框圖或原理圖,簡要說明工作原理</p><p>  電路工作原理 MCU</p

5、><p>  電路工作原理 數(shù)碼管驅(qū)動(dòng)電路</p><p>  電路工作原理 顯示電路</p><p>  電路工作原理 電源及功能指示電路</p><p>  電路工作原理 信號(hào)處理電路</p><p>  電路工作原理 串口通信電路</p><p>  電路工作原理 按鍵

6、控制電路</p><p><b>  實(shí)驗(yàn)原理:</b></p><p>  頻率計(jì)系統(tǒng)總體框圖:</p><p><b>  頻率計(jì)原理</b></p><p>  頻率的測量實(shí)際上就是在1s時(shí)間內(nèi)對(duì)信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)值就是信號(hào)頻率。用單片機(jī)設(shè)計(jì)頻率計(jì)通常采用的辦法是使用單片機(jī)自帶的計(jì)數(shù)器對(duì)輸入脈

7、沖進(jìn)行計(jì)數(shù);好處是設(shè)計(jì)出的頻率計(jì)系統(tǒng)結(jié)構(gòu)和程序編寫簡單,成本低廉,不需要外部計(jì)數(shù)器,直接利用所給的單片機(jī)最小系統(tǒng)就可以實(shí)現(xiàn)。缺陷是受限于單片機(jī)計(jì)數(shù)的晶振頻率,輸入的時(shí)鐘頻率通常是單片機(jī)晶振頻率的幾分之一甚至是幾十分之一,在本次設(shè)計(jì)使用的STCAT89C52單片機(jī),由于檢測一個(gè)由“1”到“0”的跳變需要兩個(gè)機(jī)器周期,前一個(gè)機(jī)器周期測出“1”,后一個(gè)周期測出“0”。故輸入時(shí)鐘信號(hào)的最高頻率不得超過單片機(jī)晶振頻率的二十四分之一。根據(jù)頻率檢測的

8、原理,很容易想到利用51單片機(jī)的T0、T1兩個(gè)定時(shí)/計(jì)數(shù)器,一個(gè)用來定時(shí),另一個(gè)用來計(jì)數(shù),兩者均應(yīng)該工作在中斷方式,一個(gè)中斷用于1s時(shí)間的中斷處理,一個(gè)中斷用于對(duì)頻率脈沖的計(jì)數(shù)溢出處理。</p><p><b>  三、程序設(shè)計(jì)</b></p><p>  包括:程序流程、實(shí)驗(yàn)程序及分析</p><p>  /*****************

9、*****************************************************</p><p>  綜合實(shí)習(xí)--頻率計(jì)(測量頻率和周期)的程序 </p><p>  **********************************************************************/</p><p>  #pr

10、agma db oe</p><p>  #include <reg52.h></p><p>  #include <absacc.h></p><p>  #include <string.h></p><p>  #include <stdio.h></p><p>

11、;  #include <intrins.h></p><p>  #include <MATH.H></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  #define ulong unsigned l

12、ong</p><p>  #define CHANGSHU 0.65536</p><p>  #define CHANGSHU1 1e-6</p><p>  void display(void);</p><p>  void initsiu(void);</p><p>  void delay(void);&

13、lt;/p><p>  void ccll(void);</p><p>  void jsdat(void);</p><p>  void keyin(void);</p><p>  uchar inkey(void);</p><p>  uchar disdat[6];</p><p> 

14、 uchar code tab[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};</p><p>  uint count,count1;</p><p>  uchar xsd,diszq,dzt;</p><p>  float jsjg;</p><p><b>  in

15、t js;</b></p><p>  sbit jskz=P3^3;</p><p>  sbit zsd=P1^0;</p><p><b>  main()</b></p><p><b>  {</b></p><p><b>  uchar i

16、; </b></p><p>  for (i=0;i<6;i++)</p><p><b>  {</b></p><p>  disdat[i]= 0;//將顯示緩存清零</p><p><b>  }</b></p><p>  initsiu();

17、//初始化單片機(jī)</p><p>  TR1 = 0;//關(guān)閉計(jì)數(shù)器1</p><p><b>  dzt=0;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  ccll();/

18、/進(jìn)行測量頻率合周期</p><p>  for (i=0;i<50;i++)</p><p><b>  {</b></p><p>  keyin();//根據(jù)按鍵改變顯示內(nèi)容</p><p>  display();//顯示</p><p><b>  }</b&g

19、t;</p><p>  if (dzt==0)</p><p><b>  {</b></p><p><b>  dzt=1;</b></p><p><b>  zsd=0;</b></p><p><b>  }</b>&l

20、t;/p><p><b>  else</b></p><p><b>  {</b></p><p><b>  dzt=0;</b></p><p><b>  zsd=1;</b></p><p><b>  }<

21、/b></p><p><b>  _nop_();</b></p><p><b>  }</b></p><p><b>  while(1);</b></p><p><b>  }</b></p><p>  voi

22、d display(void) //六位數(shù)碼管顯示程序,disdat[]是要顯示的內(nèi)容(是0~9的數(shù)字),xsd是在那一位顯示小數(shù)點(diǎn)</p><p><b>  {</b></p><p>  uchar i,disa,disb,disc;</p><p>  disb = 0x00;//顯示第n位</p>

23、<p>  for (i=0;i<6;i++)//共顯示6個(gè)數(shù)據(jù)</p><p><b>  {</b></p><p>  disa = disdat[i];//顯示數(shù)據(jù)</p><p>  if (disa < 10)</p><p><b>  {</b><

24、/p><p>  P2 = disb;</p><p>  disc = tab[disa]; //顯示段碼</p><p>  if ((xsd != 5) && (xsd == i))</p><p>  disc = disc | 0x80;//增加小數(shù)點(diǎn)顯示</p><p>  P0 = di

25、sc;//送顯示</p><p>  delay ();//延時(shí)</p><p><b>  P0 = 0x0;</b></p><p>  disb++;//下一個(gè)要顯示的位置</p><p><b>  }</b></p><p><b&g

26、t;  }</b></p><p>  P2 = 0xff;</p><p><b>  }</b></p><p>  void keyin(void)//1號(hào)鍵顯示頻率,2號(hào)鍵顯示周期</p><p><b>  {</b></p><p><b&g

27、t;  uchar i;</b></p><p>  i=inkey();//讀入鍵值</p><p>  if (i==0x70)//1號(hào)鍵</p><p><b>  diszq=0;</b></p><p>  else if(i==0xb0)//2號(hào)鍵</p><p>

28、;<b>  diszq=1;</b></p><p><b>  else </b></p><p><b>  _nop_();</b></p><p><b>  }</b></p><p>  void delay(void)//延時(shí)程序<

29、;/p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for (i=0;i<201;i++)</p><p><b>  _nop_();</b></p><p><b>  }&

30、lt;/b></p><p>  void jsdat(void)//將測量結(jié)果jsjg整理,送到disdat[]中,并將小數(shù)點(diǎn)加到適當(dāng)?shù)奈恢?lt;/p><p><b>  {</b></p><p><b>  ulong bb;</b></p><p>  if (jsjg >10

31、00000.0)//超過6位數(shù),結(jié)果除10,小數(shù)點(diǎn)顯示在第1位,表示Mhz(或千秒)</p><p><b>  {</b></p><p>  bb=jsjg/10;</p><p><b>  xsd= 1 ;</b></p><p><b>  }</b></p&

32、gt;<p>  else if ((jsjg<1000000.0)&&(jsjg > 100000.0))//6位數(shù),小數(shù)點(diǎn)不顯示</p><p><b>  {</b></p><p>  bb=jsjg * 1;</p><p><b>  xsd =5;</b></

33、p><p><b>  }</b></p><p>  else if ((jsjg<100000.0) && (jsjg > 10000.0))//5位數(shù),結(jié)果乘10,小數(shù)點(diǎn)在第5位</p><p><b>  {</b></p><p>  bb=jsjg * 10

34、;</p><p><b>  xsd = 4;</b></p><p><b>  }</b></p><p>  else if ((jsjg<10000.0)&&(jsjg > 1000.0))//4位數(shù),結(jié)果乘100,小數(shù)點(diǎn)在第4位</p><p><b&

35、gt;  {</b></p><p>  bb=jsjg * 100;</p><p><b>  xsd =3;</b></p><p><b>  }</b></p><p>  else if ((jsjg<1000.0) && (jsjg > 10

36、0.0))//3位數(shù),結(jié)果乘1000,小數(shù)點(diǎn)在第3位</p><p><b>  {</b></p><p>  bb=jsjg * 1000;</p><p><b>  xsd = 2;</b></p><p><b>  }</b></p><p&g

37、t;  else if ((jsjg<100.0) && (jsjg > 10.0))//2位數(shù),結(jié)果乘10000,小數(shù)點(diǎn)在第2位</p><p><b>  {</b></p><p>  bb=jsjg * 10000;</p><p><b>  xsd =1;</b></p&g

38、t;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  bb=jsjg * 100000;//1位數(shù),結(jié)果乘100000,小數(shù)點(diǎn)在第1位</p><p><b>

39、  xsd =0;</b></p><p><b>  }</b></p><p>  disdat[0]=bb/100000;//將結(jié)果分解到disdat[]</p><p>  bb=bb % 100000;</p><p>  disdat[1]=bb/10000;</p><

40、;p>  bb=bb%10000;</p><p>  disdat[2]=bb/1000;</p><p>  bb=bb%1000;</p><p>  disdat[3]=bb/100;</p><p>  bb=bb%100;</p><p>  disdat[4]=bb/10;</p>&

41、lt;p><b>  bb=bb%10;</b></p><p>  disdat[5]=bb;</p><p><b>  }</b></p><p>  void ccll(void)//測量頻率和方波程序</p><p><b>  {</b></p>

42、;<p>  count1 =0;//計(jì)數(shù)結(jié)果超過65536后的溢出次數(shù)</p><p>  TR1=0;//關(guān)閉計(jì)數(shù)器1</p><p>  js=-1;//外部中斷次數(shù),從EX1=1開始后的兩個(gè)中斷間的時(shí)間為周期</p><p>  IE1=0;//清外部中斷1的中斷標(biāo)志</p><p>  TH1 = 0;

43、//定時(shí)器1的計(jì)數(shù)值清零</p><p><b>  TL1 = 0;</b></p><p>  EX1=1;//開外部中斷1</p><p>  while (js !=1)</p><p>  _nop_();//當(dāng)js=1時(shí),測量結(jié)束</p><p>  EX1=0;//關(guān)外部中

44、斷1</p><p>  TR1=0;//關(guān)定時(shí)器1,停止計(jì)數(shù)</p><p>  count = TH1 *256 +TL1;//定時(shí)器1的計(jì)數(shù)結(jié)果</p><p>  jsjg = count1 * 0.065536;//計(jì)數(shù)溢出多少時(shí)間</p><p>  jsjg = jsjg + count * 1.0e-6;//周期&l

45、t;/p><p>  if (diszq==0)</p><p>  jsjg = 1.0 / jsjg;//頻率</p><p><b>  else </b></p><p>  jsjg=jsjg*1000;//周期單位為ms</p><p>  jsdat();//調(diào)整顯示結(jié)果&l

46、t;/p><p><b>  }</b></p><p>  void initsiu(void)//初始化單片機(jī)</p><p><b>  {</b></p><p>  TMOD=0x15;//定時(shí)器1:gate=0->TR1=1開始計(jì)數(shù),C/T=0->對(duì)內(nèi)部計(jì)數(shù),模式1->

47、16位計(jì)數(shù)</p><p>  TR0=0;//關(guān)閉計(jì)數(shù)器0</p><p>  TR1=0;//關(guān)閉計(jì)數(shù)器1</p><p>  ET0=0;//關(guān)閉定時(shí)器0中斷</p><p>  ET1=1;//打開定時(shí)器1中斷</p><p>  IT1=1;//外部中斷1下降沿觸發(fā)</p>

48、<p>  EX1=0;//開外部中斷1</p><p>  EA=1;//總中斷允許</p><p><b>  }</b></p><p>  void intex1(void) interrupt 2 using 2</p><p><b>  {</b></p>

49、<p>  TR1=!TR1;//第1次中斷允許定時(shí)器1計(jì)數(shù),第2次中斷關(guān)閉定時(shí)器1計(jì)數(shù)</p><p>  js=js+1;//第2次中斷js=1 ,測量完。</p><p><b>  }</b></p><p>  void inttime1(void) interrupt 3 using 1</p>&l

50、t;p><b>  {</b></p><p>  count1++;//定時(shí)器1溢出次數(shù)計(jì)數(shù)</p><p><b>  }</b></p><p>  /**********************************************************</p><p>

51、;  鍵盤輸入程序 1:0x70 2:0xb0 3:0xd0</p><p><b>  4: 0xe0 </b></p><p>  **********************************************************/</p><p>  uchar inkey(void)</p><p

52、><b>  {</b></p><p>  uchar jjj,keydat;</p><p>  P2 = 0xff;//P2準(zhǔn)備讀入</p><p>  keydat = P2;//讀入鍵值</p><p>  keydat = keydat & 0xf0;//找出四個(gè)鍵的值</p>

53、<p>  if (keydat != 0xf0)//有鍵輸入</p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  jjj = P2;//再讀,

54、去抖動(dòng)</p><p>  jjj = jjj & 0xf0;</p><p>  if (jjj != keydat)</p><p>  keydat = 0xf0;</p><p><b>  do </b></p><p><b>  {</b></p&

55、gt;<p><b>  jjj = P2;</b></p><p>  jjj = jjj & 0xf0;</p><p>  }//等待鍵松手</p><p>  while (jjj != 0xf0);</p><p><b>  }</b></p>&

56、lt;p>  return (keydat);</p><p><b>  }</b></p><p><b>  四、調(diào)試</b></p><p>  包括:故障現(xiàn)象及排除最終結(jié)果。</p><p>  本次課程設(shè)計(jì)使用的單片機(jī)系統(tǒng)是根據(jù)老師提供的系統(tǒng)原件,自己焊接而成。焊接完成以后,首先燒

57、寫控制LED發(fā)光二極管閃爍的程序后,發(fā)現(xiàn)發(fā)光二極管是根據(jù)自己的設(shè)計(jì)而閃爍,燒寫程序控制發(fā)光數(shù)碼管顯示時(shí),數(shù)碼管同樣是根據(jù)自己的設(shè)計(jì)而顯示的字符,說明本次52單片機(jī)的硬件焊接取得成功。</p><p><b>  總結(jié)</b></p><p>  包括:收獲、體會(huì)、感想等。</p><p>  我在這次課程設(shè)計(jì)中所做的課題是《頻率計(jì),數(shù)字時(shí)鐘》經(jīng)

58、過了幾天的努力,在老師的精心輔導(dǎo)下,還有同組人員的相互幫助,使得設(shè)計(jì)得已順利完成。隨著時(shí)代的發(fā)展,數(shù)字電子技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,本文將介紹一種數(shù)控直流穩(wěn)壓電源,本電源由模擬電源、顯示電路、控制電路、數(shù)模轉(zhuǎn)換電路、放大電路四部分組成.準(zhǔn)確說就是模擬電源提供各個(gè)芯片電源、數(shù)碼管、放大器所需電壓;顯示電路用于顯示電源輸出電壓的大小。同時(shí)分析了數(shù)字技術(shù)和模擬技術(shù)相互轉(zhuǎn)換的概念。與傳統(tǒng)的穩(wěn)壓電源相比具有操作方便,電源穩(wěn)定性

59、高以及其輸出電壓大小采用數(shù)碼顯示的特點(diǎn)。</p><p>  同時(shí),通過本次課程設(shè)計(jì),鞏固了我們學(xué)習(xí)過的專業(yè)知識(shí),也使我們把理論與實(shí)踐從真正意義上相結(jié)合了起來;考驗(yàn)了我們借助互聯(lián)網(wǎng)絡(luò)搜集、查閱相關(guān)文獻(xiàn)資料,和組織材料的綜合能力;也使我在口述和語言表達(dá)方面得到了鍛煉。從中可以自我測驗(yàn),認(rèn)識(shí)到自己哪方面有欠缺、不足,以便于在日后的學(xué)習(xí)中得以改進(jìn)、提高。</p><p>  此次課程設(shè)計(jì),學(xué)到了

60、很多課內(nèi)學(xué)不到的東西,比如獨(dú)立思考解決問題,出現(xiàn)差錯(cuò)的隨機(jī)應(yīng)變,和與人合作共同提高,都受益非淺,今后的制作應(yīng)該更輕松,自己也都能扛的起并高質(zhì)量的完成項(xiàng)目。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論