久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

單片機(jī)實(shí)例分享,自制數(shù)字示波器

 leafcho 2019-01-24

示波器是最常用的電子測(cè)量?jī)x器之一,,它能把肉眼看不見的電信號(hào)變換成看得見的圖像,。為了攜帶方便,我曾經(jīng)做過一臺(tái)簡(jiǎn)易數(shù)字示波器(見圖22.2),,材料成本只有150元左右,,這臺(tái)數(shù)字示波器的設(shè)計(jì)思想是:簡(jiǎn)單實(shí)用,價(jià)格低廉,,容易制作。

主要性能指標(biāo):

最高采樣率:20MSa/s

模擬帶寬:4MHz

輸入阻抗:1MΩ

垂直靈敏度:0.01V/div~5V/div(按1-2-5方式遞進(jìn),,共9擋)

水平掃描速度:1.5μs/div~6ms/div(按1-2-5方式遞進(jìn),,共12擋)

垂直分辨率:8位

顯示屏:2.4 英寸 TFT320×240(驅(qū)動(dòng)控制芯片:ILI9325)

測(cè)量時(shí)能同時(shí)顯示信號(hào)的頻率、電壓峰峰值,,具有信號(hào)保持(HOLD)功能,。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.2 自制的簡(jiǎn)易數(shù)字示波器

電路工作原理

單片機(jī)實(shí)例分享,自制數(shù)字示波器

圖22.3 數(shù)字示波器結(jié)構(gòu)框圖

我們知道,,模擬示波器是用陰極射線示波管(CRT)顯示被測(cè)信號(hào)波形的,,而數(shù)字示波器是采用LCM(LCD顯示模塊,含LCD及顯示驅(qū)動(dòng)控制芯片)顯示被測(cè)信號(hào)波形,。因?yàn)長CM的每一個(gè)顯示像素都對(duì)應(yīng)一個(gè)地址,,地址要用數(shù)據(jù)表示,每一個(gè)像素的顏色也是用數(shù)據(jù)表示的,。因此電路向LCM發(fā)送的是數(shù)據(jù)編碼信號(hào),,這就決定了它和模擬示波器的電路結(jié)構(gòu)不一樣。

本文介紹的數(shù)字示波器的結(jié)構(gòu)框圖如圖22.3所示,。它由垂直輸入電路,、A/D轉(zhuǎn)換電路、數(shù)字信號(hào)處理與控制電路,、液晶屏顯示電路,、電源電路等部分組成。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.4 數(shù)字示波器電路原理圖

輸入的電壓信號(hào)經(jīng)垂直輸入電路放大,,以提高示波器的靈敏度和動(dòng)態(tài)范圍。對(duì)輸出的信號(hào)取樣后由 A/D 轉(zhuǎn)換器實(shí)現(xiàn)數(shù)字化,,模擬信號(hào)變成了數(shù)字形式存入存儲(chǔ)器,,微處理器對(duì)存儲(chǔ)器中的數(shù)據(jù)根據(jù)需要進(jìn)行處理,最終在顯示屏上顯示測(cè)量波形和相關(guān)的參數(shù),,這就是數(shù)字存儲(chǔ)示波器的工作過程,。

數(shù)字示波器的電路原理圖如圖22.4所示,下面分別對(duì)各單元電路進(jìn)行介紹,。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

表22.1 垂直靈敏度和K1~K5的對(duì)應(yīng)關(guān)系

1. 垂直輸入電路

垂直輸入電路由雙運(yùn)算放大器LM6172和衰減電路等部分組成。對(duì)其有兩個(gè)基本的要求:一是對(duì)放大倍數(shù)的控制,,二是要有滿足設(shè)計(jì)要求的足夠的帶寬,。

示波器輸入信號(hào)電壓的動(dòng)態(tài)范圍很大,為了將輸入信號(hào)電壓調(diào)節(jié)到A/D轉(zhuǎn)換電路的最佳采樣范圍,,以便得到最合理的顯示波形,,在信號(hào)電壓較小時(shí)要進(jìn)行放大,在信號(hào)過大時(shí)要進(jìn)行衰減,。

示波器輸入信號(hào)的頻率范圍也很寬,,為了使垂直輸入電路有較平坦的頻率特性曲線,即對(duì)不同頻率的信號(hào)放大電路的增益基本保持一致,。為此選用了高速雙運(yùn)放LM6172,,其帶寬為100MHz,,并在衰減電路中加了頻率補(bǔ)償電容。

