單片機(jī)函數(shù)信號發(fā)生器畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p><b>  論 文 摘 要</b></p><p>  本文主要用AT89C51 單片機(jī)與DAC0832構(gòu)成的函數(shù)信號發(fā)生器,可產(chǎn)生方波、三角波、正弦波,具有線路簡單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點(diǎn)。本函數(shù)信號發(fā)生器可以由程序控制改波形的周期,以及不同波形的切換。用ADC0809實(shí)

2、時(shí)對其波形電壓測量。輸出波形的幅值可以在0—5V可以調(diào)節(jié)。對于輸出電壓的控制,主要是用UA741放大器對其信號放大來實(shí)現(xiàn)的。輸出波形幅值的大小,由ua741接負(fù)反饋電阻來調(diào)節(jié),從而達(dá)到了輸出波形幅值在0-5V可調(diào)。對于顯示部分,本設(shè)計(jì)采用四位共陽數(shù)碼管實(shí)時(shí)顯示當(dāng)前波形的頻率,以及在按鍵的切換下可以顯示測量的波形的電壓幅值。文章給出了源代碼,并通過proteus軟件仿真測試,然后畫出PROTEL原理圖和PCB板圖。對應(yīng)著PCB板圖焊接實(shí)物

3、電路,并下載程序做硬件調(diào)試。用示波器觀察其波形。最終其性能指標(biāo)達(dá)到了設(shè)計(jì)要求。</p><h2>  關(guān)鍵詞:單片機(jī);DAC0832;ADC0809;放大器;信號發(fā)生器。</h2><p><b>  Abstract</b></p><p>  This article mainly basede on the AT89C51 microco

4、ntroller and the DAC0832 function of signal generator produces a square wave, triangle wave, sine wave, with simple lines, compact structure, superior performance characteristics. Signal generator of the function can be

5、changed by the program control period of the waveform, and waveform switching. Using ADC0809 real-time to its waveform voltage measurement. The amplitude of the output waveform can be adjusted in the 0-5V. For the contro

6、l of output</p><p>  Key Words:Microcontroller; DAC0832; ADC0809; amplifier; signal generator.</p><p><b>  目  錄</b></p><p><b>  第一章緒論1</b></p><p

7、>  1.1單片機(jī)概述1</p><p>  1.2信號發(fā)生器的分類1</p><p>  1.3研究內(nèi)容1</p><p>  第二章方案的設(shè)計(jì)與選擇2</p><p>  2.1方案與比較2</p><p>  2.2設(shè)計(jì)原理2</p><p>  2.3設(shè)計(jì)

8、思想3</p><p>  2.4設(shè)計(jì)功能4</p><p>  第三章硬件設(shè)計(jì)5</p><p>  3.1硬件原理框圖5</p><p>  3.2主控電路6</p><p>  3.3顯示電路6</p><p>  3.4數(shù)/模轉(zhuǎn)換電路7</p>&

9、lt;p>  3.5放大、分頻電路8</p><p>  3.6模/數(shù)轉(zhuǎn)換電路10</p><p>  3.7按鍵、復(fù)位、時(shí)鐘電路12</p><p>  第四章軟件設(shè)計(jì)14</p><p>  4.1主程序流程圖14</p><p>  4.2中斷程序流程圖15</p>&

10、lt;p>  4.3程序代碼15</p><p>  第五章Proteus軟件仿真23</p><p>  5.1仿真電路圖23</p><p>  5.2波形仿真24</p><p>  5.3放大電路仿真25</p><p>  5.4分頻電路仿真26</p><p

11、>  5.5電壓測量仿真27</p><p>  第六章PROTEL畫原理圖和PCB圖28</p><p>  6.1PROTEL原理圖28</p><p>  6.2PCB圖29</p><p>  第七章焊接硬件并調(diào)式30</p><p>  7.1焊接硬件30</p>

12、<p>  7.2調(diào)試硬件31</p><p><b>  致謝32</b></p><p><b>  心得體會(huì)33</b></p><p><b>  元件清單34</b></p><p><b>  參考文獻(xiàn)35</b><

13、/p><p><b>  緒論</b></p><p><b>  單片機(jī)概述</b></p><p>  隨著大規(guī)模集成電路技術(shù)的發(fā)展,中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀儲(chǔ)器(ROM)、(I/O)接口、定時(shí)器/計(jì)數(shù)器和串行通信接口,以及其他一些計(jì)算機(jī)外圍電路等均可集成在一塊芯片上構(gòu)成單片微型計(jì)算機(jī),簡稱為單

