程控賦值函數(shù)發(fā)生器_第1頁
程控賦值函數(shù)發(fā)生器_第2頁
程控賦值函數(shù)發(fā)生器_第3頁
程控賦值函數(shù)發(fā)生器_第4頁
程控賦值函數(shù)發(fā)生器_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、程控幅值函數(shù)發(fā)生器摘 要 本設(shè)計核心任務(wù)是:以89S52為核心,結(jié)合DAC0832實(shí)現(xiàn)程序控制產(chǎn)生正弦波、三角波、方波和鋸齒波四種常用低頻信號??梢酝ㄟ^鍵盤選擇波型和輸入波形幅值。另外,采用KEIL,以達(dá)到驗(yàn)證作品功能的目的,并且做出一塊電路板。關(guān)鍵詞:信號發(fā)生器;89S52;KEIL 目錄第一章 設(shè)計的任務(wù)和要求41.1設(shè)計的基本要求41.2課題具體的工作內(nèi)容4第2章 系統(tǒng)總體設(shè)計52.1主要功能系統(tǒng)的性能指標(biāo)52.2總體方案設(shè)計5第3章 系統(tǒng)硬件設(shè)計63.1 ADC0832與單片機(jī)的鏈接63.2鍵盤控制器zlg7289與單片機(jī)的連接73.3 波形輸出部分裝置8第4章&#

2、160;系統(tǒng)軟件設(shè)計84.1信號頻率數(shù)據(jù)采集程序84.1.1正弦波產(chǎn)生84.1.2三角波產(chǎn)生94.1.3方波產(chǎn)生104.1.4鋸齒波的產(chǎn)生114.2 zlg7289相關(guān)程序設(shè)計124.3波形切換程序134.4系統(tǒng)總的流程圖14第5章 函數(shù)發(fā)生器的調(diào)試與測試145.1 鍵值的測試145.2 影響上限頻率的因素和已完成的最大值分析16六 問題與改進(jìn)171.實(shí)驗(yàn)中遇到的問題172.建議與改進(jìn)17附錄(源程序)18第一章 設(shè)計的任務(wù)和要求1.1設(shè)計的基本要求(1)原始數(shù)據(jù)1正弦波的頻率范圍:下限頻率為0.1Hz,上限頻率暫時不確定,但應(yīng)盡量提高,并在實(shí)驗(yàn)報告中分析影響上限頻率的因素和已完成的最大值。2

3、輸出正弦波中不能含有尖峰干擾。3輸出正弦波峰峰值最大為5 V、最小幅度自定,直流偏移為±2V。5擴(kuò)展輸出波形種類,如三角波、方波等,幅度和頻率范圍自定。 (3)工作要求:1組建基于單片機(jī)的函數(shù)發(fā)生器的總體結(jié)構(gòu)框圖;2根據(jù)設(shè)計測量范圍和準(zhǔn)確度要求,通過理論分析和計算選擇電路參數(shù);3根據(jù)操作功能要求,確定鍵盤控制功能;4按設(shè)計要求確定顯示位數(shù)、指示類型和單位;5采用C語言編寫應(yīng)用程序并調(diào)試通過;6對系統(tǒng)進(jìn)行測試和結(jié)果分析; 7撰寫論文。1.2課題具體的工作內(nèi)容本設(shè)計采用89S52及其外圍擴(kuò)展系統(tǒng),軟件方面主要是應(yīng)用C語言設(shè)計程序。系統(tǒng)以89S52單片機(jī)為核心,配置相應(yīng)的外設(shè)及接口電路,用

4、C語言開發(fā),組成一個多功能信號發(fā)生系統(tǒng)。該系統(tǒng)的軟件可運(yùn)行于Windows XP環(huán)境下,硬件電路設(shè)計具有典型性。同時,本系統(tǒng)中任何一部分電路模塊均可移植于實(shí)用開發(fā)系統(tǒng)的設(shè)計中,電路設(shè)計具有實(shí)用性。本設(shè)計將完成以下幾個方面的工作:(1)選芯片,盡量滿足一般工業(yè)控制要求、以增強(qiáng)其實(shí)用性。(2)原理圖設(shè)計在保證正確的前提下,盡量采用典型的電路設(shè)計。(3)印制板設(shè)計既要精巧,又要便于擺放及測試。(4)固化于單片機(jī)芯片中的軟件采用模塊設(shè)計,層次清楚,具有上電復(fù)位及初始化功能,具有很好的軟件開發(fā)框架。(5)掌握單片機(jī)仿真軟件keil3的使用。第2章 系統(tǒng)總體設(shè)計2.1主要功能系統(tǒng)的性能指標(biāo)主要功

