單片機(jī)的DA 接口應(yīng)用 用0832單片機(jī)控制生成正弦波,頻率和幅值可調(diào)_第1頁(yè)
單片機(jī)的DA 接口應(yīng)用 用0832單片機(jī)控制生成正弦波,頻率和幅值可調(diào)_第2頁(yè)
單片機(jī)的DA 接口應(yīng)用 用0832單片機(jī)控制生成正弦波,頻率和幅值可調(diào)_第3頁(yè)
單片機(jī)的DA 接口應(yīng)用 用0832單片機(jī)控制生成正弦波,頻率和幅值可調(diào)_第4頁(yè)
單片機(jī)的DA 接口應(yīng)用 用0832單片機(jī)控制生成正弦波,頻率和幅值可調(diào)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、桂 林 電 子 科 技 大 學(xué)單片機(jī)最小應(yīng)用系統(tǒng)設(shè)計(jì)報(bào)告指導(dǎo)老師: 吳 兆 華學(xué) 生: 劉 毅 學(xué) 號(hào): 082011119 桂林電子科技大學(xué)機(jī)電工程學(xué)院?jiǎn)纹瑱C(jī)最小應(yīng)用系統(tǒng)設(shè)計(jì)報(bào)告一、設(shè)計(jì)題目3二、設(shè)計(jì)目的3三、系統(tǒng)硬件圖43.1系統(tǒng)的硬件電路原理圖43.2 最小系統(tǒng)原理電路圖43.3 電壓放大電路6四、程序流程圖 6五、系統(tǒng)說(shuō)明與分析85.1設(shè)計(jì)步驟85.2 d/a轉(zhuǎn)換器與mcs-51單片機(jī)接口85.3 da轉(zhuǎn)換器選擇要點(diǎn)及輔助電路95.4典型的d/a轉(zhuǎn)換器芯片dac0832性能介紹105.5 8051單片機(jī)簡(jiǎn)要介紹135.6 數(shù)碼顯示部分16六、源程序17七、總結(jié)24八、參考文獻(xiàn)24單片機(jī)

2、最小應(yīng)用系統(tǒng)設(shè)計(jì)報(bào)告一、設(shè)計(jì)題目單片機(jī)的d/a 接口應(yīng)用:用0832單片機(jī)控制生成正弦波,頻率和幅值可調(diào)。二、設(shè)計(jì)目的設(shè)計(jì)目的:1.了解單片微機(jī)系統(tǒng)中實(shí)現(xiàn)d/a(數(shù)字/模擬)轉(zhuǎn)換的原理及方法;2.詳細(xì)了解d/a轉(zhuǎn)換芯片0832的性能及編程方法;3.了解單片機(jī)系統(tǒng)中擴(kuò)展d/a轉(zhuǎn)換的基本原理,了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集;4.掌握dac0832,at89c51輸入/輸出接口電路設(shè)計(jì)方法;5.掌握dac0832轉(zhuǎn)換實(shí)現(xiàn)的程序控制方法;6.掌握單片機(jī)匯編編程技術(shù)中的設(shè)計(jì)和分析方法;7.學(xué)會(huì)使用并熟練掌握電路繪制軟件protel99se(或dxp);8.掌握電路圖繪制及pcb圖布線技巧。 設(shè)計(jì)要求:1、在

3、系統(tǒng)掌握單片機(jī)相應(yīng)基礎(chǔ)知識(shí)的前提下,熟悉單片機(jī)最小應(yīng)用系統(tǒng)的設(shè)計(jì)方法及系統(tǒng)設(shè)計(jì)的基本步驟。2、完成所需單片機(jī)最小應(yīng)用系統(tǒng)原理圖設(shè)計(jì)繪制的基礎(chǔ)上完成系統(tǒng)的電路圖設(shè)計(jì)。3、完成系統(tǒng)所需的硬件設(shè)計(jì)制作,在提高實(shí)際動(dòng)手能力的基礎(chǔ)上進(jìn)一步鞏固所學(xué)知識(shí)。4、進(jìn)行題目要求功能基礎(chǔ)上的軟件程序編程,會(huì)用相應(yīng)軟件進(jìn)行程序調(diào)試和測(cè)試工作。5、用at89c51,dac0832設(shè)計(jì)出題目所要求的正弦波實(shí)現(xiàn)頻率和幅值可調(diào)輸出,并針對(duì)實(shí)際設(shè)計(jì)過(guò)程中軟、硬件設(shè)計(jì)方面出現(xiàn)的問(wèn)題提出相應(yīng)解決辦法。6、通過(guò)單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)將所學(xué)的知識(shí)融會(huì)貫通,鍛煉獨(dú)立設(shè)計(jì)、制作和調(diào)試單片機(jī)應(yīng)用系統(tǒng)的能力;領(lǐng)會(huì)單片機(jī)應(yīng)用系統(tǒng)的軟、硬件調(diào)試方法