電阻R1,、R2,、R3和繼電器K1、K2,、K3等組成衰減電路,,衰減系數(shù)分3擋:1:1、1:10,、1:100,,由K1、K2,、K3控制,。第一級(jí)運(yùn)算放大器接成電壓跟隨器的模式,主要起到緩沖的作用,,提高輸入阻抗,,降低輸出阻抗。第二級(jí)運(yùn)算放大器接成電壓串聯(lián)負(fù)反饋電路的模式,,其中電阻R6,、R7、R8和繼電器K4,、K5等組成3擋增益調(diào)節(jié)電路,,放大器的增益由K4、K5控制,。當(dāng)觸點(diǎn)K4閉合時(shí)增益為(R6+R9)/R6;當(dāng)觸點(diǎn)K4開啟,、K5閉合時(shí)增益為(R6+R7+R9)/(R6+R7);當(dāng)觸點(diǎn)K4、K5均開啟時(shí)增益為(R6+R7+R8+R9)/(R6+R7+R8),。按電路圖中各電阻的取值,,對(duì)應(yīng)本級(jí)3擋的增益分別為25、12.5,、5,。

繼電器K1~K5工作狀態(tài)受單片機(jī)控制,所以垂直輸入電路是一個(gè)程控放大器,。垂直靈敏度和K1~K5工作狀態(tài)的對(duì)應(yīng)關(guān)系見表22.1(1表示閉合,,0表示斷開)。

2. A/D 轉(zhuǎn)換電路

我們知道,,A/D轉(zhuǎn)換電路的作用就是將模擬信號(hào)數(shù)字化,。一般把實(shí)現(xiàn)連續(xù)信號(hào)到離散信號(hào)的過程叫采樣。連續(xù)信號(hào)經(jīng)過采樣和量化后才能被單片機(jī)處理,。通過測(cè)量等時(shí)間間隔波形的電壓幅值,,并把該電壓值轉(zhuǎn)化為用二進(jìn)制代碼表示的數(shù)字信息,這就是數(shù)字示波器的采樣,,采樣的工作過程見圖22.5,。采樣的時(shí)間間隔越小,重建出來的波形就越接近原始信號(hào),。采樣率就是每秒采樣的次數(shù),,例如,示波器的采樣率是10MSa/s,,即每秒采樣10M次,,則表示每 0.1μs進(jìn)行一次采樣。采樣率是數(shù)字示波器最重要的一項(xiàng)指標(biāo),。

根據(jù)Nyquist采樣定理,,當(dāng)對(duì)一個(gè)最高頻率為f的模擬信號(hào)進(jìn)行采樣時(shí),采樣率必須大于f的兩倍以上才能確保從采樣值完全重構(gòu)原來的信號(hào),。對(duì)于正弦波,,每個(gè)周期至少需要兩次以上的采樣才能保證根據(jù)采樣數(shù)據(jù)恢復(fù)原始波形。在數(shù)字示波器中,,為了減小顯示波形的失真,,采樣率至少要取被測(cè)信號(hào)頻率的5~8倍。本文介紹的數(shù)字示波器采樣率取被測(cè)信號(hào)頻率的5倍,,因?yàn)樽罡卟蓸勇蕿?0MSa/s,,所以當(dāng)被測(cè)信號(hào)的帶寬在4MHz以內(nèi)時(shí)有比較好的測(cè)量結(jié)果。

采樣率的提高受制于A/D轉(zhuǎn)換芯片的工作速度,,本文電路中使用的單片機(jī)ATmega16內(nèi)部雖然也有A/D轉(zhuǎn)換器,,但其工作頻率太低,不能滿足數(shù)字示波器的采樣要求,。因此我們用了一片高速A/D轉(zhuǎn)換芯片ADS830E,,其最高采樣率可達(dá)60MSa/s。ADS830E的轉(zhuǎn)換精度為8位二進(jìn)制數(shù),,即垂直分辨率為256,,因?yàn)檫x用的LCM的分辨率為320×240,對(duì)應(yīng)垂直分辨率為240,,所以ADS830E完全能滿足分辨率的使用要求,。