5、能是實(shí)現(xiàn)利用單片機(jī)AT89C52和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的發(fā)生,并且可以接收外接鍵盤輸入而在一定范圍內(nèi)改變頻率??梢栽跊]有波形發(fā)生器的情況下仍然可以的到簡單的正弦波,方波,三角波,鋸齒波這四種常用的波,并且可以通過zlg7289及鍵盤顯示模塊,鍵盤可以實(shí)現(xiàn)對幾種波形的切換,改變幅度,LED顯示波的幅度。主要性能指標(biāo)正弦波的頻率范圍:下限頻率為0.1Hz,上限頻率暫時不確定,但應(yīng)盡量提高,并在實(shí)驗(yàn)報告中分析影響上限頻率的因素和已完成的最大值;輸出正弦波中不能含有尖峰干擾;輸出正弦波峰峰值最大為5 V、最小幅度自定,直流偏移為±

6、2V。2.2總體方案設(shè)計系統(tǒng)總體框圖設(shè)計本系統(tǒng)是以單片機(jī)AT89C52和8位D/A轉(zhuǎn)換芯片DAC0832以及zlg7289鍵盤及顯示共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的產(chǎn)生及顯示相互切換的功能。第3章 系統(tǒng)硬件設(shè)計3.1 ADC0832與單片機(jī)的鏈接本設(shè)計采用的時使用2片DAC0832.由其中一片的輸出電壓作為另一片的參考電壓,這樣就可以方便的控制最大輸出電壓。兩個ADC0832的連接方式如圖3-11 圖 3-11具體的對于本設(shè)計是把DAC0832(1)的輸出作為了ADCO832(2)的參考電壓,于是輸出信號的峰峰值可由DAC0832(2)的所連接的運(yùn)放的輸出控制。由

7、于DAC0832存在的非線性,輸出信號的幅值存在一定的誤差。在程序設(shè)計時,我們已經(jīng)知道兩片DAC0832的地址分別07fffH和0bfffH,因而欲給其賦值,我們只需要選定其地址,然后將所需要的數(shù)值傳到即可。3.2鍵盤控制器zlg7289與單片機(jī)的連接本設(shè)計的7289鍵盤及顯示模塊鏈接如圖3-67289的CS,CLK,DIO,KEY 端分別和單片機(jī)的P1.0,P1.1,P1.2,P1.3相連,通過程序達(dá)到由單片機(jī)從7289讀入信息和控制的目的 3.3 波形輸出部分裝置、通過DAC0832的輸出控制左邊的放大器的輸出電壓,同時左邊這片放大器的輸出電壓接到另一片DAC0832的VREF端作為另一片

8、DAC0832的參考電壓,這樣,當(dāng)我們通過改變第一片DAC0832的輸出的時候,我們就可以改變由第二片輸出的函數(shù)的幅值,從而達(dá)到我們的目的第4章 系統(tǒng)軟件設(shè)計4.1信號頻率數(shù)據(jù)采集程序本設(shè)計將各種波形的數(shù)據(jù)固定在單片機(jī)的程序存儲器里,通過改變這些數(shù)據(jù)的輸出速度來改變信號的頻率,然后通過改變D/A轉(zhuǎn)換器的參考點(diǎn)要來改變信號的峰峰值,電路較為簡單,成本較低。4.1.1正弦波產(chǎn)生我們采用直接輸入正弦波的采樣點(diǎn),然后在正弦波的產(chǎn)生程序中,依次調(diào)用這寫采樣點(diǎn)即可正弦函數(shù)采樣點(diǎn)如下,我們將其保存在一個數(shù)組中:一共256個點(diǎn)uchar const code sin_code256=0x80,0x8

9、3,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xf

10、f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x9

11、6,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,

12、0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69

