版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、任 務(wù) 書一 設(shè)計(jì)題目;低頻信號(hào)發(fā)生器二 設(shè)計(jì)任務(wù)與要求 設(shè)計(jì)制作低頻信號(hào)發(fā)生器,要求利用單片機(jī)產(chǎn)生正弦波,方波及三角波等波形 (1)正弦波 用單片機(jī)實(shí)現(xiàn)正弦波的輸出 輸出的波形有 1HZ 10HZ 100HZ 1KHZ 10KHZ 5 種可選頻率 輸出電壓范圍有 05V 可調(diào)(峰峰值) 用六位數(shù)碼管顯示頻率 頻率誤差1% (2)方波 頻率范圍:0.01HZ100KHZ 頻率誤差:0.1% 電壓范圍:010 V (3)三角波 頻率范圍:0.01HZ10KHZ 頻率誤差:0.1% 電壓范圍:020V(峰峰值) 失真率:r3% IV 目目 錄錄一一 緒論緒論.1二二 信號(hào)發(fā)生器方案設(shè)計(jì)與選擇信號(hào)發(fā)
2、生器方案設(shè)計(jì)與選擇.3三三 主要電路原件介紹主要電路原件介紹6四四 單元電路硬件設(shè)計(jì)單元電路硬件設(shè)計(jì).15五五 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì).20六六 軟件程序軟件程序.26七七 結(jié)論結(jié)論.34八八 致謝致謝.35九九 參考文獻(xiàn)參考文獻(xiàn).36第 1 章 緒論1.1 選題背景及其意義波形發(fā)生器也稱函數(shù)信號(hào)發(fā)生器,作為實(shí)驗(yàn)信號(hào)源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一。目前,市場上常見的波形發(fā)生器多為純硬件的搭接而成,且波形種類有限,多為鋸齒波,正弦波,方波,三角波等波形。信號(hào)發(fā)生器作為一種常見的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的可以完全由硬件電路搭接而成,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)
3、量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號(hào)源。而由硬件電路構(gòu)成的低頻信號(hào)其性能難以令人滿意,而且由于低頻信號(hào)源所需的 RC 很大;大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證;體積大,漏電,損耗顯著更是致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。因此需要選擇其它的方法來解決此類問題,我們想到了通過單片機(jī)來實(shí)現(xiàn)所要求的功能,即采用單片機(jī) AT89C51 還有數(shù)模轉(zhuǎn)換 DAC0832、運(yùn)算放大器,此種方法硬件要求簡單,編程容易,同時(shí)能夠?qū)崿F(xiàn)所要求的功能。1.2 單片機(jī)概述單片微
4、型計(jì)算機(jī)簡稱單片機(jī)3,是典型的嵌入式微控制器(Microcontroller Unit) , 常用英文字母的縮寫 MCU 表示單片機(jī),單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了 I/O 設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。它最早是被用在工業(yè)控制領(lǐng)域。由于單片機(jī)在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,單片機(jī)由芯片內(nèi)僅有 CPU 的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和
5、 CPU 集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL 的 Z80 是最早按照這種思想設(shè)計(jì)出的處理器,當(dāng)時(shí)的單片機(jī)都是 8 位或 4 位的。其中最成功的是 INTEL 的 8031,此后在 8031 上發(fā)展出了 MCS51 系列單片機(jī)系統(tǒng)。因?yàn)楹唵慰煽慷阅懿诲e(cuò)獲得了很大的好評(píng)。盡管 2000 年以后 ARM 已經(jīng)發(fā)展出了 32位的主頻超過 300M 的高端單片機(jī),直到目前基于 8031 的單片機(jī)還在廣泛的使用。在很多方面單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了廣泛的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多處理器,隨著單片機(jī)家族的發(fā)展壯
6、大,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。 4現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有 1-2 部單片機(jī)。 汽車上一般配備 40 多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過 PC 機(jī)和其他計(jì)算的總和,甚至比人類的數(shù)量還要多。1.3 信號(hào)發(fā)生器概述 信號(hào)發(fā)生器可以構(gòu)成獨(dú)立的信號(hào)源1,也可以是高性能網(wǎng)絡(luò)分析儀、頻譜分析儀以及自動(dòng)檢測設(shè)備的組成部分。信號(hào)發(fā)生器的關(guān)鍵技術(shù)是多種高性能儀器的支撐技術(shù),因?yàn)樗軌蛱峁└哔|(zhì)量的精密信號(hào)源及掃頻源,可使相應(yīng)的系統(tǒng)檢測過程大
7、大簡化,降低檢測費(fèi)用并且極大的提高了檢測精度。信號(hào)發(fā)生器的總體趨勢(shì)將向著高頻率覆蓋、高頻率精度、多功能、多用途、自動(dòng)化和智能化方向發(fā)展。目前,市場上的信號(hào)發(fā)生器多種多樣,一般按照頻帶分為以下幾種:(1)超高頻:頻率范圍為 1MHZ 以上,可達(dá)幾十兆赫茲。(2)高頻:幾百 KHZ 到幾百 MHZ。(3)低頻:頻率范圍為幾十 HZ 到幾百KHZ。(4)超低頻:頻率范圍為零點(diǎn)幾赫茲到幾百赫茲。超高頻信號(hào)發(fā)生器產(chǎn)生波形一般用 LC 振蕩電路。高頻、低頻和超低頻信號(hào)發(fā)生器,大多使用文氏橋振蕩電路,及 RC振蕩電路,通過改變電阻和電容值來改變頻率。用以上原理設(shè)計(jì)的信號(hào)發(fā)生器,其輸出波一般只有兩種,即正弦波
8、和脈沖波,其零點(diǎn)不可調(diào),而且價(jià)格比較貴,一般在幾百元左右。在實(shí)際應(yīng)用中,超低頻和高頻波一般是不用的。采用單片機(jī) AT89C51,加上一片 DAC0832 就可以做成一個(gè)簡單的信號(hào)發(fā)生器,加上按鍵電路、顯示電路及放大電路,就可以實(shí)現(xiàn)頻率幅值可調(diào)。這樣的信號(hào)發(fā)生器體積小,價(jià)格便宜,耗電少,頻率適中,便于攜帶。1.4 研究題目及其意義 信號(hào)發(fā)生器是一種經(jīng)常使用的設(shè)備2,由純粹物理器件構(gòu)成的,傳統(tǒng)的設(shè)計(jì)方法存在許多弊端,如:體積較大、重量較沉、移動(dòng)不方便、信號(hào)失真較大、波形形狀調(diào)節(jié)過于死板,無法滿足用戶對(duì)精度、便攜性、穩(wěn)定性等要求,研究設(shè)計(jì)出一種具有頻率穩(wěn)定、準(zhǔn)確、波形質(zhì)量好、輸出頻率范圍寬、便攜性好
9、等特點(diǎn)的波形發(fā)生器具有較好的市場前景。以滿足工業(yè)領(lǐng)域?qū)π盘?hào)源的要求。本次試驗(yàn)實(shí)現(xiàn)利用單片機(jī) AT89C51 和 8 位 D/A 轉(zhuǎn)換芯片 DAC0832 共同實(shí)現(xiàn)方波、鋸齒波、三角波、正弦波這四種常用波形的發(fā)生。根據(jù)設(shè)計(jì)的要求,對(duì)各種波形的頻率和幅度進(jìn)行程序的編寫,并將所寫程序裝入單片機(jī)的程序存儲(chǔ)器中。在程序運(yùn)行中,當(dāng)接收到來自外界的命令,需要輸出某種波形時(shí)再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器處理后,從信號(hào)發(fā)生器的輸出端口輸出。并且可以通過數(shù)碼管和鍵盤顯示模塊,鍵盤可以實(shí)現(xiàn)對(duì)幾種波形的切換。51.5 本論文主要研究的內(nèi)容 本設(shè)計(jì)采用 89C51 及其外圍擴(kuò)
10、展系統(tǒng),軟件方面主要是應(yīng)用 C 語言設(shè)計(jì)程序。系統(tǒng)以 89C51 單片機(jī)為核心,配置相應(yīng)的外設(shè)及接口電路,用 C 語言開發(fā),組成一個(gè)多功能信號(hào)發(fā)生系統(tǒng)。同時(shí),本系統(tǒng)中任何一部分電路模塊均可移植于實(shí)用開發(fā)系統(tǒng)的設(shè)計(jì)中,電路設(shè)計(jì)具有實(shí)用性。本設(shè)計(jì)將完成以下幾個(gè)方面的工作:(1)選芯片,盡量滿足一般工業(yè)控制要求、以增強(qiáng)其實(shí)用性。(2)原理圖設(shè)計(jì)在保證正確的前提下,盡量采用典型的電路設(shè)計(jì)。(3)固化于單片機(jī)芯片中的軟件采用模塊設(shè)計(jì),層次清楚,具有上電復(fù)位及初始化功能,具有很好的軟件開發(fā)框架。(4)掌握單片機(jī)仿真軟件 Proteus7.0 的使用。為此,論文包括以下內(nèi)容:一 緒論。主要介紹單片機(jī)發(fā)展概況
11、和信號(hào)發(fā)生器的概述,為以后幾章的介紹奠定基礎(chǔ)。二 系統(tǒng)總體方案設(shè)計(jì)。本章主要考慮系統(tǒng)性能和功能。包括兩個(gè)主要內(nèi)容:總體方案設(shè)計(jì)與設(shè)計(jì)的功能。其中總體設(shè)計(jì)方案包括考慮到多個(gè)符合條件的方案設(shè)計(jì),并且對(duì)這幾個(gè)方案進(jìn)行比較,包括性能,價(jià)格,實(shí)用性等,最終確定下最優(yōu)的設(shè)計(jì)方案。系統(tǒng)設(shè)計(jì)功能包括設(shè)計(jì)所完成的基本功能。三 系統(tǒng)各元器件的介紹。本章對(duì)電路中所使用的器件功能進(jìn)行了詳細(xì)的介紹。四 系統(tǒng)硬件設(shè)計(jì)。本章對(duì)各功能模塊進(jìn)行了大體的介紹,更好的理解所設(shè)計(jì)的電路圖,理解各功能模塊實(shí)現(xiàn)的功能。五 系統(tǒng)軟件設(shè)計(jì)。對(duì)軟件設(shè)計(jì)部分作了詳細(xì)的介紹,各程序模塊的實(shí)現(xiàn)作了介紹。六 結(jié)論。對(duì)設(shè)計(jì)進(jìn)行自我的總結(jié)。6第 2 章
12、信號(hào)發(fā)生器方案設(shè)計(jì)與選擇信號(hào)發(fā)生器是指產(chǎn)生所需參數(shù)的電測試信號(hào)的儀器。按信號(hào)波形可分為正弦信號(hào)、波形信號(hào)、脈沖信號(hào)和隨機(jī)信號(hào)發(fā)生器等四大類。本文利用單片機(jī)構(gòu)造低頻信號(hào)發(fā)生器,可產(chǎn)生正弦波,方波,三角波,鋸齒波四種波形,再通過 D/A 轉(zhuǎn)換器 DAC0832 把數(shù)字信號(hào)轉(zhuǎn)變?yōu)槟M信號(hào),經(jīng) LM358 放大輸出到示波器,與此同時(shí)外接 8 位 LED 顯示輸出信號(hào)的類型和頻率。2.1 方案設(shè)計(jì)與選擇 信號(hào)發(fā)生器的設(shè)計(jì)方案可用多種方案來實(shí)現(xiàn)。在設(shè)計(jì)前對(duì)各種方案進(jìn)行比較得到最優(yōu)的涉及方案: 采用軟硬件結(jié)合法,此波形發(fā)生器設(shè)計(jì)方法同時(shí)兼具軟硬件設(shè)計(jì)的優(yōu)勢(shì):既具有純硬件設(shè)計(jì)的快速、高性能,同時(shí)又具有軟件控制
13、的靈活性、智能性。輔以鍵盤控制、LED顯示等電路,設(shè)計(jì)出智能型函數(shù)波形發(fā)生器,采用軟硬件結(jié)合的方法可以實(shí)現(xiàn)功能較全、性能更優(yōu)的波形發(fā)生器,同時(shí)還可以擴(kuò)展波形發(fā)生器的功能,比如利用單片機(jī) AT89C51和 8 位 D/A 轉(zhuǎn)換芯片 DAC0832 共同實(shí)現(xiàn)正弦波、方波、三角波和鋸齒波這四種常見波形的發(fā)生,并且可以接受外部按鍵來切換波形,調(diào)節(jié)頻率和幅值。此方案利用單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)有較高的可靠性,系統(tǒng)的擴(kuò)展和系統(tǒng)的配置靈活方便。容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),且應(yīng)用系統(tǒng)有較高的軟硬件利用參數(shù)。單片機(jī)具有可編程性,硬件的功能描述可完全在軟件上實(shí)現(xiàn),而且設(shè)計(jì)時(shí)間短,成本低,可靠性高。因此選本方案作為設(shè)計(jì)
14、的方案。2.2 設(shè)計(jì)原理簡介該信號(hào)發(fā)生器原理框圖如圖 2-1,總體原理為:利用 AT89C51 單片機(jī)構(gòu)造低頻信號(hào)發(fā)生器,可產(chǎn)生正弦波,方波,三角波,鋸齒波四種波形,通過 C 語言對(duì)單片機(jī)的編程即可產(chǎn)生相應(yīng)的波形信號(hào),并可以通過鍵盤進(jìn)行各種功能的轉(zhuǎn)換和信號(hào)頻率的控制,當(dāng)輸出的數(shù)字信號(hào)通過數(shù)模轉(zhuǎn)換成模擬信號(hào)也就得到所需要的信號(hào)波形,通過運(yùn)算放大器的放大輸出波形,同時(shí)讓顯示器顯示輸出的波形信息。7AT89C51單片機(jī)DAC0832復(fù)位鍵鍵盤數(shù)碼管顯示圖 2-1 信號(hào)發(fā)生器原理框圖 本方案其主要模塊包括復(fù)位電路、時(shí)鐘信號(hào)、鍵盤控制、D/A 轉(zhuǎn)化及 LED 顯示。其各個(gè)模塊的工作原理如下:(1)鍵盤模
15、塊是用于控制信號(hào)輸入的類型頻率,當(dāng)按鍵按下時(shí),可以通過單片機(jī)編程讀取閉合的鍵號(hào),實(shí)現(xiàn)相應(yīng)的信號(hào)輸出。其步驟主要是 a、判斷是否有鍵按下;b、去抖動(dòng),延時(shí) 100ms 左右;c、識(shí)別被按下的鍵號(hào);d、處理,實(shí)現(xiàn)功能。(2)復(fù)位電路是為單片機(jī)復(fù)位使用,使單片機(jī)接口初始化;89C51 等 CMOS51 系列單片機(jī)的復(fù)位引腳 RET 是施密特觸發(fā)輸入腳,內(nèi)部有一個(gè)上拉低電阻,當(dāng)振蕩器起振以后,在 RST 引腳上輸出 2 個(gè)機(jī)械周期以上的高電平,器件便進(jìn)入復(fù)位狀態(tài)開始,此時(shí) ALE、PSEN、P0、P1、P2、P4 輸出高電平,RST 上輸入返回低電平以后,便退出復(fù)位狀態(tài)開始工作。該方案采用的是人工開關(guān)
16、復(fù)位,在系統(tǒng)運(yùn)行時(shí),按一下開關(guān),就在 RST 端出現(xiàn)一段高電平,使器件復(fù)位。(3)D/A 轉(zhuǎn)換也稱為數(shù)模轉(zhuǎn)換,是把數(shù)字量變換成模擬量的線性電路。單片機(jī)產(chǎn)生的數(shù)字信號(hào)通過 DAC0832 轉(zhuǎn)化成模擬信號(hào),輸出相應(yīng)的電流值,通過 LM358 集成運(yùn)算放大器可以取出模擬量的電壓值,最后利用示波器獲得輸出的模擬信號(hào)的波形;衡量數(shù)模轉(zhuǎn)換的性能指標(biāo)有分辨率、轉(zhuǎn)換時(shí)間、精度、線性度等。(4)時(shí)鐘信號(hào)是產(chǎn)生單片機(jī)工作的時(shí)鐘信號(hào),控制著計(jì)算機(jī)的工作節(jié)奏,可以通過提高時(shí)鐘頻率來提高 CPU 的速度。89C51 內(nèi)部有一個(gè)可控的反相放大器,引腳XTAL1、XTAL2 為反相放大器輸入端和輸出端,在 XTAL1、XT
17、AL2 上外接 12MHZ 晶振和 30pF 電容便組成振蕩器。時(shí)鐘信號(hào)常用于 CPU 定時(shí)和計(jì)數(shù)。(5)LED 顯示器用由若干個(gè)發(fā)光二極管按一定的規(guī)律排列而成,是一種能夠?qū)㈦娔苻D(zhuǎn)化為可見光的固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光用于與顯示相關(guān)輸出波形的信息,包括信號(hào)的類型和頻率。82.3 設(shè)計(jì)功能(1) 按鍵 GW、SW、BW、QW、WW 分別控制信號(hào)頻率的個(gè)位、十位、百位、千位、萬位按鍵 BX 控制波形的轉(zhuǎn)換選擇按鍵 ZKBZ、ZKBJ 分別控制方波占空比的加減按鍵 FW 控制電路的復(fù)位滑動(dòng)變阻器控制輸出電壓大小,控制波形的幅度(2)本方案輸出利用 8 位 LED 顯示器,該顯示器為共陰
18、極,輸入段選碼低電平有效,用于顯示輸出信號(hào)的類型和頻率,如 1KHz 正弦波,顯示為 1.01000。根據(jù)設(shè)計(jì)要求,我們?cè)谙到y(tǒng)啟動(dòng)時(shí),還要在 LED 中顯示“年級(jí)-專業(yè).學(xué)號(hào)”2 秒鐘,即顯示“08-212.05” 。(3)利用 DAC0832 數(shù)模轉(zhuǎn)換芯片實(shí)現(xiàn)信號(hào)的轉(zhuǎn)換,并通過集成運(yùn)算放大器將信號(hào)放大,輸出信號(hào)能夠在 Proteus 軟件中的示波器中顯示。(4)信號(hào)頻率范圍要求:11KHz。(5)輸出信號(hào)幅度:05V。9第 3 章 主要電路元器件介紹3.1 AT89C51 單片機(jī)介紹3.1.1 單片機(jī)簡介AT89C51 是一種帶 4K 字節(jié) FLASH 存儲(chǔ)器(FPEROMFlash Pro
19、grammable and Erasable Read Only Memory)的低電壓、高性能 CMOS 8 位微處理器,俗稱單片機(jī)5。AT89C2051 是一種帶 2K 字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除 1000 次。該器件采用 ATMEL 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL 的 AT89C51 是一種高效微控制器,AT89C2051 是它的一種精簡版本。AT89C 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。AT
20、89C51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié) Flash 閃速存儲(chǔ)器,128 字節(jié)內(nèi)部 RAM,32 個(gè) I/O 口線,兩個(gè) 16 位定時(shí)/計(jì)數(shù)器,一個(gè) 5 向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU 的工作,但允許 RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。其外形及引腳排列如圖 3-1 所示。圖 3-1 AT89C51 引腳圖103.1.2 單片機(jī)內(nèi)部結(jié)構(gòu)概述典型的 MC
21、S-51 單片機(jī)芯片集成了以下幾個(gè)基本組成部分。 1 一個(gè) 8 位的 CPU2 128B 或 256B 單元內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM)3 4KB 或 8KB 片內(nèi)程序存儲(chǔ)器(ROM 或 EPROM)4 4 個(gè) 8 位并行 I/O 接口 P0P3。5 兩個(gè)定時(shí)/計(jì)數(shù)器。6 5 個(gè)中斷源的中斷管理控制系統(tǒng)。7 一個(gè)全雙工串行 I/O 口 UART(通用異步接收、發(fā)送器) 8 一個(gè)片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路。3.1.3 管腳功能說明 VCC:電源,接+5VGND:接地P0 口:是一個(gè) 8 位漏極開路輸出型雙向 I/O 端口。作為輸出端口時(shí),每位能以吸收電流的方式驅(qū)動(dòng) 8 個(gè) TTL 輸入,對(duì)端口寫 1 時(shí)
22、,又可作高阻抗輸入端用。在訪問外部程序或數(shù)據(jù)存儲(chǔ)器時(shí),它是時(shí)分多路轉(zhuǎn)換的地址(低 8 位)/數(shù)據(jù)總線,在訪問期間將激活內(nèi)部的上拉電阻。 P1 口:P1 口是一個(gè)帶有內(nèi)部上拉電阻的 8 位雙向 I/O 端口。P1 口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4 個(gè) TTL 輸入。對(duì)端口寫 1 時(shí),通過內(nèi)部的上拉電阻把端口拉到高 電位,這時(shí)可作輸入口。P2 口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。 P2 口:P2 口是一個(gè)帶有內(nèi)部上拉電阻的 8 位雙向 I/O 端口。P2 口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4 個(gè) TTL 輸入。對(duì)端口寫 1 時(shí),通過內(nèi)部
23、的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。P2 口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。 在訪問外部程序存儲(chǔ)器時(shí)和 16 位外部地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行 MOVX DPTR)時(shí),P2 口送出高 8 位地址。在訪問 8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行 MOVX RI)時(shí),P2 口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的 P2 寄存器的內(nèi)容) ,在整個(gè)訪問期間不會(huì)改變。 P3 口:P3 口是一個(gè)帶有內(nèi)部上拉電阻的 8 位雙向 I/O 端口。P3 口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4 個(gè) TTL 輸入。對(duì)端口寫 1 時(shí),通過內(nèi)部的上拉電阻把端口
24、拉到高電位,這時(shí)可作輸入口。P3 口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些11被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流 RST:復(fù)位輸入。晶振工作時(shí),RST 腳將持續(xù) 2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出 96 個(gè)晶振周期的高電平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能無效。DISRTO 默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低 8 位地PROG址的輸出脈沖。在 flash 編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況PROG下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來
25、作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE 脈沖將會(huì)跳過。如果需要,通過將地址為 8EH 的 SFR 的第 0 位置 “1” ,ALE 操作將無效。這一位置 “1” ,ALE 僅在執(zhí)行 MOVX 或 MOVC 指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè) ALE 使能標(biāo)志位(地址為 8EH 的 SFR 的第 0 位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。:外部程序存儲(chǔ)器選通信號(hào)()是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)PSENPSENAT89C51 從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在PSEN訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。PSEN/VPP
26、:訪問外部程序存儲(chǔ)器控制信號(hào)。必須接 GND。為了執(zhí)行內(nèi)部程序指EAEA令,應(yīng)該接 VCC。在 flash 編程期間,也接收 12 伏 VPP 電壓。EAEAXTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.2 DAC0832 簡介3.2.1 DAC0832 的介紹DAC0832 是采樣頻率為八位的 D/A 轉(zhuǎn)換芯片6,集成電路內(nèi)有兩級(jí)輸入寄存器,使DAC0832 芯片具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要(如要求多路 D/A 異步輸入、同步轉(zhuǎn)換等)。所以這個(gè)芯片的應(yīng)用很廣泛, D/A 轉(zhuǎn)換器由 8 位輸入鎖存器、8 位 D
27、AC 寄存器、8 位 D/A 轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。D/A 轉(zhuǎn)換結(jié)果采用電流形式輸出。若需要相應(yīng)的模擬電壓信號(hào),可通過一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)。運(yùn)放的反饋電阻可通過 RFB 端引用片內(nèi)固有電阻,也可外接。DAC0832 邏輯輸入滿足 TTL 電平,可直接與 TTL 電路或微機(jī)電路連接。3.2.2 DAC0832 的管腳功能D0D7:8 位數(shù)據(jù)輸入線,TTL 電平,有效時(shí)間應(yīng)大于 90ns(否則鎖存器的數(shù)據(jù)會(huì)出錯(cuò));12 ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效; CS:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器) ,低電平有效; WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于 5
28、00ns)有效。由ILE、CS、WR1 的邏輯組合產(chǎn)生 LE1,當(dāng) LE1 為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1 的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存; XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于 500ns)有效; WR2:DAC 寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于 500ns)有效。由WR1、XFER 的邏輯組合產(chǎn)生 LE2,當(dāng) LE2 為高電平時(shí),DAC 寄存器的輸出隨寄存器的輸入而變化,LE2 的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入 DAC 寄存器并開始 D/A 轉(zhuǎn)換。 IOUT1:電流輸出端 1,其值隨 DAC 寄存器的內(nèi)容線性變化; IOUT2:電流輸出端 2,
29、其值與 IOUT1 值之和為一常數(shù); Rfb:反饋信號(hào)輸入線,改變 Rfb 端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度; Vcc:電源輸入端,Vcc 的范圍為+5V+15V; VREF:基準(zhǔn)電壓輸入線,VREF 的范圍為-10V+10V; AGND:模擬信號(hào)地 DGND:數(shù)字信號(hào)地3.2.3 DAC0832 內(nèi)部結(jié)構(gòu)及功能DAC0832 中有兩級(jí)鎖存器,第一級(jí)鎖存器稱為輸入寄存器8,它的鎖存信號(hào)為ILE;第二級(jí)鎖存器稱為 DAC 寄存器,它的鎖存信號(hào)為傳輸控制信號(hào)XFER。因?yàn)橛袃杉?jí)鎖存器,DAC0832 可以工作在雙緩沖器方式,即在輸出模擬信號(hào)的同時(shí)采集下一個(gè)數(shù)字量,這樣能有效地提高轉(zhuǎn)換速度。此外,兩
30、級(jí)鎖存器還可以在多個(gè) D/A 轉(zhuǎn)換器同時(shí)工作時(shí),利用第二級(jí)鎖存信號(hào)來實(shí)現(xiàn)多個(gè)轉(zhuǎn)換器同步輸出。DAC0832 邏輯框圖和引腳排列如圖 3-2 所示圖 3-2 DAC0832 邏輯框圖和引腳排列13 圖 3.2.1 中 LE 為高電平、CS和1WR為低電平時(shí),1LE為高電平,輸入寄存器的輸出跟隨輸入而變化;此后,當(dāng)1WR由低變高時(shí),1LE為低電平,資料被鎖存到輸入寄存器中,這時(shí)的輸入寄存器的輸出端不再跟隨輸入資料的變化而變化。對(duì)第二級(jí)鎖存器來說,XFER和2WR同時(shí)為低電平時(shí),2LE為高電平,DAC 寄存器的輸出跟隨其輸入而變化;此后,當(dāng)2WR由低變高時(shí),2LE變?yōu)榈碗娖剑瑢⑤斎爰拇嫫鞯馁Y料鎖存到
31、 DAC 寄存器中。3.3 數(shù)碼顯示管3.3.1 數(shù)碼管原理及分類 LED 發(fā)光器件一般常用的有兩類:數(shù)碼管和點(diǎn)陣。常用的數(shù)碼管一般為 8 字型數(shù)碼管,分為 A、B、C、D、E、F、G、DP 八段,其中 DP 為小數(shù)點(diǎn)。數(shù)碼管常用的有 10根管腳,每一段有一個(gè)管腳,另外兩根管腳為一個(gè)數(shù)碼管的公共端。從尺寸上分,LED數(shù)碼管的種類很多,常用的有 0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、5.0 等。一般小于 1.0 的為單管芯,1.21.5 為雙管芯,1.8 以上的為 3 個(gè)以上管芯,因而它們的供電電壓要求不同,一般每個(gè)管芯的壓降為 2.1V 左右。通常,0
32、.8 以下采用 5V 供電,1.02.3 采用 12V 供電,3.0 以上的選擇更高電壓供電。從電路上分,數(shù)碼管又可分為共陰極和共陽極兩種。結(jié)構(gòu)分別如圖 3-3,3-4 所示。圖 3-3 共陰極圖 圖 3-4 共陽極圖 圖 3-5 管腳圖其中:圖 3-5 為管腳圖,從 ag 管腳輸入不同的字段碼,可顯示不同的數(shù)字或字符(其字形碼見表 3-1) ??梢姽碴帢O和共陽極的字段碼互為反碼 。14表 3-1 字段碼表顯示字符共陰極字碼段共陽極字碼段顯示字符共陰極字碼段共陽極字碼段03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99H
33、P73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8FFH00HA77H88H“滅”00FFHB7CH83H3.3.2 數(shù)碼管的工作方式顯示器的工作方式分為靜態(tài)顯示方式和動(dòng)態(tài)顯示方式兩種。靜態(tài)顯示方式就是顯示器在顯示一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止,例如 a、b、c、d、e、f 導(dǎo)通,g 截止時(shí)顯示“0” ,這種使顯示器顯示字符的字形數(shù)據(jù)常稱為段數(shù)據(jù)。靜態(tài)顯示方式的每一個(gè)七段顯示器,需要由一個(gè) 8 位并行口控制。優(yōu)點(diǎn)是顯示穩(wěn)定,提高了工作效率,缺點(diǎn)是位數(shù)較多時(shí)顯示口隨之增加。動(dòng)態(tài)顯示方式是一位
34、一位的輪流點(diǎn)亮各位顯示器,對(duì)于每一位顯示器來說,每隔一段時(shí)間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間參數(shù)可以實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示,如顯示器的位數(shù)不大于 8 位,則控制顯示器公共極的電位只需要一個(gè) 8 位口(位數(shù)據(jù)口) ,控制字形也需要一個(gè) 8 位口(段數(shù)據(jù)口) 。1LED 靜態(tài)顯示所謂靜態(tài)顯示方式,就是當(dāng)顯示器顯示某一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止。靜態(tài)顯示時(shí),較小的電流能得到較高的亮度。這是由于顯示器的各位相互獨(dú)立,而且各位的顯示字符一經(jīng)確定,相應(yīng)鎖存器的輸出將維持不變,直到顯示另一個(gè)字符為止(如圖 3-6 所示) 。當(dāng)顯示器位
35、數(shù)很少(僅一、二位)時(shí),采用靜態(tài)顯示方式是合適的。當(dāng)位數(shù)較多時(shí),用靜態(tài)顯示所需的 I/O 口太多,占用太多的硬件資源。故在位數(shù)較多時(shí)往往采用動(dòng)態(tài)顯示方式。15LED 靜態(tài)顯示時(shí),其公共端直接接地(共陰極)或接電源(共陽極) ,各段選線分別與 I/O 口線相連。要顯示字符,直接在 I/O 線上輸出相應(yīng)的字段碼。a b c d e f g dpI/O(1)a b c d e f g dpI/O(2)a b c d e f g dpI/O(1)a b c d e f g dpI/O(2)圖 3-6 LED 靜態(tài)顯示2LED 動(dòng)態(tài)顯示方式LED 動(dòng)態(tài)顯示是將所有的數(shù)碼管的段選線并接在一起,用一個(gè) I/
36、O 口控制,公共端不是直接接地(共陰極)或電源(共陽極) ,而是通過相應(yīng)的 I/O 口線控制。如圖 3-7 所示。 D3D2D1D0I/O(1)I/O(2)D3D2D1D0I/O(1)I/O(2)圖 3-7 LED 動(dòng)態(tài)掃描設(shè)數(shù)碼管為共陽極,它的工作過程為:第一步使右邊第一個(gè)數(shù)碼管的公共端 D0 為1,其余的數(shù)碼管的公共端為 0。同時(shí)在 I/O(1)上送右邊第一個(gè)數(shù)碼管的字段碼,這時(shí),只有右邊第一個(gè)數(shù)碼管顯示,其余不顯示;第二步使右邊第二個(gè)數(shù)碼管的公共端 D1 為161,其余的數(shù)碼管的公共端為 0,同時(shí)在 I/O(1)上送右邊第二個(gè)數(shù)碼管的字段碼。這時(shí),只有右邊第二個(gè)數(shù)碼管顯示,其余不顯示,依
37、此類推,直到最后一個(gè),這樣四個(gè)數(shù)碼管輪流顯示相應(yīng)的信息,一個(gè)循環(huán)完后,下一循環(huán)又這樣輪流顯示,從計(jì)算機(jī)的角度看是一個(gè)一個(gè)的顯示,但由于人的視覺滯留,只要循環(huán)的周期足夠快,看起來所有的數(shù)碼管都是一起顯示的了。這就是動(dòng)態(tài)顯示的原理。而這個(gè)循環(huán)周期對(duì)于計(jì)算機(jī)來說很容易實(shí)現(xiàn)。所以在單片機(jī)中經(jīng)常用到動(dòng)態(tài)顯示。 四、LED 顯示器與單片機(jī)的接口LED 顯示器從譯碼方式上有硬件譯碼方式和軟件譯碼方式;從顯示方式上有靜態(tài)顯示方式和動(dòng)態(tài)顯示方式,在使用時(shí)可以把它們組合起來。在實(shí)際應(yīng)用時(shí),如果數(shù)碼管個(gè)數(shù)較少,通常用硬件譯碼靜態(tài)顯示,在數(shù)碼管個(gè)數(shù)較多時(shí),則通常用軟件譯碼動(dòng)態(tài)顯示。 3.4 LM358 簡介3.4.1
38、LM358 的介紹LM358 是常用的雙運(yùn)放,這里我們介紹一下它的一些資料。簡介: LM358 里面包括有兩個(gè)高增益、獨(dú)立的、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)放, 適用于電壓范圍很寬的單電源,而且也適用于雙電源工作方式,它的應(yīng)用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運(yùn)放的地方使用。LM358 內(nèi)部包括有兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關(guān)。它的使用范圍包括傳感放大器、直流增益模組,音頻放大器、工業(yè)控制、DC 增益 部件和其他所有可用單電源供電的使用運(yùn)算放大器的場合。LM3
39、58 的封裝形式有塑封 8 引線雙列直插式和貼片式。內(nèi)部結(jié)構(gòu)圖如圖 3-8 所示。17圖 3-8 LM358 引腳結(jié)構(gòu)圖3.4.2LM358 的特點(diǎn). 內(nèi)部頻率補(bǔ)償. 低輸入偏流. 低輸入失調(diào)電壓和失調(diào)電流. 共模輸入電壓范圍寬,包括接地. 差模輸入電壓范圍寬,等于電源電壓范圍. 直流電壓增益高(約 100dB) . 單位增益頻帶寬(約 1MHz) . 電源電壓范圍寬:單電源(330V);. 雙電源(1.5 15V). 低功耗電流,適合于電池供電. 輸出電壓擺幅大(0 至 Vcc-1.5V)18第 4 章單元電路的硬件設(shè)計(jì)4.1 總體硬件設(shè)計(jì) 單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含兩部分內(nèi)容:一是系
40、統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的功能單元(如 ROM、I/O、定時(shí)/計(jì)數(shù)器等)容量不能滿足應(yīng)用系統(tǒng)的要求時(shí),必須在片外進(jìn)行擴(kuò)展,選擇適當(dāng)?shù)男酒?,設(shè)計(jì)適當(dāng)?shù)碾娐?。二是系統(tǒng)配置,即按照功能要求配置外圍設(shè)備如顯示器、D/A 轉(zhuǎn)換等,要設(shè)計(jì)合適的電路。系統(tǒng)的擴(kuò)展和模塊設(shè)計(jì)應(yīng)遵循下列原則:(1)盡可能選擇標(biāo)準(zhǔn)化、模塊化的典型電路,提高設(shè)計(jì)的成功率和結(jié)構(gòu)的靈活性。(2)系統(tǒng)的擴(kuò)展與外圍設(shè)備配置的水平應(yīng)充分滿足應(yīng)用系統(tǒng)的功能要求。(3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。硬件結(jié)果與軟件方案會(huì)產(chǎn)生相互影響,考慮的原則是:軟件能實(shí)現(xiàn)的功能盡可能由軟件來實(shí)現(xiàn),以簡化硬件結(jié)構(gòu)。但必須注意,由軟件實(shí)現(xiàn)的硬件功能,其響應(yīng)時(shí)間要比
41、直接用硬件響應(yīng)來的長,而且占用 CPU 時(shí)間。所以,選擇軟件方案時(shí),要考慮到這些因素12。(4)可靠性及抗干擾性設(shè)計(jì)是硬件系統(tǒng)設(shè)計(jì)不可缺少的部分,它包括芯片、器件選擇,去耦濾波等。(5)單片機(jī)外接電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。驅(qū)動(dòng)能力不足時(shí),系統(tǒng)工作不可靠,解決的辦法是增加驅(qū)動(dòng)能力,增設(shè)線驅(qū)動(dòng)器或減少芯片功耗,降低總線負(fù)載。(6)系統(tǒng)的擴(kuò)展及各功能模塊的設(shè)計(jì)在滿足系統(tǒng)功能要求的基礎(chǔ)上,應(yīng)適當(dāng)留有余地,以備將來修改、擴(kuò)展之需。(7)在考慮硬件總體結(jié)構(gòu)的同時(shí)要注意通用性的問題。19 根據(jù)以上原則,進(jìn)行硬件設(shè)計(jì)。系統(tǒng)采用較為普及的 89C51 單片機(jī)作為系統(tǒng)的核心。它不但容易實(shí)現(xiàn)設(shè)計(jì)指標(biāo),而且還有
42、較好的性價(jià)比。(1)程序存貯器89C51 內(nèi)部自帶 8K 的 ROM,512B 的 RAM,所以不需要對(duì)其擴(kuò)展存儲(chǔ)器。(2)鍵盤接口矩陣式鍵盤適用于按鍵數(shù)量較多的場合,系統(tǒng)采用了行列式鍵盤設(shè)計(jì)即矩陣鍵盤,用 I/O 線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上,24 的行列結(jié)構(gòu)可構(gòu)成 8 個(gè)鍵的鍵盤。因此,在按鍵數(shù)量較多時(shí),可以節(jié)省 I/O 線。按鍵的識(shí)別方法有兩種,一種為掃描法,另一種為線反轉(zhuǎn)法。此設(shè)計(jì)采用了行列式及與之相適應(yīng)的行列掃描法。(3)數(shù)碼管驅(qū)動(dòng)本設(shè)計(jì)實(shí)現(xiàn)了 89C51 的 I/O 口對(duì) 24 鍵盤和 8 位數(shù)碼管顯示的控制。(4)D/A 轉(zhuǎn)換本設(shè)計(jì) D/A 轉(zhuǎn)換部分采用 DAC083
43、2 芯片.(5)信號(hào)變換部分對(duì)信號(hào)的變換部分采用四運(yùn)放集成芯片 LM358,它采用 8 腳雙列直插塑料封裝,它的內(nèi)部包含兩組形式完全相同的運(yùn)算放大器。(6)可靠性方面在使用應(yīng)用系統(tǒng)時(shí),可能會(huì)受到多種干擾的侵襲,直接影響到系統(tǒng)的可靠性,因此,本系統(tǒng)適當(dāng)加入去耦電容,以減少干擾,確保精度。4.2 單片機(jī)引腳分配XTAL1、XTAL2:外接電路,產(chǎn)生時(shí)鐘信號(hào);RST:外接復(fù)位電路;P0:外接數(shù)模轉(zhuǎn)換與放大電路,波形信號(hào)輸出;P1:外接矩陣鍵盤;P2:LED 顯示器段選碼;P3:LED 顯示器位選碼;信號(hào)幅度調(diào)節(jié)由 DAC0832 的 VREF 接口控制。4.2 單片機(jī)外圍電路介紹4.3.1 時(shí)鐘電路
44、 AT89C51 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶休20或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖 4-1。外接石英晶體(或陶瓷振器)及電容 C1, C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容 C1, C2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,這里選擇使用石英晶休,我們的電容使用 30pF。如使用陶瓷諧振器的話,應(yīng)選擇 40pF 士 10pF 的容值的電容。也可以采用外部時(shí)鐘。采用外部時(shí)
45、鐘的電路的情況時(shí),外部時(shí)鐘脈沖接到 XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2 則懸空。圖 4-1 時(shí)鐘振蕩電路4.3.2 復(fù)位電路 當(dāng) MCS-5l 系列單片機(jī)的復(fù)位引腳 RST(全稱 RESET)出現(xiàn) 2 個(gè)機(jī)器周期以上的高電平時(shí),根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。上電或開關(guān)復(fù)位要求電源接通后,單片機(jī)自動(dòng)復(fù)位,并且在單片機(jī)運(yùn)行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容 C3 的充電和反相門的作用,使 RST 持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵 K 后松開,也能使 RST 為一
46、段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器 PC0000H,這表明程序從 0000H 地址單元開始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi) RAM 為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi) RAM 區(qū)中的內(nèi)容,21 個(gè)特殊功能寄存器復(fù)位后的狀態(tài)為確定值,復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下。51 單片機(jī)的復(fù)位是由 RESET 引腳來控制的,此引腳與高電平相接超過 24 個(gè)振蕩周期后,51 單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到 RESET 引腳轉(zhuǎn)為低電平后,才檢查 EA 引腳是高電平或低電平,若為高
47、電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會(huì)執(zhí)行外部程序。51 單片機(jī)在系統(tǒng)復(fù)位時(shí),將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,至于內(nèi)部 RAM 內(nèi)部的數(shù)據(jù)則不變。21圖 4-2 復(fù)位電路4.3.3 鍵盤接口電路本系統(tǒng)鍵盤結(jié)構(gòu)如圖 4-3 示。圖 4-3 系統(tǒng)鍵盤實(shí)現(xiàn)工作原理如下:1檢測鍵盤上是否有鍵按下:將行線送入低電平,列線送入高電平。讀入 P1 口的狀態(tài)來判別。其具體過程如下:P1 口輸出 0FH,即所有行線置成高電平,所有列線置成低電平,然后將 P1 口狀態(tài)讀入與 0FH 比較。如果有鍵按下,總會(huì)有一根行線電平被拉22至低電平,從而使行輸入狀態(tài)不全為 1。2識(shí)別鍵盤中哪一個(gè)鍵按下:確認(rèn)有鍵
48、按下后,保存行掃描時(shí)有鍵按下時(shí)的狀態(tài) X 。P1 口輸出 F0H,進(jìn)行列掃描,保存列掃描狀態(tài) Y,取出鍵值 Z=X|Y.例如第一行第一列有鍵按下,那么行掃描讀入的狀態(tài)為 00001110,列掃描讀入的狀態(tài)為 11100000,最后鍵值 Z=11101110=EEH,然后轉(zhuǎn)去執(zhí)行相應(yīng)的服務(wù)程序。4.3.4 數(shù)模轉(zhuǎn)換電路 由于單片機(jī)產(chǎn)生的是數(shù)字信號(hào),要想得到所需要的波形,就要把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),所以該文選用價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易并具有 8 位分辨率的數(shù)模轉(zhuǎn)換器 DAC0832。連接電路如圖 4-4 所示。DAC0832 主要由 8 位輸入寄存器、8 位 DAC寄存器、8 位 D/A
49、 轉(zhuǎn)換器以及輸入控制電路四部分組成。但實(shí)際上,DAC0832 輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對(duì)分辨率為單位增減,是準(zhǔn)模擬量的輸出。DAC0832 是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放 LM358 使之成為電壓型輸出。根據(jù)對(duì) DAC0832 的數(shù)據(jù)鎖存器和 DAC 寄存器的不同的控制方式,DAC0832 有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設(shè)計(jì)選用直通方式。DAC0832 的數(shù)據(jù)口和單片機(jī)的 P0 口相連。CSDA:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器) ,低電平有效;WR:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于 500ns)有效。由ILE、CS、WR1 的邏輯組合產(chǎn)生 LE
50、1,當(dāng) LE1 為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1 的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;圖 4-4 數(shù)模轉(zhuǎn)換放大電路4.3.5 幅度控制電路如圖 4-5 所示,在 DAC0832 的 VREF 端接入一個(gè)變阻器,這樣就可以對(duì)輸出波形幅23度連續(xù)可調(diào)。其幅度調(diào)節(jié)原理為:由 D/A 的模擬輸出公式。當(dāng)與 B 為常量時(shí),改變 Vr 的大小可以相應(yīng)改變,即改變波形的幅值。由電路圖 4.3.8 可以看出是由外部電源提供一個(gè)+5 V 的電壓,這里通過串聯(lián)一個(gè)滑動(dòng)變阻器 R1。通過改變滑動(dòng)變阻器 R1 的大小改變 Vr當(dāng) Vr 線性變化時(shí)也就實(shí)現(xiàn)了波形幅值的連續(xù)可調(diào)。圖 4-5 幅度控制電路4.3.6
51、 LED 顯示電路如圖 4-6 所示在 LED 顯示屏上顯示出所調(diào)的頻率、波形代碼。本機(jī)顯示采用軟件譯碼動(dòng)態(tài)顯示,系統(tǒng)顯示電路如圖 4.3.9 所示。采用軟件譯碼動(dòng)態(tài)顯示的理由如下:1)如果用靜態(tài)顯示,單片機(jī)的接口資源肯定不夠用,那么還要進(jìn)行接口的擴(kuò)展,增加了系統(tǒng)的復(fù)雜度;2)如果要制成印刷線路板,得占相當(dāng)大一塊面積;3)另外,采用動(dòng)態(tài)顯示,可以明顯的降低功耗,因?yàn)槊恳粫r(shí)刻只有一個(gè) LED 發(fā)光,其功耗為靜態(tài)顯示的 18。一個(gè) LED 最大電流為 120mA,如用靜態(tài)顯示,8 個(gè) LED 就耗電流960mA,那么變壓器就得選 32V32W,價(jià)格提高近一倍,穩(wěn)壓塊得選 7805C(Im=1A),
52、這種管是橢圓殼,在印刷線路板上也得占相當(dāng)大的面積。綜上分析,采用動(dòng)態(tài)顯示才是最經(jīng)濟(jì)的方案。 在顯示的時(shí)候,只要把顯示的字碼輸送到 P2 口,再經(jīng)過 74LS373 進(jìn)行數(shù)據(jù)鎖存,P3 口作為位選控制信號(hào)。由于采用的是共陰極數(shù)碼管,當(dāng)需要顯示哪一位的時(shí)候,只要在相應(yīng)的位選控制信號(hào)輸出低電平就行。例如,要在第一個(gè)數(shù)碼管顯示 P,那么在 P2 口就要輸出 73H 字段碼,同時(shí) P3 口輸出 FEH 位選碼。24圖 4-6 LED 顯示電路第 5 章系統(tǒng)軟件設(shè)計(jì)5.1 程序流程圖 首先對(duì)程序初始化,靜態(tài)顯示 08-212.05 兩秒,然后判斷是否有鍵值按下,若有鍵值按下則計(jì)算相關(guān)參數(shù),一方面利用中斷定
53、時(shí)和查詢查表輸出波形,另一方面送段選口和位選口數(shù)據(jù)使 LED 顯示相關(guān)波形類型和頻率,最后反饋回去構(gòu)成循環(huán),判斷按鍵相關(guān)信息。其程序框圖如圖 5-1 所示。25開 始顯示 08-212.05 2 秒系統(tǒng)初始化按鍵是否按下計(jì)算相關(guān)參數(shù)定時(shí)中斷送顯示端口查詢選擇波形波形輸出LED 顯示圖 5-1 軟件設(shè)計(jì)程序流程圖5.2 軟件整體設(shè)計(jì)本系統(tǒng)的軟件包括以下幾個(gè)程序模塊:(1)初始化程序;(2)顯示程序;(3)鍵盤掃描程序與處理程序;(4)定時(shí)器 0 服務(wù)程序;(5)正弦波發(fā)生程序及其服務(wù)程序;(6)三角波發(fā)生程序;(7)方波發(fā)生程序;(8)鋸齒波發(fā)生程序。265.3 程序模塊功能設(shè)計(jì)5.3.1 系統(tǒng)
54、初始化設(shè)計(jì)復(fù)位程序完成如下工作:1.顯示 2 秒的 08-212.05 初始界面;2.初始頻率設(shè)置為 888HZ;3.將頻率值轉(zhuǎn)換成定時(shí)器的初值;4.置定時(shí)器 0 工作于方式 1,即 16 位定時(shí)器方式,送入定時(shí)器 0 定時(shí)初值,啟動(dòng)定時(shí)器 0 工作;5.顯示初始頻率和產(chǎn)生波形的類型;6.轉(zhuǎn)鍵盤掃描程序。5.3.2 鍵盤掃描程序與處理程序設(shè)計(jì)鍵盤采用矩陣式鍵盤(如表 5-1 所示) ,由軟件產(chǎn)生相應(yīng)編碼,再根據(jù)相應(yīng)編碼調(diào)用相應(yīng)的子程序。編碼產(chǎn)生原理:P1 口低四位表示行,高四位表示列。鍵盤所在的行和所在的列用 0 表示,其它的行和列用 1 表示。如第一行第一列 GW 編碼值為(11101110
55、)2=0 xee,第二行第三列 ZKBJ 編碼值為(10111101)2=0 xbd。表 5-1 鍵盤處理程序鍵值對(duì)應(yīng)處理程序0 x7dkey1 鍵選擇發(fā)波類型(1 為正弦波,2 為三角波,3 為方波)0 xeekey2 個(gè)位頻率調(diào)整(GW)0 xdeKey3 十位頻率調(diào)整(SW)0 xbeKey4 百位頻率調(diào)整(BW)0 x7eKey5 千位頻率調(diào)整(QW)0 xedKey6 萬位頻率調(diào)整(WW)0 xddKey7 占空比增大調(diào)整(ZKBZ)0 xbdKey8 占空比減小調(diào)整(ZKBJ)鍵盤掃描源程序如下:void judge(void) unsigned char X,Y,Z;27 P1
56、= 0 xff; P1 = 0 x0f; /先對(duì) P1 置數(shù)行掃描 if(P1 != 0 x0f) /判斷是否有鍵按下 delay10ms(); /延時(shí),軟件去干擾 if(P1 != 0 x0f) /確認(rèn)按鍵按下 X = P1; X = P1; /保存行掃描時(shí)有鍵按下時(shí)狀態(tài) P1 = 0 xf0; /列掃描 Y = P1; /保存列掃描時(shí)有鍵按下時(shí)狀態(tài) Z = X | Y; /取出鍵值 switch ( Z ) /判斷鍵值(那一個(gè)鍵按下) case 0 x7d: key1(); break; case 0 xee: key2(); break; /對(duì)鍵值賦值 case 0 xde: key3(
57、); break; case 0 xbe: key4(); break; case 0 x7e: key5(); break; case 0 xed: key6(); break; case 0 xdd: key7(); break; case 0 xbd: key8(); break; 285.3.3 正弦波的產(chǎn)生圖 5-2 正弦波的仿真正弦波波形設(shè)計(jì)通過查表指令得出。正弦程序如下:#includemain()int n,i=0,j,k; float y=0, a=3.1415926,b=0,c=2.5000,d=0; for(n=0;n=64;n+) y=2.5*sin(a*n/128)+
58、2.5; b=y; /b,y 為當(dāng)前幅度值 d=b-c; /d 為遞增率 j=d/0.0196; /j 為數(shù)字遞增率,0.0196 為 k=128+j; /k 為數(shù)字量 printf(“%d,%f,%f,%d,%dn” ,i,y,d,j,k); i+;295.3.4 鋸齒波的產(chǎn)生圖 5-3 鋸齒波的仿真鋸齒波中的斜線用一個(gè)個(gè)小臺(tái)階來逼近,在一個(gè)周期內(nèi)從最小值開始逐步遞增,當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺(tái)階間隔很小時(shí),波形基本上近似于直線。適當(dāng)選擇循環(huán)的時(shí)間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個(gè)延時(shí)的常數(shù)不同,所以用延時(shí)法,來產(chǎn)生鋸齒波。鋸齒波程序else
59、if(choice = 4) /鋸齒波 if(e = 255) P0 = 255 - e; else P0=0; e+; 305.3.5 方波的產(chǎn)生圖 5-4 方波的仿真方波發(fā)生程序運(yùn)用延時(shí)的方法實(shí)現(xiàn),只用一個(gè)主程序即可,因?yàn)楫a(chǎn)生一個(gè)方波只需要高低兩個(gè)數(shù),所以程序比較簡單。要給一個(gè)頻率,再計(jì)算所需的延時(shí)即可。方波程序如下:else if(choice = 3 ) / 方波 k = zk * 256 / 100; d +; if(d = k) P0 = 0 x00; else P0 = 0 xff; 315.3.6 三角波的產(chǎn)生圖 5-5 三角波的仿真三角波中的斜線用一個(gè)個(gè)小臺(tái)階來逼近,在一個(gè)周
60、期內(nèi)從最小值開始逐步遞增,當(dāng)達(dá)到最大值后再用同樣逼近方法,如此循環(huán),當(dāng)臺(tái)階間隔很小時(shí),波形基本上近似于直線。適當(dāng)選擇循環(huán)的時(shí)間,可以得到不同周期的三角波。三角波發(fā)生原理與鋸齒波類似,只是高低兩個(gè)延時(shí)的常數(shù)不同,所以用延時(shí)法,來產(chǎn)生三角波。三角波程序如下:else if(choice = 2 ) /三角波 if(c = 128) P0 = c; else P0 = 255 - c; c +; 325.4 軟件仿真在 protues 中繪制電路圖,加載單片機(jī)程序,有如下仿真:(1)不同波形的仿真,如圖 5.6圖 5-6 不同波形的仿真(2)不同頻率的波形,以正弦波為例,如圖 5.7如圖 5-7 不
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧城市基礎(chǔ)設(shè)施大包工程合同4篇
- 2024版建設(shè)工程借款合同范本簡單
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園租賃合同示范文本4篇
- 2025年度安保應(yīng)急響應(yīng)預(yù)案制定合同范本3篇
- 2024物業(yè)房屋裝修工程合同工程量清單
- 2024版酒類專賣店加盟的合同
- 2025年度時(shí)尚大廈化妝品品牌柜臺(tái)長期合作協(xié)議4篇
- 2025年度“9·3”坍塌事故技術(shù)鑒定與分析合同2篇
- 2024年裝修分期付款合同樣本
- 2025年度智慧物流中心承包經(jīng)營合同4篇
- 物業(yè)民法典知識(shí)培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 2024-2025學(xué)年山東省德州市高中五校高二上學(xué)期期中考試地理試題(解析版)
- 《萬方數(shù)據(jù)資源介紹》課件
- 麻風(fēng)病病情分析
- 《急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)》
- 第一章-地震工程學(xué)概論
- JJF(陜) 063-2021 漆膜沖擊器校準(zhǔn)規(guī)范
- 《中國糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- TSGD7002-2023-壓力管道元件型式試驗(yàn)規(guī)則
- 2024年度家庭醫(yī)生簽約服務(wù)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論