4、和系統(tǒng)的研制開發(fā)過(guò)程,為進(jìn)一步的科研實(shí)踐活動(dòng)打下堅(jiān)實(shí)的基礎(chǔ)。三、系統(tǒng)硬件圖3.1系統(tǒng)的硬件電路原理圖系統(tǒng)的硬件電路圖如圖1所示,從圖中可以看到該電路主要有時(shí)鐘電路、復(fù)位電路、d/a轉(zhuǎn)換電路和運(yùn)算放大電路等組成。電源電路有設(shè)備提供,在原理圖上不再說(shuō)明,本文簡(jiǎn)單介紹電源電路的組成原理。圖1 系統(tǒng)硬件電路原理圖3.2 最小系統(tǒng)原理圖1 8051單片機(jī):圖2 8051引腳圖2 時(shí)鐘電路該電路主要有電容c1、c2和晶振y1組成。其組成原理圖如圖3所示,圖中xtal1為芯片內(nèi)部振蕩電路的輸入端,xtal2為芯片內(nèi)部振蕩電路的輸出端。圖3 時(shí)鐘電路3 復(fù)位電路單片機(jī)通常采用的復(fù)位方式有上電復(fù)位和按鈕復(fù)位兩種

5、。本次設(shè)計(jì)用的復(fù)位方式是按鈕電平復(fù)位。其原理圖如圖4所示。當(dāng)按下按鈕sw時(shí),電容對(duì)r6迅速放電,reset端變?yōu)楦唠娖?,reset松開后,電容通過(guò)電阻r6進(jìn)行充電,reset端恢復(fù)為低電平。圖4 復(fù)位電路3.3 電壓放大電路電壓放大電路主要有l(wèi)m358組成,lm358內(nèi)部包括有兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用,也適合用于雙電源工作模式。電壓放大電路組成如圖5所示。圖5 電壓放大電路四、程序流程圖本設(shè)計(jì)程序流程圖如下:子程序流程圖:圖6 程序流程圖五、系統(tǒng)說(shuō)明與分析5.1設(shè)計(jì)步驟1. 理解設(shè)計(jì)任務(wù)要求(通過(guò)閱讀有關(guān)資料及調(diào)查研究);2. 對(duì)總體方

6、案進(jìn)行分析、論證;3. 系統(tǒng)硬件電路的設(shè)計(jì);4. 系統(tǒng)控制軟件的設(shè)計(jì);1) 以功能明確、相互界面能清晰分割的軟件程序?yàn)榛A(chǔ),確定主程序流程框圖;2) 以主程序流程框圖為基礎(chǔ),確定各模塊程序算法及實(shí)現(xiàn)的功能,進(jìn)一步確定各模塊程序流程框圖;3) 根據(jù)軟件流程框圖,用at89c51匯編語(yǔ)言編寫主程序和延時(shí)子程序;4) 系統(tǒng)軟、硬件的調(diào)試;5) 編寫課程設(shè)計(jì)說(shuō)明書;6) 答辯驗(yàn)收。5.2 d/a轉(zhuǎn)換器與mcs-51單片機(jī)接口模數(shù)轉(zhuǎn)換器(d/a)就是一種把數(shù)字信號(hào)轉(zhuǎn)換成為模擬電信號(hào)的器件。d/a轉(zhuǎn)換是單片機(jī)應(yīng)用測(cè)控系統(tǒng)典型的接口技術(shù)內(nèi)容,d/a轉(zhuǎn)換接口設(shè)計(jì)的主要任務(wù)是選擇d/a集成芯片,配置外圍電路及器