ADS830E的IN(17腳)是供采樣的模擬信號(hào)的輸入端,CLK(10腳)是采樣時(shí)鐘信號(hào)輸入端,。每輸入一個(gè)時(shí)鐘脈沖就進(jìn)行一次A/D轉(zhuǎn)換,,轉(zhuǎn)換后的8位二進(jìn)制數(shù)據(jù)由D0~D7輸出。ADS830E的輸入電壓幅度可以通過11腳進(jìn)行控制,,當(dāng)11腳接高電平時(shí),,ADS830E的輸入電壓范圍是1.5~3.5V;當(dāng)11腳接低電平時(shí),,輸入電壓范圍是2~3V。這里選用1.5~3.5V的輸入電壓范圍,,中點(diǎn)電壓為2.5V,,中點(diǎn)電壓由電位器RP進(jìn)行調(diào)節(jié)。當(dāng)IN輸入電壓為1.5V時(shí),,D0~D7輸出的轉(zhuǎn)換數(shù)據(jù)是0x00,,當(dāng)IN輸入電壓為3.5V時(shí),D0~D7輸出的轉(zhuǎn)換數(shù)據(jù)是0xff,,即255,。

單片機(jī)實(shí)例分享,自制數(shù)字示波器

圖22.5 采樣的工作過程

3. 數(shù)字信號(hào)處理與控制電路

數(shù)字信號(hào)處理與控制電路由單片機(jī)ATmega16,、FIFO(先進(jìn)先出)存儲(chǔ)器IDT7205,、4個(gè)2輸入與非門74HC00等組成。

單片機(jī)ATmega16在電路中的主要作用是:(1)對(duì)A/D轉(zhuǎn)換后的數(shù)字信號(hào)進(jìn)行處理,,轉(zhuǎn)換成LCM能接受的數(shù)據(jù)格式,,輸出給它顯示;(2)產(chǎn)生ADS830E、IDT7205工作所需要的時(shí)鐘脈沖信號(hào);(3)通過按鍵對(duì)示波器參數(shù)進(jìn)行控制調(diào)節(jié),,輸出繼電器的控制信號(hào),。

單片機(jī)實(shí)例分享,自制數(shù)字示波器

圖22.6 倍頻電路及各點(diǎn)的脈沖

FIFO存儲(chǔ)器IDT7205是一個(gè)雙端口的存儲(chǔ)緩沖芯片,,具有控制端,、標(biāo)志端、擴(kuò)展端和8192×9的內(nèi)部RAM陣列,,12ns的高速存取時(shí)間,。內(nèi)部讀、寫指針在先進(jìn)先出的基礎(chǔ)上可進(jìn)行數(shù)據(jù)的自動(dòng)寫入和讀出,。當(dāng)有數(shù)據(jù)輸入到數(shù)據(jù)輸入端口D0~D8時(shí),,可由控制端Wclk來控制數(shù)據(jù)的寫入。為了防止數(shù)據(jù)的寫溢出,,可用標(biāo)志端滿FF,、半滿HF來標(biāo)明數(shù)據(jù)的寫入情況,寫入時(shí)由內(nèi)部寫指針安排其寫入的位置,。由于內(nèi)部RAM陣列的特殊設(shè)計(jì),,先存入的數(shù)據(jù)將被先讀出。如果需要數(shù)據(jù)外讀,,則可由控制端Rclk來控制數(shù)據(jù)的讀出,。RST為復(fù)位端。Wclk、Rclk,、RST均由單片機(jī)ATmega16提供控制脈沖,。數(shù)據(jù)輸出端口Q0~Q8是三態(tài)的,在無讀信號(hào)時(shí)呈高阻態(tài),。輸入數(shù)據(jù)位D0~D8和輸出數(shù)據(jù)位Q0~Q8均為9位,,這里輸入和輸出均只使用了8位,即只使用了D0~D7和Q0~Q7,。

讀到這里,有的讀者可能會(huì)問:把ADS830E輸出端口D0~D7輸出的數(shù)據(jù)直接輸入ATmega16的PA端口不就行了嗎,,為什么還要在中間加上一個(gè)IDT7205?這是因?yàn)锳DS830E工作速度比ATmega16快得多,,即ATmega16讀取數(shù)據(jù)的速度比ADS830E輸出數(shù)據(jù)的速度慢,如果直接相連ATmega16就拖了ADS830E的后腿,。加上IDT7205后就起到了緩沖的作用,,ADS830E轉(zhuǎn)換的結(jié)果先存在IDT7205內(nèi),等到ATmega16需要時(shí),再從IDT7205中讀出來,。