14、片機(jī)。單片機(jī)具有體積小、成本低,性能穩(wěn)定、使用壽命長等特點(diǎn)。其最明顯的優(yōu)勢就是可以嵌入到各種儀器、設(shè)備中,這是其他計(jì)算機(jī)和網(wǎng)絡(luò)都無法做到的。</p><p><b>  信號發(fā)生器的分類</b></p><p>  信號發(fā)生器應(yīng)用廣泛,種類繁多,性能各異,分類也不盡一致。按照頻率范圍分類可以分為:超低頻信號發(fā)生器、低頻信號發(fā)生器、視頻信號發(fā)生器、高頻波形發(fā)生器、甚高頻

15、波形發(fā)生器和超高頻信號發(fā)生器。按照輸出波形分類可以分為:正弦信號發(fā)生器和非正弦信號發(fā)生器,非正弦信號發(fā)生器又包括:脈沖信號發(fā)生器,函數(shù)信號發(fā)生器、掃頻信號發(fā)生器、數(shù)字序列波形發(fā)生器、圖形信號發(fā)生器、噪聲信號發(fā)生器等。按照信號發(fā)生器性能指標(biāo)可以分為一般信號發(fā)生器和標(biāo)準(zhǔn)信號發(fā)生器。前者指對輸出信號的頻率、幅度的準(zhǔn)確度和穩(wěn)定度以及波形失真等要求不高的一類信號發(fā)生器。后者是指其輸出信號的頻率、幅度、調(diào)制系數(shù)等在一定范圍內(nèi)連續(xù)可調(diào),并且讀數(shù)準(zhǔn)確、

16、穩(wěn)定、屏蔽良好的中、高檔信號發(fā)生器。</p><p><b>  研究內(nèi)容</b></p><p>  本文是做基于單片機(jī)的信號發(fā)生器的設(shè)計(jì),將采用編程的方法來實(shí)現(xiàn)三角波、方波、正弦波的發(fā)生。根據(jù)設(shè)計(jì)的要求,對各種波形的頻率進(jìn)行程序的編寫,通過放大器來調(diào)幅,并將所寫程序裝入單片機(jī)的程序存儲(chǔ)器中。在程序運(yùn)行中,當(dāng)接收到來自外界的命令,需要輸出某種波形時(shí)再調(diào)用相應(yīng)的中斷服

17、務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器處理后,從信號發(fā)生器的輸出端口輸出。</p><p><b>  方案的設(shè)計(jì)與選擇</b></p><p><b>  方案與比較</b></p><p>  方案一:采用單片函數(shù)發(fā)生器(如ICL8038),ICL8038可同時(shí)產(chǎn)生正弦波、方波等,而且方法簡單易行,用

18、運(yùn)算放大器改變調(diào)制電壓,也可以實(shí)現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生信號的頻率穩(wěn)定度不高。頻率調(diào)節(jié)也不能直接由程序控制。</p><p>  方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達(dá)到輸出頻率覆蓋系數(shù)的要求,且電路復(fù)雜。</p><p>  方案三:采用單片機(jī)編程的方法來實(shí)現(xiàn)。該方法可以通過編程的方法來控制信號波形的頻率和幅度,

19、而且在硬件電路不變的情況下,通過改變程序來實(shí)現(xiàn)頻率的變換。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號,所以信號的精度可以做的很高。</p><p>  鑒于方案一的信號頻率不夠穩(wěn)定和方案二的電路復(fù)雜,頻率覆蓋系數(shù)難以達(dá)標(biāo)等缺點(diǎn),所以決定采用方案三的設(shè)計(jì)方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實(shí)現(xiàn),使得信號頻率的穩(wěn)定性和精度的準(zhǔn)確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價(jià)格便宜,使得硬件

20、的開銷達(dá)到最省。</p><p><b>  設(shè)計(jì)原理</b></p><p>  數(shù)字信號可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,因此可通過產(chǎn)生數(shù)字信號再轉(zhuǎn)換成模擬信號的方法來獲得所需要的波形。89C51單片機(jī)本身就是一個(gè)完整的微型計(jì)算機(jī),具有組成微型計(jì)算機(jī)的各部分部件:中央處理器CPU、隨機(jī)存取存儲(chǔ)器 RAM、只讀存儲(chǔ)器 ROM、接口電路、I/O 定時(shí)器/計(jì)數(shù)器以及串

21、行通訊接口等,只要將 89C51 再配置鍵盤及其接口、顯示器及其接口、數(shù)模轉(zhuǎn)換及波形輸出、指示燈及其接口等四部分,即可構(gòu)成所需的波形發(fā)生器,其信號發(fā)生器構(gòu)成原理框圖如圖 2.1 所示。</p><p>  89C51 是整個(gè)波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號,并從鍵盤接收數(shù)據(jù),進(jìn)行各種功能的轉(zhuǎn)換和信號幅度的調(diào)節(jié)。當(dāng)數(shù)字信號經(jīng)過接口電路到達(dá)轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號也就是所需要的輸出波

