畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計_第1頁
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計_第2頁
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計_第3頁
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計_第4頁
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、應(yīng)用adc0809的a/d轉(zhuǎn)換設(shè)計摘要此次設(shè)計的主要內(nèi)容是利用adc0809設(shè)計制做a/d轉(zhuǎn)換器,電位器提供模擬量輸入,編制程序,將模擬量轉(zhuǎn)換成二進制數(shù)字量,51單片機通過8255的pa口輸出到發(fā)光二極管進行顯示,并將8位二進制數(shù)轉(zhuǎn)換為3位bcd碼并在3位數(shù)碼管上進行顯示,并在此基礎(chǔ)上進行擴展。由于熱敏電阻輸出量為模擬量,同樣通過adc0809進行a/d轉(zhuǎn)換,并將其輸出值在發(fā)光二極管以及3位數(shù)碼管上進行顯示,來反映溫度的變化。壓力傳感器的輸出量經(jīng)過adc0809進行模數(shù)轉(zhuǎn)換后經(jīng)發(fā)光二極管以及數(shù)碼管的顯示來反映壓力的變化。 關(guān)鍵詞:adc0809 a/d轉(zhuǎn)換 51單片機 發(fā)光二極管 數(shù)碼管the

2、 design of the a/d conversion based on adc0809abstractthe main content of this design is that use the adc0809 make a a/d conversion.the adc0809 get analog signal from potentiometers. program and transform it into digital as binary. the 51single-chip sent the digital to light-emitting diodes by the a

3、 i/o interface of 8255,change the 8 bit binary number into 3 bit bcd code , then develops it.the output of the thermistor is analog, use the adc0809 make a a/d conversion and sent to light-emitting diodes and digital tube display it the aim is to reflect the diversification of temperature. adc0809 c

4、hange the output of pressure sensor into digital data and be displayed by light-emitting and digital tube,from this we can see the change of pressure we gave.keywords:adc0809a/dconversion 51single-chip light-emitting目錄1 緒論11.1 a/d轉(zhuǎn)換概述11.1.1 a/d轉(zhuǎn)換的概念11.1.2 a/d轉(zhuǎn)換器的類型11.2 a/d轉(zhuǎn)換在現(xiàn)實中的應(yīng)用12 a/d轉(zhuǎn)換的硬件介紹22.1

5、總體硬件介紹22.2 電位器概述22.3 adc0809概述32.3.1 adc0809的內(nèi)部邏輯結(jié)構(gòu)32.3.2 adc0809的外部特征42.3.3 逐次逼近型a/d轉(zhuǎn)換方法52.4 mc51單片機概述462.5 8255可編程并行i/o接口芯片概述72.5.1芯片引腳及其內(nèi)部結(jié)構(gòu)72.5.2 8255的內(nèi)部結(jié)構(gòu)82.6 發(fā)光二極管概述102.7 led數(shù)碼管概述103 a/d轉(zhuǎn)換的具體設(shè)計及程序?qū)崿F(xiàn)113.1 a/d轉(zhuǎn)換的總體設(shè)計113.2 51單片機的中斷123.2.1 中斷的基本概念123.2.2 程序的入口地址123.2.3 中斷響應(yīng)的條件、過程與時間123.3 adc0809的工

6、作過程133.3.1 adc0809與51單片機的連接153.3.2 adc0809工作流程圖及程序?qū)?63.4 8255的工作方式173.4.1 8255的工作方式及編程173.4.2 8255a的三種工作方式的功能及應(yīng)用173.4.3 8255與51單片機的連接及工作203.5 發(fā)光二極管以及l(fā)ed數(shù)碼管的顯示213.5.1 發(fā)光二極管的顯示213.5.2 led動態(tài)顯示方式及實現(xiàn)214.設(shè)計擴展24擴展1:利用熱敏電阻檢測溫度的變化24擴展2:利用壓力傳感器檢測壓力的變化255.總結(jié)26參考文獻27致謝281 緒論1.1 a/d轉(zhuǎn)換概述1.1.1 a/d轉(zhuǎn)換的概念模數(shù)轉(zhuǎn)換亦稱模擬一數(shù)字轉(zhuǎn)

7、換,與數(shù)/模轉(zhuǎn)換相反,是將連續(xù)的模擬量(如象元的灰階、電壓、電流,電壓,溫度等)通過取樣轉(zhuǎn)換成離散的數(shù)字量。1.1.2 a/d轉(zhuǎn)換器的類型現(xiàn)在已經(jīng)發(fā)展形成的a/d轉(zhuǎn)換器主要有以下幾種:1、 積分型轉(zhuǎn)換器,其優(yōu)點是精度高,抗干擾性好;價格便宜,但速度慢。2、 逐次逼近型a/d轉(zhuǎn)換器,精度,速度,價格適中。3、 并行a/d轉(zhuǎn)換器,速度快,價格也昂貴。除以上三種a/d轉(zhuǎn)換器以外還有流水線a/d轉(zhuǎn)換器,折疊差值a/d轉(zhuǎn)換器,過采樣 a/d轉(zhuǎn)換器。 在此次設(shè)計中應(yīng)用的a/d轉(zhuǎn)換器為adc0809,它采用的是逐次逼近型a/d轉(zhuǎn)換方法,在以后介紹硬件的時候再詳細介紹逐次逼近型a/d轉(zhuǎn)換技術(shù)。1.2 a/d轉(zhuǎn)