ADS830E的采樣時(shí)鐘與IDT7205的寫信號(hào)時(shí)鐘是同一個(gè)時(shí)鐘源,,以確保兩者同步。時(shí)鐘脈沖信號(hào)由ATmega16使用內(nèi)部定時(shí)器產(chǎn)生,,由于ATmega16外接晶體的頻率為20MHz,,所以產(chǎn)生的時(shí)鐘信號(hào)最高頻率只能達(dá)到10MHz,為了使采樣率達(dá)到20MSa/s,,使用了74HC00等構(gòu)成的倍頻電路,。若ATmega16 PD7端輸出的脈沖信號(hào)頻率為f,則74HC00的F4輸出的脈沖信號(hào)頻率為2f,,倍頻電路的工作過程和各點(diǎn)脈沖信號(hào)時(shí)序關(guān)系如圖22.6所示,。

K1~K5是干簧繼電器,干簧繼電器特點(diǎn)是吸合和釋放時(shí)噪聲很小,,功耗低,。因其吸合電流較小,所以可直接用ATmega16的輸出端口驅(qū)動(dòng),。

SB1~SB5是示波器調(diào)節(jié)按鈕,。SB1、SB2是水平掃描速度調(diào)節(jié)按鈕,,按SB1時(shí)μs/div的值增加(水平掃描速度減小),,按SB2時(shí)μs/div的值減小(水平掃描速度增加);SB3、SB4是垂直靈敏度調(diào)節(jié)按鈕,,按SB3時(shí)V/div的值增加(垂直靈敏度減小),,按SB4時(shí)V/div的值減小(垂直靈敏度增加);SB5是波形保持(HOLD)按鈕,按一下測(cè)量波形被凍結(jié)保持,同時(shí)在顯示屏上顯示字符“HOLD”,,再按一下又恢復(fù)到正常測(cè)試狀態(tài),。所有調(diào)節(jié)參數(shù)均顯示在液晶屏上,調(diào)節(jié)好的參數(shù)將自動(dòng)保存到ATmega16的EEPROM中,,下次開機(jī)時(shí)有關(guān)參數(shù)將預(yù)設(shè)在上次關(guān)機(jī)前的設(shè)定值上,。

4. 顯示電路

LCM采用2.4英寸TFT彩色液晶屏,分辨率為320像素×240像素,,驅(qū)動(dòng)控制芯片為ILI9325,,該芯片傳遞數(shù)據(jù)8/16接口位兼容,使用8位接口時(shí)能夠節(jié)省單片機(jī)的輸出端口,,在8位接口工作狀態(tài)時(shí)16位數(shù)據(jù)分兩次傳遞,,速度稍慢。數(shù)據(jù)端口D0~D15中的高8位D8~D15為8位接口使用的端口,。8/16接口位的選擇由端口IM0控制,,IM0接高電平時(shí)為8位接口工作狀態(tài),IM0接低電平時(shí)為16位接口工作狀態(tài),。

電路中ILI9325的工作電壓是3V,,ATmega16的工作電壓是5V,兩者高電平不一致,,通信端口相連時(shí)要進(jìn)行電平轉(zhuǎn)換,,因?yàn)檫@里只需要ATmega16向ILI9325單向傳遞數(shù)據(jù),所以只需要將5V向3V電平轉(zhuǎn)換,,不需要將3V電平向5V電平轉(zhuǎn)換,,就不必使用專用的電平轉(zhuǎn)換芯片,只要用電阻分壓電路將5V高電平轉(zhuǎn)換成3V高電平就行了,。電路中R14~R35組成電阻分壓電路,,連接端口有8個(gè)數(shù)據(jù)端口和3個(gè)控制端口。

5. 電源電路

這個(gè)數(shù)字示波器使用了交流電源,,提供+5V,、?5V、+3V三種直流電壓,。

程序設(shè)計(jì)

設(shè)計(jì)好電路只是為數(shù)字示波器奠定基礎(chǔ),,更重要的是單片機(jī)程序的設(shè)計(jì)。實(shí)際上在設(shè)計(jì)硬件時(shí)既要考慮到功能,,也要考慮到程序設(shè)計(jì)的需要,。比如對(duì)單片機(jī)的選型,主要考慮功能,、工作速度,、端口的數(shù)量,、程序存儲(chǔ)器Flash的容量、RAM的容量,、有沒有EEPROM等,。綜合考慮后選用AVR單片機(jī)ATmega16,它的程序存儲(chǔ)器Flash為16KB,,RAM為1KB,,使用時(shí)將16MHz的時(shí)鐘頻率超頻到20MHz,經(jīng)過對(duì)其資源合理分配,,完全可以滿足設(shè)計(jì)要求,。

