基于單片機(jī)多功能智能信號(hào)發(fā)生器
基于單片機(jī)多功能智能信號(hào)發(fā)生器,基于,單片機(jī),多功能,智能,信號(hào)發(fā)生器
I本科畢業(yè)設(shè)計(jì)題目:新一代多功能智能信號(hào)發(fā)生器 性質(zhì):科 研 專業(yè):電子科學(xué)與技術(shù) 日期:2005 年 6 月 I摘 要信號(hào)發(fā)生器是一種能產(chǎn)生模擬電壓波形的設(shè)備,這些波形能夠校驗(yàn)電子電路的設(shè)計(jì)。信號(hào)發(fā)生器廣泛用于電子電路、自動(dòng)控制系統(tǒng)和教學(xué)實(shí)驗(yàn)等領(lǐng)域。本次設(shè)計(jì)所設(shè)計(jì)的智能信號(hào)發(fā)生器,是基于 ATMEL 生產(chǎn)的AT89C51 內(nèi)核的信號(hào)發(fā)生器,它的特點(diǎn)之處如下:1.可產(chǎn)生正弦波、方波,鋸齒波及三角波。2.各種信號(hào)的頻率范圍為 10HZ-24MHZ,本信號(hào)發(fā)生器既可實(shí)現(xiàn)產(chǎn)生低頻信號(hào),也可實(shí)現(xiàn)產(chǎn)生高頻信號(hào),產(chǎn)生的信號(hào)為特定頻率信號(hào)。3.硬件主要由單片機(jī)和數(shù)模轉(zhuǎn)換器 DAC0832 構(gòu)成,電路簡(jiǎn)單,結(jié)構(gòu)緊湊 ,硬件成本較低。4.波形及其參數(shù)可由軟件設(shè)定,程序采用 c51 語言編譯,使編譯比較簡(jiǎn)單。本論文首先對(duì)信號(hào)發(fā)生器進(jìn)行了概述,然后介紹了單片機(jī)的硬件和軟件知識(shí)。 硬件包括單片機(jī) AT89C51、復(fù)位電路 、時(shí)鐘電路 、鍵盤電路、 DAC0832 、運(yùn)放 4558;軟件包括各波形的產(chǎn)生及對(duì)硬件的控制程序。關(guān)鍵詞信號(hào)發(fā)生器 AT89C51 DAC0832 單片機(jī) 原理圖 源程序 IIAbstractA signal generator is an instrument for generating analog voltage waveforms and these waveforms can be used to verify the design of electronic circuits,signal generation is widely used in the automatic control and instructional experiment.The paper proposes a design and implementation of a signal generator that use AT89C51 as its major module, which produced by ATMlE Company. There are some special features as follows. (1) The signal generator can generate sine waveforms , saw waveforms, rectangle waveforms and triangle waveforms. (2) It can generate both low and high frequency signals that from 10HZ to 24MHZ. (3) Its hardware includes AT89C51 and D/A chip DAC0832.The circuit is simple and the hardware is low cost. (4) We use the software to adjust the data of the waveforms. We use the 51 languages to compile the program, so it becomes easy to compile it.This paper shows some instruction first. And then tell us some knowledge about the microprocessor and the software. The generator hardware includes microprocessor AT89C51, reset circuits, clock circuits, keyboard circuits and DA0832; 4558.The software includes the programs for generating waveforms and controlling hard wares.Keywords: signal generator, AT89C51, D/Achip,DA0832,microcontroller, schematic, source programi目 錄摘 要 .IAbstract.II第 1 章 緒論 .11.1 智能信號(hào)發(fā)生器的背景 .11.1.1 對(duì)信號(hào)發(fā)生器的認(rèn)識(shí) .11.1.2 本次設(shè)計(jì)的信號(hào)發(fā)生器的簡(jiǎn)介 .11.2 智能信號(hào)發(fā)生器的單片機(jī)背景 .21.3 信號(hào)發(fā)生器的數(shù)模轉(zhuǎn)換背景 .21.3.1 數(shù)模轉(zhuǎn)換器的功能 .21.3 DA 轉(zhuǎn)換部分 .41.3.1 DA 轉(zhuǎn)換器概述 .41.3. 2 主要技術(shù)指標(biāo) .5第 2 章 智能信號(hào)發(fā)生器的硬件設(shè)計(jì) .62.1 信號(hào)發(fā)生器的總體硬件結(jié)構(gòu)及原理 .62.2 存儲(chǔ)器的結(jié)構(gòu) .72.3 并行 I/O 口 .92.4 時(shí)鐘電路 .102.5 復(fù)位操作 .102.6 復(fù)位電路 .112.7 鍵盤輸入電路 .122.7.1 鍵盤輸入應(yīng)解決的問題 .122.7.2 鍵盤的編碼 .152.8 D/A 轉(zhuǎn)換電路 .162.8.1 DA 轉(zhuǎn)換器的工作原理 .162.8.2 AT89C51 與 8 位 DAC0832 的接口 .17第 3 章 智能信號(hào)發(fā)生器的軟件設(shè)計(jì) .20ii3.1 軟件總程序流程介紹 .203.2 系統(tǒng)軟件設(shè)計(jì) .213.2.1 主程序 .213.2.2 鍵盤輸入程序 .213.3 頻率的控制 .233.4 三角波程序原理 .243.5 矩形波程序原理 .243.6 正弦波程序 .24結(jié) 論 .27參考文獻(xiàn) .28程序框圖 .29protel 總體原理圖 .30源程序 .31致謝 .41畢業(yè)設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定表 .421第 1 章 緒論1.1 智能信號(hào)發(fā)生器的背景1.1.1 對(duì)信號(hào)發(fā)生器的認(rèn)識(shí)信號(hào)發(fā)生器是一種能產(chǎn)生標(biāo)準(zhǔn)信號(hào)的電子儀器,是工業(yè)生產(chǎn)和電工、電子實(shí)驗(yàn)中經(jīng)常使用的電子儀器之一。信號(hào)發(fā)生器種類較多,性能各有差別,但它們都可以產(chǎn)生不同頻率的正弦波、調(diào)幅波調(diào)頻波信號(hào),以及各種頻率的方波、三角波、鋸齒波和正負(fù)脈沖波信號(hào)等。利用信號(hào)發(fā)生器輸出的信號(hào),可以對(duì)元器件的性能及參數(shù)進(jìn)行測(cè)量,還可以對(duì)電工和電子產(chǎn)品整進(jìn)行指數(shù)驗(yàn)證、參數(shù)調(diào)整及性能鑒定。在多數(shù)電路傳遞網(wǎng)絡(luò)中、電容與電感組合電路, 、電容與電阻組合電路及信號(hào)調(diào)制器的頻率、相位的檢測(cè)中都可以得到廣泛的應(yīng)用。信號(hào)發(fā)生器按其頻率的高低,可分為:超低頻信號(hào)發(fā)生器,低頻信號(hào)發(fā)生器,高頻信號(hào)發(fā)生器,超高頻信號(hào)發(fā)生器,微波信號(hào)發(fā)生器;按產(chǎn)生波形的不同,可分為:正弦波信號(hào)發(fā)生器,脈沖波函數(shù)波信號(hào)發(fā)生器,任意波信號(hào)發(fā)生器; 按調(diào)制方式的不同,可分為:調(diào)頻信號(hào)發(fā)生器(FM) 、調(diào)幅信號(hào)發(fā)生器(AM) ,調(diào)相信號(hào)發(fā)生器(PM) ,脈沖調(diào)制信號(hào)發(fā)生器;此外,還可以產(chǎn)生兩種或多種波形信號(hào)發(fā)生器。單片機(jī)智能信號(hào)發(fā)生器目前可直接數(shù)字合成(DDS) ,能夠產(chǎn)生任意波形的信號(hào),精度高,可程控,便于與其他設(shè)備接口構(gòu)成各種系統(tǒng)。還有基于 USB2.0 的虛擬波形信號(hào)發(fā)生器,也可產(chǎn)生任意波形。本次設(shè)計(jì)設(shè)計(jì)的是一個(gè)可產(chǎn)生正弦波、方波、鋸齒波及三角波的智能信號(hào)發(fā)生器。智能信號(hào)發(fā)生器可廣泛應(yīng)用于電子信息、機(jī)械、交通、地質(zhì)、航天航空等專業(yè),在教學(xué)、科研、生產(chǎn)、工程等諸多領(lǐng)域應(yīng)用非常廣泛1.1.2 本次設(shè)計(jì)的信號(hào)發(fā)生器的簡(jiǎn)介本次設(shè)計(jì)以單片機(jī)為核心,配以一定的外圍電路和軟件,實(shí)現(xiàn)智能波的產(chǎn)生和輸出,從總體上來看設(shè)計(jì)任務(wù)可以分為硬件設(shè)計(jì)和軟件設(shè)計(jì),這2兩者互相結(jié)合,不可分離。從時(shí)間上來看,硬件設(shè)計(jì)的絕大部分工作量在最初階段,到后期往往還要作一些修改。軟件設(shè)計(jì)任務(wù)貫穿始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù)。硬件設(shè)計(jì)部分包括 1. 單片機(jī)的存儲(chǔ)器擴(kuò)展和接口擴(kuò)展設(shè)計(jì)。2. 單片機(jī)外部模塊設(shè)計(jì),包括鍵盤模塊、D/A 轉(zhuǎn)換模塊、信號(hào)放大模塊和濾波模塊設(shè)計(jì)。軟件部分設(shè)計(jì) 單片機(jī)主程序包括初始化和鍵入值的判定,其他都是軟件子程序如 D/A 轉(zhuǎn)換、智能波的產(chǎn)生函數(shù)及輸出函數(shù) 。1.2 智能信號(hào)發(fā)生器的單片機(jī)背景單片機(jī)自 20 世紀(jì) 70 年代問世以來以極其高的性能價(jià)格比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機(jī)的優(yōu)點(diǎn)是體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開發(fā)較為容易。廣大工程技術(shù)人員通過學(xué)習(xí)有關(guān)單片機(jī)的知識(shí)后,也能依靠自己的力量來開發(fā)所希望的單片機(jī)系統(tǒng),并可獲得較高的經(jīng)濟(jì)效益。正因?yàn)槿绱?,在我?guó),單片機(jī)已被廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀器儀表、家用電器等各個(gè)方面。什么是單片機(jī)?單片機(jī)就是在一塊硅片上集成了微處理器(CPU),存儲(chǔ)器(RAM,ROM,EPROM)和各種輸入、輸出接口(定時(shí)器計(jì)數(shù)器,并行I/O 口,串行口,AD 轉(zhuǎn)換器以及脈沖調(diào)制器 PWM 等),這樣一塊芯片具有一臺(tái)計(jì)算機(jī)的屬性,因而被稱為單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。1.3 信號(hào)發(fā)生器的數(shù)模轉(zhuǎn)換背景1.3.1 數(shù)模轉(zhuǎn)換器的功能數(shù)模轉(zhuǎn)換器是一種將輸入的數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào)輸出的電路或器件,它被廣泛地應(yīng)用在信號(hào)采集和處理、數(shù)字通信、自動(dòng)檢測(cè)、自動(dòng)控制和多媒體技術(shù)等領(lǐng)域。無論在工業(yè)生產(chǎn)還是在科學(xué)研究中,常常要對(duì)某些系統(tǒng)參數(shù)進(jìn)行采集、加工和控制,它們往往是非電的模擬量,例如聲、光、磁、熱和機(jī)械參數(shù)等。為了用電子技術(shù)處理這些停息先要通過傳感器把這些非電信號(hào)變換為相應(yīng)的電信號(hào)。 3隨著數(shù)字技術(shù)的迅速發(fā)展和成熟,尤其是微處理器的迅速發(fā)展和廣泛應(yīng)用,使數(shù)字信號(hào)的大量存儲(chǔ)、快速正確地處理和控制成為很容易的事,因而用數(shù)字技術(shù)處理模擬信號(hào)已越來越受到而視。方法是先把模擬電信號(hào)變換為數(shù)字信號(hào)(模數(shù)轉(zhuǎn)換),再利用數(shù)字技術(shù)對(duì)數(shù)字技術(shù)加工處理,處理結(jié)果根據(jù)需要再變換為模擬電信號(hào)(數(shù)模轉(zhuǎn)換),以適應(yīng)后面顯示或執(zhí)行機(jī)構(gòu)的要求,實(shí)現(xiàn)對(duì)模擬信的顯示或控制。例如工業(yè)生產(chǎn)中常常需要對(duì)系統(tǒng)的溫度參數(shù)進(jìn)行控制,當(dāng)采用數(shù)字系統(tǒng)實(shí)現(xiàn)其功能時(shí),先用熱電偶或其他溫度傳感器把系統(tǒng)溫度轉(zhuǎn)換成電壓,經(jīng)放大和濾波等預(yù)處理,用模數(shù)轉(zhuǎn)換器把它變換成對(duì)應(yīng)的數(shù)字量,再送入數(shù)字系統(tǒng)處理,根據(jù)系統(tǒng)情況和控制要求產(chǎn)生的處理結(jié)果用數(shù)模轉(zhuǎn)換器變換為模擬電壓用來而控制加熱系統(tǒng)的功率、實(shí)現(xiàn)對(duì)系統(tǒng)溫度參數(shù)的控制。綜上所述,數(shù)模轉(zhuǎn)換器具有和模數(shù)轉(zhuǎn)換器相對(duì)應(yīng)的基本功能。模數(shù)轉(zhuǎn)換器使數(shù)字系統(tǒng)能從模擬電子系統(tǒng)中獲取與模擬信號(hào)有單值函數(shù)關(guān)系的數(shù)字信息,而數(shù)模轉(zhuǎn)換器則可以把數(shù)字系統(tǒng)處理的結(jié)果變?yōu)閷?duì)應(yīng)的模擬信號(hào),回送給模擬系統(tǒng),以實(shí)觀對(duì)模擬系統(tǒng)工作狀態(tài)的檢測(cè)和控制。因此,數(shù)模轉(zhuǎn)換器是數(shù)字電子系統(tǒng)和模擬電子系統(tǒng)之間的常用接口電路。數(shù)模轉(zhuǎn)換器的發(fā)展經(jīng)歷了電子管、晶體管到集成電路的過程 。 40年代后期,人們開始了數(shù)字通信的研究和實(shí)踐,例如研究脈沖編碼調(diào)制式通信。它要求發(fā)送部分能將所要傳送的聲音、圖像等連續(xù)變化的模擬量轉(zhuǎn)換成數(shù)字形式發(fā)送出去,而信號(hào)接收部分要求能把接收到的數(shù)字信號(hào)還原成聲音、圖像。于是研制了由電子管組裝而成的模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器,使這種可靠和經(jīng)濟(jì)的數(shù)字通信得以實(shí)現(xiàn)。隨著晶體管工藝的發(fā)展和成熟。到 50 年代后期,轉(zhuǎn)換器中的電子管逐步由晶體管替代,使轉(zhuǎn)換器的體積和重量大大減小。數(shù)字計(jì)算機(jī)的興起、發(fā)展和應(yīng)用領(lǐng)域的不斷擴(kuò)大,促進(jìn)了集成電路和轉(zhuǎn)換技術(shù)的迅速發(fā)展。到 60 年代中期,構(gòu)成數(shù)模轉(zhuǎn)換器的一些主要功能單元電路,如基準(zhǔn)電壓源、模擬開關(guān)、運(yùn)算放大器等已制成半導(dǎo)體集成電路。同時(shí)薄膜集成電路和厚膜集成電路也有很大發(fā)展。70 年代初,所有元件那被集成在一個(gè)芯片上的單片集成數(shù)模轉(zhuǎn)換器研制成功。它標(biāo)志數(shù)模轉(zhuǎn)換器真正達(dá)到了工業(yè)化大批量生產(chǎn)的階段。此后,轉(zhuǎn)換器得到迅速發(fā)展。性能不斷提高。工藝上進(jìn)一步發(fā)展,產(chǎn)生了標(biāo)準(zhǔn)雙極型工藝和 CMOS 工藝結(jié)合起來的組合技術(shù) CMOS 工藝的集成電路,功耗小、4集成度高,制成的模擬開關(guān)有雙向特性。在數(shù)模轉(zhuǎn)換器的功能方面,不但有一般功能的,還有為一些特定應(yīng)用領(lǐng)域研制的特殊功能數(shù)模轉(zhuǎn)換器,例如用于視頻調(diào)色顯示的視頻數(shù)模轉(zhuǎn)換器。替代手工調(diào)整電位器而設(shè)計(jì)的數(shù)字電位器,專用于把數(shù)字化音頻信號(hào)轉(zhuǎn)換成模擬音頻信號(hào)的音頻數(shù)模轉(zhuǎn)換器,脈碼調(diào)制編碼譯碼系統(tǒng)中用的壓擴(kuò)數(shù)模轉(zhuǎn)換器等, DA 轉(zhuǎn)換器有兩種輸出形式,一種是電壓輸出形式,即輸入的是數(shù)字量,而輸出為電壓。另一種是電流輸出形式,即輸出為電流。在實(shí)際應(yīng)用中如需要電壓模擬量的話,對(duì)于電流輸出的 DA 轉(zhuǎn)換器,可在其輸出端加運(yùn)算放大器構(gòu)成的電流電壓轉(zhuǎn)換電路,將轉(zhuǎn)換器的電流輸.1.3 DA 轉(zhuǎn)換部分在單片機(jī)的實(shí)時(shí)控制和智能儀表等應(yīng)用系統(tǒng)中,控制或測(cè)量對(duì)象的有關(guān)變量,往往是一些連續(xù)變化的模擬量,如溫度、壓力、流量、速度等物理量。這些模擬量必須轉(zhuǎn)換成數(shù)字量后才能輸入到單片機(jī)中進(jìn)行處理。單片機(jī)處理的結(jié)果,也常常需要轉(zhuǎn)換為模擬信號(hào)。若輸入的是非電信號(hào),還需經(jīng)過傳感器轉(zhuǎn)換成模擬電信號(hào)。實(shí)現(xiàn)模擬量轉(zhuǎn)換成數(shù)字量的器件稱為模數(shù)轉(zhuǎn)換器(ADC),數(shù)字量轉(zhuǎn)換成模擬量的器件稱為數(shù)模轉(zhuǎn)換器(DAC)。下面從應(yīng)用和原理的角度對(duì)數(shù)模轉(zhuǎn)換器(DAC)做重點(diǎn)介紹1.3.1 DA 轉(zhuǎn)換器概述DA(數(shù)/模)轉(zhuǎn)換器輸入的是數(shù)字量,經(jīng)轉(zhuǎn)換后輸出的是模擬量。轉(zhuǎn)換過程是先將各位數(shù)碼按其權(quán)的大小轉(zhuǎn)換為相應(yīng)的模擬分量,然后再以疊加方法把各模擬分量相加,其和就是 DA 轉(zhuǎn)換的結(jié)果。對(duì)于 DA 轉(zhuǎn)換器的使用要注意區(qū)分輸出形式和轉(zhuǎn)換器內(nèi)部是否帶有鎖存器。(1)電壓與電流輸出形式(2)DA 轉(zhuǎn)換器內(nèi)部是否帶有鎖存器由于實(shí)現(xiàn)模擬量轉(zhuǎn)換是需要一定時(shí)間的,在這段時(shí)間內(nèi) DA 轉(zhuǎn)換器輸入端的數(shù)字量應(yīng)保持穩(wěn)定,為此應(yīng)當(dāng)在數(shù)模轉(zhuǎn)換器數(shù)字量輸入端的前面設(shè)置鎖存器,以提供數(shù)據(jù)鎖存功能。根據(jù)轉(zhuǎn)換器芯片內(nèi)是否帶有鎖存器,可以把 DA 轉(zhuǎn)換器分為內(nèi)部無鎖存器的和內(nèi)部有鎖存器的兩類:內(nèi)部無鎖存器的 DA 轉(zhuǎn)換器5這種 D 從轉(zhuǎn)換器由于不帶鎖存器而內(nèi)部結(jié)構(gòu)簡(jiǎn)單,它們可與 MCS51 的 P1、P2 口直接相接,因?yàn)?P1 口和 P2 口的輸出有鎖存功能、但是當(dāng)與 P0 口接口時(shí),由于 P0 口的特殊性,需要在轉(zhuǎn)換器芯片的前面增加鎖存器。內(nèi)部帶有鎖存器的 DA 轉(zhuǎn)換器 這種 DA 轉(zhuǎn)換器的芯片內(nèi)部不但有鎖存器,而且還包括地址譯碼電路或多重的數(shù)據(jù)緩沖電路,可與 MCS51 的 PD 口直接相接。1.3. 2 主要技術(shù)指標(biāo)DA 轉(zhuǎn)換器的指標(biāo)很多,使用者最關(guān)心的幾個(gè)指標(biāo)如下。(1)分辨串DA 轉(zhuǎn)換器的分辨率指輸入的單位數(shù)字量變化引起的模擬量輸出的變化,是對(duì)輸入量變化敏感程度的描述。通常定義為滿到度值與 2n 之比(n 為 DA 轉(zhuǎn)換器的二進(jìn)制位數(shù))。顯然,二進(jìn)制位數(shù)越多,分辨率越高,即 D 從轉(zhuǎn)換器對(duì)輸入量變化的敏感程度越高。例如,若滿量程為 10v,根據(jù)分辨串定義則分辨率為 10v2de n ci fang 。 。設(shè) B 位DA 轉(zhuǎn)換,即 M:8,分辨率為 10v2 de n ci fang 391mv,即二進(jìn)制數(shù)最低位的變化可引起輸出的模擬電壓變化391mv,該位占滿量程的 o391,常用符號(hào) 1LSB 表示。同理;10 位 DA 轉(zhuǎn)換 1LSB977mV;01滿員程12 位 DA 轉(zhuǎn)換 1LSB244mv:ooN滿量程14 位 DA 轉(zhuǎn)換 1LSB=O61mV=0006滿量程16 位 DA 轉(zhuǎn)換 1LSB =0076mvO00076滿量程使用時(shí),應(yīng)根據(jù)對(duì) DA 轉(zhuǎn)換器分辨率的需要來選定 DA 轉(zhuǎn)換器的位數(shù) o(2)建立時(shí)間建立時(shí)間是描述 DA 轉(zhuǎn)換速度快慢的一個(gè)參數(shù),用于表明轉(zhuǎn)換速度。其值為從輸入數(shù)字量到輸出達(dá)到終位誤差 (12)LSB(最低有效位)時(shí)所6需的時(shí)間。輸出形式為電流的轉(zhuǎn)換器建立時(shí)間較短,而輸出形式為電壓的轉(zhuǎn)換器,由于要加上運(yùn)算放大器的延遲時(shí)間,因此建立時(shí)間要長(zhǎng)一些??焖俚?DA 轉(zhuǎn)換器的建立時(shí)間可達(dá) 1 微米下。(3)轉(zhuǎn)換精度理想情況下,精度與分辨率基本一致,位數(shù)越多精度越高。但由于電源電壓、參考電壓、電阻等各種因家存在著誤差。嚴(yán)格講精度與分辨率并不完全一致。只要位數(shù)相同,分辨率則相同,但相同位數(shù)的不同轉(zhuǎn)換器精度會(huì)有所不同。例如,某種型號(hào)的 8 位 DAC 精度為 O19,而另一種型號(hào)的 8 位 DAC 精度為 0.05。第 2 章 智能信號(hào)發(fā)生器的硬件設(shè)計(jì)2.1 信號(hào)發(fā)生器的總體硬件結(jié)構(gòu)及原理 0000 00000123485679A1M1001K*10+5VCSXFER17C1c212345678910121341561781920 212232425267282930313940837234356P0.P0.7RSTP3.0P3.1P3.2P3.P3.43.56P3.7XTAL2XTAL1GND P2.0P2.1P2.3P2.4P2.5P2.6P2.7P2.8PSENALEP0.7P0.Vc 161541WR1WR221815K 15KDGNDAGNDIOUT1IOUT2RfbVref458 458DAC0832AT89C51VcILE 7.5KP1.0P1.7 OUTC37.5K341129819201345677信號(hào)發(fā)生器的硬件結(jié)構(gòu)主要由 AT89C51、復(fù)位電路、時(shí)鐘電路、數(shù)模轉(zhuǎn)換電路 DAC0832 及運(yùn)算放大器 4558 六部分構(gòu)成。其中單片機(jī)AT89C51 的程序存儲(chǔ)器 存放軟件程序,程序包括正弦波三角波鋸齒波矩形波的產(chǎn)生程序及對(duì)波形的頻率輸入程序,還有對(duì)鍵盤和 DAC0832 的控制程序。打開信號(hào)發(fā)生器后,單片機(jī)程序請(qǐng)求用戶從鍵盤上輸入波形所對(duì)應(yīng)的鍵號(hào)值及波形所對(duì)應(yīng)的頻率值。像 1 號(hào)鍵對(duì)應(yīng)正弦波輸出、2 號(hào)對(duì)應(yīng)三角波輸出,3 號(hào)對(duì)應(yīng)矩尺波輸出、 4 號(hào)對(duì)應(yīng)矩形波輸出。例如若想得到1KHZ 的正弦波 ,則需按下 1 號(hào)鍵,等待程序要求輸入正弦波的頻率,再按下 1K 鍵。這些波形參數(shù)通過鍵盤由單片機(jī)的 P1 口進(jìn)入,被存放在AT89C51 的數(shù)據(jù)存儲(chǔ)器內(nèi),單片機(jī)調(diào)用波形程序后,由 P0 口輸出波形進(jìn)入數(shù)模轉(zhuǎn)換器的 P1 口,數(shù)模轉(zhuǎn)換器將信號(hào)波由數(shù)字形式轉(zhuǎn)換為模擬的形式,由數(shù)摸轉(zhuǎn)換器輸出的波是電流型的,而用來顯示波形的示波器是電壓型的儀器,所以在數(shù)模轉(zhuǎn)換器以后需要添加運(yùn)算放大器將電流型的信號(hào)轉(zhuǎn)換成電壓型的信號(hào),同時(shí)放大信號(hào),以便于在示波器中觀察。2.2 存儲(chǔ)器的結(jié)構(gòu)MCS-51 單片機(jī)存儲(chǔ)器采用的是哈佛(Har-vard) 結(jié)構(gòu),即程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間截然分開,程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器各有自己的尋址方式,尋址空間和控制系統(tǒng)。這種結(jié)構(gòu)對(duì)于單片機(jī)“面向控制”的實(shí)際應(yīng)用極為方便和有利。在89C51/8751 單片機(jī)中,不僅在片內(nèi)集成了一定容量的程序存儲(chǔ)器和數(shù)據(jù)存8儲(chǔ)器及眾多的特殊功能寄存器,而且還具有極強(qiáng)的外存儲(chǔ)器的擴(kuò)展能力,尋址能力分別可達(dá) 64KB,尋址和操作簡(jiǎn)單方便。 MCS-51 的存儲(chǔ)器空間可劃分為如下幾類:1. 程序存儲(chǔ)器單片機(jī)系統(tǒng)之所以能夠按照一定的次序進(jìn)行工作,主要是程序存儲(chǔ)器中存放了經(jīng)調(diào)試正確的應(yīng)用程序和表格之類的固定常數(shù)。程序?qū)嶋H上是一串二進(jìn)制碼,程序存儲(chǔ)器可以分為片內(nèi)和片外兩部分。8031 由于無內(nèi)部存儲(chǔ)器,所以只能外擴(kuò)程序存儲(chǔ)器來存放程序。MCS-51 單片機(jī)復(fù)位后,程序存儲(chǔ)器 PC 的內(nèi)容為 0000H,故系統(tǒng)必須從 0000H 單元開始取指令,執(zhí)行程序。程序存儲(chǔ)器中的 0000H 地址是系統(tǒng)程序的啟動(dòng)地址。一般在該單元存放一條絕對(duì)跳轉(zhuǎn)指令,跳向用戶設(shè)計(jì)的主程序的起始地址。64K 程序存儲(chǔ)器中有 5 個(gè)單元具有特殊用途。5 個(gè)特殊單元分別對(duì)應(yīng)于 5 種中斷源的中斷服務(wù)程序的入口地址。通常在這些中斷入口地址處都放一條絕對(duì)跳轉(zhuǎn)指令。加跳轉(zhuǎn)指令的目的是由于兩個(gè)中斷入口間隔僅有 8個(gè)單元,存放中斷服務(wù)程序往往是不夠用的。在 MCS-51 單片機(jī)的指令系統(tǒng)中,同外部程序存儲(chǔ)器打交道的指令僅有兩條:(1) MOVC A A+DPTR(2) MOVC A A+PC2. 內(nèi)部數(shù)據(jù)存儲(chǔ)器MCS-51 單片機(jī)內(nèi)部有 128 個(gè)字節(jié)的隨機(jī)存取存儲(chǔ)器 RAM,作為用戶的數(shù)據(jù)寄存器,它能滿足大多數(shù)控制型應(yīng)用場(chǎng)合的需要,用作處理問題的數(shù)據(jù)緩沖器。MCS-51 單片機(jī)的片內(nèi)存儲(chǔ)器的字節(jié)地址為 00H-7FH。MCS-51 單片機(jī)對(duì)其內(nèi)部 RAM 的存儲(chǔ)器有很豐富的操作指令,從而使得用戶在設(shè)計(jì)程序時(shí)非常方便。地址為 00H-1FH 的 32 個(gè)單元是 4 組通用工作寄存器區(qū),每個(gè)區(qū)含八個(gè) 8 位寄存器,編號(hào)為 R7-R0。用戶可以通過指令改變 PSW中的 RS1、RS0 這二位來切換當(dāng)前的工作寄存器區(qū),這種功能給軟件設(shè)計(jì)帶來極大的方便,特別是在中斷嵌套時(shí),為實(shí)現(xiàn)工作寄存器現(xiàn)場(chǎng)內(nèi)容保護(hù)提供了極大的方便。地址為 20H-2FH 的 16 個(gè)單元可進(jìn)行共 128 位的位尋址,這些單元構(gòu)9成了 1 位處理機(jī)的存儲(chǔ)空間。單元中的每一位都有自己的位地址,這 16個(gè)單元也可以進(jìn)行字節(jié)尋址。地址為 30H-7FH 的單元為用戶 RAM 區(qū),只能進(jìn)行字節(jié)尋址。3. 特殊功能寄存器(SFR-Special Function Register)特殊功能寄存器反映了 MCS-51 單片機(jī)的狀態(tài),實(shí)際上是 MCS-51 單片機(jī)各功能部件的狀態(tài)及控制寄存器。SFR 綜合的,實(shí)際的反應(yīng)了整個(gè)單片機(jī)基本系統(tǒng)內(nèi)部的工作狀態(tài)及工作方式。SFR 實(shí)質(zhì)上是一些具有特殊功能的片內(nèi) RAM 單元,字節(jié)地址范圍為 80H-FFH.特殊功能寄存器的總數(shù)為21 個(gè),離散的分布在該區(qū)域中,其中有些 SFR 還可以進(jìn)行位尋址。128 個(gè)字節(jié)的 SFR 塊中僅有 21 個(gè)字節(jié)是由定義的。對(duì)于尚未定義的字節(jié)地址單元,用戶不能作寄存器使用,若訪問沒有定義的單元,則將得到一個(gè)不確定的隨機(jī)數(shù)。4. 位尋址空間MCS-51 單片機(jī)的一個(gè)很大優(yōu)點(diǎn)在于它具有一個(gè)功能很強(qiáng)的位處理器。在 MCS-51 單片機(jī)的指令系統(tǒng)中,有一個(gè)位處理指令的子集,使用這些指令,所處理的數(shù)據(jù)僅為一位二進(jìn)制數(shù)(0 或 1)。在 MCS-51 單片機(jī)內(nèi)共有211 個(gè)可尋址位,它們存在于內(nèi)部 RAM(共有 128 個(gè))和特殊功能寄存器區(qū)(共有 83 個(gè)) 中。 當(dāng) MCS-51 單片機(jī)的片內(nèi) RAM 不夠用時(shí),可在片外擴(kuò)充數(shù)據(jù)存儲(chǔ)器。MCS-51 單片機(jī)給用戶提供了可尋址 64K 字節(jié)的外擴(kuò)RAM 的能力,至于擴(kuò)多少 RAM,則根據(jù)用戶實(shí)際需要來定。2.3 并行 I/O 口MCS-51 單片機(jī)共有 4 個(gè)雙向的 8 位并行 I/O 端口(Port) ,分別記作P0-P3,共有 32 根口線,各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器所組成。實(shí)際上 P0-P3 已被歸入特殊功能寄存器之列。這四個(gè)口除了按字節(jié)尋址以外,還可以按位尋址。由于它們?cè)诮Y(jié)構(gòu)上有一些差異,故各口的性質(zhì)和功能有一些差異。P0 口是雙向 8 位三態(tài) I/O 口,此口為地址總線(低 8 位)及數(shù)據(jù)總線分時(shí)復(fù)用口,可驅(qū)動(dòng) 8 個(gè) LS 型 TTL 負(fù)載。P1 口是 8 位準(zhǔn)雙向 I/O 口,可驅(qū)動(dòng) 4 個(gè) LS 型負(fù)載。P2 口是 8 位準(zhǔn)雙向 I/O 口,與地址總線(高 8 位)復(fù)用,可驅(qū)動(dòng) 4 個(gè) LS 型 TTL 負(fù)載。P3 口是 8 位準(zhǔn)雙向 I/O 口,是雙功能復(fù)用口,可驅(qū)動(dòng) 4 個(gè) LS 型 TTL 負(fù)載。P1 口、P2 口、P3 口各 I/O 口線片10內(nèi)均有固定的上拉電阻,當(dāng)這 3 個(gè)準(zhǔn)雙向 I/O 口作輸入口使用時(shí),要向該口先寫“1” ,另外準(zhǔn)雙向 I/O 口無高阻的“浮空”狀態(tài),故稱為雙向三態(tài)I/O 口。P0-P3 口都是并行 I/O 口,都可用于數(shù)據(jù)的輸入和輸出,但 P0 口和P2 口出了可進(jìn)行數(shù)據(jù)的輸入/輸出外,通常用來構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線,所以在電路中有一個(gè)多路轉(zhuǎn)換開關(guān) MUX,以便進(jìn)行兩種用途的轉(zhuǎn)換。而 P1 口和 P3 口沒有構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線的功能。因此,在電路中沒有多路轉(zhuǎn)接開關(guān) MUX。由于 P0 口可作為地址/數(shù)據(jù)復(fù)用線試用,需傳送系統(tǒng)的低 8 位地址和 8 位數(shù)據(jù),因此,MUX 的一個(gè)輸入端為“地址/數(shù)據(jù)”信號(hào)。而 P2 口僅作為高位地址線試用,不涉及數(shù)據(jù),所以MUX 的一個(gè)輸入信號(hào)為“地址” 。在 4 個(gè)口中只有 P0 口是一個(gè)真正的雙向口, P1-P3 這三個(gè)口都是準(zhǔn)雙向口。原因是在應(yīng)用系統(tǒng)中,P0 口作為系統(tǒng)的數(shù)據(jù)總線使用時(shí),為保證數(shù)據(jù)的正確傳送,需要解決芯片內(nèi)外的隔離問題,即只有在數(shù)據(jù)傳送時(shí)芯片內(nèi)外才接通;不進(jìn)行數(shù)據(jù)傳遞時(shí),芯片內(nèi)外處于隔離狀態(tài)。為此,要求 P0口的輸出緩沖器是一個(gè)三態(tài)門。在 P0 口中輸出三態(tài)門是由兩只場(chǎng)效應(yīng)管(FET)組成,所以說它是一個(gè)真正的雙向口。而其他的三個(gè)口中,上拉電阻代替 P0 口中的場(chǎng)效應(yīng)管,輸出緩沖器不是三態(tài)的,因此不是真正的雙向口,只能稱其為準(zhǔn)雙向口。P3 口的口線具有第二功能,為系統(tǒng)提供一些控制信號(hào),因此在 P3 口電路增加了第二功能控制邏輯。這是 P3 口與其他各口的不同之處。2.4 時(shí)鐘電路時(shí)鐘是單片機(jī)的心臟單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊地一拍一拍地運(yùn)作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。 1內(nèi)部時(shí)鐘方式MCS51 單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大11器的輸入端為芯片引腳 XTAL1,輸出端為引腳 XTAL22。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,圖 214 是MCS51 單片機(jī)內(nèi)部時(shí)鐘方式的振蕩器電路。2外部時(shí)鐘方式外部時(shí)鐘方式是使用外部振蕩脈沖信號(hào),常用于多片 MCS51 單片機(jī)同時(shí)工作,以便于同步。對(duì)外部脈沖信號(hào)只要求高電平的持續(xù)時(shí)間大于20 微秒,一般為低于 12MHz 的方波。外部的時(shí)鐘源直接接到 XTAL2 端,直接輸入到片內(nèi)的時(shí)鐘發(fā)生器上。電路見圖 215。由于 XTAL2 的邏輯電平不是 TTL 的,故建議外接個(gè) 47Kl0K 的上拉電阻。2.5 復(fù)位操作復(fù)位是單片機(jī)的初始化操作,只要給 RESET 引腳加上 2 個(gè)機(jī)器周期以上的高電平信號(hào)就可使 MCS51 單片機(jī)復(fù)位。復(fù)位的主要功能是把 PC 初始化為 0000H,使 MC551 單片機(jī)從 0000H 單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作鋁誤使系統(tǒng)處于死鎖狀態(tài),為擺脫死鎖狀態(tài),也需按復(fù)位控重新啟動(dòng)。 除 Pc 之外,復(fù)位操作還對(duì)其它一些寄存器有影響。 另外,在復(fù)位有效期間(即高電平) ,MCS 5l 單片機(jī)的 ALE 引腳和 PSEN 引腳均為高電平且內(nèi)部RAM 不受復(fù)位的影響。2.6 復(fù)位電路 MCS51 的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。 復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。 最簡(jiǎn)單的上電自動(dòng)復(fù)位電路如圖 2.3.1 所示。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的。只要 vcc 的上升時(shí)間不超過 1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。當(dāng)時(shí)鐘頻率選用 6MH2 時(shí),C 取 22 微秒,R 取 lK。 除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種,其中電平復(fù)位是通過 RST 端經(jīng)電阻與電源 vcc 接通而實(shí)現(xiàn)的,按鍵手動(dòng)電平復(fù)位電路見圖 2 20。當(dāng)時(shí)鐘頻率選用 6MHz 時(shí),C 取 22 降,Rs 取 200,Rk 取 IK。按鍵脈沖復(fù)位則是利用 RC 微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,脈沖復(fù)位電路見圖 221。圖中的阻容參數(shù)適于 6MHz 時(shí)鐘。12電路中的電容 C1 和 C2 典型值通常選擇為 30PF 左右。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶體的振蕩頻率的范圍通常是在 1.2MHz12MHZ 之間。晶體的頻率越高,則系統(tǒng)的時(shí)鐘頻率也就越高,單片機(jī)的運(yùn)行速度也就越快。但反過來運(yùn)行速度快對(duì)存儲(chǔ)器的速度要求就高,對(duì)印刷電路板的工藝要求也高,即要求線間的寄生電容要??;晶體和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作。為了提高溫度穩(wěn)定性,應(yīng)采用溫度穩(wěn)定性能好 NPO 高頻電容。 MCS51 單片機(jī)常選擇振蕩頻率 6MHZ 或 12MHz 的石英晶體。隨著集成電路制造工藝技術(shù)的發(fā)展,單片機(jī)的時(shí)鐘頻率也在逐步提高,現(xiàn)在的高速單片機(jī)芯片的時(shí)鐘頻率已達(dá) 40MHz。2.7 鍵盤輸入電路鍵盤能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù)、傳送命令等功能。信號(hào)發(fā)生器用鍵盤用來置入所需要輸出波形的種類和頻率,即根據(jù)用戶的要求 將所需波形和頻率用鍵盤輸入,再由單片機(jī)判斷分析,輸出所需結(jié)果 .2.7.1 鍵盤輸入應(yīng)解決的問題1鍵盤輸入的特點(diǎn)鍵盤實(shí)質(zhì)上是一組按鍵開關(guān)的集合。通常,鍵盤所用開關(guān)為機(jī)械彈性開關(guān),均利用了機(jī)械觸點(diǎn)的合、斷作用。一個(gè)電壓信號(hào)通過機(jī)械觸點(diǎn)的斷開、閉合過程,其行線電壓輸出波形如圖所示:2.3.3 上電復(fù)位電路電路2.3.4 按鍵電平復(fù)位電路13圖中t1和L3分別為鍵的閉合和斷開過程中的抖動(dòng)期(呈現(xiàn)一串負(fù)脈沖),抖動(dòng)時(shí)間長(zhǎng)短和開關(guān)的機(jī)械特性有關(guān),一般為510 ms,t2為穩(wěn)定的閉合期,其時(shí)間內(nèi)按鍵動(dòng)作所確定,一般為十分之幾秒到幾秒,t0,t4為斷開期。2按鍵的確認(rèn)鍵的閉合與否,反映在行線輸出電壓上就是呈現(xiàn)出高電平或低電平,Ag果高電平表示斷開的話,那么低電平則表示鍵閉合,所以通過對(duì)行線電平的高低狀態(tài)的檢測(cè),便可確認(rèn)按鍵按下與否。為了確保CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一次按鍵,必須消除抖動(dòng)的影響。下面將介紹如何來消除抖動(dòng)。3如何消除按鍵抖動(dòng)消除按鍵抖動(dòng)通常采用硬件、軟件兩種的方法c(1)硬件消除按鍵抖動(dòng)硬件消除抖動(dòng)一般采用雙穩(wěn)態(tài)消抖電路。雙穩(wěn)態(tài)消抖電路原理如圖98所示。圖中用兩個(gè)與非門構(gòu)成一個(gè)朋觸發(fā)器。當(dāng)按鍵未按下時(shí)(開關(guān)位于s點(diǎn)),輸出為1,當(dāng)鍵按下(開關(guān)打向b點(diǎn))時(shí),輸出為0。此時(shí)即使因按鍵的機(jī)械性能,使按鍵因彈性抖動(dòng)而產(chǎn)生瞬時(shí)不閉合(抖動(dòng)跳開b),只要技鍵不返回原始狀態(tài)a, 雙穩(wěn)態(tài)電路的狀態(tài)不改變,輸出保持為0,不會(huì)產(chǎn)生抖動(dòng)的波形輸出。就是說即使b點(diǎn)的電壓波形是抖動(dòng)的但經(jīng)雙穩(wěn)態(tài)電路之后,其輸出為正規(guī)的矩形波,這一點(diǎn)很容易通過分析RS觸發(fā)器的工作過程得到驗(yàn)證。(2)軟件消除按鍵抖動(dòng)如果按鍵較多,硬件消抖將無法勝任,因此常采用軟件的方法進(jìn)行消抖。在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí)10ms的子程序后再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平則確認(rèn)為真正有2.5.1 鍵盤形狀及其波形圖 2.5.2 雙穩(wěn)態(tài)消抖電路 14鍵按下,從而消除了抖動(dòng)的影響。鍵盤接口的工作原理常用的鍵盤接口分為獨(dú)立式按鍵接口和矩陣式鍵盤接口1獨(dú)立式按鍵接口獨(dú)立式按鍵就是各按鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,一根輸入線上的按鍵工作狀態(tài)不會(huì)影響其他輸入線上的工作狀態(tài)。因此,通過檢測(cè)輸入線的電平狀態(tài)可以很容易判斷哪個(gè)按鍵被按下了。獨(dú)立式拉鏈電路配置靈活,軟件簡(jiǎn)單。但每個(gè)按鍵需占用一根輸入口線,在按鍵數(shù)量較多時(shí),需要較多的輸人口線且電路結(jié)構(gòu)繁雜,故此種鍵盤適用于按鍵較少或操作速度較高的場(chǎng)合。信號(hào)發(fā)生器的鍵盤需要輸入頻率應(yīng)用獨(dú)立式鍵盤不容易實(shí)現(xiàn),下面介紹信號(hào)發(fā)生器應(yīng)用的鋸陣式鍵盤。2矩陣式鍵盤接口矩陣式鍵盤(也稱行列式鍵盤)適用于按鍵數(shù)量較多的場(chǎng)合,它由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。如圖 912 所示,一個(gè) 3n*3的行、列結(jié)構(gòu)可以構(gòu)成一個(gè)有 9 個(gè)按鍵的鍵盤。間理一個(gè) 4M*4 的行、列結(jié)構(gòu)可以構(gòu)成一個(gè) 16 個(gè)按鍵的鍵盤等等。很明顯,在按鍵數(shù)量較多的場(chǎng)合,矩陣鍵盤與獨(dú)立式按鍵鍵盤相比,要節(jié)省很多的 IO 口線。(2)按鍵的識(shí)別方法掃描法 線反轉(zhuǎn)法掃描法要逐列掃描查詢,當(dāng)被放下的短處于最后一列時(shí),則要經(jīng)過多次掃描才能最后獲得此按鍵所處的行列值。而線反轉(zhuǎn)法則顯得很簡(jiǎn)練,無論被按鍵是處于第 1 列或最后一列,均只須經(jīng)過兩步便能獲得此按鍵所15在的行列值,線反轉(zhuǎn)法的原理如圖 913 所示。圖 1J 用一個(gè) 8 位I/O 口構(gòu)成一個(gè) 4x 4 的矩陣鍵盤,采用查詢方式進(jìn)行工作,下面介紹線反轉(zhuǎn)法的兩個(gè)具體操作步驟:第一步:將行線編程為輸入線,列線編程為輸出線,并使輸出線輸出為全零電平,則行線中電平由高到低的所在行為按鍵所在行。第二步:同第一步完全相反,將行線編程為輸出線,列線編程為輸入線,并使輸出線輸出為全低電乎,則列線中電平由高到低的所在列為按鍵所在列。結(jié)合兩步的結(jié)果,可確定按鍵所在行和列,從而識(shí)別出所按的銀。假設(shè) 3 號(hào)鍵被按下,那么第一步即在 Do。凹輸出全 0,然后,讀入 N四位,結(jié)果 D4: 0而 D5貼和 D7 均為 l,因此,第一行出現(xiàn)電平的變化,說明第一行有鍵按下;第二步讓 ND7 輸出全 o,然后,讀入DoD3 位,結(jié)果 Doo,而 D1、D2 和 D3 均為 1,因此第 4 列出現(xiàn)電平的變化,說明第 4 列有鍵按下。綜合一、二兩步,即第 1 行第 4 列按鍵被按下,此按鍵即是 3 號(hào)鍵。因此線反轉(zhuǎn)法非常簡(jiǎn)單適用。當(dāng)然實(shí)際編程中要考慮采用軟件延時(shí)進(jìn)行消抖處理 o2.7.2 鍵盤的編碼對(duì)于獨(dú)立式按鍵鍵盤,由于按鍵的數(shù)目較少,可根據(jù)實(shí)際需要靈活編碼。對(duì)于短陣式鍵盤,按鍵的位置由行號(hào)和列號(hào)唯一確定,所以分別對(duì)行16號(hào)和列號(hào)進(jìn)行二進(jìn)制編碼、然后將兩值合成一個(gè)字節(jié),高 4 位是行號(hào),低4 位是列號(hào)。如 12H 表示第 1 行第 2 列的按鍵,而 A3H 則表示第 10 行第3 列的按鍵等等。但是這種編碼對(duì)于不同行的鍵,離散性大。例如一個(gè)4M*4 的鍵盤,14H 鍵與 21H 錠之間間隔很大,因此不利于使用散轉(zhuǎn)指令。所以常常采用依次排列鍵號(hào)的方式對(duì)按鍵進(jìn)行編碼。以 4x 4 鍵盤為例,鍵號(hào)可以編碼為:0lH,02H,03H0EK,0FH, 10H 共 16 個(gè)。無論以何種方式編碼,均應(yīng)以處理問題方便為原則,而最基本的是鍵所處的物理位置即行號(hào)和列號(hào),它是各種編碼之間相互轉(zhuǎn)換的基礎(chǔ),編碼相互轉(zhuǎn)換可通過查表的方法實(shí)現(xiàn)。信號(hào)發(fā)生器所用的編碼轉(zhuǎn)換如下:01H 02H 03H 04H 1 2 3 405H 06H 07H 08H - 5 6 7 809H 0AH 0BH 0CH - 9 10 100 1K0DH 0EH 0FH 10H 10000 100000 1M *通過乘號(hào)鍵“*”就可實(shí)現(xiàn) 10HZ-24MHZ 的頻率輸入了。2.8 D/A 轉(zhuǎn)換電路由單片機(jī)輸出的波形信號(hào)是數(shù)字的形式的,而用示波器顯示的波形需要的是可以觀察的模擬的形式,完成由數(shù)字向模擬轉(zhuǎn)換的器件就是 D/A 數(shù)字模擬轉(zhuǎn)換器。下面介紹它的工作原理。2.8.1 DA 轉(zhuǎn)換器的工作原理數(shù)模轉(zhuǎn)換器的基本功能是將輸入的數(shù)字量 D 轉(zhuǎn)換成與之唯一對(duì)應(yīng)的模擬量 A,用數(shù)學(xué)式可表示為:A=PD 式中 P 為變換系數(shù)。那么,如何實(shí)現(xiàn)這種變換?這種變換器的基本結(jié)構(gòu)應(yīng)該是怎樣的?下面分析一個(gè)具體例子。圖 31 是實(shí)現(xiàn)數(shù)模轉(zhuǎn)換的一種電路,輸入數(shù)字信號(hào)為 4 位二進(jìn)制數(shù)D(d3d2d1d0) ,其中 d3 為最高位 MSB,d0 為最低位 LSB,其值用十進(jìn)制表示時(shí)為: 二進(jìn)制的鍵盤編碼 轉(zhuǎn)換后的鍵盤編碼17從數(shù)據(jù)線上來的數(shù)字信號(hào)先由鎖存器鎖存,再制模擬開關(guān)。鎖存器在控制信號(hào)的作用下,從數(shù)據(jù)線上鎖存需要轉(zhuǎn)換的數(shù)字信號(hào),而數(shù)據(jù)線上的其他信號(hào),將不會(huì)被鎖存而輸入到轉(zhuǎn)換器中。分別受輸入信號(hào)對(duì)應(yīng)位d3,d2,d1 和 d0 狀態(tài)的控制。當(dāng) d31,s3 合向 l 端,形成大小為VR/R*d3 的電流 I3 流向 2 點(diǎn),對(duì) i0 有貢獻(xiàn)。當(dāng) d3o 狀態(tài),s3 合向 2 端(地),I3 流向地,對(duì) i0 沒有貢獻(xiàn)。其他位的情況類似。只要電阻網(wǎng)絡(luò)中各電阻阻值不同,則數(shù)寧信號(hào)中各位為 1 時(shí),所形成的流向 2 點(diǎn)的電流大小是不同的。對(duì)圖 31 而吉,可算出i。I3+I2+I0式中,D 表爾輸入 二 進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制值,式 (31)表明,電路輸山的模擬電流值和輸入數(shù)字量 D 成比例。電流 i0 流經(jīng)放大器的反饋電阻形成輸出電壓 v0,其大小為:18上式表明,輸出的模擬電壓 v0 正比于輸入的數(shù)字信號(hào) D,從而實(shí)現(xiàn)了從數(shù)字量到模擬電壓的轉(zhuǎn)換。2.8.2 AT89C51 與 8 位 DAC0832 的接口1DAC832 芯片介紹(1)DAC0832 的特性美國(guó)國(guó)家半導(dǎo)體公司的 DAC832 芯片是具有兩個(gè)輸人數(shù)據(jù)寄存器的DAC 它能直接與 MCS51 單片機(jī)相連,其主要特性如下:分辨率 8 位;電流輸出,穩(wěn)定時(shí)間為 l 微米;可雙緩沖、單緩沖或直接數(shù)字輸入;只需在滿量程下調(diào)整其線性度;單電源供電(+5+15v),低功耗,20mW。(2)DAC0832 的引腳及邏輯結(jié)構(gòu)DAC0832 的引腳如圖 101 所示。DAC0832 的邏輯結(jié)構(gòu)如圖 102 所示 c19功能如下:DI0-DI7 為 8 位數(shù)字信號(hào)輸入端,與 CPU 數(shù)據(jù)總線相連,用于輸入CPU 送來的待轉(zhuǎn)換數(shù)字量, DI7 為最高位。CS:片選瑞,當(dāng) CS 為低電平時(shí),本芯片被選中工作 oILE:數(shù)據(jù)鎖存允許控制端,高電平有效。WR1:第一級(jí)輸入寄存器寫選通控制,低電平有效,當(dāng)CS 0、ILE=1 、WR1=0 時(shí)數(shù)據(jù)信號(hào)被鎖存到第一級(jí) 8 位輸入寄存器中。XFER:數(shù)據(jù)傳送控制,低電平有效。WR2:DAC 寄存器寫選通控制端,低電平有效,當(dāng) XFER=0、WR1=0,輸入寄存器狀態(tài)傳入 8 位 DAC 寄存器中。Iout1:D A 轉(zhuǎn)換器電流輸出 l 端,輸人數(shù)字量全“1”時(shí),Iout1 最大,輸入數(shù)字量全為零“0”時(shí), Iout1 最小。Iout2:電流輸出 2 端,Iout2+Iout1常數(shù)。Rfb:外部反饋信號(hào)輸入端,內(nèi)部已有反饋電阻,根據(jù)需要也可外接反饋電阻。Vcc:電 Vcc 源輸入瑞,可在+5+15v 范圍內(nèi)。20Vref:參考電壓(也稱基準(zhǔn)電壓 )輸入端,電壓范圍(-10+10)VD:數(shù)字信號(hào)接地端。AGND:模擬信號(hào)接地端,最好與參考電壓共地。DAC0832 內(nèi)部由三部分電路組成,如圖 10.2 所示。 “8 位輸入寄存器”用于存放 CPU 送來的數(shù)字量,使輸人數(shù)字雖得到緩沖和鎖存,由LE1 加以控制。 “8 位 DAC 寄存器”用于存放待轉(zhuǎn)換數(shù)字量,由控制。 “8位 D/A 轉(zhuǎn)換電路”由 8 位 T 型電阻網(wǎng)絡(luò)和電子開關(guān)組成,電子開關(guān)受“8 位 DAC 寄存器”輸出控制,T 型電阻網(wǎng)絡(luò)能輸出和數(shù)字量成正比的模擬電流。因此,DAC0832 通常需要外接運(yùn)算放大器才能得到模擬輸出電壓。2DAC 的應(yīng)用按照輸入數(shù)字量位數(shù),DAC ??煞譃?8 位、10 位和 12 位三種。但M65l 與它的接口常和 DAC 的應(yīng)用有關(guān),因此我們先討論 DAC 的應(yīng)用問題,然后介紹它與 MCS51 的接口DAC 用途很廣(1) DAC 用作單極性電壓輸出(2) DAc 用作雙極性電壓輸出(3) DAC 用作程控放大器3MCS51 與 DAC0832 的接口電路MCS51 與 DAC0832 接口時(shí)可以有三種連接方式:直通方式、單緩沖方式和雙緩沖方式。本次設(shè)計(jì)應(yīng)用的是單緩沖方式
收藏
編號(hào):146898
類型:共享資源
大?。?span id="77xfpjt" class="font-tahoma">236.18KB
格式:RAR
上傳時(shí)間:2017-10-26
100
積分
- 關(guān) 鍵 詞:
-
基于
單片機(jī)
多功能
智能
信號(hào)發(fā)生器
- 資源描述:
-
基于單片機(jī)多功能智能信號(hào)發(fā)生器,基于,單片機(jī),多功能,智能,信號(hào)發(fā)生器
展開閱讀全文
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。