8、換在現(xiàn)實中的應(yīng)用a/d轉(zhuǎn)換技術(shù)已應(yīng)用在現(xiàn)實生活中的多個領(lǐng)域,隨著計算機、通信和多媒體技術(shù)的飛速發(fā)展,全球高新技術(shù)領(lǐng)域數(shù)字化的程度已不斷加深。如今電子產(chǎn)業(yè)已經(jīng)形成了以數(shù)字技術(shù)為主體的格局,特別是半導(dǎo)體產(chǎn)業(yè)顯的尤為突出。半導(dǎo)體技術(shù)數(shù)字化和集成化的日益提高,在推動微控制器(mcu)、數(shù)字信號處理器(dsp)、微機械電子系統(tǒng)(mems)的發(fā)展中,也推動了“嵌入” 或“隱性”模數(shù)轉(zhuǎn)換技術(shù)的發(fā)展。在這些因素的影響下,模數(shù)轉(zhuǎn)換技術(shù)正朝著高精度、高速度的發(fā)展方向邁進。現(xiàn)在時的我們已經(jīng)身處數(shù)字化時代,計算機,多媒體,軟件技術(shù)都是以數(shù)字化為基礎(chǔ)。數(shù)字化技術(shù)正在引發(fā)一場范圍廣泛的產(chǎn)品革命,電器設(shè)備,信息處理設(shè)備,工

9、廠控制設(shè)備都將向數(shù)字化方向變化。2 a/d轉(zhuǎn)換的硬件介紹 2.1 總體硬件介紹1 在本次設(shè)計中,電信號由電位器提供,其范圍是0-5v的電壓,電壓進入adc0809進行數(shù)模轉(zhuǎn)換,轉(zhuǎn)換結(jié)束時將轉(zhuǎn)換結(jié)果送到51單片機進行短時間儲存,之后將8位二進制數(shù)發(fā)送到8255 的pa口,8位發(fā)光二極管與之相連,當(dāng)有相應(yīng)電信號到來時便通過發(fā)光與否進行顯示相應(yīng)結(jié)果。同時在51單片機內(nèi)將8位二進制數(shù)轉(zhuǎn)換為3位bcd碼,輸出到3位7段數(shù)碼管上進行顯示。熱敏電阻電位器adc0809壓力傳感器發(fā)光二極管825551單片機數(shù)碼管 圖2.1 總體硬件介紹 2.2 電位器概述電位器是一種可調(diào)的電子元件。它是由一個電阻體和一個轉(zhuǎn)動

10、或滑動系統(tǒng)組成。用于分壓的可變電阻器。在裸露的電阻體上,緊壓著一至兩個可移金屬觸點。觸點位置確定電阻體任一端與觸點間的阻值。當(dāng)電阻體的兩個固定觸電之間外加一個電壓時,通過轉(zhuǎn)動或滑動系統(tǒng)改變觸點在電阻體上的位置,在動觸點與固定觸點之間便可得到一個與動觸點位置成一定關(guān)系的電壓。 它大多是用作分壓器,這是電位器是一個四端元件。電位器基本上就是滑動變阻器,有幾種樣式,一般用在音箱音量開關(guān)和激光頭功率大小調(diào)節(jié) 電位器是一種可調(diào)的電子元件。它是由一個電阻體和一個轉(zhuǎn)動或滑動系統(tǒng)組成。當(dāng)電阻體的兩個固定觸電之間外加一個電壓時,通過轉(zhuǎn)動或滑動系統(tǒng)改變觸點在電阻體上的位置,在動觸點與固定觸點之間便可得到一個與動觸

11、點位置成一定關(guān)系的電壓。電位器的作用: 調(diào)節(jié)電壓(含直流電壓與信號電壓)和電流的大小。電位器的結(jié)構(gòu)特點:電位器的結(jié)構(gòu)特點電位器的電阻體有兩個固定端,通過手動調(diào)節(jié)轉(zhuǎn)軸或滑柄,改變動觸點在電阻體上的位置,則改變了動觸點與任一個固定端之間的電阻值,從而改變了電壓與電流的大小。2.3 adc0809概述32.3.1 adc0809的內(nèi)部邏輯結(jié)構(gòu)adc0809是采樣頻率為8位的、以逐次逼近原理進行模數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行a/d轉(zhuǎn)換。adc0809是cmos單片型逐次逼近式ad轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖2.2所示。 圖2.2

12、 adc0809的內(nèi)部邏輯結(jié)構(gòu)由圖2.1可知,adc0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個a/d轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用a/d轉(zhuǎn)換器進行轉(zhuǎn)換,在此次設(shè)計中采用通道in0進行模擬信號的采集,當(dāng)然也可以用其他通道進行信號的采集,但是效果是一樣的,因此信號輸入端固定不變,選用in0。三態(tài)輸出鎖器用于鎖存a/d轉(zhuǎn)換完的數(shù)字量,當(dāng)oe端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。adc0809的主要特稱為:1)8路8位ad轉(zhuǎn)換器,即分辨率8位。 2)具有轉(zhuǎn)換起??刂贫?。 3)轉(zhuǎn)換時間為100s。4)單個5v電源供電

13、。5)模擬輸入電壓范圍05v,不需零點和滿刻度校準(zhǔn)。 6)工作溫度范圍為-4085攝氏度。7)低功耗,約15mw。 2.3.2 adc0809的外部特征4adc0809芯片有28條引腳,采用雙列直插式封裝,下面說明各引腳功能。 in0in7:8路模擬量輸入端。2-12-8:8位數(shù)字量輸出端。adda、addb、addc:3位地址輸入線,用于選通8路模擬輸入中的一路。ale:地址鎖存允許信號,輸入,高電平有效。 start: ad轉(zhuǎn)換啟動信號,輸入,高電平有效。 eoc: ad轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)ad轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 oe:數(shù)據(jù)輸出允許信號,輸入,高電平