7、件,實(shí)現(xiàn)數(shù)字量到模擬量的線性轉(zhuǎn)換。 一 d/a轉(zhuǎn)換器的基本原理與分類 d/a轉(zhuǎn)換器用來(lái)將數(shù)字量轉(zhuǎn)換成模擬量。它的基本要求是輸出電壓vo應(yīng)該和輸入數(shù)字量成正比,即:vo=d*vr 其中, vr為參考電壓。每一個(gè)數(shù)字量都是數(shù)字代碼的按位組合,每一位數(shù)字代碼都有一定的“權(quán)”,對(duì)應(yīng)一定大小的模擬量。為了將數(shù)字量轉(zhuǎn)換成模擬量,應(yīng)該將其每一位都轉(zhuǎn)換成相應(yīng)的模擬量,然后求和既可得到與數(shù)字量成正比的模擬量。 da轉(zhuǎn)換器可分成兩大類:1.直接da轉(zhuǎn)換器是指直接將輸入的數(shù)字信號(hào)轉(zhuǎn)換為輸出的模擬信號(hào)。2.間接da轉(zhuǎn)換器是先將輸入的數(shù)字信號(hào)轉(zhuǎn)換為某種中間量,然后再把這種中間量轉(zhuǎn)換成為輸出的模擬信號(hào)。其中,間接da轉(zhuǎn)換

8、方式在集成da轉(zhuǎn)換器中很少使用。 二 da的轉(zhuǎn)換器的主要指標(biāo) 1分辨率這里指最小輸出電壓(對(duì)應(yīng)的輸入數(shù)字量只有最低有效位為“1”)與最大輸出電壓(對(duì)應(yīng)的數(shù)字輸出信號(hào)所有有效位全為“1”)之比,例如對(duì)于10位da轉(zhuǎn)換器,其分辨率為:0.0001。分辨率越高,轉(zhuǎn)換時(shí),對(duì)應(yīng)數(shù)字輸入信號(hào)最低位的模擬信號(hào)電壓數(shù)值越小,也就越靈敏,有時(shí),也用數(shù)字輸入信號(hào)的有效位數(shù)來(lái)給出分辨率。例如,單片集成da轉(zhuǎn)換器ad7541的分辨率為12位,單片集成da轉(zhuǎn)換器dac0832的分辨率為8位等。2線性度通常用非線性誤差的大小表示da轉(zhuǎn)換器的線性度。并且,把理想的輸入輸出特性的偏差與滿刻度輸出之比的百分?jǐn)?shù),定義為非線性誤差

9、。例如,單片集成da轉(zhuǎn)換器ad7541的線性度(非線性誤差)為小于等于0.02fsr(fsr為滿刻度的英文縮寫)。3.轉(zhuǎn)換精度轉(zhuǎn)換精度以最大的靜態(tài)轉(zhuǎn)換誤差的形式給出。這個(gè)轉(zhuǎn)換誤差應(yīng)該是非線性誤差、比例系數(shù)誤差以及漂移誤差等綜合誤差。但是有的產(chǎn)品說(shuō)明中,只是分別給出各項(xiàng)誤差,而不給出綜合誤差。精度和分辨率是兩個(gè)不同的概念。精度是指轉(zhuǎn)換后所得的實(shí)際值對(duì)于理想值的接近程度,而分辨率是指能夠?qū)D(zhuǎn)換結(jié)果以后影響的最小輸入量,對(duì)于分辨率很高的d/a轉(zhuǎn)換器并不一定具有很高的精度 4建立時(shí)間對(duì)于一個(gè)理想的d/a轉(zhuǎn)換器,其數(shù)字輸入信號(hào)從一個(gè)二進(jìn)制數(shù)變到另一個(gè)二進(jìn)制數(shù)時(shí),其輸出模擬信號(hào)電壓,應(yīng)立即從原來(lái)的輸出電壓

