日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机的频率计设计

發布時間:2024/3/12 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机的频率计设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?設計功能

(1)主要采用51單片機+最小系統+LCD1602液晶顯示模塊+分頻電路+整形電路+按鍵而成。
(2)頻率的測量范圍為1Hz—20MHz能測量各種周期信號,能測出正弦波、三角波或方波等波形的頻率。
(3)通過LCD1602液晶顯示屏顯示檢測到的即時頻率數值(最多8位數,單位為Hz)。?
(4)電路板上排針左邊接信號輸入,右邊接地。

原理圖:

原理圖繪制軟件采用AD2013。頻率計能測出正弦波、三角波或方波等波形的頻率,測量范圍為1Hz—20MHz,且能檢測幅度最小值為1Vpp的信號;③通過LCD1602液晶顯示屏顯示檢測到的即時頻率數值(最多8位數,單位為Hz)。另外,當輸入頻率大于20KHz的信號時,由于采用了100分頻采樣,顯示結果稍有誤差,如輸入最大測量頻率20MHz的信號時,LCD1602液晶顯示屏上顯示的測量結果為19998900HZ,誤差不超過十萬分之一,在可接受范圍之內。

輸入信號需要經過信號處理電路后,單片機才能準確計算出頻率;

(1)信號放大電路

????????為了有效防止因信號過小而造成的檢測障礙,在信號輸入處采用了三極管共射放大電路,如圖所示。

????????實際工作中,我們必須解決放大電路與信號源及放大電路與負載之間的耦合問題。一方面要求耦合電路能夠傳輸交流的輸入和輸出信號,傳輸過程中的信號損耗盡可能小;另一方面又要求信號源,放大電路、負載之間的直流工作狀態互補影響,即有“隔直”作用,電路的C1、C7就很好的解決了這個問題即固定偏置共射極放大器。集電極電壓通過基極偏置電阻R2使晶體管Je正偏;同時拖過R3使Jc反偏,從而實現信號源放大。

(2)信號緩沖電路

????????脈沖產生模塊采用74HC14實現了三次施密特觸發并反相,從圖1.2可以看出,來自信號采集模塊的經過放大的信號從74HC14的1腳進入,經過1A→1Y、2A→2Y和3A→3Y三次施密特觸發并反相最終將緩慢變化的輸入信號轉換成清晰、無抖動的信號從6腳輸出。

(3)分頻電路

????????由于單片機可操作頻率有限,若輸入信號頻率過大則單片機無法成功實現脈沖計數,因此需要使用74HC390進行分頻,以100分頻為宜(具體為200KHz以上信號采取100分頻后再檢測,200KHz或以下信號則檢測未經100分頻的原始信號)。

采取的方法為:從圖中可以看出,若從nCP1輸入頻率為f的時鐘信號,則會在nQ2處輸出頻率為f/5的脈沖信號,因此可進行如圖1.5所示的連線方法,1CP1--1Q2→2CP1--2Q2→1CP0--1Q0→2CP0--2Q0,其中“→”代表芯片外部電氣連接,“--”代表芯片內部功能連接,從而得到5×5×2×2=100分頻,即若從1CP1輸入一個頻率為f的信號,則會從2Q0輸出一個頻率為f/100的分頻信號。?

其總體硬件原理圖如圖所示。

仿真設計

仿真軟件采用Protues7.8。

程序設計

程序采用C作為編程語言,使用Keil5作為編程軟件;

/----------------主函數-------------------- void main() { unsigned char i;LCD_init();timer_init(); //定時/計數器初始化 for(i = 0;i<4;i++){LCD_disp_char(i+0,1,character_1[i]);}while(1){dis_num(); //顯示delay_1s();} } //-------------------定時/計數器初始化-------------- void timer_init(void) //定時/計數器初始化 { TMOD=0x66; //計數器0和計數器1工作工作方式2,自動重裝初值 TH0=0; //計數器初值為0TL0=0;TR0=1; //計數器開始計數 ET0=1; //打開計數器0中斷 TH1=0; //計數器初值為0TL1=0;TR1=1; //計數器開始計數 ET1=1; //打開計數器1中斷 RCAP2H=(65536-62500)/256; //在程序初始化的時候給RCAP2L和RCAP2H賦值, RCAP2L=(65536-62500)%256; //TH2和TL2將會在中斷產生時自動使TH2=RCAP2H,TL2=RCAP2L。 TH2=RCAP2H; //12M晶振下每次中斷62.5ms(1s=1000ms=62.5ms×16)TL2=RCAP2L;ET2=1; //打開定時器2中斷 TR2=1; //定時器2開始計時 EA=1; //開總中斷 } //------------------中斷函數---------------------- void timer2(void) interrupt 5 //定時器2中斷(62.5ms) {time++;TF2=0; //定時器2的中斷標志位TF2不能夠由硬件清零,所以要在中斷服務程序中將其清零if (time==16) //定時1s時間到 {time=0; //計時清0EA=0; //關中斷 fre=(long)count1*256+TL1; //count*256強制轉換成long型,否則將不產生進位~先判斷分頻后(計數器1)FLAG = 0; if(fre<2000)//如果不到200KHz則讀取分頻前(計數器0)頻率(200K÷100=2000){fre = (long)count*256+TL0;FLAG = 1; } if(!FLAG){fre = fre *100;//100分頻}TL0=0; //清零計數器0計數 TH0=0;TL1=0;TH1=0; count=0; //清零計數器0計數 count1=0;EA=1; //開中斷 } }

鏈接:https://pan.baidu.com/s/1K_iaNaTtbG7G-vrYtpOvyw?
提取碼:fqvi

?

總結

以上是生活随笔為你收集整理的51单片机的频率计设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。