14、有效。當(dāng)ad轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。clk:時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 ref(+)、ref(-):基準(zhǔn)電壓。vcc:電源,單一5v。 圖 2.3 逐次逼近型 gnd:地。 a、b、c:地址輸入線。2.3.3 逐次逼近型a/d轉(zhuǎn)換方法逐次逼近寄存器型a/d轉(zhuǎn)換器是采樣速率低于5msps的中等至高分辨率應(yīng)用的常見結(jié)構(gòu)。adc0809的分辨率為8位,其實質(zhì)上是實現(xiàn)一種二進制搜索算法。逐次逼近寄存器型a/d轉(zhuǎn)換器的基本結(jié)構(gòu)如圖2.3。 模擬輸入電壓(vin)由采樣/保持電路保持。為實現(xiàn)二進制搜索算法,n位寄存器首先設(shè)置在中間刻度(即:10

15、000000,最高有效位(msb)為1)。這樣,d/a轉(zhuǎn)換器輸出(vdac)被設(shè)為vref/2,vref是提供給adc的基準(zhǔn)電壓。然后,比較判斷vin是小于還是大于vdac。如果vinvdac,則比較器輸出邏輯高電平或1,n位寄存器的msb保持1。想法,如果vinvdac,則比較器輸出邏輯低電平,n位寄存器的最高有效位(msb)清為0。隨后逐次逼近型(sar)控制邏輯移至下一位,并將該位設(shè)置為高電平,進行下一次比較。這個過程一直持續(xù)到最低有效位(lsb)。上述操作結(jié)束后,也就完成了轉(zhuǎn)換,n位轉(zhuǎn)換結(jié)果儲存在寄存器內(nèi)。2.4 mc51單片機概述451單片機組成結(jié)構(gòu)中包含運算器、控制器、片內(nèi)存儲器、

16、4個并行i/o口,串行口,定時/計算器、中斷系統(tǒng)、振蕩器等功能部件。在此次設(shè)計中,51單片機起到銜接作用,其主要動作即為控制adc0809進行模擬數(shù)據(jù)的采集及轉(zhuǎn)換,并將轉(zhuǎn)換的結(jié)果暫存在寄存器中,在輸出到相應(yīng)的顯示器件上。在此次設(shè)計中應(yīng)用的中斷方式讀入結(jié)果,當(dāng)a/d轉(zhuǎn)換結(jié)束后會自動產(chǎn)生eoc信號,將其與51單片機的外部中斷相連接,此時單片接接收轉(zhuǎn)換完成的結(jié)果。雙列直插(dip)式封裝的51單片機芯片一般為40條引腳, 每個引腳功能說明如下:1 主電源引腳vcc(40腳):接+5v電源正端;vss(20腳):接+5v電源地端。2.輸入/輸出引腳(1)p0口(39-32):p0.0-p0.7統(tǒng)稱為p

17、0口。在不接片外存儲器與不擴展i/o口時,可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲器或擴展i/o口時,p0口分時復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。(2)p3口(10-17腳):p3.0-p3.7統(tǒng)稱為p3口。除作為準(zhǔn)雙向i/o口使用外,還可以將每一位用于第二功能,而且p3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能,其中p3.2口的第二功能為外部中斷0請求輸入端,低電平有效。3.控制線(1) ale/(30腳):地址鎖存有效信號輸出端。(2) psen(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。在從外部程序存儲器讀取指令或常數(shù)期間,在每個機器周期內(nèi)該信號兩次有效,以通

18、過數(shù)據(jù)總線p0口讀回指令或常數(shù)。在訪問片外數(shù)據(jù)存儲器期間,psen信號將不出現(xiàn)。(3) res/vpd(9腳):res即reset,vpd為備用電源,該引腳為單片機的上電復(fù)位或掉電保護端。(4) ea/vpp(31腳):ea為外部程序存儲器選用端。該引腳有效(低電平)時,只選用片外程序存儲器,否則單片機上電或復(fù)位后選用片內(nèi)程序存儲器。2.5 8255可編程并行i/o接口芯片概述28255是單片機應(yīng)用系統(tǒng)中廣泛被采用的可編程外部i/o擴展芯片。它有3個8位并行i/o口,每個口有三種工作方式。2.5.1芯片引腳及其內(nèi)部結(jié)構(gòu)各引腳功能如下:vcc:電源的+5v斷gnd:電源的0端reset:復(fù)位信號

19、輸出端,使內(nèi)部各復(fù)位信號輸出端,使內(nèi)部各寄存器清除,置a,b,c口為輸入口。:寫信號輸入端,使cpu輸出數(shù)據(jù)或控制字到8255。:讀信號輸入端,使8255送數(shù)據(jù)或狀態(tài)信號呢到cpu。: 片選端。a1、a0:地址總線的最低2位,用于決定端口地址。d7-d0:雙向數(shù)據(jù)總線。pa7-pa0:a口的8位i/o引腳。pb7-pb0:b口的8位i/o引腳。pc7-pc0:c口的8位i/o引腳。:芯片選擇信號。來自片外譯碼電路,用于選中8255a芯片,低電平有效。:芯片讀出信號,低電平有效。即當(dāng)為0時,51單片機從8255a讀入數(shù)據(jù)或狀態(tài)信息。:芯片寫入信號,低電平有效。即當(dāng)為0時,51單片機向8255a寫

20、出數(shù)據(jù)或控制字。a1、a0:端口選擇信號。用于尋址8255a內(nèi)部各端口,a1、a0的不同狀態(tài)與各端口的對應(yīng)關(guān)系如下: a1 a0 對應(yīng)的端口 0 0 a口 0 1 b口 1 1 c口 1 1 控制口電源與地線:vcc:電源線,+5v。gnd:接地線。 圖2.4 8255內(nèi)部結(jié)構(gòu)框圖 2.5.2 8255的內(nèi)部結(jié)構(gòu) 8255的內(nèi)部結(jié)構(gòu)由三個端口寄存器(端口a、端口b、端口c)、兩組控制電路、一個數(shù)據(jù)總線緩沖器、一個讀寫控制邏輯電路部分組成。其內(nèi)部結(jié)構(gòu)框圖如圖2.4所示。各部分功能如下:1. 三個輸入/輸出端口8255有3個8口數(shù)據(jù)端口 a、b、c,每個端口都可以用軟件設(shè)置成輸入或輸出端口,但也有

21、各自的功能特點。1) 端口a:對應(yīng)有一個8位數(shù)據(jù)輸入鎖存器和一個8位數(shù)據(jù)輸出鎖存器/緩沖器,因此端口a可以為8位雙向輸入/輸出口,且輸入/輸出均具有鎖存功能。2) 端口b:對應(yīng)有一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸出鎖存器/緩沖器,因此端口b可以為8位雙向輸入/輸出口,且輸出具有鎖存功能。3) 端口c:對應(yīng)兩組4位雙向輸入/輸出口,它含有一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)數(shù)輸出鎖存器/緩沖器,即輸出鎖存, 輸入不鎖存。4) a口和b口常常獨立設(shè)為輸入/輸出。c口常常通過命令分為兩個4位端口,每個4位端口包含一個4位的輸入緩沖和一個4位的輸出鎖存/緩沖器,分別為a口和b口提供控制信號和狀態(tài)信