10、跳到與新的數(shù)字信號(hào)相對(duì)應(yīng)的新的輸出電壓。但是在實(shí)際的da轉(zhuǎn)換器中,電路中的電容、電感和開關(guān)電路會(huì)引起電路時(shí)間延遲。所謂建立時(shí)間,系指數(shù)模擬轉(zhuǎn)換器中的輸入代碼有滿度值的變化時(shí),其輸出模擬信號(hào)電壓(或模擬信號(hào)電流)達(dá)到滿刻度值的1/2lsb(或滿刻度值差百分之多少)時(shí)所需的時(shí)間。 5.3 da轉(zhuǎn)換器選擇要點(diǎn)及輔助電路 選擇da轉(zhuǎn)換芯片時(shí),主要考慮芯片的性能、結(jié)構(gòu)及應(yīng)用特性。在性能上必須滿足da轉(zhuǎn)換的要求;在結(jié)構(gòu)和應(yīng)用特性上應(yīng)滿足接口方便、外圍電路簡(jiǎn)單、價(jià)格低廉等要求。一、da轉(zhuǎn)換器的選擇要點(diǎn) 1. da轉(zhuǎn)換芯片主要性能指標(biāo)的選擇在da接口設(shè)計(jì)的實(shí)際應(yīng)用中,在選擇時(shí)主要考慮的是用位數(shù)(8位、12位)

11、表示的轉(zhuǎn)換精度和轉(zhuǎn)換時(shí)間。2. da轉(zhuǎn)換芯片的主要結(jié)構(gòu)特性與應(yīng)用特性選擇da轉(zhuǎn)換器的特性雖然主要表現(xiàn)為芯片內(nèi)部結(jié)構(gòu)的配置狀況,但這些配置狀況對(duì)da轉(zhuǎn)換接口電路設(shè)計(jì)帶來(lái)很大影響,主要有:1)數(shù)字輸入特性 數(shù)字輸入特性包括接收數(shù)的碼制、數(shù)據(jù)格式以及邏輯電平等。目前批量生產(chǎn)的da轉(zhuǎn)換芯片一般都只能接收自然二進(jìn)制數(shù)字代碼。2)數(shù)字輸出特性 目前多數(shù)d/a轉(zhuǎn)換器件均屬電流輸出器件,手冊(cè)上通常給出的輸入?yún)⒖茧妷杭皡⒖茧娮柚碌臐M碼(全l)輸出電流i0。另外還給出最大輸出短路電流以及輸出電壓允許范圍。3)鎖存特性及轉(zhuǎn)換控制 d/a轉(zhuǎn)換器對(duì)數(shù)字量輸出是否具有鎖存功能將直接影響與cpu的接口設(shè)計(jì)。如果d/a轉(zhuǎn)換

12、器沒(méi)有輸入鎖存器,通過(guò)cpu數(shù)據(jù)總線傳送數(shù)字量時(shí),必須外加鎖存器,否則只能通過(guò)具有輸出鎖存功能的io給d/a送入數(shù)字量。 4)參考源 d/a轉(zhuǎn)換中,參考電壓源是唯一影響輸出結(jié)果的模擬參量,是d/a轉(zhuǎn)換接口中的重要電路,對(duì)接口電路的工作性能、電路的結(jié)構(gòu)有很大影響使用內(nèi)部帶有低漂移精密參考電壓源的d/a轉(zhuǎn)換器不僅能保證有較好的轉(zhuǎn)換精度,而且可以簡(jiǎn)化接口電路。3. da轉(zhuǎn)換器模擬輸出電壓的極性所有的da轉(zhuǎn)換器件的輸出模擬電壓vo,都可以表達(dá)成為輸入數(shù)字量d(數(shù)字代碼)和模擬參考電壓vr的乘積。由于目前絕大多數(shù)da輸出的模擬量均為電流量,這個(gè)電流量要通過(guò)一個(gè)反相輸入的運(yùn)算放大器才能轉(zhuǎn)換成模擬電壓輸出。

13、在這種情況下,模擬輸出電壓vo與輸入數(shù)字量d和參考電壓vr的關(guān)系為:當(dāng)參考電壓vr極性不變時(shí),要想得到雙極性的模擬輸出,就必須采取四象限工作的da接口電路,該接口電路輸出的模擬電壓v0為:不論參考電壓vr的極性如何,都可以獲得雙極性的電壓輸出,在參考電壓極性不變時(shí),輸出模擬電壓的極性完全取決于輸入數(shù)字量二進(jìn)制碼的最高位(msb)。5.4典型的d/a轉(zhuǎn)換器芯片dac0832性能介紹 dac083008310832是8位分辯率的da轉(zhuǎn)換集成芯片,與微處理器完全兼容。這個(gè)系列的芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用 這類da轉(zhuǎn)換器由8位輸入鎖存器、8位da