22、形。</p><p><b>  設(shè)計(jì)思想</b></p><p>  (1)向DAC0832送對應(yīng)的數(shù)字量就能得到相應(yīng)的模擬信號。</p><p> ?。?)將一個(gè)周期的信號分離成 256 個(gè)點(diǎn)(按 X 軸等分),每兩點(diǎn)之間的時(shí)間間隔為ΔT,用單片機(jī)向ADC0832推送數(shù)組得到函數(shù)信號。ΔT作為調(diào)頻的延時(shí),嵌入在256個(gè)數(shù)據(jù)之間。改變?chǔ)就能

23、調(diào)節(jié)波形的頻率。</p><p>  (3)方波的模擬產(chǎn)生:</p><p>  數(shù)字量為0x00時(shí)推入DAC0832輸出為低電平</p><p>  數(shù)字量為0xff時(shí)推入DAC0832輸出為高電平</p><p>  (方波便于對頻率的測量,也取256個(gè)數(shù)據(jù)。這與三角波,正弦波數(shù)據(jù)表統(tǒng)一。所以三種波形的頻率一樣。</p>&

24、lt;p> ?。?)三角波模擬信號由D/A轉(zhuǎn)換器的模擬量輸出:</p><p>  向DAC0832送數(shù)據(jù)0—255后,再送數(shù)據(jù)255—0的連續(xù)數(shù)據(jù)就能夠得上一個(gè)周期的完整三角波。因?yàn)橹蝗?56個(gè)數(shù)據(jù)點(diǎn),所以波形前半只取0—255中的奇數(shù)(128個(gè)數(shù));波形后半周期只取255—0的偶數(shù)部分(128個(gè)數(shù))。由此較準(zhǔn)確的取下了256個(gè)數(shù)據(jù)。</p><p>  (5)正弦波的模擬信號由

25、D/A 轉(zhuǎn)換器的模擬量輸出的計(jì)算公式為:</p><p>  Y=(A/2sinΔt)+A/2 (其中 A=VREF)</p><p>  Δt=NΔT (N=1~256) </p><p>  那么對應(yīng)著存放在計(jì)算機(jī)里的這一點(diǎn)的數(shù)據(jù)為:</p><p>  正弦函數(shù)DA數(shù)據(jù)表,可以用“VsinTab正弦波表生成器

26、”生成所需要的數(shù)據(jù)表。如圖2.3所示。</p><p><b>  圖2.3</b></p><p>  (6)一個(gè)周期被分離成 256 個(gè)點(diǎn),對應(yīng)的三種波形的256個(gè)數(shù)據(jù)存分別放在以fangboTAB[256],sanjiaoboTAB[256],zhengxianboTAB[256]為起始地址的存儲(chǔ)器中。</p><p> ?。?)ADC0

27、832轉(zhuǎn)換得到的模擬量為電流輸出,Iout1+Iout2為常數(shù)。電流很微弱,必須通過放大器放大。本設(shè)計(jì)中采用2個(gè)ua741,一個(gè)ua741對其信號放大,但是電壓現(xiàn)在是負(fù)值。不能達(dá)到輸出電壓為0-5V可調(diào)的設(shè)計(jì)要求。所以還得加一個(gè)ua741作為反向器,得到正壓值。對于設(shè)計(jì)中的輸出電壓0-5V可調(diào),可以采用調(diào)節(jié)放大器的負(fù)反饋電阻來實(shí)現(xiàn)調(diào)幅。</p><p>  (8)實(shí)時(shí)函數(shù)信號的幅值測量:</p>&

28、lt;p>  本設(shè)計(jì)是通過ADC0809放大器輸出端口的信號幅值電壓的測量。因?yàn)楫a(chǎn)生的信號不是直流,是屬于高頻信號。所以得加三極管和一個(gè)RC濾波電路對其測量幅值。</p><p><b>  設(shè)計(jì)功能</b></p><p> ?。?)本方案有4個(gè)獨(dú)立式按鍵,4位 LED 共陽數(shù)碼管顯示器。其中“S1”號鍵——單片機(jī)復(fù)位,“S2”號鍵——波形輸出切換,“S3”號

29、鍵——調(diào)節(jié)輸出波形的頻率,“S4”號鍵——測量電壓幅值。4位 LED 共陽數(shù)碼管用來顯示當(dāng)前波形的頻率和電壓的幅值。</p><p> ?。?)DAC0832產(chǎn)生需要的函數(shù)信號,ADC0809測量函數(shù)信號實(shí)時(shí)幅值。</p><p>  (3)74LS74把單片機(jī)ALE端口2MHZ信號4分頻為500K,作為ADC0809的時(shí)鐘信號。</p><p> ?。?)用一個(gè)u