22、號。2. 兩組控制電路a、b兩組控制電路分別實現(xiàn)對a組i/d端口線(a7-a0和c7-c4)和b組i/o端口線 (b7-b0和c3-c0)的輸入/輸出控制。一方面接收來自內(nèi)部總線上的控制字一方面接收來自讀/寫控制邏輯的讀/寫命令,從而決定兩組端口工作方式和讀/寫操作。a組:端口a和端口c(上半部分)pc7-pc4。b組:端口b和端口c(下半部分)pc3-pc0。3. 讀/寫控制邏輯電路讀/寫控制邏輯負(fù)責(zé)管理8255的數(shù)據(jù)傳輸過程。根據(jù)地址譯碼后的片選、來自控制總線的信號、以及來自地址總線的地址信息a1、a0,實現(xiàn)對數(shù)據(jù)、狀態(tài)、控制信號的傳輸。如表2.3所示為8255的控制信號與傳輸動作的對應(yīng)關(guān)

23、系。4. 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器為雙向三態(tài)8為緩沖器,它是8255與微機數(shù)據(jù)總線的接口。其上傳輸?shù)男畔⒂休斎霐?shù)據(jù)、輸出數(shù)據(jù)、51單片機寫給8255的控制字以及從8255讀入的狀態(tài)信息。2.6 發(fā)光二極管概述6在此次設(shè)計中基本設(shè)計實現(xiàn)的顯示元件時8個不同顏色的發(fā)光二極管,當(dāng)有高電平通過時,發(fā)光二極管亮,低電平時發(fā)光二極管滅。電平信號的來源是8255的pa口。2.7 led數(shù)碼管概述7led數(shù)碼管是由發(fā)光二極管顯示字段組成的顯示器件,在此次單片機應(yīng)用系統(tǒng)中是八段led。這種顯示器有共陰極和共陽極兩種,此次系統(tǒng)中使用的是共陰極顯示器,如圖所示。共陰極led顯示器的發(fā)光二極管的陰極接地,發(fā)光二極

24、管的陽極為高電平時,發(fā)光二極管點亮。顯示字符共陰極段選碼顯示字符共陰極段選碼03fhc39h106hd5eh25bhe79h34fhf71h466hp73h56dhu3eh67dht31h707hy6eh87fh8.ffh96fh“滅”00ha77hb7ch表2.1 八段led的段選碼八段led顯示器中有8個發(fā)光二極管,其中7個發(fā)光二極管構(gòu)成7筆字形“”,1個發(fā)光二極管構(gòu)成小數(shù)點。八段led顯示塊的管教如圖所示。從a-b管教輸出不同的8位二進制數(shù),可顯示不同的數(shù)字或字符。通常把控制發(fā)光二極管的8位二進制數(shù)稱為段選碼,共陽極與共陰極的段選碼互為反碼,如表2.1所示。3 a/d轉(zhuǎn)換的具體設(shè)計及程序

