欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數(shù)字頻率計設(shè)計

      時間:2019-05-14 01:36:02下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)字頻率計設(shè)計》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)字頻率計設(shè)計》。

      第一篇:數(shù)字頻率計設(shè)計

      數(shù)字頻率計設(shè)計 1.設(shè)計任務(wù)

      設(shè)計一簡易數(shù)字頻率計,其基本要求是:

      1)測量頻率范圍1Hz~10Hz,量程分為4檔,即×1,×10,×100,×1000。2)頻率測量準確度?fx??2?10?3.fx3)被測信號可以是下弦波、三角波和方波。4)顯示方式為4位十進制數(shù)顯示。5)使用EWB進行仿真。2.設(shè)計原理及方案

      頻率的定義是單位時間(1s)內(nèi)周期信號的變化次數(shù)。若在一定時間間隔T內(nèi)測得周期信號的重復(fù)變化次數(shù)為N,則其頻率為

      f=N/T 據(jù)此,設(shè)計方案框圖如圖1所示。

      圖1 數(shù)字頻率計組成框圖

      其基本原理是,被測信號ux首先經(jīng)整形電路變成計數(shù)器所要求的脈沖信號,頻率與被測信號的頻率fx相同。時鐘電路產(chǎn)生時間基準信號,分頻后控制計數(shù)與保持狀態(tài)。當(dāng)其高電平時,計數(shù)器計數(shù);低電平時,計數(shù)器處于保持狀態(tài),數(shù)據(jù)送入鎖存器進行鎖存顯示。然后對計數(shù)器清零,準備下一次計數(shù)。其波形邏輯關(guān)系圖如圖2所示。3.基本電路設(shè)計 1)整形電路

      整形電路是將待測信號整形變成計數(shù)器所要求的脈沖信號。電路形式采用由555定時器所構(gòu)成的施密特觸發(fā)器,電路如圖XXX所示。若待測信號為三角波,輸入整形電路,設(shè)置分析為瞬態(tài)分析,啟動電路,其輸入、輸出波形如圖XXX所示。可見輸出為方波,二者頻率相同。

      2)時鐘產(chǎn)生電路

      時鐘信號是控制計數(shù)器計數(shù)的標準時間信號,其精度很大程度上決定了頻率計的頻率測量精度。當(dāng)要求頻率測量精度較高時,應(yīng)使用晶體振蕩器通過分頻獲得。在此頻率計中,時鐘信號采用555定時器構(gòu)成的多諧振蕩器電路,產(chǎn)生頻率為1Kz的信號,然后再進行分頻。多諧振蕩器電路如圖XXX所示。由555定時器構(gòu)成多諧振蕩器的周期計算公式為

      XXXXXXXXXX 取XXXXXXXXXXXXXX,則得到振蕩頻率為1Kz的負脈沖,其振蕩波形如圖XXX所示。3)分頻器電路

      采用計數(shù)器構(gòu)成分頻電路,對1Kz的時鐘脈沖進行分頻,取得不同量程所需要的時間基準信號,實現(xiàn)量程控制。1Kz的時鐘脈沖,對其進行3次10分頻,每個10分頻器的輸出信號頻率分別為100Hz,10Hz,1Hz三種時間基準信號。對應(yīng)于以1Kz,100Hz,10Hz,1Hz的信號作為時間基準信號時,相應(yīng)的量程為×1000,×100,×10,×1。

      構(gòu)成10分頻帶電路是采用十進制計數(shù)器74LS160實現(xiàn)的。具體電路及其輸入、輸出波形如圖XXX所示。

      (1)T觸發(fā)器

      T觸發(fā)器電路是用來將分頻帶器輸出阻抗的窄脈沖整形為方波,因為計數(shù)器需要用方波來控制其計數(shù)/保持狀態(tài)的切換。整形后方波的頻率為頻器輸出信號頻率的一半,則對應(yīng)于1Kz,100Kz,10Kz,1Hz的信號,T觸發(fā)器輸出信號的高電平持續(xù)時間分別為0.001s,0.01s,0.1s,1s。T觸發(fā)器采用JK觸發(fā)器7473為實現(xiàn),其電路連接圖及其輸入、輸出波形如圖XXX所示。

      (2)單穩(wěn)觸發(fā)器

      單穩(wěn)觸發(fā)器用于產(chǎn)生一窄脈沖,以觸發(fā)鎖存器,使計數(shù)器在計數(shù)完畢后更新鎖存器數(shù)值。單穩(wěn)觸發(fā)器電路采用555定時器實現(xiàn),為了保證系統(tǒng)正常工作,單穩(wěn)電路產(chǎn)生的脈沖寬度不能大于該量程分頻帶器輸出信號的周期。例如,計數(shù)器的最大量程是×1000,對應(yīng)分頻帶器輸出的時間基準信號頻率為1000Hz,周期是1ms。取單穩(wěn)電路輸出脈沖寬度TW=0.1ms。根據(jù)TW=1.1RC,取C=0.01Uf,則R=9.8KΩ,取標稱什為10KΩ。單穩(wěn)觸發(fā)器輸入信號是T觸發(fā)器輸出信號經(jīng)Rd、Cd組成的微分器將方波變成尖脈沖后加到555定時器的觸發(fā)器。電路圖及輸入、輸出波形如圖XXX所示。

      (3)延遲反相器

      延時反相器的功能是為了得到一個對計數(shù)器清零的信號。由于計數(shù)器清零是低電平有效,而且計數(shù)器清零必須在單穩(wěn)觸發(fā)信號之后,故延遲反相器是在上述單穩(wěn)電路之后,再加一級單穩(wěn)觸發(fā)電路,且在其輸出端加反相器輸出。其輸入、輸出波形如圖XXX所示。(4)計數(shù)器

      計數(shù)器在T觸發(fā)器輸出信號的控制下,對經(jīng)過整形的待測信號進行脈沖計數(shù),所得結(jié)果乘以量程即為待測信號頻率。

      根據(jù)精度要求,采用4個十進制計數(shù)器級聯(lián),構(gòu)成N=1000計數(shù)器。十進制計數(shù)器仍采用74LS160實現(xiàn)。其電路圖如圖XXX所示。其中計數(shù)器的清零信號由延遲反相器提供,控制信號由T觸發(fā)器提供,計數(shù)器輸出結(jié)果送入鎖存器。

      (5)鎖存器和顯示

      計數(shù)器的結(jié)果進入鎖存器鎖存,4個七段數(shù)碼管顯示測試信號的頻率。鎖存器使用了兩片8D集成觸發(fā)器實現(xiàn),其控制信號來自于延遲反相器,具體電路如圖XXX所示。

      (6)數(shù)字頻率計的總體電路

      圖XXX是數(shù)字頻率計的總體電路圖。

      4.測試

      搭建好以上電路以后,進行調(diào)試,首先分模塊進行調(diào)試,待每一個模塊調(diào)試正確后,不規(guī)則進行聯(lián)調(diào)。因為整個電路的分析是瞬態(tài)分析,故總體電路的分析需要較長時間。以上僅僅是學(xué)生所做綜合電路分析與設(shè)計的例子,由于EWB5.12教學(xué)版本庫元件的限制,有些電路與系統(tǒng)無法進行全部電路的仿真(例如收發(fā)信通信系統(tǒng)等),但有些局部電路也可以進行仿真,從而節(jié)省對這部分電路設(shè)計化費的時間。

      第二篇:數(shù)字頻率計

      //*********************************************************************

      //* 標題: 簡易數(shù)字頻率計 //* 文件: topdesign.v

      //* 作者: SJ&QJY

      //* 日期: 2009.06.10 //* 修改: 2009.12.20

      //* 軟件: Xilinx ISE 7.1 SP4

      //* 芯片: Xilinx Spartan2 FPGA(XC2S200-pq208)

      //* 說明: 測頻率并用LCD顯示,從信號源接入一個信號(正弦波,三角波或者方波),經(jīng)過AD1轉(zhuǎn)換后,送入FPGA中。

      //在FPGA中,使用雙值法整形,得到標準的方波,然后測出頻率,并送入1602中顯示。經(jīng)測試,其測頻誤差小于0.5%,其測頻范圍為10Hz-10MHz。

      //********************************************************************* //* 注意: 輸入信號電壓峰峰值不要超過AD輸入范圍,即4V。

      //*********************************************************************

      //---------------module topdesign(clk, rst, lcd_rs, lcd_rw, lcd_en, lcd_d, ad1_clk, ad1_d);

      input clk;

      //時鐘信號40MHz input rst;

      //全局復(fù)位信號

      output lcd_rs;//LCD數(shù)據(jù)/命令選擇信號,'1'表示數(shù)據(jù)輸入,'0'表示命令輸入

      output lcd_rw;

      //LCD讀/寫信號,'1'表示讀,'0'表示寫

      output reg lcd_en;

      //LCD使能信號,'1'有效

      output[7:0] lcd_d;

      //LCD數(shù)據(jù)總線(8位)

      output ad1_clk;

      //AD時鐘信號

      input[11:0] ad1_d;

      //AD9224,12位AD輸入

      //LCD時序常量信號

      parameter[10:0] IDLE = 11'b00000000000;

      //初始化

      parameter[10:0] CLEAR = 11'b00000000001;

      //清屏

      parameter[10:0] RETURNCURSOR = 11'b00000000010;//歸位

      parameter[10:0] SETMODE = 11'b00000000100;

      //設(shè)置輸入模式。此狀態(tài)為完成一個字符碼傳送后,AC自動減1,顯示不發(fā)生移位

      parameter[10:0] SWITCHMODE = 11'b00000001000;//顯示開關(guān)控制

      parameter[10:0] SHIFT = 11'b00000010000;//光標或顯示移位

      parameter[10:0] SETFUNCTION = 11'b00000100000;//功能設(shè)置:數(shù)據(jù)總線選8位還是4位

      parameter[10:0] SETCGRAM = 11'b00001000000;//CGRAM的地址設(shè)置

      parameter[10:0] SETDDRAM = 11'b00010000000;

      //DDRAM地址設(shè)置

      parameter[10:0] READFLAG = 11'b00100000000;//讀忙標志BF和AC

      parameter[10:0] WRITERAM = 11'b01000000000;

      //寫數(shù)據(jù)到CGRAM或DDRAM

      parameter[10:0] READRAM = 11'b10000000000;

      parameter cur_inc = 1'b1;

      parameter cur_dec = 1'b0;

      parameter cur_shift = 1'b1;

      parameter cur_noshift = 1'b0;

      parameter open_display = 1'b1;

      parameter open_cur = 1'b0;

      parameter blank_cur = 1'b0;

      parameter shift_display = 1'b1;

      parameter shift_cur = 1'b0;

      parameter right_shift = 1'b1;

      parameter left_shift = 1'b0;

      parameter datawidth8 = 1'b1;

      parameter datawidth4 = 1'b0;

      parameter twoline = 1'b1;

      parameter oneline = 1'b0;

      parameter font5x10 = 1'b1;

      parameter font5x7 = 1'b0;

      reg[10:0] state;

      //時序信號

      reg[5:0] counter;

      reg[3:0] div_counter;

      reg flag;

      //輔助時序信號

      parameter DIVSS = 4'd15;

      reg[5:0] char_addr;

      reg[7:0] data_in;

      //延遲參量信號

      reg clk_int;

      reg[19:0] clkcnt;

      parameter[19:0] divcnt = 20'b***00000;

      reg clkdiv;

      wire tc_clkcnt;

      //測頻部分

      parameter[15:0] ad_d_chankao1 = 16'b***1;

      parameter[15:0] ad_d_chankao2 = 16'b***1;

      reg[15:0] ad1_d_r;

      //計數(shù)部分

      reg[25:0] yimiao;

      //用來計數(shù)

      reg rukou;

      //整形方波

      reg[3:0] odata7;

      //記錄數(shù)據(jù)

      reg[3:0] odata6;

      reg[3:0] odata5;

      reg[3:0] odata4;

      reg[3:0] odata3;

      reg[3:0] odata2;

      //將近-25mV //將近25mV

      reg[3:0] odata1;

      reg[3:0] odata0;

      reg[7:0] data7;

      reg[7:0] data6;

      reg[7:0] data5;

      reg[7:0] data4;

      reg[7:0] data3;

      reg[7:0] data2;

      reg[7:0] data1;

      reg[7:0] data0;

      reg yimiao_rst;

      //將記錄的數(shù)據(jù)轉(zhuǎn)換成ASCII碼,以便顯示

      //數(shù)據(jù)清零信號

      //主程序

      assign ad1_clk = clk;

      always @(posedge clk)

      begin

      yimiao_rst =(yimiao == 26'b***00111111111)? 1'b0 : 1'b1;//一秒時清零信號有效

      end //測頻部分

      always @(posedge clk)

      begin

      ad1_d_r <= {ad1_d, 4'b0000};

      if(ad1_d_r > ad_d_chankao2)

      rukou <= 1'b1;

      if(ad1_d_r < ad_d_chankao1)

      rukou <= 1'b0;

      end //1秒鐘測頻

      always @(posedge clk)

      //每1秒鐘循環(huán)一次

      begin

      if(yimiao == 26'b***01000000000)

      yimiao <= 26'b***00000000000;

      else

      yimiao <= yimiao + 1;

      end

      //計數(shù)部分

      always @(posedge rukou or negedge yimiao_rst)

      if(~yimiao_rst)

      begin

      odata0 <= 4'b0000;

      odata1 <= 4'b0000;

      odata2 <= 4'b0000;

      odata3 <= 4'b0000;

      odata4 <= 4'b0000;

      odata5 <= 4'b0000;

      odata6 <= 4'b0000;

      odata7 <= 4'b0000;

      end

      else if(yimiao < 26'b***00111111111)

      begin

      begin

      if(odata0 == 4'b1001)

      begin

      odata0 <= 4'b0000;

      if(odata1 == 4'b1001)

      begin

      odata1 <= 4'b0000;

      if(odata2 == 4'b1001)

      begin

      odata2 <= 4'b0000;

      if(odata3 == 4'b1001)

      begin

      odata3 <= 4'b0000;

      if(odata4 == 4'b1001)

      begin

      odata4 <= 4'b0000;

      if(odata5 == 4'b1001)

      begin

      odata5 <= 4'b0000;

      if(odata6 == 4'b1001)

      begin

      odata6 <= 4'b0000;

      if(odata7 == 4'b1001)

      begin

      odata7 <= 4'b0000;

      end

      else

      begin

      odata7 <= odata7 + 1;

      end

      end

      else

      begin

      odata6 <= odata6 + 1;

      end

      end

      else

      begin

      odata5 <= odata5 + 1;

      end

      end

      else

      begin

      odata4 <= odata4 + 1;

      end

      end

      else

      begin

      odata3 <= odata3 + 1;

      end

      end

      else

      begin

      odata2 <= odata2 + 1;

      end

      end

      else

      begin

      odata1 <= odata1 + 1;

      end

      end

      else

      begin

      odata0 <= odata0 + 1;

      end

      end

      end

      //碼制轉(zhuǎn)換

      always @(posedge clk)

      begin

      if(yimiao == 26'b***00111110110)

      begin

      data7 <= {4'b0011, odata7};

      //將二進制BCD碼轉(zhuǎn)換成ASCII碼,即1602可以顯示的碼值

      data6 <= {4'b0011, odata6};

      data5 <= {4'b0011, odata5};

      data4 <= {4'b0011, odata4};

      data3 <= {4'b0011, odata3};

      data2 <= {4'b0011, odata2};

      data1 <= {4'b0011, odata1};

      data0 <= {4'b0011, odata0};

      end

      end

      //時鐘分頻

      always @(posedge clk)

      begin

      if(clkcnt == divcnt)

      begin

      clkcnt <= 20'b***00000;

      end

      else

      begin

      clkcnt <= clkcnt + 1;

      end

      end

      assign tc_clkcnt =(clkcnt == divcnt)? 1'b1 : 1'b0;//tc_clkcnt 0.016s產(chǎn)生一次脈沖

      always @(posedge tc_clkcnt)

      begin

      clkdiv <= ~clkdiv;

      0.032s

      end

      always @(posedge clkdiv)

      begin

      clk_int <= ~clk_int;

      end

      //顯示界面設(shè)置

      always @(negedge clkdiv)

      begin

      lcd_en <= ~lcd_en;

      end

      always @(char_addr)

      begin

      case(char_addr)

      6'b000000 : //I

      //clkdiv 0.016s翻轉(zhuǎn)一次,周期為

      //clk_int 0.032s翻轉(zhuǎn)一次,周期為0.064s

      begin

      data_in <= 8'b01001001;

      end

      6'b000001 ://n

      begin

      data_in <= 8'b01101110;

      end

      6'b000010 : //p

      begin

      data_in <= 8'b01110000;

      end

      6'b000011 :

      //u

      begin

      data_in <= 8'b01110101;

      end

      6'b000100 :

      //t

      begin

      data_in <= 8'b01110100;

      end

      6'b000101 : //空格

      begin

      data_in <= 8'b00100000;

      end

      6'b000110 :

      //F

      begin

      data_in <= 8'b01100110;

      end

      6'b000111 :

      //r

      begin

      data_in <= 8'b01110010;

      end

      6'b001000 :

      //e

      begin

      data_in <= 8'b01100101;

      end

      6'b001001 :

      //q

      begin

      data_in <= 8'b01110001;

      end

      6'b001010 :

      //u

      begin

      data_in <= 8'b01110101;

      end

      6'b001011 : //e

      begin

      data_in <= 8'b01100101;

      end

      6'b001100 : //n

      begin

      data_in <= 8'b01101110;

      end

      6'b001101 : //c

      begin

      data_in <= 8'b01100011;

      end

      6'b001110 : //y

      begin

      data_in <= 8'b01111001;

      end

      6'b001111 :

      //空格

      begin

      data_in <= 8'b00100000;

      end

      6'b101000 :

      //“=”

      begin

      data_in <= 8'b00111101;

      end

      6'b101001 :

      //若為零則顯示空格

      begin

      if(data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data7;

      end

      end

      6'b101010 : //若為零則顯示空格

      begin

      data_in <= data6;

      if(data6 == 8'b00110000 & data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data6;

      end

      end

      6'b101011 :

      //若為零則顯示空格

      begin

      data_in <= data5;

      if(data5 == 8'b00110000 & data6 == 8'b00110000 & data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data5;

      end

      end

      6'b101100 : //若為零則顯示空格

      begin

      data_in <= data4;

      if(data4 == 8'b00110000 & data5 == 8'b00110000 & data6 == 8'b00110000 & data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data4;

      end

      end

      6'b101101 :

      //若為零則顯示空格

      begin

      data_in <= data3;

      if(data3 == 8'b00110000 & data4 == 8'b00110000 & data5 == 8'b00110000 & data6 == 8'b00110000 & data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data3;

      end

      end

      6'b101110 :

      //若為零則顯示空格

      begin

      data_in <= data2;

      if(data2 == 8'b00110000 & data3 == 8'b00110000 & data4 == 8'b00110000 & data5 == 8'b00110000 & data6 == 8'b00110000 & data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data2;

      end

      end

      6'b101111 :

      //若為零則顯示空格

      begin

      data_in <= data1;

      if(data1 == 8'b00110000 & data2 == 8'b00110000 & data3 == 8'b00110000 & data4 == 8'b00110000 & data5 == 8'b00110000 & data6 == 8'b00110000 & data7 == 8'b00110000)

      begin

      data_in <= 8'b00100000;

      end

      else

      begin

      data_in <= data1;

      end

      end

      6'b110000 :

      begin

      data_in <= data0;

      end

      6'b110110 :

      //H

      begin

      data_in <= 8'b01001000;

      end

      6'b110111 :

      //z

      begin

      data_in <= 8'b01111010;

      end

      default :

      begin

      data_in <= 8'b00100000;

      end

      endcase

      end

      assign lcd_rs =(state == WRITERAM | state == READRAM)? 1'b1 : 1'b0;

      assign lcd_rw =(state == CLEAR | state == RETURNCURSOR | state == SETMODE | state ==

      SWITCHMODE | state == SHIFT | state == SETFUNCTION | state == SETCGRAM | state == SETDDRAM | state == WRITERAM)? 1'b0 : 1'b1;

      assign lcd_d =(state == CLEAR)? 8'b00000001 :(state == RETURNCURSOR)? 8'b00000010 :(state == SETMODE)? {6'b000001, cur_inc, cur_noshift} :(state == SWITCHMODE)? {5'b00001, open_display, open_cur, blank_cur} :(state == SHIFT)? {4'b0001, shift_display, left_shift, 2'b00} :(state == SETFUNCTION)? {3'b001, datawidth8, twoline, font5x10, 2'b00} :(state == SETCGRAM)? 8'b01000000 :(state == SETDDRAM & counter == 0)? 8'b10000000 :(state == SETDDRAM & counter!= 0)? 8'b11000000 :(state == WRITERAM)? data_in : 8'bZZZZZZZZ;

      //時序進程

      always @(posedge clk_int or posedge rst)

      begin

      if(rst)

      begin

      state <= IDLE;

      counter <= 0;

      div_counter <= 0;

      flag <= 1'b0;

      char_addr <= 6'b000000;

      end

      else

      case(state)

      IDLE :

      begin

      if(flag == 1'b0)

      begin

      state <= SETFUNCTION;

      flag <= 1'b1;

      counter <= 0;

      div_counter <= 0;

      end

      else

      begin

      if(div_counter < DIVSS)

      begin

      div_counter <= div_counter + 1;

      state <= IDLE;

      end

      else

      begin

      div_counter <= 0;

      state <= IDLE;

      end

      end

      end

      CLEAR :

      begin

      state <= SETMODE;

      end

      SETMODE :

      begin

      state <= WRITERAM;

      end

      RETURNCURSOR :

      begin

      state <= WRITERAM;

      end

      SWITCHMODE :

      begin

      state <= CLEAR;

      end

      SHIFT :

      begin

      state <= IDLE;

      end

      SETFUNCTION :

      begin

      state <= SWITCHMODE;

      end

      SETCGRAM :

      begin

      state <= IDLE;

      end

      SETDDRAM :

      begin

      state <= WRITERAM;

      end

      READFLAG :

      begin

      state <= IDLE;

      end

      WRITERAM :

      //可用來修改,實現(xiàn)1602的輸出顯示

      begin

      if((counter >= 6'd0 & counter <= 6'd14)|(counter >= 6'd40 & counter <= 6'd54))

      begin

      state <= WRITERAM;

      //一行同時只能顯示16個字符,第二行的首地址為40

      char_addr <= char_addr + 1;

      counter <= counter + 1;

      end

      else if(counter > 6'd14)

      //換到第二行顯示

      begin

      state <= SETDDRAM;

      counter <= 6'd40;

      char_addr <= 6'b101000;

      end

      else

      begin

      state <= SHIFT;

      state <= READRAM;

      end

      end

      READRAM :

      begin

      state <= IDLE;

      end

      default :

      begin

      state <= IDLE;

      end

      endcase

      end endmodule

      第三篇:數(shù)字頻率計實驗報告

      數(shù)字電路與系統(tǒng)課程設(shè)計

      大連理工大學(xué)城市學(xué)院

      數(shù)字電路與系統(tǒng)課程設(shè)計

      設(shè)計題目:數(shù)字頻率計

      學(xué) 院:電子與自動化學(xué)院 專 業(yè): 自動化 學(xué) 生: 揣智涵 同 組 人: 王曉寧 周英茹 指導(dǎo)教師: 于海霞 完成日期: 2012年3月26日

      數(shù)字電路與系統(tǒng)課程設(shè)計

      目 錄

      第一章 設(shè)計任務(wù)

      1.1項目名稱 1.2項目設(shè)計說明 1.2.1設(shè)計任務(wù)和要求 1.2.2進度安排 1.3項目總體功能模塊圖

      第二章 需求分析

      2.1問題基本描述

      (要求分析得出整個系統(tǒng)流程圖)2.2系統(tǒng)模塊分解及各模塊功能的基本要求

      第三章 設(shè)計原理

      3.1 設(shè)計原理 3.2 MAXPLUSII介紹

      第四章 系統(tǒng)功能模塊設(shè)計

      4.1 FEN模塊

      4.1.1 FEN模塊流程圖

      4.1.2 輸入輸出引腳及其功能說明 4.1.3 程序代碼實現(xiàn) 4.2 SEL模塊

      4.2.1 SEL模塊流程圖

      4.2.2輸入輸出引腳及其功能說明 4.2.3程序代碼實現(xiàn)

      數(shù)字電路與系統(tǒng)課程設(shè)計

      4.3 CORNA模塊

      4.3.1 CORNA模塊流程圖

      4.3.2 輸入輸出引腳及其功能說明 4.3.3 程序代碼實現(xiàn) 4.4 LOCK模塊

      4.4.1 LOCK模塊流程圖

      4.4.2 輸入輸出引腳及其功能說明 4.4.3 程序代碼實現(xiàn) 4.5 CH模塊

      4.5.1 輸入輸出引腳及其功能說明 4.5.2 程序代碼實現(xiàn) 4.6 DISP模塊

      4.6.1 輸入輸出引腳及其功能說明 4.6.2 程序代碼實現(xiàn)

      第五章調(diào)試并分析結(jié)果

      5.1輸入說明 5.2預(yù)計輸出 5.3測試結(jié)果記錄 5.4測試結(jié)果分析

      第六章 結(jié)論 心得體會 參考文獻

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第一章 設(shè)計任務(wù)

      1.1 項目名稱:數(shù)字頻率計 1.2 項目設(shè)計說明

      1.2.1 設(shè)計任務(wù)和要求 此頻率計共分4檔: 一檔:0~9999Hz;二檔:10~99.99kHZ;三檔:100.0~999.9kHz;,四檔:1.000~999MHz;在換擋的設(shè)計方面,此程序突破了以往改變閘門時間的方法,使自動換擋的實現(xiàn)更加簡單可靠。1.2.2 進度安排

      第一節(jié)課:畫出模塊及程序流程圖

      第二節(jié)課:調(diào)試各模塊程序使其無誤

      第三節(jié)課:連接整個程序并下載到試驗箱是數(shù)字頻率計的功能實現(xiàn)

      第四節(jié)課:改進程序設(shè)計實現(xiàn)創(chuàng)新,然后完成課程設(shè)計報告

      第五節(jié)課:完成答辯 1.3 項目總體功能模塊圖如下

      數(shù)字電路與系統(tǒng)課程設(shè)計

      圖1-1

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第二章 需求分析

      2.1 問題基本描述

      所謂頻率,就是周期信號在單位時間(1秒)內(nèi)變化的次數(shù)。頻率計的測量范圍為1MHZ,為了測量精確量程分別為10KHZ,100KHZ,1000KHZ和1MHZ四個檔。即最大讀數(shù)分別為9.999KHZ,99.99KHZ,999.9KHZ,999MHZ。要求兩成自動換擋。其具體功能如下:

      (1)當(dāng)量程超過999時,自動增大一檔,下一次測量時量程大一檔;

      (2)當(dāng)超過測量范圍時,顯示溢出,報警器報警。(3)小數(shù)點位置隨量程變化自動移位。

      (4)采用記憶顯示方法,在測量過程中不顯示數(shù)據(jù),在測量完成以后顯示測頻結(jié)果,并將此結(jié)果 保存到下次測量結(jié)束,顯示時間不少于1秒。

      (5)根據(jù)頻率計的測頻原理,可以選擇合適的時基信號即閥門時間,對輸入信號脈沖進行計數(shù),實現(xiàn)測頻的目的。

      (6)根據(jù)數(shù)字頻率計的設(shè)計原理,可以將數(shù)字頻率計設(shè)計分為五個模塊來實現(xiàn)其功能。即分頻模塊,控制模塊,計數(shù)模塊,鎖存模塊和顯示模塊。用CLDH語言進行編程。

      (7)弄清什么情況下是測頻率,就是選擇合適的時基信號的問題。測頻率時以輸入信號作為時鐘信號,因為輸入信號的頻率大于頻率計的基準頻率。:

      數(shù)字電路與系統(tǒng)課程設(shè)計

      數(shù)字頻率計的系統(tǒng)流程圖如下

      圖2-1

      數(shù)字電路與系統(tǒng)課程設(shè)計

      2.2 系統(tǒng)模塊分解及各模塊功能的基本要求

      計數(shù)器在各個檔是被反復(fù)應(yīng)用的,如果在各個檔分別設(shè)計計數(shù)器就造成資源的浪費,而且在測周期和頻率的時候,計數(shù)器的時基信號和輸入信號要進行調(diào)換,但計數(shù)功能是一樣的,所以將計數(shù)器設(shè)為單獨的模塊。七段譯碼器也是被重復(fù)使用的,也設(shè)成單獨的模塊,這樣的話就不用在重復(fù)使用的時候重復(fù)書寫譯碼電路了??傮w來說數(shù)字頻率計分為五個模塊來設(shè)計,即分頻模塊計數(shù) 模塊,鎖存模塊,預(yù)測控制信號發(fā)生器,顯示模塊。

      分頻模塊為計數(shù)模塊提供1秒的閥門時間。計數(shù)模塊是整個程序的核心,它完成在1秒的時間里對被測信號計數(shù)的功能,并通過選擇輸出數(shù)據(jù)實現(xiàn)自動換擋的功能。鎖存模塊在信號L的下降沿到來時將信號A4,A3,A2,A1鎖存。顯示模塊對應(yīng)于數(shù)碼管片選信號,將相應(yīng)的數(shù)據(jù)送出,其中檔位也通過數(shù)碼管顯示。

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第三章 設(shè)計原理

      3.1 設(shè)計原理

      眾所周知,頻率信號易于傳輸,抗干擾性強,可以獲得較好的測量精度。因此,頻率檢測是電子測量領(lǐng)域最基本的測量之一。頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1 s。閘門時間可以根據(jù)需要取值,大于或小于1 s都可以。閘門時間越長,得到的頻率值就越準確,但閘門時間越長,則每測一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1 s作為閘門時間。

      數(shù)字頻率計的關(guān)鍵組成部分包括測頻控制信號發(fā)生器、計數(shù)器、鎖存器、譯碼驅(qū)動電路和顯示電路,其原理框圖如圖3-1所示。

      圖3-1數(shù)字頻率計原理圖

      3.2 MAXPLUSII介紹

      MAX+PLUSⅡ(Multiple Array and Programming Logic User System)開發(fā)工具是Altera公司推出的一種EDA工具,具有靈活高效、使用便捷和易學(xué)易用等特點。Altera公司在推出各種CPLD的同時,也在不斷地升級相應(yīng)的開發(fā)工具軟件,已從早起的第一代A+PLUS、第二代MAX+PLUS發(fā)展到第三代MAX+PLUSⅡ和第四代

      數(shù)字電路與系統(tǒng)課程設(shè)計

      Quartus。使用MAX+PLUSⅡ軟件,設(shè)計者無需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),只需用業(yè)已熟悉的設(shè)計輸入工具,如硬件描述語言、原理圖等進行輸入即可,MAX+PLUSⅡ就會自動將設(shè)計轉(zhuǎn)換成目標文件下載到器件中去。MAX+PLUSⅡ開發(fā)系統(tǒng)具有以下特點。(1)多平臺。MAX+PLUSⅡ軟件可以在基于PC機的操作系統(tǒng)如Windows95、Windows98、Windows2000、Windows NT下運行,也可以在Sun SPAC station等工作站上運行。

      (2)開放的界面。MAX+PLUSⅡ提供了與其他設(shè)計輸入、綜合和校驗工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等標準。目前MAX+PLUSⅡ所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。

      (3)模塊組合式工具軟件。MAX+PLUSⅡ具有一個完整的可編程邏輯設(shè)計環(huán)境,包括設(shè)計輸入、設(shè)計處理、設(shè)計校驗和下載編程4個模塊,設(shè)計者可以按設(shè)計流程選擇工作模塊。(4)與結(jié)構(gòu)無關(guān)。MAX+PLUSⅡ開發(fā)系統(tǒng)的核心——Compiler(編譯器)能夠自動完成邏輯綜合和優(yōu)化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可編程器件系列,提供一個與結(jié)構(gòu)無關(guān)的PLD開發(fā)環(huán)境。

      (5)支持硬件描述語言。MAX+PLUSⅡ支持各種HDL設(shè)計輸入語言,包括VHDL、Verilog-HDL和Altera的硬件描述語言AHDL。(6)豐富的設(shè)計庫。MAX+PLUSⅡ提供豐富的庫單元供設(shè)計者調(diào)用,其中包括一些基本的邏輯單元,74系列的器件和多種特定功能的宏功能模塊以及參數(shù)化的兆功能模塊。調(diào)用庫單元進行設(shè)計,可以大大減輕設(shè)計人員的工作量,縮短設(shè)計周期。

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第四章 系統(tǒng)功能模塊

      4.1 FEN 模塊

      4.1.1 FEN 模塊流程圖

      圖4-1

      數(shù)字電路與系統(tǒng)課程設(shè)計

      4.1.2輸入輸出引腳及其功能說明

      模塊FEN如圖9-87所示。通過對4MHz時鐘的分頻得到0.5Hz時鐘,為模塊CORNA提供1s的閘門時間。CLK:輸入時鐘信號;Q:輸出分頻后的基準信號。程序代碼的實現(xiàn)如下

      library ieee;use ieee.std_logic_1164.all;entity fen is

      port(clk:in std_logic;

      q: out std_logic);

      end fen;architecture fen_arc of fen is begin process(clk)variable cnt: integer range 0 to 999999;variable x: std_logic;begin

      if clk'event and clk = '1' then

      if cnt<999999 then

      cnt:=cnt+1;

      else

      cnt:=0;

      x:= not x;

      end if;

      end if;

      q<=x;end process;end fen_arc;

      圖4-2

      數(shù)字電路與系統(tǒng)課程設(shè)計

      4.2 SEL模塊

      4.2.1 SEL 模塊流程圖

      圖4-3 4.2.2 SEL模塊輸入輸出引腳及其功能說明

      CLK:基準時鐘信號; Q[2..0]:產(chǎn)生數(shù)碼管的片選信號。4.2.3 程序代碼實現(xiàn)

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel is port(clk: in std_logic;

      圖4-4 q:out std_logic_vector(2 downto 0));

      end sel;

      數(shù)字電路與系統(tǒng)課程設(shè)計

      architecture sel_arc of sel is begin process(clk)variable cnt:std_logic_vector(2 downto 0);begin

      if clk'event and clk='1' then

      cnt:=cnt+1;

      end if;

      q<=cnt;end process;end sel_arc;4.3 模塊CORNA 4.3.1 CORNA 模塊流程圖

      圖4-5 14

      數(shù)字電路與系統(tǒng)課程設(shè)計

      4.3.2 輸入輸出引腳及其功能說明

      該模塊是整個程序的核心,它完成在1s的時間里對被測信號計數(shù)的功能,并通過選擇輸出數(shù)據(jù)實現(xiàn)自動換擋的功能輸入輸出引腳及其功能說明CLR:復(fù)位按鈕;SIG:待測頻率信號;DOOR:基準時鐘頻率;ALM:蜂鳴器;DANG[3..0]:檔位值;Q0~4[3..0]:計算后的頻率值。4.3.3程序代碼實現(xiàn)

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna is port(clr,sig,door : in std_logic;

      alm : out std_logic;

      q3,q2,q1,q0,dang : out std_logic_vector(3 downto 0));end corna;

      architecture corn_arc of corna is begin process(door,sig)variable c0,c1,c2,c3,c4,c5,c6: std_logic_vector(3 downto 0);variable x:std_logic;

      begin

      if sig'event and sig='1' then

      if door='1' then

      if c0<“1001”then

      c0:=c0+1;

      else

      c0:=“0000”;

      if c1<“1001” then

      c1:=c1+1;

      else

      c1:=“0000”;

      圖4-6

      數(shù)字電路與系統(tǒng)課程設(shè)計

      if c2<“1001” then

      c2:=c2+1;

      else

      c2:=“0000”;

      if c3<“1001” then

      c3:=c3+1;

      else

      end if;

      end if;

      end if;

      end if;end if;end if;end if;else if clr = '0' then

      alm <= '0';end if;c6:=“0000”;c5:=“0000”;c4:=“0000”;c3:=“0000”;c2:=“0000”;

      c3:=“0000”;if c4<“1001” then c4:=c4+1;else c4:=“0000”;if c5<“1001” then

      c5:=c5+1;else

      c5:=“0000”;if c6<“1001” then

      c6:=c6+1;else

      c6:=“0000”;

      alm<='1';

      數(shù)字電路與系統(tǒng)課程設(shè)計

      c1:=“0000”;c0:=“0000”;end if;if c6/=“0000” then q3<=c6;q2<=c5;q1<=c4;q0<=c3;dang<=“0100”;elsif c5/=“0000” then q3<=c5;q2<=c4;q1<=c3;q0<=c2;dang<=“0011”;elsif c4/=“0000” then q3<=c4;q2<=c3;q1<=c2;q0<=c1;dang<=“0010”;else q3<=c3;q2<=c2;q1<=c1;q0<=c0;dang<=“0001”;end if;end if;end process;end corn_arc;

      數(shù)字電路與系統(tǒng)課程設(shè)計

      4.4 模塊LOCK 4.4.1 LOCK 模塊流程圖

      圖4-7 4.4.2 輸入輸出引腳及其功能說明

      該模塊實現(xiàn)鎖存器的功能,在信號L的下降沿到來時信號A4、A3、A2、A1鎖存。輸入輸出引腳及其功能說明L:基準時鐘信號;A0~4[3..0]:接受計數(shù)器CORNA傳過來的值并鎖存;Q0~4[3..0]:向數(shù)據(jù)選擇器傳值。4.4.3 程序代碼實現(xiàn)

      library ieee;use ieee.std_logic_1164.all;entity lock is

      數(shù)字電路與系統(tǒng)課程設(shè)計

      port(l: in std_logic;

      a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0);

      q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0));end lock;architecture lock_arc of lock is begin process(l)variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0);begin

      if l'event and l='0' then

      t4:=a4;

      t3:=a3;

      t2:=a2;

      t1:=a1;

      t0:=a0;

      end if;

      q4<=t4;

      q3<=t3;

      q2<=t2;

      q1<=t1;

      q0<=t0;end process;

      圖4-8 end lock_arc;4.5 模塊CH

      4.5.1 輸入輸出引腳及其功能說明

      該模塊對應(yīng)于數(shù)碼管片選信號,將相應(yīng)的數(shù)據(jù)送出,其中檔位也通過數(shù)碼管顯示。輸入輸出引腳及其功能說明SEL[2..0]:接受SEL模塊傳來的數(shù)碼管片選信號;A[3..0]:接受鎖存器傳來的數(shù)碼管片選信號;DANG[3..0]:接受鎖存器傳來的檔位信號;Q[3..0]:傳出數(shù)碼管位選信號。4.5.2 程序代碼實現(xiàn)

      library ieee;

      數(shù)字電路與系統(tǒng)課程設(shè)計

      use ieee.std_logic_1164.all;entity ch is port(sel:in std_logic_vector(2 downto 0);

      a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0);

      q:out std_logic_vector(3 downto 0));end ch;

      architecture ch_arc of ch is begin process(sel)begin

      case sel is

      when “110” =>q<=a0;

      when “010” =>q<=a1;when “100” =>q<=a2;

      圖4-9

      when “000” =>q<=a3;

      when “101” =>q<=dang;

      when others =>q<= “1111”;end case;end process;end ch_arc;4.6 DISP模塊

      4.6.1輸入輸出引腳及其功能說明

      D[3..0]:接受CH傳出的數(shù)碼管位選信號;Q[6..0]:譯碼出數(shù)碼管位選信號; 4.6.2程序代碼實現(xiàn)

      use ieee.std_logic_1164.all;entity disp is port(d:in std_logic_vector(3 downto 0);

      q:out std_logic_vector(6 downto 0));

      圖4-10 end disp;

      數(shù)字電路與系統(tǒng)課程設(shè)計

      architecture disp_arc of disp is

      begin process(d)begin

      case d is

      when “0000” =>q<=“0111111”;

      when “0001” =>q<=“0000110”;

      when “0010” =>q<=“1011011”;

      when “0011” =>q<=“1001111”;

      when “0100” =>q<=“1100110”;

      when “0101” =>q<=“1101101”;

      when “0110” =>q<=“1111101”;

      when “0111” =>q<=“0100111”;

      when “1000” =>q<=“1111111”;

      when “1001” =>q<=“1101111”;

      when others =>q<=“0000000”;

      end case;end process;end disp_arc;

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第五章

      5.1輸入說明

      調(diào)試并分析結(jié)果

      SIG:接1KHz頻率;CLR:接開關(guān);CLK:接4MHz頻率。

      5.2預(yù)計輸出

      低兩位數(shù)碼管顯示‘1’;高四位數(shù)碼管顯示‘1000’。

      5.3 測試結(jié)果記錄

      低兩位數(shù)碼管顯示‘1’;高四位數(shù)碼管顯示‘1000’。

      5.4 測試結(jié)果分析

      本頻率計滿足試驗要求,使用周期和直接測量法進行測量,這樣會減小誤差。實驗中也遇到了很多問題,在器件在線編程過程中,program各項操作無法進行,如果是首次編程,則需要設(shè)置下載端口,如果還比能進行操作,可能是芯片或者試驗箱出現(xiàn)問題,所以應(yīng)該換芯片或試驗箱。在連接引腳是要特別注意,否則顯示管無法顯示。此外此試驗還有需要改進的地方,比如測量頻率的精度和靈敏度。

      待測信號給的是1KHz,數(shù)碼管檔位顯示為一檔(0~9999Hz);頻率顯示為‘1000’;與預(yù)計輸出完全一樣。因為基準信號和待測信號是同一個信號源,故如此準確。也論證了上述設(shè)計的正確性。

      數(shù)字電路與系統(tǒng)課程設(shè)計

      圖5-1 如上圖,待測信號sig 10KHz,clk接1MHz顯示如圖,第一行和第二行為脈沖頻率,第三行為檔位,10KHz的待測信號檔位為二檔。

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第六章 結(jié)論

      心得體會

      經(jīng)過這次的實驗課程設(shè)計,我學(xué)到了如何將多個程序綁在一起使用并構(gòu)成一個完整的系統(tǒng)。在老師的指導(dǎo)下、在我們實驗設(shè)計小組的共同努力下、在其他同學(xué)的熱情幫助下,我們完整滴完成了《數(shù)字頻率計》的設(shè)計、組裝,并做了些創(chuàng)新。

      雖然實驗成功,我們同樣在實驗過程中遇到了一些問題: 1.剛開始時候的設(shè)計是每組組員做一部分,但是問題就是有些系數(shù)不能同一。因此造成了一開始實驗進展緩慢。2.在實驗過程中,器材的問題也被我們遇到了。因此也得到了些經(jīng)驗:要對自己的實驗成果由信心,不要一出問題就從程序中找問題??赡軐δ阕畲蟮淖璧K就是你沒有考慮到的器材問題。

      3.在最后仿真時候,導(dǎo)線的順序也是常出問題的地方。由于沒有及時發(fā)現(xiàn)問題的所在,我們小組花費了整整一節(jié)課的時間在改程序,浪費了許多寶貴時間。

      參考文獻

      【1】VHDL數(shù)字電路設(shè)計與應(yīng)用與實踐教程 【2】第2版王振紅 主編機械工業(yè)出版社

      數(shù)字電路與系統(tǒng)課程設(shè)計

      第四篇:課程設(shè)計----數(shù)字頻率計

      電子課程設(shè)計報告

      設(shè)計課題: 數(shù)字頻率計 作 者:

      李成贊≦

      專 業(yè): 08信息工程 班 級:(2)班

      學(xué) 號: 3081231201 日 期 2009年6月5日——2009年6月17日

      指導(dǎo)教師: 廖 東 進

      設(shè)計小組其他成員:葉昕瑜 史海鑌 陳福青 姚閩 梁芳芳

      衢州職業(yè)技術(shù)學(xué)院信息與電力工程系

      前 言

      一、頻率計的基本原理:

      頻率計又稱為頻率計數(shù)器,是一種專門對被測信號頻率進行測量的電子測量儀器。其最基本的工作原理為:當(dāng)被測信號在特定時間段T內(nèi)的周期個數(shù)為N時,則被測信號的頻率f=N/T。

      頻率計主要由四個部分構(gòu)成:時基(T)電路、輸入電路、計數(shù)顯示電路以及控制電路。在一個測量周期過程中,被測周期信號在輸入電路中經(jīng)過放大、整形、微分操作之后形成特定周期的窄脈沖,送到主門的一個輸入端。主門的另外一個輸入端為時基電路產(chǎn)生電路產(chǎn)生的閘門脈沖。在閘門脈沖開啟主門的期間,特定周期的窄脈沖才能通過主門,從而進入計數(shù)器進行計數(shù),計數(shù)器的顯示電路則用來顯示被測信號的頻率值,內(nèi)部控制電路則用來完成各種測量功能之間的切換并實現(xiàn)測量設(shè)置。

      二、頻率計的應(yīng)用范圍:

      在傳統(tǒng)的電子測量儀器中,示波器在進行頻率測量時測量精度較低,誤差較大。頻譜儀可以準確的測量頻率并顯示被測信號的頻譜,但測量速度較慢,無法實時快速的跟蹤捕捉到被測信號頻率的變化。正是由于頻率計能夠快速準確的捕捉到被測信號頻率的變化,因此,頻率計擁有非常廣泛的應(yīng)用范圍。

      在傳統(tǒng)的生產(chǎn)制造企業(yè)中,頻率計被廣泛的應(yīng)用在產(chǎn)線的生產(chǎn)測試中。頻率計能夠快速的捕捉到晶體振蕩器輸出頻率的變化,用戶通過使用頻率計能夠迅速的發(fā)現(xiàn)有故障的晶振產(chǎn)品,確保產(chǎn)品質(zhì)量。

      在計量實驗室中,頻率計被用來對各種電子測量設(shè)備的本地振蕩器進行校準。在無線通訊測試中,頻率計既可以被用來對無線通訊基站的主時鐘進行校準,還可以被用來對無線電臺的跳頻信號和頻率調(diào)制信號進行分析。

      目 錄

      1、設(shè)計要求

      數(shù)字頻率計

      2、第一章 系統(tǒng)概述

      3、第二章單元電路設(shè)計與分析 3.1 數(shù)字頻率計的基本原理 3.2 數(shù)字頻率的設(shè)計 3.2.1 放大整形電路

      3.2.2 時基電路

      3.2.3 邏輯控制電路 3.2.4 輸出實現(xiàn)器

      4、第三章 總結(jié)設(shè)計

      附錄A 系統(tǒng)電路原理圖

      附錄B 元件清單

      附錄C 參考文獻

      設(shè) 計 要 求

      電子課程設(shè)計報告格式:

      每人必須寫出一份4000字以上設(shè)計總結(jié)報告,總結(jié)報告應(yīng)包括以下內(nèi)容:

      題目名稱、前言、目錄、鳴謝、元器件明細表、附圖、參數(shù)文獻。

      其中,前言應(yīng)包含設(shè)計題目的主要內(nèi)容、資料收集工作的簡介。正文參考格式如下:

      第一章 系統(tǒng)概述

      簡單介紹系統(tǒng)設(shè)計思路與總體解決的可行論證,各功能塊的劃分與組成,全面介紹總體工作或工作原理。

      第二章 單元電路設(shè)計與分析

      詳細介紹個單元電路的選擇、設(shè)計及工作原理分析,并介紹有關(guān)參數(shù)的計算及元件參數(shù)的選擇等。

      第三章 總結(jié)

      簡單介紹對設(shè)計題目的結(jié)論性意見,進一步完善或改進的意向性說明,總結(jié)設(shè)計課程的收獲與體會。

      元器件明細表主要用于列出本次課程設(shè)計中所用到的全部元器件。

      附圖要求用2#以上圖紙畫出總原理接線圖,參考文獻格式如下:

      序號 作者名 書刊名 出版社 出版時間(刊號)

      數(shù)字頻率計(設(shè)計要求):

      數(shù)字頻率計是用來測量正弦信號、矩形信號等波形上工作頻率的儀器,其測量結(jié)果直接用十進制數(shù)字顯示。本題要求采用中、小規(guī)模集成芯片設(shè)計集成有下列功能的數(shù)字頻率測量計:

      被測信號的頻率范圍為1Hz—100KHz,分成兩個頻段,即1—999Hz、1—100KHz,用三位數(shù)碼管顯示測量數(shù)據(jù),測量誤差小于5%。

      數(shù)字頻率計

      第一章 系統(tǒng)概述

      為了使計數(shù)器被測信號的頻率范圍為1—999Hz、,用三位數(shù)碼管顯示測量數(shù)據(jù)。

      第二章 單元電路設(shè)計與分析

      一、數(shù)字頻率計測頻率的基本原理

      所謂頻率,就是周期性信號在單位時間(1s)內(nèi)變化的次數(shù)。若在一定時間間隔T秒內(nèi)測得 這個周期性信號的重復(fù)變化次數(shù)為N,則其頻率可表示為:

      f=N/T

      圖1——數(shù)字頻率計的組成框圖和波形圖

      圖1是數(shù)字頻率計的組成框圖。被測信號v x 經(jīng)放大整形電路變成計數(shù)器所要求的脈沖信號I,其頻率與被測信號的頻率f x 相同。時基電路提供標準時間基準信號II,其高電平持續(xù)時間t1=1 秒,當(dāng)l秒信號來到時,閘門開通,被測脈沖信號通過閘門,計數(shù)器開始計數(shù),直到l秒信號結(jié)束時閘門關(guān)閉,停止計數(shù)。若在閘門時間1s內(nèi)計數(shù)器計得的脈沖個數(shù)為N,則被測信號頻率f 邏輯控制電路的作用有兩個:一是產(chǎn)生鎖存脈沖IV,使顯示器上的數(shù)x =NHz。字穩(wěn)定;二是產(chǎn)生清“0”脈沖V,使計數(shù)器每次測量從零開始計數(shù)。

      各信號之間的時序關(guān)系如圖1所示。

      二、數(shù)字頻率計的電路設(shè)計

      基本電路設(shè)計

      數(shù)字頻率計的基本框圖如圖1所示,各部分作用如下。

      ①放大整形電路

      圖2——放大整形電路圖

      放大整形電路由晶體管3DG100與74LS00等組成,其中3DGl00組成放大器將輸入頻率。為f 三角波等進行放大,與非門74LS00構(gòu)成施密特觸發(fā)器,它對放 x 的周期信號如正弦波、大器的輸出信號進行整形,使之成為矩形脈沖。

      ②時基電路

      圖3——時基電路

      時基電路的作用是產(chǎn)生一個標準時間信號(高電平持續(xù)時間為 1s),由定時器555構(gòu)成的多諧振蕩器產(chǎn)生。若振蕩器的頻率 f0 1/(t1 t 2)0.8Hz,則振蕩器的輸出波形如圖1中的波形II所示,其中t1=1s,t2=0.25s。由公式t1=0.7(R1+R2)C和t2=0.7R2C,可計算出電阻R1、R2及電容C的值如圖。

      ③邏輯控制電路

      圖4——邏輯控制電路

      根據(jù)圖1所示波形,在計數(shù)信號II結(jié)束時產(chǎn)生鎖存信號IV,鎖存信號IV 結(jié)束時產(chǎn)生 清“0”信號 V。脈沖信號IV和V可由兩個單穩(wěn)態(tài)觸發(fā)器74LS123產(chǎn)生,它們的脈沖寬度由電路的時間常數(shù)決定。

      設(shè)所存信號IV和清“0”信號V的脈沖寬度tw相同,如果要求tw=0.02s,則得:

      tw=0.45RextCext=0.02s

      若取 Rext=10kΩ,則 Cext=tw/0.45Rext=4.4μ

      F。

      由74LS123的功能(見下表1)可得,當(dāng) 1R 1B ?1 觸發(fā)脈沖從1A端輸入時,在觸D

      發(fā)脈沖的負跳變作用下,輸出端1Q可獲得一負脈沖,其波形關(guān)系正好滿足圖1所示的波形IV和V的要求。手動復(fù)位開關(guān)S按下時,計數(shù)器清“0”。

      表1——74LS123功芯片能表

      ④輸出實現(xiàn)器

      圖5——頻率計算器

      表2——74LS90的不同接線方法

      鎖存器的作用是將計數(shù)器在1s結(jié)束時所計得的數(shù)進行鎖存,使顯示器上能穩(wěn)定地顯示 此時計數(shù)器的值。如圖所示,1s計數(shù)時間結(jié)束時,邏輯控制電路發(fā)出鎖存信號IV,將此時計數(shù)器的值送譯碼顯示器,選用兩個8位鎖存器74L273可以完成上述功能。當(dāng)時鎖存信號CP的正跳變來到時,鎖存器的輸出等于輸入,從而將計數(shù)器的輸出值送到鎖存器的輸出端。

      高電平結(jié)束后,無論D為何值,輸出端的狀態(tài)仍保持原來的狀態(tài)不變,所以在計數(shù)期間內(nèi),計數(shù)器的輸出不會送到譯碼顯示器。

      表3——74LS273功能表

      表4——74LS4

      第三章 結(jié)束語

      ①設(shè)計總結(jié)

      簡易的數(shù)字頻率計基本完成,各Vcc接電源正極,各開關(guān)控制電路的各個部分。整個電路綜合使用了與門、非門、555定時器、顯示器、74LS48譯碼器、74LS273鎖存器、74LS90計數(shù)器等等的邏輯器件和施密特、可重觸發(fā)器等模擬電子器件。

      ②設(shè)計心得、體會

      本次課程設(shè)計由李成贊同學(xué)總設(shè)計,在廖東進老師輔導(dǎo)下順利完成啦。通過本次的課程設(shè)計,加深了我對數(shù)字電子技術(shù)模擬電子兩門課程的理解,強化了我對相關(guān)知識的記憶,提高了我對所學(xué)知識的應(yīng)用。這極大擴展了我的視野,更加激發(fā)了我對這門課程的熱愛,在設(shè)計的過程中,由于綜合應(yīng)用了各種學(xué)習(xí)、應(yīng)用軟件,例如:word、auto CAD、Multisim等,不但體改了技能,還能從中獲得了成就感。通過這次設(shè)計,我完全知道了團隊合作的所帶來的快樂,集體的力量的強大性!我定位了我自己,發(fā)現(xiàn)自己的優(yōu)勢和不足,并且勉勵自己不斷進步,并對未來充滿信心。

      再此感謝給與指導(dǎo)的廖東進老師、李培江老師、黃云龍老師的指導(dǎo)。對本課程設(shè)計的的大力支持。

      附錄A

      統(tǒng)

      附錄B:元件清單

      附錄C:參考文獻

      第五篇:簡易數(shù)字頻率計設(shè)計報告

      EDA技術(shù)基礎(chǔ) 簡易數(shù)字頻率計 必做實驗

      電子信息科學(xué)與技術(shù)

      物電學(xué)院

      2011-06-24 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      簡易數(shù)字頻率計

      一.實驗要求

      用Verilog硬件描述語言設(shè)計一個時序邏輯電路,能夠?qū)斎氲腡TL信號進行1s時長計數(shù),將計數(shù)結(jié)果在數(shù)碼管上顯示,讓該電路循環(huán)運行,則數(shù)碼管顯示的就是輸入信號的頻率。

      用標準DDS信號發(fā)生器輸入TTL信號,測試信號的頻率與DDS輸出設(shè)定的頻率比較,分析誤差以及誤差產(chǎn)生的原因。

      顯示效果好,無閃爍,高位零不顯示。

      二.方案原理圖

      總體框圖:

      三、主要部分原理說明及實驗步驟

      根據(jù)原理圖,先把計數(shù)器模塊、顯示模塊、掃描模塊分別做出。對于計數(shù)器模塊因為要實現(xiàn)00000000~99999999的計數(shù)器,所以要用32bit,即要用

      32第2頁,共8頁 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      個D觸發(fā)器。從而要用8個數(shù)碼管進行循環(huán)掃描顯示。對于1HZ的精密脈沖在低電平時,一方面和被測脈沖通過或門,當(dāng)被測脈沖為高電平時門電路開啟,另一方面通過一個非門把計數(shù)器的清零端置1,計數(shù)器正常工作開始計數(shù)。高電平時對計數(shù)器清零的同時,把測得的數(shù)據(jù)送入BUFFER中進行顯示鎖存。數(shù)碼管的掃描時鐘由外部提供。在此基礎(chǔ)上把前面的0清除。

      1、我在該設(shè)計中使用了一個或門作為門控電路,當(dāng)輸入時鐘clka為低電平時,被測信號clk通過,當(dāng)輸入時鐘clka為高電平時,被測信號被阻止。從clka端輸入的是一個24M的脈沖,經(jīng)過1HZ模塊處理后生成一秒赫茲信號(如下圖)

      由這個信號來控制99999999計數(shù)器的清零和buffer中數(shù)據(jù)的更新以及被測信號的通過與阻止

      其verilog語言代碼如下 module clk_1hz(clk,clked);input clk;output clked;reg clked;reg[31:0]jishu;always @(posedge clk)begin if(jishu==24000000)begin jishu=0;clked=1;end else begin jishu=jishu+1;clked=0;end end endmodule

      2、門控電路部分

      其verilog語言代碼如下

      第3頁,共8頁 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      module mynot(clk_1hz,nclk_1hz);input clk_1hz;output nclk_1hz;assign nclk_1hz=!clk_1hz;endmodule

      99999999計數(shù)器計數(shù)在到達1S的瞬間,1HZ時鐘出現(xiàn)上升沿,控制緩存器將此時的計數(shù)值鎖存起來,然后送出顯示。很短一段時間后,1HZ時鐘恢復(fù)低電平,在這很短的時間內(nèi)1HZ時鐘經(jīng)非門也完成了計數(shù)器的清零,之后計數(shù)器又恢復(fù)計數(shù)狀態(tài),進入下一秒的計數(shù)。

      其verilog語言代碼如下 module mynot(clk_1hz,nclk_1hz);input clk_1hz;output nclk_1hz;assign nclk_1hz=!clk_1hz;endmodule

      3、計數(shù)模塊

      第4頁,共8頁 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      99999999計數(shù)器是本次實驗的關(guān)鍵所在,它的主要功能是:在1hz精密時鐘和門控電路的控制下,在1s的時間內(nèi),對輸入信號進行計數(shù),1s后,由于門控電路的存在,計數(shù)器停止計數(shù) 其verilog語言代碼如下 module cnt99999999(clr,clk,q);input clr,clk;output [31:0]q;reg [31:0]q;always @(posedge clk or negedge clr)begin if(!clr)q[31:0]=0;else if(q[31:0]==31'H99999999)q[31:0]=q[31:0]+32'H66666667;else if(q[27:0]==27'H9999999)q[31:0]=q[31:0]+28'H6666667;else if(q[23:0]==24'H999999)

      q[31:0]=q[31:0]+24'H666667;else if(q[19:0]==20'H99999)

      q[31:0]=q[31:0]+20'H66667;else if(q[15:0]==16'H9999)

      q[31:0]=q[31:0]+16'H6667;else if(q[11:0]==12'H999)

      q[31:0]=q[31:0]+12'H667;else if(q[ 7:0]== 8'H99)

      q[31:0]=q[31:0]+8'H67;else if(q[ 3:0]== 4'H9)

      q[31:0]=q[31:0]+4'H7;else q[31:0]=q[31:0]+1;end endmodule

      4、顯示數(shù)據(jù)緩沖buffer的設(shè)計

      數(shù)據(jù)緩沖buffer的功能是當(dāng)用計數(shù)器對輸入信號計數(shù),這些數(shù)據(jù)都暫時存在這個里面,每當(dāng)時鐘的上升沿到來的時候,它就向后面的模塊輸送數(shù)據(jù),這樣就可以得到相對穩(wěn)定的顯示。

      第5頁,共8頁 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      其verilog語言代碼如下

      module buff(in,clk,n1,n2,n3,n4,n5,n6,n7,n8);input clk;input [31:0]in;output [3:0]n1,n2,n3,n4,n5,n6,n7,n8;reg [3:0]n1,n2,n3,n4,n5,n6,n7,n8;

      always @(posedge clk)begin begin n1=in[3:0];n2=in[7:4];n3=in[11:8];n4=in[15:12];n5=in[19:16];n6=in[23:20];n7=in[27:24];n8=in[31:28];end end endmodule

      5、顯示部分

      由于要用到8個數(shù)碼管對實驗結(jié)果進行顯示,我們可以設(shè)計一個譯碼模塊:

      其verilog語言代碼如下 module yima(in,a,b,c,d,e,f,g,dp);input

      [3:0]in;output a,b,c,d,e,f,g,dp;reg

      a,b,c,d,e,f,g,dp;always @(in)begin case(in)

      第6頁,共8頁 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      4'b0000:{dp,g,f,e,d,c,b,a}=8'b00111111;4'b0001:{dp,g,f,e,d,c,b,a}=8'b00000110;4'b0010:{dp,g,f,e,d,c,b,a}=8'b01011011;4'b0011:{dp,g,f,e,d,c,b,a}=8'b01001111;4'b0100:{dp,g,f,e,d,c,b,a}=8'b01100110;4'b0101:{dp,g,f,e,d,c,b,a}=8'b01101101;4'b0110:{dp,g,f,e,d,c,b,a}=8'b01111101;4'b0111:{dp,g,f,e,d,c,b,a}=8'b00000111;4'b1000:{dp,g,f,e,d,c,b,a}=8'b01111111;4'b1001:{dp,g,f,e,d,c,b,a}=8'b01101111;default:{dp,g,f,e,d,c,b,a}=8'b01000000;endcase end endmodule 部分引腳功能的排列如下圖所示

      數(shù)碼管的引腳排列 以上5部分就是頂層原理圖的主要部分

      四、實驗總結(jié)

      1、要用1HZ的精確時鐘不能直接接一個外接的信號源,這樣的誤差太大,只能將一個標準的24M的時鐘進行24分頻,才能的到相對穩(wěn)定的時鐘信號。

      2、數(shù)據(jù)緩沖部分不能少,如果沒有這部分,將得不到想要的結(jié)果,數(shù)碼管上會出現(xiàn)一排亂跳的數(shù)字。

      3、在整個實驗設(shè)計過程中,我發(fā)現(xiàn)只要弄清楚所需要的幾個模塊,然后將模塊分開來進行生成,設(shè)計也并不是想象中的那么難。

      第7頁,共8頁 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告

      4、在此程序設(shè)計中,對各個模塊的功能有針對性的設(shè)計思路有了一定的提高,對于一個程序的需要哪些功能模塊,需要什么樣的輸入輸出,都比以前有了一定的提高。

      5、學(xué)EDA已經(jīng)有一學(xué)期了,現(xiàn)在對那些原理框圖并不陌生了,現(xiàn)在也可以寫一些簡單的代碼。我發(fā)現(xiàn)只要我們認真的去學(xué)習(xí),虛心的的去請教他人,我們誰都可以把這門課學(xué)好。雖然在學(xué)習(xí)這門課以及做實驗的過程中,我們往往會遇到種種困難,但是當(dāng)實驗結(jié)果與現(xiàn)象出來的那一剎那,我們就會感受那成功的快樂。

      第8頁,共8頁

      下載數(shù)字頻率計設(shè)計word格式文檔
      下載數(shù)字頻率計設(shè)計.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        簡單單片機數(shù)字頻率計設(shè)計(優(yōu)秀范文五篇)

        課程設(shè)計報告 簡易頻率計的設(shè)計 電子科學(xué)XX學(xué)院 姓名:專業(yè):通信工程學(xué)號:2013 2015年12月 摘要 1 本系統(tǒng)基于單片機來實現(xiàn)核心的頻率計數(shù)功能,并能夠?qū)崿F(xiàn)測量中的量程自動切換......

        基于FPGA的數(shù)字頻率計設(shè)計報告

        電子技術(shù)綜合試驗實驗報告 班級:測控一班學(xué)號:2907101002 姓名:李大帥 指導(dǎo)老師:李穎 1 基于FPGA的數(shù)字頻率計設(shè)計報告 一、 系統(tǒng)整體設(shè)計 設(shè)計要求: 1、被測輸入信號:方......

        基于51單片機的數(shù)字頻率計的設(shè)計概要

        武漢理工大學(xué)《單片機原理與應(yīng)用》課程設(shè)計說明書 1 前言 頻率測量是電子學(xué)測量中最為基本的測量之一。由于頻率信號抗干擾性強,易于傳輸,因此可以獲得較高的測量精度。隨著數(shù)......

        基于FPGA的簡易數(shù)字頻率計

        EDA 簡易數(shù)字頻計 設(shè)計性實驗 2008112020327 ** 電子信息科學(xué)與技術(shù) 物電 電工電子中心2009年5月繪制 2008.6.10 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告......

        verilog簡易數(shù)字頻率計報告

        一、實驗原理 根據(jù)原理圖,將計數(shù)器模塊、顯示模塊、掃描模塊、譯碼器模塊等分別做出。其原理是在1S內(nèi)用待測信號給計數(shù)器計數(shù),并在一秒結(jié)束時給計數(shù)器清零,計出來用緩存器緩存,......

        簡易數(shù)字頻率計(數(shù)字電路課程設(shè)計)

        數(shù)字電路課程設(shè)計報告1)設(shè)計題目簡易數(shù)字頻率計2)設(shè)計任務(wù)和要求要求設(shè)計一個簡易的數(shù)字頻率計,測量給定信號的頻率,并用十進制數(shù)字顯示,具體指標為:1)測量范圍:1HZ—9.999KHZ,閘......

        東華大學(xué)數(shù)字電路課程設(shè)計_數(shù)字頻率計

        數(shù) 字 電 路 課 程 設(shè) 計 第一章設(shè)計指標……………………………………....……...…….... P2 設(shè)計指標…………………………………………………………….... 第二章 系統(tǒng)......

        簡易數(shù)字頻率計c程序清單

        河池學(xué)院2004屆本科生畢業(yè)論文(設(shè)計) 簡易數(shù)字頻率計 附件 源程序如下: #include unsigned char data key,flag_ft,point,buffer,j,INT1_ready,couter0,couter1,bus0,bus1,cycl......