30、a741把DAC0832的Iout1與Iout2電流輸出端口的信號的放大,用另一個(gè)ua741作為反向器,把前一級放大了的信號反向,把幅值變成正值。</p><p> ?。?)頻率范圍:30~210Hz。</p><p> ?。?)輸出波形幅度為 0~5V。</p><p><b>  硬件設(shè)計(jì)</b></p><p>&

31、lt;b>  硬件原理框圖</b></p><p>  硬件原理方框圖如圖 3.1 所示。</p><p><b>  主控電路</b></p><p>  AT89C51 單處機(jī)內(nèi)部設(shè)置兩個(gè)16 位可編程的定時(shí)器/計(jì)數(shù)器 T0 和 T1,它們具有計(jì)數(shù)器方式和定時(shí)器方式兩種工作方式及4種工作模式。在波形發(fā)生器中,將其作定時(shí)器使

32、用,用中斷來控制數(shù)碼管的動(dòng)態(tài)掃描。這樣可以達(dá)到不失真的產(chǎn)生函數(shù)信號波形。模式1采用的是16位計(jì)數(shù)器,當(dāng)T0或T1被允許計(jì)數(shù)后,從初值開始加計(jì)數(shù),最高位產(chǎn)生溢出時(shí)向CPU請求中斷。中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設(shè)置的。當(dāng)中央處理器CPU正在處理某件事的時(shí)候外界發(fā)生了緊急事件,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件。在波形發(fā)生器中,只用到片內(nèi)定時(shí)器/計(jì)數(shù)器溢出時(shí)產(chǎn)生的中斷請求,即是在AT89C51 點(diǎn)亮一樣數(shù)碼管

33、,接著啟動(dòng)定時(shí)器,在定時(shí)器未產(chǎn)生中斷之前,AT89C51等待,直到定時(shí)器計(jì)時(shí)結(jié)束,產(chǎn)生中斷請求,AT89C51響應(yīng)中斷,接著點(diǎn)關(guān)閉當(dāng)前位數(shù)碼管亮下一位數(shù)碼管,如此循環(huán)達(dá)到動(dòng)態(tài)掃描的顯示功能。</p><p>  AT89C51從P2口接收來自鍵盤的信號。如果有鍵按下,則在讀控制端會(huì)產(chǎn)生一個(gè)讀信號,使單片機(jī)讀入信號并且存儲(chǔ)相應(yīng)的鍵值。</p><p>  按下S0時(shí),單片機(jī)復(fù)位。</p

34、><p>  按下S1時(shí),輸出波形切換。</p><p>  按下S2時(shí),輸出波形調(diào)整。</p><p>  按下S3時(shí),測量輸出波形電壓幅值。</p><p><b>  顯示電路</b></p><p>  在本設(shè)計(jì)中,采用4位數(shù)碼管來顯示頻率和電壓。由PNP三極管驅(qū)動(dòng)可以獲得高亮度的顯示。當(dāng)產(chǎn)生

35、一個(gè)周期的波形需要把256個(gè)數(shù)組推送到DAC0832中,數(shù)據(jù)量大,所以不能產(chǎn)生很高的頻率。用4位的數(shù)碼管就夠用。顯示接口如圖 3.3所示。</p><p><b>  圖 3.3</b></p><p><b>  數(shù)/模轉(zhuǎn)換電路</b></p><p>  由于單片機(jī)產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號

36、轉(zhuǎn)換成模擬信號,所以選用價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)DA芯片以其價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。</p><p>  根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同

37、的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。</p><p>  DAC0832引腳功能說明:</p><p>  DI0~DI7:數(shù)據(jù)輸入線,TLL電平。</p><p>  ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。</p><p>  CS:片選信號輸入線,低電平有效。</p><

38、;p>  WR1:為輸入寄存器的寫選通信號。</p><p>  XFER:數(shù)據(jù)傳送控制信號輸入線,低電平有效。</p><p>  WR2:為DAC寄存器寫選通輸入線。</p><p>  Iout1:電流輸出線。當(dāng)輸入全為1時(shí)Iout1最大。</p><p>  Iout2: 電流輸出線。其值與Iout1之和為一常數(shù)</p&g

39、t;<p>  Rfb:反饋信號輸入線,芯片內(nèi)部有反饋電阻。</p><p>  Vcc:電源輸入線 (+5v~+15v)。</p><p>  Vref:基準(zhǔn)電壓輸入線 (-10v~+10v)。</p><p><b>  AGND:模擬地。</b></p><p><b>  DGND:數(shù)字地

40、。</b></p><p>  在本設(shè)計(jì)中,采用的是直通模式。因?yàn)榻涌诤唵?。占用單片機(jī)口接口少。</p><p>  當(dāng)數(shù)據(jù)送入DAC0832立即轉(zhuǎn)換。電路圖如圖3.4所示。</p><p><b>  圖3.4</b></p><p><b>  放大、分頻電路</b></p&g