14、c寄存器、八位da轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成 。dac0832的應(yīng)用特性與引腳功能 dac0830系列芯片是一種具有兩個(gè)輸入數(shù)據(jù)寄存器的8位dac,是一個(gè)8位d/a轉(zhuǎn)換器芯片,單電源供電,從+5v+15v均可正常工作。其主體部分為由t型狀態(tài)。而模擬開關(guān)控制標(biāo)準(zhǔn)電源在t型電阻網(wǎng)絡(luò)所產(chǎn)生的電流。輸入的數(shù)字量通過(guò)兩級(jí)緩沖器送到 d/a 轉(zhuǎn)換電路。通過(guò)對(duì)這兩級(jí)緩沖器進(jìn)行控制,可以實(shí)現(xiàn)直通、單緩沖、雙緩沖三種工作方式。如果控制信號(hào)使得兩級(jí)緩沖器一直處于選通狀態(tài),則 dac0832 工作在直通方式;當(dāng)輸入寄存器、 dac 寄存器中有一個(gè)直接選通,另一個(gè)受控制,則它工作在單緩沖方式;當(dāng)輸入寄存器、dac 寄

15、存器都受控制時(shí),它工作在雙緩沖方式。dac0832屬于電流型輸出的 d/a 轉(zhuǎn)換器。這些電流經(jīng)外部運(yùn)算放大器實(shí)現(xiàn) i-v 變換輸出模擬電壓。模擬電壓根據(jù)不同的外接電路又可分為單極性和雙極性。dac0832是8位芯片,采用cmos工藝和r2rt形電阻解碼網(wǎng)絡(luò), 轉(zhuǎn)換結(jié)果為一對(duì)差動(dòng)電流 i01和 i02輸出,其主要性能參數(shù)為:分辨率: 8位單電源供電:5v-15v參考電壓:-10v10v 轉(zhuǎn)換時(shí)間:1us滿刻度誤差;士1lsb 數(shù)據(jù)輸入電平與ttl電平兼容電流穩(wěn)定時(shí)間1us;可單緩沖、雙緩沖或直接數(shù)字輸入;只需在滿量程下調(diào)整其線性度;低功耗,200mw。1)dac0832內(nèi)部結(jié)構(gòu)和引腳 dac08

16、32的內(nèi)部結(jié)構(gòu)如圖7所示:圖7 dac0832的內(nèi)部結(jié)構(gòu)圖dac0832引腳如圖8所示,它采用20線雙列直插式封裝,引腳功能如下: (1)d7d0轉(zhuǎn)換數(shù)據(jù)輸入。(2)cs片選信號(hào)(輸入),低電平有效。(3)ile數(shù)據(jù)鎖存允許信號(hào)(輸入),高電平有效。(4)wr1第一信號(hào)(輸入),低電平有效。該信號(hào)與ile 信號(hào)共同控制輸入寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式:當(dāng)ile=1和xfer=0時(shí),為輸入寄存器直通方式;當(dāng)ile=1和wr1 =1時(shí),為輸入寄存器鎖存方式。 (5) wr2 第2寫信號(hào)(輸入),低電平有效.該信號(hào)與信號(hào)合在一起控制dac寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式:當(dāng) wr2=0和

17、xfer=0時(shí),為 dac寄存器直通方式; 當(dāng)wr2=1和xfer=0時(shí),為dac寄存器鎖存方式。 圖8 0832引腳圖(6)xfer數(shù)據(jù)傳送控制信號(hào)(輸入),低電平有效 。 (7)iout2電流輸出“1”。當(dāng)數(shù)據(jù)為全“1”時(shí),輸出電流最大;為全“0”時(shí)輸出電流最小。(8)iout2電流輸出“2”。dac轉(zhuǎn)換器的特性之一是:iout1 +iout2=常數(shù)。(9)rfb反饋電阻端即運(yùn)算放大器的反饋電阻端,電阻(15k)已固化在芯片中。因?yàn)閐ac0832是電流輸出型d/a轉(zhuǎn)換器,為得到電壓的轉(zhuǎn)換輸出,使用時(shí)需在兩個(gè)電流輸出端接運(yùn)算放大器,rfb即為運(yùn)算放大器的反饋電阻。(10)vref基準(zhǔn)電壓,是