13、,0x6c,0x6f,0x73,0x76,0x79,0x7c;正弦函數(shù)產(chǎn)生函數(shù)如下: DAC0832_2=sin_codecnt; cnt+;4.1.2三角波產(chǎn)生1產(chǎn)生三角波的原理設(shè)個自變量i讓它不斷地自加1,直到加到255時,t=i ,對t進(jìn)行不斷地自減一直到減到t=0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生三角波。2程序流程圖見圖4-1 圖 4-1 三角波流程圖3.程序 if(cnt<128) DAC0832_2=(uchar)(float)(cnt)*0xff/255); cnt+; else DAC0832_2=255-(uchar)(float)(cnt)*0xff/255); cn

14、t+; 4.1.3方波產(chǎn)生1產(chǎn)生方波的原理設(shè)個自變量i=0使之延時一段時間,再另i=255時在延時與i=0相同的時間,然后在重復(fù)上述過程。 2.方波流程圖見圖4-2圖 4-2 方波流程圖3程序if(cnt<128) DAC0832_2=0x00; cnt+; else DAC0832_2=0xff; cnt+;4.1.4鋸齒波的產(chǎn)生1產(chǎn)生鋸齒波的原理鋸齒波中的斜線用一個個小臺階來逼近,在一個周期內(nèi)從最小值開始逐步遞增,當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺階間隔很小時,波形基本上近似于直線。適當(dāng)選擇循環(huán)的時間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個延時的常數(shù)

15、不同,所以用延時法,來產(chǎn)生鋸齒波,設(shè)個自變量i讓它不斷地自加1,直到加到255,DAC0832可以又自動歸0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生鋸齒波。2程序流程圖見圖4-3圖 4-3 鋸齒波流程圖3程序DAC0832_2=(uchar)(float)(cnt)*0xff/255); cnt+;4.2 zlg7289相關(guān)程序設(shè)計程序流程圖如下:具體7289程序要用到一些其專用的命令,具體程序見附錄中程序代碼及注釋,此處不再復(fù)述。4.3波形切換程序我們采用的是利用中斷程序來切換波形,通過利用定時器/計數(shù)器在計數(shù)達(dá)到滿值之后所產(chǎn)生中斷來進(jìn)入中斷程序;再通過按鍵來改變程序中某一個變量的取值,進(jìn)而利用不

16、同取值,在中斷程序中所對應(yīng)的函數(shù)發(fā)生程序的不同來產(chǎn)生不同的波形。具體見附錄程序代碼及注釋4.4系統(tǒng)總的流程圖具體見附錄中程序代碼及注釋第5章 函數(shù)發(fā)生器的調(diào)試與測試簡單系統(tǒng)硬件的調(diào)試通常采用載入簡單的測試程序并運(yùn)行,使用數(shù)字表或示波器觀察;對有些硬件例如顯示器、鍵盤等可直接編入程序觀察程序執(zhí)行狀態(tài)。 5.1 鍵值的測試對于新給定的一個ZLG7289及鍵盤是,我們應(yīng)當(dāng)首先確定每個按鍵的鍵值,只有當(dāng)我們確定鍵之后,才可以對我們所要設(shè)置的按鍵的功能通過真正做到使軟硬件相結(jié)合在一起,實(shí)現(xiàn)我們的目標(biāo)功能,真是我們可以利用系統(tǒng)的顯示部分也即就是系統(tǒng)的LED,我們通過假設(shè)法使出本系統(tǒng)的鍵值。一般對于設(shè)計心得

17、系統(tǒng)我們都可以采用這種方法,因?yàn)楝F(xiàn)在是人性化社會每個設(shè)計都有自己的特色,在設(shè)計中我們的充分利用系統(tǒng)為我們所提供的一些顯而易見的東西來完成我們所打算實(shí)現(xiàn)的功能。例如LED與鍵盤我們?yōu)榱酥烂總€鍵值,而利用LED的顯示最終確定出每個鍵值。(從下到上,從右到左)對于設(shè)計十六個按鍵及功能見表5-1 表 5-1KEY作用0X0600X0E10X1620X1E30X2640X2E50X3660X3E70X0780X0F90X17小數(shù)點(diǎn)0X1F幅度設(shè)置0X27波形切換0X2FReset0X37確定鍵0X3F無功能對于鍵盤作用說明如下:1. 波形切換按鍵我們用波形切換鍵被按下的次數(shù)來區(qū)分輸出何種波:初始時產(chǎn)生