25、實現(xiàn)3.1 a/d轉(zhuǎn)換的總體設(shè)計8在本次設(shè)計中,當(dāng)51單片機給adc0809的start引腳一個高電平,標(biāo)志著轉(zhuǎn)換的開始,adc0809通過in0通道進行模擬信號的采集,in0通道是通過地址鎖存器來確定的,3位端口地址與8位數(shù)據(jù)口的前三位是復(fù)用的。采集模擬信號之后在adc0809的內(nèi)部進行模數(shù)轉(zhuǎn)換,這時adc0809的eoc引腳輸出電平為低電平,表示轉(zhuǎn)換正在進行,當(dāng)轉(zhuǎn)換完畢,eoc輸出高電平給51單片機的int0引腳,引起中斷,51單片機給adc0809的oe引腳一高電平,adc0809隨即輸出轉(zhuǎn)換完成的數(shù)據(jù),到51單片機的內(nèi)部寄存器中。一方面51單片機通過8255的pa口將數(shù)據(jù)輸出到8位發(fā)光

26、二極管上進行顯示,另一方面,51單片機將8位二進制數(shù)轉(zhuǎn)換為3位bcd碼并輸出到3位7段數(shù)碼管上進行顯示。電位器 adc809 51單片機 顯示部分 發(fā)光二極管顯示1、控制2、數(shù)據(jù)存儲3、8位二進制數(shù)轉(zhuǎn)換為3位bcd碼模擬信號a/d轉(zhuǎn)換數(shù)碼管顯示圖3.1 總體設(shè)計圖3.2 51單片機的中斷103.2.1 中斷的基本概念所謂中斷,是指cpu對系統(tǒng)中或系統(tǒng)外發(fā)生的某個事件的一種響應(yīng)過程,即cpu暫時停止現(xiàn)行程序的執(zhí)行,而自動轉(zhuǎn)去執(zhí)行預(yù)先安排好的處理該事件的服務(wù)子程序;當(dāng)處理結(jié)束后,再返回到被暫停程序的斷點處,繼續(xù)執(zhí)行原來的程序。實現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)稱為中斷系統(tǒng)。中斷系統(tǒng)是計算機的重要

27、組成部分。實時控制、故障自動處理時往往用到中斷系統(tǒng),計算機與外部設(shè)備間傳送數(shù)據(jù)及實現(xiàn)人機聯(lián)系時常常采用中斷方式。3.2.2 程序的入口地址程序地址空間可以任意安排,但復(fù)位和中斷源的程序入口地址在51單片機中式固定的,不能更改。這些入口地址見表。復(fù)位后,cpu從0000h地址開始執(zhí)行程序。其他地址為中斷服務(wù)程序入口地址,響應(yīng)某個中斷時,將自動從其對應(yīng)的入口地址執(zhí)行中斷服務(wù)程序如表3.1.操作入口地址復(fù)位0000h外部中斷00003h定時器/計數(shù)器0溢出000bh外部中斷10013h定時器/計數(shù)器1溢出001bh串行口中斷0023h表3.1 中斷服務(wù)程序入口地址3.2.3 中斷響應(yīng)的條件、過程與時

28、間(1) 中斷響應(yīng)的條件單片機響應(yīng)中斷的條件為中斷源有請求(中斷允許寄存器ie相應(yīng)位置1),且cpu開中斷(即ea=1)。這樣,在每個機器周期的s5p2期間,對所有中斷源按用戶設(shè)置的優(yōu)先級和內(nèi)部規(guī)定的優(yōu)先級進行順序檢查,并可在sp6期間找到所有有效的中斷請求。如有中斷請求,且滿足下列條件,則在下一個機器周期的sp1期間響應(yīng)中斷,否則將丟棄中斷采樣的結(jié)果:1)無同級或高級中斷正在處理。2)現(xiàn)行指令到最后一個機器周期且已結(jié)束。3)現(xiàn)行指令為reti或訪問ie、ip指令,執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。(2) 中斷響應(yīng)過程9cpu響應(yīng)中斷后,由硬件自動執(zhí)行如下的功能操作:1)根據(jù)中斷

29、請求的源的優(yōu)先級高低,對相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置1.2)保護斷點,即把程序計數(shù)器pc的內(nèi)容壓入堆棧保護。3)清內(nèi)部硬件可清除的中斷請求標(biāo)志位(ie0、ie1、tf0、tf1)。4)把被相應(yīng)的中斷服務(wù)程序入口地址送入pc,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序執(zhí)行。各中斷服務(wù)程序的入口地址見表。中斷服務(wù)程序的最后一條指令必須是中斷返回指令reti。cpu執(zhí)行該指令時,先將相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器清0,然后從堆棧中彈出斷點地址到pc,從而返回到斷點處。由以上過程可知,51單片機響應(yīng)中斷后,只保護斷點而不保護現(xiàn)場信息,且不能清除串行口中斷標(biāo)志t1和r1,也無法清除電平觸發(fā)的外部中斷請求信號。3.3 adc0809

30、的工作過程5 adc0809對輸入模擬量要求:信號單極性,電壓范圍是05v,若信號太小, addcaddbadda選通的通道000in0001in1010in2011in3100in4101in5110in6111in7表3.2 adc0809通道地址選擇表必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。in0-in7為8路模擬量輸入端,模擬量輸入電壓的范圍是0-5v,對應(yīng)的數(shù)字量為00h-ffh,轉(zhuǎn)換時間為100us。adda、addb、addc為通道地址線,用于選通通道,詳細情況如表3.2所示。ale是通道地址鎖存信號,其上出現(xiàn)脈沖上升