18、外加高精度電壓源,與芯片內(nèi)的電阻網(wǎng)絡(luò)相連接,該電壓可正可負(fù),范圍為-10v+10v。(11)dgnd數(shù)字地(12)agnd模擬地2)dac0832工作方式 dac0832利用wr1 、 wr2 、ile、xfer 控制信號(hào)可以構(gòu)成三種不同的工作方式。(1) 直通方式wr1= wr2 =0時(shí),數(shù)據(jù)可以從輸入端經(jīng)兩個(gè)寄存器直接進(jìn)入d/a轉(zhuǎn)換器。(2)單緩沖方式兩個(gè)寄存器之一始終處于直通,即wr1=0或wr2=0,另一個(gè)寄存器處于受控狀態(tài)。(3)雙緩沖方式兩個(gè)寄存器均處于受控狀態(tài)。這種工作方式適合于多模擬信號(hào)同時(shí)輸出的應(yīng)用場(chǎng)合。 其中, 所謂單緩沖方式就是使dac0832的兩個(gè)輸入寄存器中有一個(gè)(多

19、位dac寄存器)處于直通方式,而另一個(gè)處于受控鎖存方式。單緩沖方式連接如圖9所示:wr74ls373gdac0832di0-7csxferwr1wr2vccilevrefrfbiout1iout2agnddgnd-+5vp2.7alep080c51ooovout 圖9 單緩沖方式連接圖為使dac寄存器處于直通方式,應(yīng)使wr2 =0和xfer=0。為此可把這兩個(gè)信號(hào)固定接地,或如電路中把wr2與wr1相連,把xfer與cs相連。 為使輸入寄存器處于受控鎖存方式,應(yīng)把wr1接80c51的wr,ile接高電平。此外還應(yīng)把cs接高位地址線或地址譯碼輸出,以便于對(duì)輸入寄存器進(jìn)行選擇。 在多路d/a轉(zhuǎn)換的

20、情況下,若要求同步轉(zhuǎn)換輸出,必須采用雙緩沖方式。dac0832采用雙緩沖方式時(shí),數(shù)字量的輸入鎖存和d/a轉(zhuǎn)換輸出是分兩步進(jìn)行的。第一,cpu分時(shí)向各路d/a轉(zhuǎn)換器輸入要轉(zhuǎn)換數(shù)字量并鎖存在各自輸入寄存器中。第二,cpu對(duì)所有的d/a轉(zhuǎn)換器發(fā)出控制信號(hào),使各路輸入寄存器中的數(shù)據(jù)進(jìn)入dac寄存器,實(shí)現(xiàn)同步轉(zhuǎn)換輸出。如下圖10為兩片dac0832與8031的雙緩沖方式連接電路,能實(shí)現(xiàn)兩路同步輸出。 dac0832轉(zhuǎn)換器輸出可以分電流輸出和電壓輸出兩種形式,通常均需通過(guò)運(yùn)算放大器進(jìn)變換。按電壓輸出時(shí),還可分單極性和雙極性兩種形式 5.5 8051單片機(jī)簡(jiǎn)要介紹8051單片機(jī)包含中央處理器(cpu)、存儲(chǔ)

21、器(程序存儲(chǔ)器rom和數(shù)據(jù)存儲(chǔ)器ram)、定時(shí)/計(jì)數(shù)器、并行i/o接口(p1、p2、p3、p0共4個(gè)8位口)、一個(gè)雙工串行接口和5個(gè)中斷源等幾大單元及數(shù)據(jù)總線、地址總線和控制總線三大總線等結(jié)構(gòu)組成。8051與dac0832的雙緩沖方式接口電路如圖10所示。dac0832的電壓輸出方式如圖11所示csxferrfbiout1iout21wr2wrwrdac0832dac0832rfbiout1iout2csxferdi7di01wr2wrdi7di0-+-+vxvyp0.7-p0.080c51p2.5p2.6p2.7 圖10 8051與dac0832的雙緩沖方式接口電路圖10 dac0832的電

