畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計(jì)_第1頁(yè)
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計(jì)_第2頁(yè)
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計(jì)_第3頁(yè)
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計(jì)_第4頁(yè)
畢業(yè)論文:應(yīng)用ADC0809的AD轉(zhuǎn)換設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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、應(yīng)用adc0809的a/d轉(zhuǎn)換設(shè)計(jì)摘要此次設(shè)計(jì)的主要內(nèi)容是利用adc0809設(shè)計(jì)制做a/d轉(zhuǎn)換器,電位器提供模擬量輸入,編制程序,將模擬量轉(zhuǎn)換成二進(jìn)制數(shù)字量,51單片機(jī)通過(guò)8255的pa口輸出到發(fā)光二極管進(jìn)行顯示,并將8位二進(jìn)制數(shù)轉(zhuǎn)換為3位bcd碼并在3位數(shù)碼管上進(jìn)行顯示,并在此基礎(chǔ)上進(jìn)行擴(kuò)展。由于熱敏電阻輸出量為模擬量,同樣通過(guò)adc0809進(jìn)行a/d轉(zhuǎn)換,并將其輸出值在發(fā)光二極管以及3位數(shù)碼管上進(jìn)行顯示,來(lái)反映溫度的變化。壓力傳感器的輸出量經(jīng)過(guò)adc0809進(jìn)行模數(shù)轉(zhuǎn)換后經(jīng)發(fā)光二極管以及數(shù)碼管的顯示來(lái)反映壓力的變化。 關(guān)鍵詞:adc0809 a/d轉(zhuǎn)換 51單片機(jī) 發(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)實(shí)中的應(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單片機(jī)概述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è)計(jì)及程序?qū)崿F(xiàn)113.1 a/d轉(zhuǎn)換的總體設(shè)計(jì)113.2 51單片機(jī)的中斷123.2.1 中斷的基本概念123.2.2 程序的入口地址123.2.3 中斷響應(yīng)的條件、過(guò)程與時(shí)間123.3 adc0809的工

6、作過(guò)程133.3.1 adc0809與51單片機(jī)的連接153.3.2 adc0809工作流程圖及程序?qū)?63.4 8255的工作方式173.4.1 8255的工作方式及編程173.4.2 8255a的三種工作方式的功能及應(yīng)用173.4.3 8255與51單片機(jī)的連接及工作203.5 發(fā)光二極管以及l(fā)ed數(shù)碼管的顯示213.5.1 發(fā)光二極管的顯示213.5.2 led動(dòng)態(tài)顯示方式及實(shí)現(xiàn)214.設(shè)計(jì)擴(kuò)展24擴(kuò)展1:利用熱敏電阻檢測(cè)溫度的變化24擴(kuò)展2:利用壓力傳感器檢測(cè)壓力的變化255.總結(jié)26參考文獻(xiàn)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ù)的模擬量(如象元的灰階、電壓、電流,電壓,溫度等)通過(guò)取樣轉(zhuǎn)換成離散的數(shù)字量。1.1.2 a/d轉(zhuǎn)換器的類型現(xiàn)在已經(jīng)發(fā)展形成的a/d轉(zhuǎn)換器主要有以下幾種:1、 積分型轉(zhuǎn)換器,其優(yōu)點(diǎn)是精度高,抗干擾性好;價(jià)格便宜,但速度慢。2、 逐次逼近型a/d轉(zhuǎn)換器,精度,速度,價(jià)格適中。3、 并行a/d轉(zhuǎn)換器,速度快,價(jià)格也昂貴。除以上三種a/d轉(zhuǎn)換器以外還有流水線a/d轉(zhuǎn)換器,折疊差值a/d轉(zhuǎn)換器,過(guò)采樣 a/d轉(zhuǎn)換器。 在此次設(shè)計(jì)中應(yīng)用的a/d轉(zhuǎn)換器為adc0809,它采用的是逐次逼近型a/d轉(zhuǎn)換方法,在以后介紹硬件的時(shí)候再詳細(xì)介紹逐次逼近型a/d轉(zhuǎn)換技術(shù)。1.2 a/d轉(zhuǎn)

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

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

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

11、點(diǎn)位置成一定關(guān)系的電壓。電位器的作用: 調(diào)節(jié)電壓(含直流電壓與信號(hào)電壓)和電流的大小。電位器的結(jié)構(gòu)特點(diǎn):電位器的結(jié)構(gòu)特點(diǎn)電位器的電阻體有兩個(gè)固定端,通過(guò)手動(dòng)調(diào)節(jié)轉(zhuǎn)軸或滑柄,改變動(dòng)觸點(diǎn)在電阻體上的位置,則改變了動(dòng)觸點(diǎn)與任一個(gè)固定端之間的電阻值,從而改變了電壓與電流的大小。2.3 adc0809概述32.3.1 adc0809的內(nèi)部邏輯結(jié)構(gòu)adc0809是采樣頻率為8位的、以逐次逼近原理進(jìn)行模數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行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由一個(gè)8路模擬開(kāi)關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)a/d轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開(kāi)關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用a/d轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,在此次設(shè)計(jì)中采用通道in0進(jìn)行模擬信號(hào)的采集,當(dāng)然也可以用其他通道進(jìn)行信號(hào)的采集,但是效果是一樣的,因此信號(hào)輸入端固定不變,選用in0。三態(tài)輸出鎖器用于鎖存a/d轉(zhuǎn)換完的數(shù)字量,當(dāng)oe端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。adc0809的主要特稱為:1)8路8位ad轉(zhuǎn)換器,即分辨率8位。 2)具有轉(zhuǎn)換起??刂贫恕?3)轉(zhuǎn)換時(shí)間為100s。4)單個(gè)5v電源供電

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