41、t;<p><b>  放大電路</b></p><p>  741放大器輸出入腳位圖</p><p><b>  圖3.51</b></p><p>  在本設(shè)計(jì)中用到了兩個(gè)ua741如圖3.52。第1級放大器,用于信號的放大。第2級放大器,用于信號的反向,從而得到正電壓。</p><p

42、><b>  圖3.52</b></p><p>  第一級放大器(U5)輸出電壓的計(jì)算公式為:</p><p>  第一級反向器(U6)輸出電為:</p><p>  VOUT2=-VOUT1</p><p><b>  4分頻電路</b></p><p>  74L

43、S74芯片由兩個(gè)獨(dú)立的上升沿觸發(fā)的維持阻塞D觸發(fā)器組成。</p><p><b>  引腳功能說明:</b></p><p><b>  圖3.61</b></p><p>  1CP、2CP:時(shí)鐘輸入端</p><p>  1D、2D:數(shù)據(jù)輸入端</p><p>  1Q、

44、2Q、1/Q、2/Q:輸出端</p><p>  CLR1、CLR2:直接復(fù)位端(低電平有效)</p><p>  PR1、PR2:直接置位端(低電平有效)</p><p><b>  功能表:</b></p><p><b>  圖3.62</b></p><p>  在本

45、設(shè)計(jì)需要一個(gè)4分頻電路,中如圖3.63所示。就可以得到一個(gè)4分頻電路。實(shí)際設(shè)計(jì)中將用來把單片機(jī)ALE引角上的信號(2MHZ)分為500KHZ用來提供ADC0809的時(shí)鐘。</p><p><b>  圖3.63</b></p><p><b>  模/數(shù)轉(zhuǎn)換電路</b></p><p><b>  ADC0809

46、概述</b></p><p>  ADC0809是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。</p><p><b>  主要特性</b></p><p&

47、gt;  1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。</p><p>  2)具有轉(zhuǎn)換起??刂贫?。</p><p>  3)轉(zhuǎn)換時(shí)間為100μs(時(shí)鐘為640kHz時(shí)),130μs(時(shí)鐘為500kHz時(shí)) </p><p>  4)單個(gè)+5V電源供電</p><p>  5)模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。<

48、/p><p>  6)工作溫度范圍為-40~+85攝氏度</p><p>  7)低功耗,約15mW。</p><p>  外部特性(引腳功能)</p><p>  ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖3.71所示。下面說明各引腳功能。</p><p><b>  圖3.71</b>

49、;</p><p>  IN0~I(xiàn)N7:8路模擬量輸入端。</p><p>  2-1~2-8:8位數(shù)字量輸出端。</p><p>  ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。</p><p>  ALE:地址鎖存允許信號,輸入,高電平有效。</p><p>  START: A/D

50、轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。</p><p>  EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。</p><p>  OE:數(shù)據(jù)輸出允許信號,輸入高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。</p>

51、<p>  CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。</p><p>  REF(+)、REF(-):基準(zhǔn)電壓。</p><p>  Vcc:電源,單一+5V。</p><p><b>  GND:地。</b></p><p>  ADC0809的工作過程</p><p>

52、;  首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號可用作中斷申請。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。</p><p><b&g

53、t;  轉(zhuǎn)換數(shù)據(jù)的傳送</b></p><p>  A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式。</p><p><b>  (1)定時(shí)傳送方式</b></p><p>  對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)

54、是已知的和固定的。例如ADC0809轉(zhuǎn)換時(shí)間為128μs,相當(dāng)于6MHz的MCS-51單片機(jī)共64個(gè)機(jī)器周期。可據(jù)此設(shè)計(jì)一個(gè)延時(shí)子程序,A/D轉(zhuǎn)換啟動(dòng)后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。</p><p><b>  (2)查詢方式</b></p><p>  A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因

55、此可以用查詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。</p><p><b> ?。?)中斷方式</b></p><p>  把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進(jìn)行數(shù)據(jù)傳送。</p><p>  不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號有效

56、時(shí),OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)口,供單片機(jī)接收。</p><p>  在本設(shè)計(jì)中,因?yàn)閱纹瑱C(jī)的資源有限。為了節(jié)約單片機(jī)接口,所以采用第一種定時(shí)傳送方式。ADC0809的OE端直接接高電平,當(dāng)數(shù)據(jù)轉(zhuǎn)換完成立即送到數(shù)據(jù)口。單片機(jī)每隔一定的時(shí)間來讀取數(shù)據(jù)口的數(shù)據(jù)。如圖3.72所示。</p><p>  ADC0809在本設(shè)計(jì)中是用來對輸出的波形的實(shí)時(shí)電壓的測量的作用。其轉(zhuǎn)換測量的公式:&

