freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的頻率測量儀的設(shè)計(jì)-資料下載頁

2025-10-14 13:01本頁面

【導(dǎo)讀】要的參數(shù),測量頻率的重要性不言而喻。同時頻率測量儀也是計(jì)算機(jī),通訊設(shè)備,音頻視頻等科研領(lǐng)域不可或缺的測量儀器。為了得到性能更好的電子系統(tǒng),一個。該文主要論述了基于STC89C52單片機(jī)設(shè)計(jì)的數(shù)字頻率計(jì),具有測量范圍寬,響應(yīng)頻率范圍廣,測量速度快,體積小,精度高的優(yōu)點(diǎn)。過零比較電路,分頻電路,MCU控制電路,測量結(jié)果顯示電路組成。候采用測寬法進(jìn)行頻率測量以盡可能的縮短測量時間。三角波,正弦波,鋸齒波等各種各樣的信號,測量頻率范圍為~5MHz。

  

【正文】 t 2{ //外部中斷 1,用來響應(yīng)按鍵 IsTestConter = 1。 //當(dāng)按下按鍵的時候,先用計(jì)數(shù)法測量頻率,然 //后再判斷 量程 ,大于 100Hz 直接顯示頻率,如果小 //于 100Hz,則切換量程,使用測寬法進(jìn)行測量 } 當(dāng)按下了按鍵,測量計(jì)數(shù)法的標(biāo)志位 isTestConter 置 1。在主函數(shù) 使用 if 語句循環(huán)判斷計(jì)數(shù)法 標(biāo)志位 和測寬法的標(biāo)志位,當(dāng)檢測到計(jì)數(shù)法標(biāo)志位為 1 的時候就啟動計(jì)數(shù)法測頻。當(dāng)檢測到測寬法的標(biāo)志位為 1 的時候就啟動測寬法進(jìn)行頻率的測量。這樣做有個好處 就 是層次清晰,所有操作均使用中斷完成, 響應(yīng)迅速 , 程序簡單明了。主函數(shù)如下所示。 void main(){ timer0_init_jishu()。 //先將定時器 0 初始化成計(jì)數(shù)方式,為量程判斷做準(zhǔn)備 timer1_init()。 //定時器 1 初始化 Init_LCD1602()。 //LCD1602 初始化 w_cmd0(0x01)。 //LCD1602 清屏 w_string0(0x80, wele! )。 //LCD1602 顯示歡迎界面 w_string0(0xc0,Happy every day!)。 30 基于單片機(jī)的頻率測量儀的設(shè)計(jì) MR = 0。 //74LS161 清 0 MR = 1。 PT = 0。 interrupt_init()。 //中斷的初始化 while(1){ if(isTestWidth == 1){ //如果測寬法標(biāo)志位為 1,開始測寬法測頻率 w_cmd0(0x01)。 //LCD1602 清屏 w_string0(0x80, Please wait...)。 //顯示等待信息 w_string0(0xc0, Now Measuring)。 isTestWidth = 0。 //標(biāo)志位清 0 TestWidth()。 //開始測寬法測量頻率 } if(isTestConter == 1){ //如果計(jì)數(shù)法標(biāo)志位為 1,開始計(jì)數(shù)法測頻率 w_cmd0(0x01)。 //LCD1602 清屏 w_string0(0x80, Please wait...)。 //顯示等待信息 w_string0(0xc0, Now Measuring)。 isTestConter = 0。 //標(biāo)志位清 0 TestConter()。 //開始計(jì)數(shù)法測量頻率 } } } /******************測寬法測量頻率 啟動函數(shù) ******************/ void TestWidth(){ timer0_init_dingshi()。 //定時器初始化成定時模式,用來對波長計(jì)時 MR = 0。 //對 74LS161 進(jìn)行清 0,在 MR 的上升沿, 74LS161 清 0 MR = 1。 ET1 = 0。 //禁止定時器 1 中斷 EX1 = 0。 //禁止外部中斷 1,防止此時按下按鍵 EX0 = 1。 //打開外部中斷 0,用于對被測信號的下降沿進(jìn)行響應(yīng) PT = 1。 //74LS161 開始工作 第四章 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì) 31 } /************************計(jì)數(shù)法測頻率 啟動函數(shù) *********************/ void TestConter(){ timer0_init_jishu()。 //定時器 0 初始化成 計(jì)數(shù)模式,對 74LS161 的進(jìn)位 //次數(shù)進(jìn)行統(tǒng)計(jì) MR = 0。 //對 74LS161 進(jìn)行清 0,在 MR 的上升沿, 74LS161 清 0 MR = 1。 TR1 = 1。 //定時器 1 開始計(jì)時,定時 50ms,進(jìn)入中斷 20 次為 1S 時間 TR0 = 1。 //計(jì)數(shù)器 0 開始工作,計(jì)數(shù)第二片 74LS161 的進(jìn)位次數(shù) PT = 1。 //74LS161 開始計(jì)數(shù) } 以下是頻率顯示程序 的關(guān)鍵函數(shù)。測量所 得到 的頻率值是一個 32 位的 long 型整數(shù),這個函數(shù)將其處理成字符串進(jìn)行輸出,例如頻率為 2020577Hz,則會被處理成 “fre=”這樣的一個字符串送給 LCD1602 液晶進(jìn)行顯示。 void make_int_hz(unsigned char addr_start,unsigned long dat){ isZero = 0。 //是否是整數(shù)前面多于的 39。039。,比如 00102,需要將前面的 //兩個 0 去掉,而不能去掉 102 中間的 0 isKHz = 0。 //是否是 KHz 級頻率,確定后面單位的顯示 isMHz = 0。 //是否是 KHz 級頻率,確定后面單位的顯示 if((dat=1000)amp。amp。(dat1000000))isKHz = 1。 // 如果頻率在 1000 到 1M 之間 //則為 KHz 級的頻率, isKHz 標(biāo)志位置 1 if(dat=1000000)isMHz = 1。 // 如果頻率大于 1MHz,則為 MHz 級的頻 //率, isMHz 標(biāo)志位置 1 w_cmd(addr_start | 0x80)。 //發(fā)送 LCD1602 的顯示 坐標(biāo) , 0x80 是第一行的 //第 一個位置, 使用與操作可以任意設(shè)置顯示位置 temp1602 = dat/10000000%10。 //取出最高位,先整除然后對 10 取余,比如 //1234/1000%10 則為 1, 1234/100%10 則為 2,依次類推 if(temp1602)w_dat(temp1602+39。039。),isZero = 1。 //如果最高位是 0 則不顯示 temp1602 = dat/1000000%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 // 無效位的 0 不顯示 32 基于單片機(jī)的頻率測量儀的設(shè)計(jì) if(isMHz)w_dat(39。.39。)。 //如果 isMHz 是 1,則顯示 39。.39。 temp1602 = dat/100000%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 temp1602 = dat/10000%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 temp1602 = dat/1000%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 f(!isMHz){if(isKHz)w_dat(39。.39。)。} //如果不是 MHz 的頻率而是 KHz級的,則在//這 里顯示小數(shù)點(diǎn) temp1602 = dat/100%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 temp1602 = dat/10%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 temp1602 = dat%10。 if(temp1602||isZero)w_dat(temp1602+39。039。),isZero = 1。 if(isMHz)w_dat(39。M39。)。 //如果是 MHz 級的頻率,則顯示其單位 if(!isMHz){ if(isKHz)w_dat(39。K39。)。 } // 如果是 MHz 級的頻率,則顯示其單位 w_dat(39。H39。)。 // 顯示頻率的符號 39。Hz39。 w_dat(39。z39。)。 } 第五章 結(jié)論 33 第五章 結(jié)論 軟件仿真結(jié)果 Proteus軟件是英國 Labcenter electronics公司 開發(fā)的 電子設(shè)計(jì)自動化軟件 (EDA仿真軟件 ), 它可以 從原理圖 繪制 、 軟 件代碼仿真 調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一 一個 將電路仿真 模塊 、 PCB 設(shè)計(jì) 模塊 和虛擬模型仿真 模塊 三 部分 合一的設(shè)計(jì)開發(fā) 平臺, 它的 處理器模型支持 8051 內(nèi)核單片機(jī) 、 HC1 AVR 精簡指令單片機(jī) 、ARM、 8086 和 MSP430 低功耗單片機(jī) 等, 2020 年又增加了 Cortex 和 DSP 系列處理器 的仿真模型 , 而且它會 持續(xù)增加其他系列處理器模型 [16]。 該文就是用 Proteus 對頻率計(jì)進(jìn)行了仿真。由于過零比較電路 中使用的電壓比較器 MAX9012 沒有仿真模型,所以只仿真分頻電路, MCU 電路和顯示電路。仿真結(jié)果如圖 所示。 圖 信號源為 10M 的 Proteus 仿真結(jié)果 34 基于單片機(jī)的頻率測量儀的設(shè)計(jì) 硬件的制作和測試 結(jié)果 硬件的制作 該設(shè)計(jì)的電路實(shí)際上并不復(fù)雜,并且已經(jīng)同過 Portals DXP 軟件進(jìn)行了手動的PCB 設(shè)計(jì),所以使用洞洞板進(jìn)行焊接,而沒有打樣, 降低 成本。在進(jìn)行 PCB 設(shè)計(jì)時,捕獲網(wǎng)絡(luò)設(shè)置為 100mil( ),元件和導(dǎo)線移動的最小距離則為 100mil,剛剛好 是 洞洞板的焊盤 間距 ,這樣對洞洞萬用板的焊接提供了極大的幫助。在焊接 MAX9012 的時候遇到了一定的困難,它只有貼片形式 的 封裝,無法直接焊接到洞洞板上,使用了轉(zhuǎn)接板進(jìn)行焊接。同時也引出了電源和 RXD、 TXD,方便進(jìn)行程序的下載。手動布結(jié)果局見第三章的圖 。焊接結(jié)果如圖 所示。 圖 硬件焊接結(jié)果 硬件的測試 由于條件簡陋,沒有頻率發(fā)生器等儀器進(jìn)行精確的測量。只能使用一個單片機(jī)最小系統(tǒng)產(chǎn)生一定的頻率供數(shù)字頻率計(jì)進(jìn)行測量。單片機(jī)最小系統(tǒng)用定時器設(shè)定 500us 進(jìn)入中斷一次, 的電位取反 ,當(dāng) 的電位取反兩次 的時候 , 取反一次 , 依次類推可以得到 1000Hz, 500Hz, 250Hz, 125Hz, 的頻率。 第五章 結(jié)論 35 同時還可以測量單片機(jī) ALE 管腳輸出的 6 分頻的時鐘信號。表 51 為測量結(jié)果和測量誤差(單片機(jī)定時器產(chǎn)生的頻率本身就有誤差,表格數(shù)據(jù)僅供參考)。高頻的時候采用的計(jì)數(shù)法,精度比較高,可以達(dá)到千分之一以內(nèi)。而低頻的時候采用測寬法測量一個周期的時間 T,這樣誤差較大,但是也能保證精度在百分之二 以 內(nèi),所以總體來看測量結(jié)果還是比較令人滿意的。 表 51 測量結(jié)果及誤差 被測頻率 1000Hz 500Hz 250Hz 125Hz 2MHz 測量結(jié)果 983Hz 491Hz 245Hz 123Hz 2020577Hz 測量誤差 % % % % ‰ 圖 和圖 分別為測量 和 ALE 信號的結(jié)果。 圖 測量 的信號 36 基于單片機(jī)的頻率測量儀的設(shè)計(jì) 圖 測量 ALE 管腳信號 本次畢業(yè)設(shè)計(jì) 的收獲與不足 本次設(shè)計(jì)制作的基于單片 機(jī)的頻率測量儀,在制作的過程中遇到了很多的問題,也涉及到了很多 軟件和硬件的知識, 但是這些問題最后都 被解決了,感覺這次畢業(yè)設(shè)計(jì)收獲非常大。首先本次設(shè)計(jì)主要完成了以下 幾點(diǎn)工作: 了 基于單片機(jī)的數(shù)字頻率計(jì)設(shè)計(jì)的基本方案 ,并對提出的方案進(jìn)行了論證和比較,最終確定具體的實(shí)施方案。 濾波電路 、波形放大 整形電路、 74LS161 分頻電路、 MCU 主控 電路、測量結(jié)果顯示電路 進(jìn)行設(shè)計(jì),并且通過了 Proteus 的仿真,然后使用 Protel DXP 軟件對電路圖進(jìn)行了 PCB 布局,最后根據(jù) PCB 布局對電路進(jìn)行了焊接,并且測試通過 ; 頻率測量 控制程序、量程自動切換程序、測量結(jié)果顯示程序等 單片機(jī) 程序; 通過這次頻率計(jì)的設(shè)計(jì) , 讓我學(xué)會了如何去處理實(shí)際設(shè)計(jì)和制作的時候遇到 第五章 結(jié)論 37 種種的困難。首先,遇到比較難解決的問題的時候,不能慌,要仔細(xì)的從各個方面考慮問題是如何產(chǎn)生的,當(dāng)找到原因之后還要考慮如何去 解決和 避免產(chǎn)生這些問題。例如,我在制作頻率計(jì)的時候,測量 250Hz 的頻率會比實(shí)際情況大 256Hz,經(jīng)過各方面的判斷和軟件仿真查看示波器 發(fā)現(xiàn) 是 74LS161的響應(yīng) 機(jī)制沒有弄清楚 。這就說明了要從事科研開發(fā)不僅僅需要扎實(shí)的理論基礎(chǔ),還需要很強(qiáng)的處理和解決問題的能力,這是本次畢業(yè)設(shè)計(jì)的收獲之一。 通過這次數(shù)字頻率計(jì)的設(shè)計(jì),我也發(fā)現(xiàn)了很多不足 ,有很多地方考慮的還不夠周到,例如, 頻率計(jì)在測量頻率的時候先要有 1S 的 時間 使 用計(jì)數(shù)法來 初步 測量一次 頻率 ,如果頻率比較高,則此次測量結(jié)果就是最終結(jié)果,若 頻率比較低的時候就要 啟動 測寬法 重新 進(jìn)行頻率的測量 來提高測低頻的精度,但
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1