14、有效。當(dāng)ad轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開(kāi)輸出三態(tài)門,輸出數(shù)字量。clk:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于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àn)結(jié)構(gòu)。adc0809的分辨率為8位,其實(shí)質(zhì)上是實(shí)現(xiàn)一種二進(jìn)制搜索算法。逐次逼近寄存器型a/d轉(zhuǎn)換器的基本結(jié)構(gòu)如圖2.3。 模擬輸入電壓(vin)由采樣/保持電路保持。為實(shí)現(xiàn)二進(jì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è)置為高電平,進(jìn)行下一次比較。這個(gè)過(guò)程一直持續(xù)到最低有效位(lsb)。上述操作結(jié)束后,也就完成了轉(zhuǎn)換,n位轉(zhuǎn)換結(jié)果儲(chǔ)存在寄存器內(nèi)。2.4 mc51單片機(jī)概述451單片機(jī)組成結(jié)構(gòu)中包含運(yùn)算器、控制器、片內(nèi)存儲(chǔ)器、

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

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

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

19、輸出端,使內(nèi)部各復(fù)位信號(hào)輸出端,使內(nèi)部各寄存器清除,置a,b,c口為輸入口。:寫(xiě)信號(hào)輸入端,使cpu輸出數(shù)據(jù)或控制字到8255。:讀信號(hào)輸入端,使8255送數(shù)據(jù)或狀態(tài)信號(hào)呢到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引腳。:芯片選擇信號(hào)。來(lái)自片外譯碼電路,用于選中8255a芯片,低電平有效。:芯片讀出信號(hào),低電平有效。即當(dāng)為0時(shí),51單片機(jī)從8255a讀入數(shù)據(jù)或狀態(tài)信息。:芯片寫(xiě)入信號(hào),低電平有效。即當(dāng)為0時(shí),51單片機(jī)向8255a寫(xiě)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35、的地址依in0-in7順序?yàn)?00h-8007。 3.3.2 adc0809工作流程圖及程序?qū)?圖3.3 adc0809與51單片機(jī)的連接 本次設(shè)計(jì)是利用中斷方式讀入轉(zhuǎn)換結(jié)果,在中斷方式下,a/d轉(zhuǎn)換結(jié)束后會(huì)自動(dòng)產(chǎn)生eoc信號(hào),將其與51單片機(jī)外部中斷相接。 實(shí)現(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è)計(jì)中通過(guò)8255的最基本的工作0即可完成數(shù)字信號(hào)的傳輸作用,而且簡(jiǎn)單快捷。3.4.1 8255的工作方式及編程工作方式選擇控制字的格式如圖所示。關(guān)于工作方式選擇控制字說(shuō)明如下。d7d6d5d4d3d2d1d0d7:方式選擇控制字標(biāo)識(shí)位。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ò)方式選擇子規(guī)定為輸入/輸出,端口c分為兩個(gè)4位端口,這兩個(gè)4位端口也可以由方式選擇字規(guī)定為輸入或輸出,這樣4個(gè)端口組合起來(lái)共有16種輸入/輸出組合。 1) 在同步傳送時(shí):雙方互相知道對(duì)方動(dòng)作,不需要應(yīng)答信號(hào)。cpu不需要查詢外設(shè)的狀態(tài)。在這種情況下,對(duì)接口的要求很簡(jiǎn)單,只要能傳送數(shù)據(jù)就行了。 2) 在查詢方式傳送時(shí):如果要用查詢傳送,可以將a口和b口作為輸入/輸出數(shù)據(jù)端口,而將端口c的4個(gè)數(shù)位(高4位或第4位均可)規(guī)定為輸出端口,用來(lái)輸出控制信號(hào),將端口c的另外4個(gè)數(shù)位規(guī)定為輸入端口,用來(lái)讀入外設(shè)的狀態(tài)

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

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

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

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

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

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

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

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

46、開(kāi)始8位二進(jìn)制數(shù)除以100余數(shù)除以10余數(shù)送入32h商送入30h商送入31h結(jié)束圖3.7 8位二進(jìn)制數(shù)轉(zhuǎn)換為3位bcd碼流程圖實(shí)現(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è)計(jì)擴(kuò)展 擴(kuò)展1:利用熱敏電阻檢測(cè)溫度的變化熱敏電阻是敏感元件的一類,其電阻值會(huì)隨著熱敏電阻本體溫度的變化呈現(xiàn)出階躍性的變化, 具有半導(dǎo)體特性. 熱敏電阻按照溫度系數(shù)的不同分為: 正溫度系數(shù)熱敏電阻(簡(jiǎn)稱ptc熱敏電阻) 負(fù)溫度系數(shù)熱敏電阻(簡(jiǎn)稱ntc熱敏電阻) 正溫度系數(shù)熱敏電阻其電阻值隨著ptc熱敏電阻本體溫度的升高呈現(xiàn)出階躍性的增加, 溫度 越高,電阻值越大. 負(fù)溫度系數(shù)熱敏電阻其電阻值隨著ntc熱敏電阻本體溫度的升

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

溫馨提示

  • 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)論