程序的開發(fā)環(huán)境為ICC-AVR V6.31A,使用 C語言編寫,。程序采用了分時(shí)控制,、順序調(diào)度的工作方式,沒有使用任何中斷程序,,程序流程圖如圖22.7所示。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.7 程序流程圖

下面對(duì)主要部分進(jìn)行分別介紹,。

1. 垂直靈敏度控制

按鈕SB3、SB4用來調(diào)節(jié)垂直靈敏度,,按動(dòng)后通過鍵盤掃描程序可以增加或減小程序中變量Key_ver的值,,Key_ver取值范圍為1~9,分別對(duì)應(yīng)9擋垂直靈敏度,,通過Key_ver的取值控制繼電器K1~K5的工作狀態(tài),,從而得到相應(yīng)的靈敏度。

以K1為例,,K1接ATmega16的PB0端口,,有關(guān)宏定義為:

#define K1_ON PORTB &=~(1<

#define K1_OFF PORTB |= (1<

因此,K1_ON表示PB0輸出低電平,,K1閉合,,觸點(diǎn)接通;K1_OFF表示PB0輸出高電平,K1釋放,,觸點(diǎn)斷開,。

2. 水平掃描速度控制

水平掃描速度控制是通過改變A/D轉(zhuǎn)換電路的采樣率來實(shí)現(xiàn)的,按動(dòng)SB1,、SB2可以改變程序中變量Key_hor的值,,Key_hor取值范圍為1~12,分別對(duì)應(yīng)12擋水平掃描速度,。

A/D轉(zhuǎn)換電路所需的采樣時(shí)鐘脈沖用ATmega16的8位定時(shí)器/計(jì)數(shù)器2-T/C2產(chǎn)生,,選擇CTC工作模式。其工作參數(shù)主要由控制寄存器TCCR2、計(jì)數(shù)寄存器TCNT2,、輸出比較寄存器OCR2決定,。TCCR2中的位CS22、CS21,、CS20的取值確定T/C2的時(shí)鐘源的分頻系數(shù),,OCR2中的數(shù)據(jù)用于同TCNT2中的計(jì)數(shù)值進(jìn)行連續(xù)的匹配比較,一旦TCNT2計(jì)數(shù)值與OCR2的數(shù)據(jù)相等,,單片機(jī)端口OC2的輸出電平即取反,,這樣即可輸出脈沖信號(hào)。脈沖信號(hào)的頻率f由時(shí)鐘源的分頻系數(shù)和OCR2的預(yù)置值決定,,計(jì)算公式為f=時(shí)鐘源頻率/(2×(1+OCR2)),,OC2輸出的脈沖信號(hào)經(jīng)倍頻后作為采樣時(shí)鐘信號(hào),相關(guān)參數(shù)之間的關(guān)系見表22.2,。

只要對(duì)寄存器TCCR2,、OCR2的值進(jìn)行設(shè)置,就可以獲得我們所需頻率的采樣時(shí)鐘信號(hào),。

3. 數(shù)據(jù)的存儲(chǔ)和讀取

ADS830E的采樣數(shù)據(jù)存入IDT7205后達(dá)到一定數(shù)量就停止采樣,,再將IDT7205存儲(chǔ)的數(shù)據(jù)讀入ATmega16,程序中用一個(gè)數(shù)組RAM[650]來存儲(chǔ)讀取的數(shù)據(jù),,存儲(chǔ)容量為650,,即一次讀取650個(gè)采樣數(shù)據(jù)。