57、lt;/p><p>  ‘X’就是我們需要計(jì)算出來的當(dāng)前的電壓值。</p><p>  ‘5’代表5伏的基準(zhǔn)電壓。</p><p>  ‘28’是ADC0809的轉(zhuǎn)換分辨率。</p><p>  ‘P3’是針對我的當(dāng)前設(shè)計(jì)寫的,就是ADC0809數(shù)據(jù)總線的數(shù)據(jù)。</p><p><b>  圖3.72</b

58、></p><h3>  按鍵、復(fù)位、時(shí)鐘電路</h2><p><b>  鍵盤電路</b></p><p>  本設(shè)計(jì)中采用的是3個(gè)獨(dú)立的功能按鍵。</p><p>  S2用來切換現(xiàn)在產(chǎn)生的波形。當(dāng)沒有按下S2時(shí)信號發(fā)生器產(chǎn)生方波信號。第一次按下S2時(shí),將切換成三角波信號。第二次按下S2時(shí),將切換產(chǎn)生正弦波信

59、號。第三次按下S2時(shí),又產(chǎn)生方波信號。這樣一直循環(huán)。</p><p>  S3用來調(diào)節(jié)輸出的函數(shù)信號的頻率。當(dāng)沒有按下S3時(shí),產(chǎn)生的函數(shù)信號最高。當(dāng)按下S3時(shí),波形頻率降低,同時(shí)還要對應(yīng)向LED顯示緩沖區(qū)給定一個(gè)頻率值提供當(dāng)前頻率顯示所需要的數(shù)據(jù)。S3按7次一個(gè)循環(huán)。當(dāng)?shù)?次按下時(shí)恢復(fù)到最高頻率輸出。</p><p>  S4用來啟動(dòng)對輸出的函數(shù)信號的電壓值的測量。當(dāng)S4沒有按下時(shí),單片機(jī)

60、只向DAC0832送波形數(shù)據(jù)表和顯示當(dāng)前波形的頻率。按下S4后,單片機(jī)除了向DAC0832送波形數(shù)據(jù)表外,還要每隔一小段時(shí)間對讀取ADC0809轉(zhuǎn)換的電壓值,并且換算出來,送給LED顯示當(dāng)前電壓。此時(shí)不再顯示當(dāng)前波形的頻率。</p><p><b>  圖3.7</b></p><p><b>  復(fù)位電路</b></p><

61、p>  單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電器工作以后,只要在RESET端加上大于10MS的高電平,單片機(jī)便能實(shí)現(xiàn)復(fù)位。若RESET保持高電平,單片機(jī)循環(huán)復(fù)位。</p><p>  單片機(jī)一般要求在上電時(shí),或者按復(fù)位鍵時(shí)復(fù)位。所以復(fù)位電路又分為上電復(fù)位和按鍵復(fù)位兩種。在本設(shè)計(jì)中用到的就是按鍵復(fù)位。如圖3.91所示。</p><p><b>  圖3.91</b&g

62、t;</p><p><b>  時(shí)鐘電路</b></p><p>  單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器,并產(chǎn)生振蕩時(shí)鐘。晶體在1.2~12MHZ選擇。時(shí)鐘電路如圖3.92所示。其中C2,C3起穩(wěn)定振蕩的作用,電容選一般6~33PF。</p><p><b>  圖3.92</b><

63、/p><p><b>  軟件設(shè)計(jì)</b></p><p><b>  主程序流程圖</b></p><p><b>  中斷程序流程圖</b></p><p><b>  程序代碼</b></p><p>  #include &qu

64、ot;reg51.h"</p><p>  #define uchar unsigned char</p><p>  #define DA P1//DAC0832數(shù)據(jù)口</p><p>  #define AD P3//ADC0809數(shù)據(jù)口</p><p>  #define LED_DATA P0//LED顯示數(shù)據(jù)口&

65、lt;/p><p>  sbitbaiwei=P2^7;//定義數(shù)碼管陽級控制腳(百位)</p><p>  sbitshiwei=P2^6;//定義數(shù)碼管陽級控制腳(十位)</p><p>  sbitgewei=P2^5;//定義數(shù)碼管陽級控制腳(個(gè)位)</p><p>  sbittiaobo=P2^4;//波形切換</p&g

66、t;<p>  sbittiaopin=P2^3;//調(diào)頻</p><p>  sbitdianya=P2^2;//測電壓</p><p>  sbit START=P2^1;//啟動(dòng)AD</p><p>  uchar a=0,b=0,c=0,i=0,l=0,n=0;</p><p>  code uchar celi