31、沿時,把adda、addb、addc地址狀態(tài)送入地址鎖存器中。vref(+)、vref(-)接基準(zhǔn)電源,在精度要求不太高的情況下,供電電源可用作基準(zhǔn)電源。start是啟動引腳,其上脈沖的下降沿啟動一次新的a/d轉(zhuǎn)換。eco是轉(zhuǎn)換結(jié)束信號,可用于向單片機申請中斷或供單片機查詢。clk是時鐘端,典型的時鐘頻率為640khz。adc0809的工作的定時關(guān)系如圖3.1所示。圖3.2 adc0809轉(zhuǎn)換工作時序從圖中可以看出在進行a/d轉(zhuǎn)換時,通道地址應(yīng)先送到adda-addc輸入端。然后在ale輸入端加一個正跳變脈沖,將通道地址鎖存到adc0809內(nèi)部的地址鎖存器中,這樣對應(yīng)的模擬電壓輸入就和內(nèi)部變換

32、電路接通。為了啟動,必須在start端加一個負(fù)跳變信號。此后,變換工作就開始進行,標(biāo)志adc0809正在工作的狀態(tài)信號eoc由高電平(空閑狀態(tài))變?yōu)榈碗娖剑üぷ鳡顟B(tài))。一旦變換結(jié)束,eoc信號就又由低電平變成高,此時只要在oe端加一個高電平,即可打開數(shù)據(jù)線的三態(tài)緩沖器從d0-d7數(shù)據(jù)線讀得一次變換后的數(shù)據(jù)。數(shù)字量輸出及控制線:11條 st為轉(zhuǎn)換啟動信號。當(dāng)st上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行a/d轉(zhuǎn)換;在轉(zhuǎn)換期間,st應(yīng)保持低電平。eoc為轉(zhuǎn)換結(jié)束信號。當(dāng)eoc為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在進行a/d轉(zhuǎn)換。oe為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到

33、的數(shù)據(jù)。oe1,輸出轉(zhuǎn)換得到的數(shù)據(jù);oe0,輸出數(shù)據(jù)線呈高阻狀態(tài)。d7d0為數(shù)字量輸出線。 clk為時鐘輸入信號線。因adc0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500khz, vref(),vref()為參考電壓輸入。 adc0809的工作過程是:首先輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 ad轉(zhuǎn)換,之后eoc輸出信號變低,指示轉(zhuǎn)換正在進行。直到ad轉(zhuǎn)換完成,eoc變?yōu)楦唠娖剑甘綼d轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)oe輸入高電平

34、時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。3.3.1 adc0809與51單片機的連接adc0809與51單片機的連接如圖3.2所示由圖可知adc0809的轉(zhuǎn)換時鐘由單片機的ale提供。因adc0809的典型轉(zhuǎn)換頻率為640khz,ale的信號頻率與晶振頻率有關(guān)。51單片機通過地址線p2.0和讀、寫控制線rd、wr來控制轉(zhuǎn)換器的模擬輸入通道地址鎖存、啟動和輸出允許。模擬輸入通道地址的譯入adda-add由p0.0-p0.2提供,因adc0809具有通道地址鎖存功能,故p0.0-p0.2不需要經(jīng)鎖存器接入adda-addc。根據(jù)p2.0和p0.0-p0.2的連接方法,8個模擬輸入通道

35、的地址依in0-in7順序為800h-8007。 3.3.2 adc0809工作流程圖及程序?qū)?圖3.3 adc0809與51單片機的連接 本次設(shè)計是利用中斷方式讀入轉(zhuǎn)換結(jié)果,在中斷方式下,a/d轉(zhuǎn)換結(jié)束后會自動產(chǎn)生eoc信號,將其與51單片機外部中斷相接。 實現(xiàn)程序:org 0000hljmp startorg 0003hljmp int_0org 0040hstart:setb easetb it0 setb ex0圖3.4 adc0809工作流程圖 a_d:mov dptr,#8000hmov a,#00hmovx dptr,asjmp a_dint_0:movx a,dptrmov r

36、7,a retiend3.4 8255的工作方式11此次設(shè)計中通過8255的最基本的工作0即可完成數(shù)字信號的傳輸作用,而且簡單快捷。3.4.1 8255的工作方式及編程工作方式選擇控制字的格式如圖所示。關(guān)于工作方式選擇控制字說明如下。d7d6d5d4d3d2d1d0d7:方式選擇控制字標(biāo)識位。d6,d5:a組方式選擇 00:方式0,01:方式1,1x:方式2。d4:端口a,1:輸入,0:輸出。d3:pc0-pc4,1:輸入,0:輸出。d2:b組方式選擇,1:方式1,0:方式0。d1:端口b,1:輸入,0:輸出。d0:pc0-pc3,1:輸入,0:輸出。3.4.2 8255a的三種工作方式的功能

37、及應(yīng)用1. 方式0:基本輸入/輸出方式。端口a、b、c都可以工作在此方式。端口a、端口b通過方式選擇子規(guī)定為輸入/輸出,端口c分為兩個4位端口,這兩個4位端口也可以由方式選擇字規(guī)定為輸入或輸出,這樣4個端口組合起來共有16種輸入/輸出組合。 1) 在同步傳送時:雙方互相知道對方動作,不需要應(yīng)答信號。cpu不需要查詢外設(shè)的狀態(tài)。在這種情況下,對接口的要求很簡單,只要能傳送數(shù)據(jù)就行了。 2) 在查詢方式傳送時:如果要用查詢傳送,可以將a口和b口作為輸入/輸出數(shù)據(jù)端口,而將端口c的4個數(shù)位(高4位或第4位均可)規(guī)定為輸出端口,用來輸出控制信號,將端口c的另外4個數(shù)位規(guī)定為輸入端口,用來讀入外設(shè)的狀態(tài)