仔細(xì)看了電路圖的讀者可能會(huì)發(fā)現(xiàn),,IDT7205的滿FF端口并沒有使用,,為什么不用呢?這是因?yàn)锳Tmega16的RAM容量只有1KB,只能分配約650個(gè)存儲(chǔ)單元用來存儲(chǔ)從IDT7205讀取的數(shù)據(jù),,IDT7205存多了數(shù)據(jù)也沒有用,,ATmega16不能全部存儲(chǔ),多余的數(shù)據(jù)就丟棄了,,還不如少讀點(diǎn)數(shù)據(jù)節(jié)省時(shí)間,,提高顯示波形的刷新頻率。這在采樣時(shí)鐘頻率較低時(shí)效果尤為明顯,,因?yàn)椴蓸訒r(shí)鐘頻率越低,,采集一個(gè)數(shù)據(jù)所花的時(shí)間越長。以采樣時(shí)鐘頻率5kHz為例,,如果要將IDT7205存滿8192個(gè)數(shù)據(jù),,所需要的時(shí)間為8192/5000≈1.6s, 顯示波形1.6s以上才能刷新一次,這顯然是不行的,。如果存滿700個(gè)就結(jié)束,,則所需要的時(shí)間為700/5000=0.14s,刷新速度提高了很多,。

從上面的分析可以看出,F(xiàn)IFO存儲(chǔ)器其實(shí)使用IDT7202就夠了,,IDT7202有1024個(gè)存儲(chǔ)單元,。不過筆者只買到了DIP封裝的IDT7205,雖然有點(diǎn)大材小用,,但為以后數(shù)字示波器升級(jí)提供了空間,。FIFO存儲(chǔ)器存儲(chǔ)數(shù)據(jù)的容量稱為數(shù)字示波器的存儲(chǔ)深度,也稱記錄長度,,存儲(chǔ)深度也是數(shù)字示波器的一個(gè)重要技術(shù)指標(biāo),,適當(dāng)存儲(chǔ)深度便于對(duì)顯示波形進(jìn)行分析和處理。

不使用FF端口是如何控制IDT7205存儲(chǔ)數(shù)量的呢?我在IDT7205存儲(chǔ)數(shù)據(jù)時(shí)根據(jù)不同的采樣時(shí)鐘頻率設(shè)置了不同的延時(shí)時(shí)間,,在此時(shí)間內(nèi)能存入多于700個(gè)數(shù)據(jù)即可,。延時(shí)結(jié)束后即將IDT7205的存儲(chǔ)數(shù)據(jù)讀入ATmega16。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

表22.2 相關(guān)參數(shù)之間的關(guān)系

由于ADS830E每次重新進(jìn)入工作狀態(tài)要有一個(gè)穩(wěn)定的過程,,開始采樣的幾個(gè)數(shù)據(jù)精度不高,因此在讀取IDT7205數(shù)據(jù)時(shí)先空讀50個(gè)數(shù)據(jù),,將這些數(shù)據(jù)丟棄,,然后再將后面的數(shù)據(jù)讀入ATmega16。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.8 顯示區(qū)域

4. 數(shù)據(jù)計(jì)算處理

數(shù)據(jù)計(jì)算處理工作主要包括同步觸發(fā)信號(hào)檢測(cè)、信號(hào)電壓峰峰值測(cè)量,、信號(hào)頻率測(cè)量,。這部分程序設(shè)計(jì)的思路是:

先在650個(gè)數(shù)據(jù)的前350個(gè)數(shù)據(jù)中以顯示屏的垂直中點(diǎn)對(duì)應(yīng)數(shù)據(jù)120為基準(zhǔn),找到同步觸發(fā)信號(hào),。之所以在前350個(gè)數(shù)據(jù)中找同步觸發(fā)信號(hào),,是為保留后面至少有300個(gè)數(shù)據(jù)供顯示波形用。找到同步觸發(fā)信號(hào)后,,則把對(duì)應(yīng)該點(diǎn)數(shù)據(jù)為起點(diǎn)的連續(xù)300個(gè)數(shù)據(jù)作為顯示數(shù)據(jù),。

然后找到650個(gè)數(shù)據(jù)中的最大值和最小值,求最大值和最小值的算術(shù)平均數(shù),,即可得到中點(diǎn)電壓值,,檢測(cè)信號(hào)相鄰兩次向上穿過中點(diǎn)的時(shí)間差即可計(jì)算出信號(hào)的周期。

5. LCM的控制與顯示

TFT-LCD顯示屏的分辨率為320像素×240像素,。顯示屏的每一個(gè)像素都對(duì)應(yīng)著驅(qū)動(dòng)控制芯片ILI9325內(nèi)部存儲(chǔ)器唯一的一個(gè)地址(x,,y),x為橫坐標(biāo),,尋址范圍為0~319;y為縱坐標(biāo),,尋址范圍為0~239,。在像素對(duì)應(yīng)地址寫入16位顏色數(shù)據(jù)就可以顯示相應(yīng)的顏色,如果某一點(diǎn)要清除,,只要對(duì)該像素對(duì)應(yīng)的地址寫入背景色就可以了,。由于這里ILI9325采用8位接口工作模式,因此傳遞16位數(shù)要分兩次進(jìn)行,。