67、ang1ma[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//帶小點(diǎn)段碼</p><p>  code uchar celiang2ma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//不帶小點(diǎn)段碼</p><p>  //共陽 0 12

68、3 45 6 7 8 9</p><p>  data uchardianyaTAB[2]={0x24,0x90}; //電壓值存數(shù)組</p><p>  code ucharpinlv[18]={0xa4,0xf9,0xb0, //213 不同頻率下的顯示數(shù)據(jù)</p><p>  0xf9,0xc0,0xf8, //107<

69、;/p><p>  0xff,0xf8,0xf9, //71</p><p>  0xff,0x92,0xb0, //53</p><p>  0xff,0x99,0xb0, //43</p><p>  0xff,0xb0,0x82};//36</p><p>  /***********************

70、方波數(shù)據(jù)表**************************/</p><p>  code ucharfangboTAB[256]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,

71、0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p>&l

72、t;p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x

73、00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p>&

74、lt;p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0xff,0xff,0xff,0xff,0

75、xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p>

76、<p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,

77、0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p>

78、<p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff

79、,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  /***********************三角波數(shù)據(jù)表**************************/</p><p>  code ucharsanjiaoboTAB[256]={0x0

80、0,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,</p><p>  0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,</p><p>  0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,</p><p>  0x30,0x32,0x34,0x36,0x38,0x3a,0x3c

81、,0x3e,</p><p>  0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,</p><p>  0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,</p><p>  0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,</p><p>  0x

82、70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,</p><p>  0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,</p><p>  0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,</p><p>  0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xa

83、c,0xae,</p><p>  0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,</p><p>  0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,</p><p>  0xd0,0xd2,0xd4,0xd6,0xd8,0xDA,0xdc,0xde,</p><p>  0

84、xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,</p><p>  0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,</p><p>  0xff,0xfd,0xfb,0xf9,0xf7,0xf5,0xf3,0xf1,</p><p>  0xef,0xed,0xeb,0xe9,0xe7,0xe5,0x

85、e3,0xe1,</p><p>  0xdf,0xdd,0xdb,0xd9,0xd7,0xd5,0xd3,0xd1,</p><p>  0xcf,0xcd,0xcb,0xc9,0xc7,0xc5,0xc3,0xc1,</p><p>  0xbf,0xbd,0xbb,0xb9,0xb7,0xb5,0xb3,0xb1,</p><p>  

86、0xaf,0xad,0xab,0xa9,0xa7,0xa5,0xa3,0xa1,</p><p>  0x9f,0x9d,0x9b,0x99,0x97,0x95,0x93,0x91,</p><p>  0x8f,0x8d,0x8b,0x89,0x87,0x85,0x83,0x81,</p><p>  0x7f,0x7d,0x7b,0x79,0x77,0x75,0

87、x73,0x71,</p><p>  0x6f,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61,</p><p>  0x5f,0x5d,0x5b,0x59,0x57,0x55,0x53,0x51,</p><p>  0x4f,0x4d,0x4b,0x49,0x47,0x45,0x43,0x41,</p><p> 

88、 0x3f,0x3d,0x3b,0x39,0x37,0x35,0x33,0x31,</p><p>  0x2f,0x2d,0x2b,0x29,0x27,0x25,0x23,0x21,</p><p>  0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x11,</p><p>  0x0f,0x0d,0x0b,0x09,0x07,0x05,

89、0x03,0x01};</p><p>  /***********************正弦波數(shù)據(jù)表***************************/</p><p>  codeucharzhengxianboTAB[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,</p><p>  0x98,0x9c,0x

90、9f,0xa2,0xa5,0xa8,0xab,0xae,</p><p>  0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,</p><p>  0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,</p><p>  0xDA,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,<

91、;/p><p>  0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,</p><p>  0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,</p><p>  0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,</p><p>  0xff,0xff,0

92、xff,0xff,0xff,0xff,0xfe,0xfe,</p><p>  0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,</p><p>  0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,</p><p>  0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,&l

93、t;/p><p>  0xDA,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,</p><p>  0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,</p><p>  0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,</p><p>  0x99,0x96,

94、0x92,0x8f,0x8c,0x89,0x86,0x83,</p><p>  0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,</p><p>  0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,</p><p>  0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,&

95、lt;/p><p>  0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,</p><p>  0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,</p><p>  0x15,0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,</p><p>  0x09,0x08

96、,0x07,0x06,0x05,0x04,0x03,0x03,</p><p>  0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,</p><p>  0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,

97、</p><p>  0x09,0x0a,0x0c,0x0d,0x0e,0x10,0x12,0x13,</p><p>  0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,</p><p>  0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,</p><p>  0x38,0x3

98、b,0x3d,0x40,0x43,0x46,0x48,0x4b,</p><p>  0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,</p><p>  0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};</p><p>  /***********************短延時(shí)函數(shù)*********

99、******************/</p><p>  voiddelayms(uchar t) </p><p><b>  { </b></p><p><b>  uchar i; </b></p><p>  while(t--) </p><p><b&g

100、t;  { </b></p><p>  for (i=0;i<125;i++); </p><p><b>  } </b></p><p><b>  }</b></p><p>  /************************按鍵程序******************

101、***********/</p><p>  voidanjian()</p><p><b>  {</b></p><p>  if(tiaobo==0)</p><p><b>  { </b></p><p>  delayms(10);//按鍵消抖 </p&g

102、t;<p>  if(tiaobo==0)</p><p><b>  {</b></p><p>  while(!tiaobo);//松手檢測 </p><p><b>  a=a+1;</b></p><p><b>  }</b></p>

103、<p>  if(a>2) a=0;</p><p><b>  }</b></p><p>  if(tiaopin==0)</p><p>  { delayms(10);//按鍵消抖 </p><p>  if(tiaopin==0)</p><p><b>  {

104、</b></p><p>  while(!tiaopin);//松手檢測 </p><p><b>  b=b+3;</b></p><p><b>  }</b></p><p>  if(b>15) b=0;</p><p><b>  }

105、</b></p><p>  if(dianya==0)</p><p>  { delayms(10);//按鍵消抖 </p><p>  if(dianya==0)</p><p><b>  {</b></p><p>  while(!dianya);//松手檢測 </p

106、><p><b>  c=c+1;</b></p><p><b>  }</b></p><p>  if(c>1) c=0;</p><p><b>  }</b></p><p><b>  }</b><

107、;/p><p>  /***********************測量電壓函數(shù)***************************/</p><p>  voidcedianya()</p><p><b>  { </b></p><p>  dianyaTAB[0]=celiang1ma[(AD*50/255)/1

108、0];//測量轉(zhuǎn)換電壓數(shù)據(jù)的個(gè)位</p><p>  dianyaTAB[1]=celiang2ma[(AD*50/255)%10];//測量轉(zhuǎn)換電壓數(shù)據(jù)的小數(shù)位</p><p><b>  } </b></p><p>  /***********************中斷顯示函數(shù)***************************/&l

109、t;/p><p>  void timer0(void) interrupt 1 using 1 //中斷程序入口</p><p>  {n++;</p><p>  if(c==0) //未按下測電壓按鍵</p><p><b>  {</b></p><p><b

110、>  switch(n)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  gewei=0; //關(guān)個(gè)位</p><p&

111、gt;  LED_DATA=pinlv[b];//送段碼</p><p>  baiwei=1; //選通百位 </p><p>  break;</p><p><b>  }</b></p><p><b>  case 2:</b></p>

112、<p><b>  {</b></p><p>  baiwei=0; //關(guān)百位</p><p>  LED_DATA=pinlv[b+1]; //送段碼</p><p>  shiwei=1; //選通十位</p><p><b>  break;</b><

113、;/p><p><b>  }</b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  shiwei=0; //關(guān)十位</p><p>  LED_DATA=pinlv[b+2];

114、 //送段碼</p><p>  gewei=1; //選通個(gè)位</p><p><b>  n=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b> 

115、 }</b></p><p><b>  }</b></p><p>  if(c==1) //按下測電壓按鍵</p><p>  {baiwei=0; //關(guān)百位</p><p>  cedianya(); //調(diào)用測電壓子函數(shù)</p>&

116、lt;p><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  gewei=0; //關(guān)個(gè)位<

117、/p><p>  LED_DATA=dianyaTAB[0]; //送段碼</p><p>  shiwei=1; //選通十位</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case

118、2:</b></p><p><b>  { </b></p><p>  shiwei=0; //關(guān)十位</p><p>  LED_DATA=dianyaTAB[1]; //送段碼</p><p>  gewei=1; //選通個(gè)位</p><p><

119、;b>  n=0;</b></p><p><b>  break;</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>

120、;  TH0=(65536-5000)/256;//定時(shí)器重賦初值5ms</p><p>  TL0=(65536-5000)%256;</p><p><b>  }</b></p><p>  /***********************主函數(shù)***************************/</p><p

121、>  void main(void)</p><p>  { TMOD=0X01;//定時(shí)器1模式1</p><p>  TH0=(65536-5000)/256;//定時(shí)器初值5ms</p><p>  TL0=(65536-5000)%256;</p><p>  EA=1;//開啟總中斷<

122、/p><p>  ET0=1;//開啟T0定時(shí)中斷</p><p>  TR0=1;//啟動(dòng)定時(shí)</p><p><b>  while(1)</b></p><p>  {anjian(); //調(diào)用按鍵掃描子程序</p><p><b>  switc

123、h(a)</b></p><p><b>  {case 0:</b></p><p><b>  {</b></p><p>  START=0;//給start低電平</p><p>  for(i=0;i<255;i++) //循環(huán)送255個(gè)方波數(shù)據(jù)</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論