22、壓輸出方式 mcs-51系列單片機(jī)中的8031、8051及8751均采用40pin封裝的雙列直接dip結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)i/o口,中斷口線與p3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:mcs-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如圖12所示。圖12 mcs-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖pin20:接地腳。pin40:正電源腳,正常工作或?qū)ζ瑑?nèi)eprom燒入程序時(shí),接+5v電源。pin19:時(shí)鐘xtal1腳,片內(nèi)振蕩電路的輸入端。pin18:時(shí)鐘xtal2腳,片內(nèi)振蕩電路的輸出端。8051的時(shí)鐘有兩種方式,一種

23、是片內(nèi)時(shí)鐘振蕩方式,但需在18和19腳外接石英晶體(2-12mhz)和振蕩電容,振蕩電容的值一般取10p-30p。另外一種是外部時(shí)鐘方式,即將xtal1接地,外部時(shí)鐘信號(hào)從xtal2腳輸入。輸入輸出(i/o)引腳:pin39-pin32為p0.0-p0.7輸入輸出腳,pin1-pin1為p1.0-p1.7輸入輸出腳,pin21-pin28為p2.0-p2.7輸入輸出腳,pin10-pin17為p3.0-p3.7輸入輸出腳。pin9:reset/vpd復(fù)位信號(hào)復(fù)用腳。當(dāng)8051通電,時(shí)鐘電路開始工作,在reset引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器pc指向0

24、000h,p0-p3輸出口全部為高電平,堆棧指針寫入07h,其它專用寄存器被清“0”。reset由高電平下降為低電平后,系統(tǒng)即從0000h地址開始執(zhí)行程序。然而,初始復(fù)位不改變r(jià)am(包括工作寄存器r0-r7)的狀態(tài)。pin30:ale/當(dāng)訪問(wèn)外部程序器時(shí),ale(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ale端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ale會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是eprom,在編程其間,將用于輸入編程脈沖。pin29:當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈

25、沖選通信號(hào),pc的16位地址數(shù)據(jù)將出現(xiàn)在p0和p2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到p0口上,由cpu讀入并執(zhí)行。pin31:ea/vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kb的程序存儲(chǔ)器,當(dāng)ea為高電平并且程序地址小于4kb時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò)4kb地址則讀取外部指令數(shù)據(jù)。如ea為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的8031,ea端必須接地。 在對(duì)8751的eprom進(jìn)行編程時(shí),ea/vpp腳還需加上用于編程的電壓。5.6數(shù)碼顯示部分八段led數(shù)碼管由8個(gè)發(fā)光二極管組成?;?個(gè)長(zhǎng)條形的發(fā)光管排列成“日”

26、字形,另一個(gè)圓點(diǎn)形的發(fā)光管在顯示器的右下角作為顯示小數(shù)點(diǎn)用,它能顯示各種數(shù)字及部份英文字母。led數(shù)碼管有兩種不同的形式:一種是8個(gè)發(fā)光二極管的陽(yáng)極都連在一起的,稱之為共陽(yáng)極led數(shù)碼管;另一種是8個(gè)發(fā)光二極管的陰極都連在一起的,稱之為共陰極led數(shù)碼管。四位八段數(shù)碼管的引腳結(jié)構(gòu)如下圖13所示:圖13 四位八段數(shù)碼管的引腳結(jié)構(gòu)其中s1,s2,s3,s4為字位選擇端口,a,b,c,d,e,f,g,dp為字形選擇端口。在單片機(jī)應(yīng)用系統(tǒng)中,數(shù)碼管顯示常用兩種方法:靜態(tài)顯示和動(dòng)態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個(gè)顯示器都要占用單獨(dú)的具有鎖存功能的i/o接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字