因?yàn)閿?shù)字示波器既要顯示被測(cè)信號(hào)的波形,,也要顯示有關(guān)的測(cè)量數(shù)據(jù),如電壓峰峰值,、頻率,、水平掃描速度、垂直靈敏度等,,所以必須對(duì)顯示區(qū)域進(jìn)行合理的劃分,,并對(duì)顏色進(jìn)行規(guī)劃設(shè)置,分配好的顯示區(qū)域如圖22.8所示,。圖中用來顯示波形的區(qū)域?yàn)橹虚g的300×200,。在這個(gè)區(qū)域畫了刻度線,將水平方向分成10格,,垂直方向分成8格,。其余區(qū)域用來顯示各種數(shù)據(jù)。

對(duì)ILI9325最基本的操作有兩種:發(fā)送命令和發(fā)送數(shù)據(jù),。無論是顯示屏的初始化,,還是設(shè)置顯示地址和顯示顏色,都要用到這兩種基本操作,。

顯示被測(cè)信號(hào)波形的過程是:先清除上一幀顯示波形,,然后畫刻度線(刻度線每次都要重畫,因?yàn)橛行┖惋@示波形交叉的點(diǎn)也被清除了),,最后畫新的一幀信號(hào)波形,,同時(shí)備份數(shù)據(jù)作下一次清除用。顯示信號(hào)波形時(shí),,存儲(chǔ)器地址(x,y)中的x代表水平掃描信號(hào)所處的位置,,y代表信號(hào)電壓的大小。每次刷新信號(hào)波形時(shí),,信號(hào)電壓峰峰值和信號(hào)頻率顯示數(shù)據(jù)也同時(shí)刷新一次,。水平掃描速度和垂直靈敏度的數(shù)據(jù)只有在重新調(diào)整后才刷新。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

表22.3 主要元器件清單

元器件選擇

主要元器件的清單見表22.3,。

經(jīng)過試驗(yàn),我發(fā)現(xiàn)在工作電壓為5V時(shí),,單片機(jī)ATmega16和ATmega16L在時(shí)鐘頻率為20MHz下均能正常工作,。因此,,如果你手頭只有ATmega16L也可以使用。

IDT7205如果使用PLCC封裝的芯片,,請(qǐng)注意引腳編號(hào)不同,。

干簧繼電器也可以選用其他型號(hào)的,只要工作電壓是5V,,閉合電流小于20mA即可,。

機(jī)箱我選用的是成品塑料機(jī)箱,你也可以用其他樣式的,,或者自己用有機(jī)玻璃DIY,。

顯示屏和ADS830E的兩塊轉(zhuǎn)接板是必須要用的,不然無法在萬能板上安裝,,可以設(shè)法和元器件一起采購,。

單片機(jī)實(shí)例分享,自制數(shù)字示波器

圖22.9 緩沖區(qū)對(duì)比圖

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.10 開關(guān)單獨(dú)安裝在小的萬能板上

顯示屏的品牌很多,,你很難買到和我一樣的品牌。但有一點(diǎn)要注意,,驅(qū)動(dòng)控制芯片一定要是ILI9325的,,如果不是,你就要修改程序了,,不同的芯片即使是同一系列,,驅(qū)動(dòng)程序也往往不兼容。即使驅(qū)動(dòng)芯片一樣,,不同品牌的顯示屏引腳編號(hào)也可能不一致,,接線時(shí)要仔細(xì)對(duì)照。另外有一點(diǎn)提醒一下:我買的顯示屏的4個(gè)背光二極管是并聯(lián)的,,我是把它們公共的陽極串接一個(gè)電阻(不知道模塊內(nèi)部有沒有限流電阻,還是外接一個(gè)電阻保險(xiǎn))接到+5V電源,,如果你買的顯示屏的背光二極管是串聯(lián)的,,要求的工作電壓就高了,接到+5V是不能發(fā)光的,,可串連一個(gè)100Ω(電阻的取值使發(fā)光二極管工作電流不超過20mA為宜)接到LM7805的輸入端,,此處的電壓約有10V,可以滿足驅(qū)動(dòng)要求,。

安裝