38、。這樣就可以利用端口c來配合端口a和端口b的輸入/輸出操作。2. 方式1:選通輸入/輸出方式。端口a、b都可以工作在此方式。端口c作聯(lián)絡(luò)信號。端口a和端口b用方式1進行輸入/輸出時,要利用端口c提供的選通信號和應(yīng)答信號。而端口c中的數(shù)位與這些信號之間有固定的對應(yīng)關(guān)系,這種關(guān)系部是用程序可以改變的。(1) 方式1的特點 1) 端口a和端口b可以分別作為兩個數(shù)據(jù)口工作在方式1,任一端口可以作為輸入或輸出口。 2) 如果端口a或端口b工作在方式1,端口c中有3位規(guī)定為配合方式1工作的信號,其他端口和c口中的其他位可以工作在方式0,即作為輸入或輸出。 3) 如果端口a和端口b都工作在方式1,則端口c中

39、有6位規(guī)定為配合方式1工作信號,剩下兩位仍可工作在方式0,即作為輸入或者輸出。(2) 方式1輸入情況下有關(guān)信號的規(guī)定 1) 端口a工作在方式1并作為輸入口時,端口c的pc4、pc5、pc3配合端口a工作。其中,pc4作為選通輸入信號輸入端,pc5作為輸入緩沖區(qū)滿信號輸出端ibf,pc3則作為中斷請求信號輸出端intr。 2) 端口b工作在方式1并作為輸入口時,端口c的pc2、pc1、pc0配合端口b工作。其中,pc2作為選通輸入信號輸入端,pc1作為輸入緩沖區(qū)滿信號輸出端,pc0則作為中斷請求信號輸出端intr。(3) 方式1輸出情況下有關(guān)信號的規(guī)定1端口a工作在方式1并作為輸出口時,端口c的

40、pc6作為外設(shè)接收數(shù)據(jù)后的響應(yīng)信號輸入端ack,pc7作為輸出緩沖區(qū)滿信號輸出端obf,pc3則作為中斷請求信號輸出端intr。2端口b工作在方式1并作為輸出口時,端口c的餓pc2作為外設(shè)接收數(shù)據(jù)后的響應(yīng)信號輸入端口ack,pc4作為輸出緩沖區(qū)滿信號輸出端obf,pc0則作為中斷請求信號輸出端intr。如圖是端口a和端口b工作于方式1情況下作為輸入、輸出端口時的方式選擇控制字。3. 方式2:雙向輸入/輸出方式。只有端口a可以工作在此方式。端口c作聯(lián)絡(luò)信號。方式2只適用于端口a,端口c自動提供相應(yīng)的控制信號和狀態(tài)信號。pc3:中斷請求信號intr。pc4:外設(shè)到8255的選通信號,stb將外設(shè)送

41、到8255的數(shù)據(jù)打入輸入鎖存器。pc5:輸入緩沖滿信號ibf,通知cpu輸入數(shù)據(jù)已到輸入緩沖器,可以作為查詢信號。pc6:外設(shè)收到數(shù)據(jù)后的應(yīng)答信號。pc7:輸出緩沖器滿信號,表示cpu已將一個數(shù)據(jù)寫入8255的端口a,通知外設(shè)將數(shù)據(jù)取走??刂谱指袷饺鐖D表示。方式2是一種雙向方式,如果以個并行外部設(shè)備既可以作為輸入設(shè)備,又可以作為輸出設(shè)備,并且輸入/輸出的動作不會同時進行,那么將這個外設(shè)和8255的端口a相連,并使它工作在方式2,就非常適合。 d7為標(biāo)志位,必須為1,用來與端口c置1/置0控制字區(qū)別。3.4.3 8255與51單片機的連接及工作12 8255內(nèi)部芯片沒有地址鎖存能力,所以8255

42、片選信號cs及口地址選擇線a1、a0分別由51單片機的p0.7、p0.1、p0.0經(jīng)地址鎖存后提供。如果把沒有參與選地址的地址線的狀態(tài)都看做“1”狀態(tài),擇8255的a、b、c口及控制口地址分別為9000h、9001h、9002h、9003h。8255的復(fù)位端與51單片機的復(fù)位端相連,都接到51單片機的復(fù)位電路上。 51單片機與8255的接口電路如圖3.4所示。圖3.5 8255與51單片機的擴展連接圖由方式選擇控制字的格式與定義可確定出滿足要求的方式控制字為80h(10000000b)。對于8255編程,將80h寫入它的控制寄存器,初始化程序為:mov dptr, #9003hmov a,80

43、hmovx dptr,a將單片機內(nèi)部數(shù)據(jù)輸出到8255的a口,由前面內(nèi)容可知,adc0809的轉(zhuǎn)換結(jié)構(gòu)儲存到51單片機的r7寄存器中。實現(xiàn)此功能的程序為:mov dptr, #9003hmov a,80hmovx dptr,amov dptr,#9000hmov a,r7movx dptr,a3.5 發(fā)光二極管以及l(fā)ed數(shù)碼管的顯示3.5.1 發(fā)光二極管的顯示在此次設(shè)計中8個發(fā)光二極管與8255的pa口的0-7口依次相連接,當(dāng)8255的a口有高電平輸出到二極管上,則二極管變量,低電平到二極管上,二極管不滅。并不用程序初始化發(fā)光二極管,其顯示結(jié)果 與51單片機輸出到8255的a口中的8位二進制數(shù)