27、形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼。動(dòng)態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極com是各自獨(dú)立地受i/o線控制。cpu向字段輸出口送出字形碼時(shí),所有顯示器接收到相同的字形碼,但究竟那個(gè)顯示器亮,則取決于com端,而這一端是由i/o控制的,所以就可以自行決定何時(shí)顯示哪一位了。所謂動(dòng)態(tài)掃描就是指我們采用分時(shí)的方法,輪流控制各個(gè)顯示器的com端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮

28、,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。六、源程序1、主程序 /* /dac0832波形控制試驗(yàn) /功能:根據(jù)按鍵控制輸出頻率和幅值可調(diào)的正弦波*/#include #include #include #include key.c#define pi 3.14#define datanum 256 /定義一個(gè)周期的點(diǎn)數(shù)/#define dac0832 xbyte0x7fff /定義端口地址sbit wri=p36; /定義寫信號(hào)的io口sbit cs=p27; /定義片選信號(hào)的io口/數(shù)碼管顯示的編碼u_char code number_code = 0xc0

29、,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xc1,0x8e;/顯示共陽(yáng)極的09,全滅,u,f/*延時(shí)*/void delay_us(u_int time) do time-; while (time1); /毫秒級(jí)延時(shí)程序 void delay_ms(u_int time) while(time!=0) delay_us(1000); time-; /外部中斷0的服務(wù)程序void int0_sever(void) interrupt 0 using 1 u_char i; g_keys=1; view_state(); int0=1

30、; do i=int0; while(i); /等待p32恢復(fù)/外部中斷1的服務(wù)程序void int1_sever(void) interrupt 2 using 1 u_char i; g_keys=2; view_state(); int1=1; do i=int1; while(i); /等待p33恢復(fù)/演示數(shù)碼管顯示數(shù)字定時(shí)器1的中斷服務(wù)/*/void time1_sever(void) interrupt 1 using 2 u_char buffer4,i; tr0 = 0;buffer3=number_codeqian;buffer2=number_codebai;buffer1

31、=number_codeshi;buffer0=number_codege;p1=0xff;p2|=0x0f; for (i=0; i4; i+) switch (i) case 0: p1=buffer0;p2&=0xfe; delay_ms(1);p2|=0x0f;break; case 1: p1=buffer1;p2&=0xfd; delay_ms(1);p2|=0x0f;break; case 2: p1=buffer2;p2&=0xfb; delay_ms(1);p2|=0x0f;break; case 3: p1=buffer3;p2&=0xf7; delay_ms(1);p2|

32、=0x0f;break; default: break; th0 =0xd8; /預(yù)置計(jì)數(shù)0初值 tl0 =0xf0; tr0 =1;/實(shí)現(xiàn)da轉(zhuǎn)換void daconvert(u_char data) /ea = 0; cs=1; wri=1; delay_us(2); cs=0; wri=0; p0=data; cs=1; wri=1; ea = 1;/正弦波數(shù)據(jù)計(jì)算/入口:x為轉(zhuǎn)換的量,max為幅值控制u_int getsindata(u_char x) u_int sindata; sindata=(sin(2*pi*x/datanum)+1)/2.0)*255; sindata=si

33、ndata*g_max/16; /max為1至16 return sindata;/*/系統(tǒng)上電初始化/*/void system_init(void) tmod = 0x11; / t/c0 t/c1方式 0 定時(shí) th0 = 0xd8; /預(yù)置計(jì)數(shù)0初值 tl0 = 0xf0; tr0 = 1; /開啟t0計(jì)數(shù) ie = 0x87; /定時(shí)器0,外部中斷0,1,cpu開中斷it1=1; it0=1; /選擇int0為電平觸發(fā)方式g_state=0;g_keys=0;qian=0; bai=0; shi=0; ge=1; g_max=16;g_fre=10;/主程序main() u_char i=0; system_init(); /系統(tǒng)初始化 while (1) for( i=0;i16) g_max=1; shi=g_max/10; ge=g_max%10; else if(g_state=2) g_fre+; if(g_fre10) g_fre=1; shi=g_fre/10; ge=g_fre%10; /功能:退出設(shè)置void save_fre(void) qian=10; bai=10; shi=10; ge=2; /顯示輸出正弦波的代號(hào)/*功能:根據(jù)獲得的鍵值和當(dāng)前的狀態(tài)來(lái)確定下一步執(zhí)行

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論