安裝前先將目標(biāo)文件dso.hex寫入單片機(jī)ATmega16,,特別提醒一下:用編程器將目標(biāo)文件調(diào)入時(shí)要選擇“緩沖區(qū)預(yù)先填充00”選項(xiàng),否則在顯示屏顯示字符時(shí)會(huì)出現(xiàn)色塊,。如果你用下載線寫入文件,,則往往不提供該選項(xiàng)給你選,,會(huì)直接把緩沖區(qū)都填入了FF,見圖22.9上半部分,,這時(shí)你可以手工編輯一下,,把方框中的FF全部改為00,結(jié)果見圖22.9下半部分,。

5個(gè)按鈕開關(guān)單獨(dú)安裝在小的萬能板上,,見圖22.10。其余的元件除顯示屏直接固定在機(jī)箱面板上外,,都安裝在大的萬能板上,。接線時(shí)注意同一單元要一點(diǎn)接地,數(shù)字地和模擬地要分開,。三端穩(wěn)壓器LM7805要加一個(gè)小的散熱片,。

機(jī)箱的面板根據(jù)顯示屏的大小、按鈕開關(guān)和BNC插座的安裝位置開孔,,面板上的標(biāo)記可打印在一張紙上,,再用1~2mm的透明有機(jī)玻璃做一塊尺寸一樣的面板(對(duì)應(yīng)顯示屏的位置不開窗口,正好做防護(hù)屏),,再把打印好的紙夾在兩層中間,,用螺絲固定好后,面板就做好了,。

按鈕開關(guān)電路板是直接用4個(gè)螺絲固定在面板上的,,顯示屏可用熱熔玻璃膠固定,把顯示屏在窗口擺正位置后,,在4個(gè)角用熱熔玻璃膠固定一下就可以了,。

安裝好的示波器內(nèi)部結(jié)構(gòu)見圖22.11。

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.11 安裝完成的內(nèi)部結(jié)構(gòu)

調(diào)試

如果安裝時(shí)沒有接線錯(cuò)誤,,元器件沒有質(zhì)量問題,調(diào)試還是比較容易的,。

調(diào)試分4步進(jìn)行,。

(1)各單元先不接電源,測(cè)量電源部分輸出電壓是否正常,,正常后再接通各部分的電源,。

單片機(jī)實(shí)例分享,自制數(shù)字示波器

圖22.12 水平掃描線與中線未重合

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.13 補(bǔ)償電容與方波波形的關(guān)系

單片機(jī)實(shí)例分享,,自制數(shù)字示波器

圖22.14 調(diào)試好的示波器的使用效果

(2)檢查顯示屏工作是否正常,接通電源,,顯示屏初始化后先是全屏顯示白色閃亮一下,,然后顯示刻度線和相關(guān)數(shù)據(jù),。如果開機(jī)后顯示屏沒有反應(yīng),先檢查單片機(jī)有沒有正常工作,,如按動(dòng)K3,、K4繼電器的工作狀態(tài)應(yīng)該有所改變。如正常再查顯示屏的連線和供電是否正常,,直至顯示正常才能進(jìn)入下一步,。

(3)將示波器輸入端信號(hào)線短接,調(diào)節(jié)電位器RP,,使其中點(diǎn)電壓為2.44V(注意不是1.5~3.5V的中點(diǎn)電壓2.5V,,因?yàn)轱@示屏垂直方向中點(diǎn)的值是120,120是2.44V電壓經(jīng)A/D轉(zhuǎn)換后對(duì)應(yīng)的值,,對(duì)應(yīng)2.5V電壓的A/D轉(zhuǎn)換值是255/2),,這時(shí)候可以看到一條水平掃描線出現(xiàn)在水平中線附近,見圖22.12,,仔細(xì)調(diào)節(jié)RP,,使得其和水平中線重合。

(4)對(duì)衰減器的頻率補(bǔ)償電容進(jìn)行調(diào)整,,將垂直靈敏度調(diào)到0.5V/div,,輸入 200kHz、幅度1V的方波,,改變電容C2的容量,,使示波器顯示的方波波形最好;再將垂直靈敏度調(diào)到1V/div,輸入200kHz,、幅度2V的方波,,改變電容C3的容量,使示波器顯示的方波波形最好,。頻率補(bǔ)償電容與方波波形的關(guān)系見圖22.13,。

裝配調(diào)試好的數(shù)字示波器的使用效果見圖22.14。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多