44、相同,如圖3.5所示為發(fā)光二極管的8255的連接圖。 圖3.6 發(fā)光二極管與8255的連接3.5.2 led動態(tài)顯示方式及實現(xiàn)在此次設(shè)計中我們采用的是led動態(tài)顯示,數(shù)碼管如圖3.1所示,所謂的動態(tài)顯示,是由于每一位的段選線都接在一個i/o口上,因此每送一個段選碼,8位就顯示同一個字符,這種顯示器是不能用的。解決此問題的方法是利用人的視覺滯留,從段選線i/o口上按位次分別送顯示字符的段選碼,在位選控制口也按相應(yīng)的次序分別選通相應(yīng)的顯示位,即給相應(yīng)的顯示位低電平,選通為就顯示相應(yīng)的字符,并保持幾毫秒的延時,未選通位不顯示字符。這樣,對各位顯示就是一個循環(huán)過程。從計算機的工作來看,在以個瞬時只有一

45、位顯示字符,而其它位都是熄滅的,但因為人的視覺滯留,這種動態(tài)變化是察覺不到的。從效果上看,各位顯示器能連續(xù)而穩(wěn)定地顯示不同的字符。在此次設(shè)計我們采用的是3位7段數(shù)碼顯示,。因為我在執(zhí)行這段程序之前adc轉(zhuǎn)換已經(jīng)完成,且存入到的單片機數(shù)據(jù)存儲器的r7里面,我們直接從r7中取出8位二進制數(shù)進行3位bcd數(shù)的轉(zhuǎn)換,將3位bcd數(shù)存入到51單片機的片內(nèi)數(shù)據(jù)存儲器的30h、31h、32h里面,之后分別輸出到相對應(yīng)的數(shù)碼管上。(1)8位二進制數(shù)轉(zhuǎn)換為3位bcd碼將8位二進制數(shù)轉(zhuǎn)換為3位bcd碼,并將3位bcd數(shù)分別存入30h,31h,32h寄存器中。以下為將8位二進制數(shù)轉(zhuǎn)換為3位bcd碼流程圖及實現(xiàn)程序:

46、開始8位二進制數(shù)除以100余數(shù)除以10余數(shù)送入32h商送入30h商送入31h結(jié)束圖3.7 8位二進制數(shù)轉(zhuǎn)換為3位bcd碼流程圖實現(xiàn)程序:bcd:mov a,r7 mov b,#10mov b,#100 div abdiv ab mov r0,amov r0,#32h dec r0mov r0,a mov r0,bdec r0 retmov a,b (3) 數(shù)碼管程序流程圖圖 3.8 數(shù)碼管顯示流程圖2) 數(shù)碼管顯示程序:mov r1,#30h mov r5,#0ffhmov r6,#00000001b loop1:lcall display mov r6,#0ffhmov a,r6 djnz

47、r6,$rl a djnz r5,loop1mov r6,a retinc r1 dly:lcall display mov r5,#0ffhmov a,r6 djnz r5,$rl a retmov r6,a display:inc r1 mov dptr,#0a002hlcall display mov a,#00h reti movx dptr,adelay: mov a,r1 mov dptr,#desgmovc a,a+dptrmov dptr,#0a004h movx dptr,amov a,r6mov dptr,#0a002h movx dptr,alcall dly mov d

48、ptr,#0a002hmov a,#00hmovx dptr,aretdesg:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhend4.設(shè)計擴展 擴展1:利用熱敏電阻檢測溫度的變化熱敏電阻是敏感元件的一類,其電阻值會隨著熱敏電阻本體溫度的變化呈現(xiàn)出階躍性的變化, 具有半導(dǎo)體特性. 熱敏電阻按照溫度系數(shù)的不同分為: 正溫度系數(shù)熱敏電阻(簡稱ptc熱敏電阻) 負(fù)溫度系數(shù)熱敏電阻(簡稱ntc熱敏電阻) 正溫度系數(shù)熱敏電阻其電阻值隨著ptc熱敏電阻本體溫度的升高呈現(xiàn)出階躍性的增加, 溫度 越高,電阻值越大. 負(fù)溫度系數(shù)熱敏電阻其電阻值隨著ntc熱敏電阻本體溫度的升

49、高呈現(xiàn)出階躍性的減小, 溫度 越高,電阻值越小.圖4.1溫度傳感器原理圖熱敏電阻的輸出值為模擬信號,由adc0809進行a/d轉(zhuǎn)換,由單片機輸出到法光二極管以及數(shù)碼管進行顯示。 擴展2:利用壓力傳感器檢測壓力的變化壓力傳感器是工業(yè)實踐中最為常用的一種傳感器,而我們通常使用的壓力傳感器主要是利用壓電效應(yīng)制造而成的,這樣的傳感器也稱為壓電傳感器。 我們知道,晶體是各向異性的,非晶體是各向同性的。某些晶體介質(zhì),當(dāng)沿著一定方向受到機械力作用發(fā)生變形時,就產(chǎn)生了極化效應(yīng);當(dāng)機械力撤掉之后,又會重新回到不帶電的狀態(tài),也就是受到壓力的時候,某些晶體可能產(chǎn)生出電的效應(yīng),這就是所謂的極化效應(yīng)。就是根據(jù)這個效應(yīng)研制出了壓力傳感器。 壓電傳感器中主要使用的壓電材料包括有石英、酒石酸鉀鈉和磷酸二氫胺。其中石英(二氧化硅)是一種天然晶體,壓電效應(yīng)就是在這種晶體中發(fā)現(xiàn)的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論