18、鋸齒波按鍵被按下一次為正弦波按鍵被按下兩次為方波按鍵被按下四次次為三角波2幅值設(shè)定運(yùn)行后,首先應(yīng)顯示鋸齒波。之后,欲設(shè)定幅值,先按“幅值設(shè)置”鍵數(shù)碼管顯示“A”輸入幅值“確定”電壓峰值測試數(shù)據(jù)如表 電壓峰值測試數(shù)據(jù)設(shè)定電壓(V)示波器測試電壓值(V)22.044.066.088.0 1010.0 1212.0 1412.05.2 影響上限頻率的因素和已完成的最大值分析在程序中我們采用的是中斷的方式來產(chǎn)生波形上的每一個點(diǎn)。具體是利用定時器0,在模式1下,設(shè)定初值,然后開始計數(shù),在數(shù)值達(dá)到ffffH的時候產(chǎn)生中斷。在終端程序中,我們放置波形產(chǎn)生的函數(shù)。因而,波形頻率的大小決定于我們所設(shè)定初值的大小

19、。如果我們把初值設(shè)定為0xf000H,那么我們最終得到的正弦波的頻率是2.68Hz如果我們把初值設(shè)定為0xffffH,那么我們最終得到的正弦波的頻率是36.87Hz六 問題與改進(jìn)1.實(shí)驗(yàn)中遇到的問題 實(shí)驗(yàn)中遇到很多問題,主要問題歸納為以下三點(diǎn):實(shí)驗(yàn)中遇到的第一個問題就是當(dāng)按下不同的鍵后,其鍵值和理論所對應(yīng)的鍵值不一樣,比如我們按下鍵值應(yīng)該是0x3F鍵值的鍵后,rebuf中顯示的鍵值是0x38,當(dāng)按下0x37鍵值所對應(yīng)的鍵后,rebuf中顯示的是0x30。并且上一排按鍵和下一排按鍵所對應(yīng)的鍵值是一樣的。比如,0x3F和0x3E所對應(yīng)的鍵值都是0x38;我們最終求教于金老師,最后在金老師的幫助下我

20、們發(fā)現(xiàn)使我們的阻排的方向焊接反了,導(dǎo)致以上的情況。在重新焊接阻排之后,按鍵的鍵值恢復(fù)正常。實(shí)驗(yàn)中遇到的第二個問題就是我們的八個數(shù)碼管不管怎么樣都亮不了,即便是發(fā)送測試指令使其閃爍也不亮,經(jīng)過和其他同學(xué)討論我們發(fā)現(xiàn)另一組同學(xué)也有也遇到了類似的問題。在求教于金老師之后,我們發(fā)現(xiàn)是因?yàn)槲覀兯玫臄?shù)碼管不能由7289驅(qū)動,最終我們換了八個數(shù)碼管之后,數(shù)碼管的顯示恢復(fù)了正常。實(shí)驗(yàn)中第三個主要的問題就是發(fā)現(xiàn)其中有一片DAC0832不論輸給其多大的數(shù)值,轉(zhuǎn)換過來的模擬信號的大小都不發(fā)生改變。但是另一片DAC0832還能產(chǎn)生正常的函數(shù)波形。我們依次交換了DAC和與其相連的兩片運(yùn)放,最后發(fā)現(xiàn)是其中的一片運(yùn)放工作

21、不正常導(dǎo)致。2.建議與改進(jìn)我們所設(shè)計的波形發(fā)生器還遠(yuǎn)遠(yuǎn)不夠,距離我們實(shí)驗(yàn)室和現(xiàn)實(shí)生活中所用到的函數(shù)發(fā)生器還相去甚遠(yuǎn)。1.我們的函數(shù)的頻率沒法調(diào)整,頻率只能由程序代碼中的中斷來決定,而在程序燒入單片機(jī)后,函數(shù)的頻率就是定值,沒法改變。2.函數(shù)的幅值改變范圍非常有限:因?yàn)楹瘮?shù)波形最終是由運(yùn)放產(chǎn)生,基于運(yùn)放的飽和電壓,函數(shù)的幅值不可能太高。我們使用的運(yùn)放供電電源電壓是12V,因而,函數(shù)波形幅值最大值不會超過12V,這一點(diǎn)也極大的限制了其應(yīng)用范圍。附錄(源程序)#include<reg52.h>#include<absacc.h>#include<math.h>#d

22、efine uchar unsigned char#define DAC0832_1 XBYTE0x7fff#define DAC0832_2 XBYTE0xbfffsbit CS=P10;sbit CLK=P11;sbit DIO=P12;sbit KEY=P13;uchar rebuf,sebuf;uchar amp=0x80;uchar number;uchar dis_bit=0;uchar valid=0;uchar fun=1;uchar cnt=0;uchar tl=0x00,th=0xf0;bdata uchar com_data;sbit mos_bit=com_data7;

23、sbit low_bit=com_data0;uchar c_max=255;uchar const code sin_code256=0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0x

24、f3,0xf4,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0x

25、c1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x

26、19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3

27、d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c;void delay_50us() uchar i; for(i=0;i<6;i+) ; void delay_8us() uchar i; for(i=0;i<1;i+) ; void delay_50ms() uchar i,j; for(j=0;j<50;j+) for(i=0;i<125;i+) ; void send(uchar sebuf) uch

28、ar i; com_data=sebuf; CLK=0; CS=0;DIO=0; delay_50us(); for(i=0;i<8;i+) delay_8us(); DIO=mos_bit; CLK=1; delay_8us(); com_data=com_data<<1; CLK=0; DIO=0; void receive() uchar i; CLK=1; delay_50us(); for(i=0;i<8;i+) com_data=com_data<<1; low_bit=DIO; CLK=1; delay_8us(); CLK=0; delay_

29、8us(); rebuf=com_data; DIO=0; CS=1;void reset() KEY=1; DIO=1; delay_50ms(); send(0xa4); CS=1;void time0_int(void)interrupt 1 /中斷函數(shù) TR0=0; TH0=th; TL0=tl; TR0=1; if(fun=0) /鋸齒波 DAC0832_1=amp; DAC0832_2=(uchar)(float)(cnt)*0xff/255); cnt+; else if(fun=1) / 正弦波 DAC0832_1=amp; DAC0832_2=sin_codecnt; cnt

30、+; else if(fun=2) / 三角波 DAC0832_1=amp; if(cnt<128) DAC0832_2=(uchar)(float)(cnt)*0xff/255); cnt+; else DAC0832_2=255-(uchar)(float)(cnt)*0xff/255); cnt+; else if(fun=3) DAC0832_1=amp; / 方波 if(cnt<128) DAC0832_2=0x00; cnt+; else DAC0832_2=0xff; cnt+; void down0_show(uchar dis_bit) /按方式0譯碼 send(

31、0xa1); /左移send(0x80|dis_bit); /由dis_bit決定數(shù)碼管哪一位顯示delay_50us();send(number); /由number決定顯示數(shù)字delay_50us();CS=1;void down1_show(uchar dis_bit) /按方式1譯碼 send(0xa1); /左移send(0xc8|dis_bit); /由dis_bit決定數(shù)碼管哪一位顯示delay_50us();send(number); /由number決定顯示數(shù)字delay_50us();CS=1;void set_point(dis_bit) /設(shè)置小數(shù)點(diǎn) send(0x80

32、|dis_bit);delay_50us();number=(0x80|number);send(number);delay_50us();CS=1;void key_number(void) /鍵值函數(shù) send(0x15);delay_50us();receive();delay_50us();switch(rebuf) case 0x06: number=0;down0_show(dis_bit); break; case 0x0e: number=1;down0_show(dis_bit); break; case 0x16: number=2;down0_show(dis_bit); break; case 0x1e: number=3;down0_show(dis_bit); break; case 0x26: number=4;down0_show(dis_bit); break; case 0x2e: number=5;down0_show(dis_bit); break; case 0x36: number=6;down0_show(dis_bit); break; case 0x3e: number=7;down0_show(dis_bit); break; case

溫馨提示

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

評論

0/150

提交評論