版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告題 目 環(huán)境光強(qiáng)測(cè)量?jī)x學(xué) 院 電子信息工程學(xué)院專(zhuān) 業(yè) 20 15 年 12月 22日電子學(xué)院通信工程目 錄 1.題義分析及解決方案 31.1 題義需求分析3 1.2 解決問(wèn)題方法及思路31.3 課題要求及分工3 2.硬件設(shè)計(jì) 4 2.1選擇芯片8255A 4 2.2選擇LED七段數(shù)碼管 72.3選擇光敏電阻 82.4選擇芯片ADC0809 92.5 硬件總邏輯圖及其說(shuō)明 103.控制程序設(shè)計(jì)123.1 控制程序設(shè)計(jì)思路說(shuō)明 123.2 程序流程圖 143.3 控制程序 154.上機(jī)調(diào)試過(guò)程28 4.1 硬件調(diào)試 28 4.2軟件調(diào)試 284.3聯(lián)機(jī)調(diào)試284.4調(diào)
2、試結(jié)果及問(wèn)題的提出28 5.設(shè)計(jì)結(jié)果分析及問(wèn)題討論296.參考文獻(xiàn)291.題義分析及解決方案設(shè)計(jì)一個(gè)簡(jiǎn)易的光照強(qiáng)度測(cè)量?jī)x,由光照強(qiáng)度產(chǎn)生的模擬電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),然后轉(zhuǎn)換為照度(單位是勒克斯)顯示在LED上;校準(zhǔn)照度測(cè)量器:在一定的光強(qiáng)度下,產(chǎn)生200數(shù)字量的電壓,以此對(duì)應(yīng)關(guān)系(照度電壓)將其它光強(qiáng)度轉(zhuǎn)換為勒克斯值,顯示在LED上。1.1題義需求分析光照強(qiáng)度測(cè)量?jī)x主要根據(jù)光敏電阻的特性制作的。光敏電阻值隨受到的光照強(qiáng)度的變化而變化(光照強(qiáng)度越大,電阻值越小)。將光敏電阻接入電路中,不同光照強(qiáng)度導(dǎo)致光敏電阻值變化,于是光敏電阻上的電壓發(fā)生變化,導(dǎo)致電路的輸出電壓也相應(yīng)變化。根據(jù)電壓-光照度函
3、數(shù)關(guān)系,由電壓計(jì)算得到光照強(qiáng)度值,然后以可視化界面形式輸出(即PC機(jī)和LED數(shù)碼管顯示),以供用戶(hù)查看結(jié)果。其中光敏電阻的特性是光敏電阻隨受到的光照強(qiáng)度的變化電阻值發(fā)生變化,光照強(qiáng)度越強(qiáng)電阻越小,在分壓電路中獲得電壓越低。根據(jù)這一特性,結(jié)合光照強(qiáng)度和輸出的模擬電壓之間的關(guān)系,可以得到某一光強(qiáng)度下的對(duì)應(yīng)的模擬電壓。將模擬電壓通過(guò)AD轉(zhuǎn)化器轉(zhuǎn)換為數(shù)字電壓,以便于計(jì)算機(jī)處理。然后再將數(shù)字電壓轉(zhuǎn)換成光照度。1.2.解決問(wèn)題方法及思路1.2.1硬件部分程序設(shè)計(jì)中用到的硬件是光敏電阻、ADC0809、8255A和七段LED數(shù)碼管。提出問(wèn)題:(1)為什么接口使用8255A而不是8279?(2)為什么顯示裝置
4、使用LED七段數(shù)碼管而不是LCD?(3)為什么選用光敏電阻?解決問(wèn)題:1.2.1.1接口芯片選用8255A而不是8279是由于8255A在本程序中使用軟件控制很容易實(shí)現(xiàn)且不需要用到小鍵盤(pán),具體如表11所示。器件名稱(chēng)特 點(diǎn)8255A芯片8255芯片是可編程的并行接口芯片,不需要附加外部電路便可和大多數(shù)并行傳輸數(shù)據(jù)的外部設(shè)備相連,數(shù)據(jù)的各位同時(shí)傳送,使用十分方便。8279A芯片8279芯片可以實(shí)現(xiàn)對(duì)鍵盤(pán)/顯示器的自動(dòng)掃描,以減輕CPU負(fù)擔(dān),具有顯示穩(wěn)定,程序簡(jiǎn)單,不會(huì)出現(xiàn)誤動(dòng)作等。表11 8255A與8279A性能比較表1.2.1.2 本實(shí)驗(yàn)選擇的顯示設(shè)備是七段LED數(shù)碼管,沒(méi)有選擇LCD的原因如
5、表12所示。LED與LCD相比,LED在亮度,功耗可視角度和刷新速率等方面更具有優(yōu)勢(shì),其最顯著的特點(diǎn)是使用壽命長(zhǎng)光電轉(zhuǎn)換效能高,綠色環(huán)保。LCDLCD占用空間小,功耗低,低輻射,能降低視覺(jué)疲勞,但會(huì)出現(xiàn)閃爍現(xiàn)象。表12 LCD與LED性能比較表1.2.1.3 本實(shí)驗(yàn)選用的是光敏電阻,因?yàn)楣饷綦娮枭系墓庹諒?qiáng)度與輸出電壓成線(xiàn)性關(guān)系,得到的模擬電壓也成線(xiàn)性關(guān)系。1.2.2軟件部分 根據(jù)硬件需求采用8255A芯片,采用匯編語(yǔ)言,8255A芯片的PA、PB、PC三口的工作方式為方式0,將8255的PA口接發(fā)光二極管,PB口作為段選碼,PC口作位選碼,用軟件編程實(shí)現(xiàn)從C口讀入信息,通過(guò) 8個(gè)LED數(shù)碼管循
6、環(huán)顯示光照強(qiáng)度。2.硬件設(shè)計(jì)2.1.選擇芯片8255A2.1.1芯片8255A在本設(shè)計(jì)中的作用芯片8255A通過(guò)數(shù)據(jù)口從CPU接受轉(zhuǎn)換得到的光照度數(shù)據(jù),通過(guò)B口輸出作為位選,實(shí)現(xiàn)LED數(shù)碼管的動(dòng)態(tài)顯示,通過(guò)A口將數(shù)值輸出到LED數(shù)碼管。2.1.2芯片8255A的功能分析2.1.2.1 8255引腳圖8255是可編程并行接口,內(nèi)部有3個(gè)相互獨(dú)立的8位數(shù)據(jù)端口,即A口、B口和C口。三個(gè)端口都可以作為輸入端口或輸出端口。A口有三種工作方式:即方式0、方式1和方式2,而B(niǎo)口只能工作在方式0或方式1下,而C口通常作為聯(lián)絡(luò)信號(hào)使用。8255的工作只有當(dāng)片選CS有效時(shí)才能進(jìn)行,而控制邏輯端口實(shí)現(xiàn)對(duì)其他端口的
7、控制。2.1.2.2 CPU接口(數(shù)據(jù)總線(xiàn)緩沖器和讀/寫(xiě)控制邏輯)數(shù)據(jù)總線(xiàn)緩沖器:這是一個(gè)8位雙向三態(tài)緩沖器,三態(tài)是由讀/寫(xiě)控制邏輯控制的。這個(gè)緩沖器是8255A與CPU數(shù)據(jù)總線(xiàn)的接口。所有數(shù)據(jù)的輸入/輸出,以及CPU用輸出指令向8255A發(fā)出的控制字和用輸入指令從8255A讀入的外設(shè)狀態(tài)信息,都是通過(guò)這個(gè)緩沖器傳遞的。讀/寫(xiě)控制邏輯:它與CPU的6根控制線(xiàn)相連,控制8255A內(nèi)部的各種操作??刂凭€(xiàn)RESET用來(lái)使8255A復(fù)位。和地址線(xiàn)A1及A0用于芯片選擇和通道尋址。控制線(xiàn)和用來(lái)決定8位內(nèi)部和外部數(shù)據(jù)總線(xiàn)上信息傳送的方向,即控制把CPU的控制命令或輸出的數(shù)據(jù)送到相應(yīng)的通道,或把狀態(tài)信息或輸
8、入數(shù)據(jù)送到CPU。8255A的讀/寫(xiě)控制邏輯的作用,是從CPU的地址和控制總線(xiàn)上接受輸入的信號(hào),轉(zhuǎn)變成各種命令送到A組或B組控制電路進(jìn)行相應(yīng)的操作。2.1.2.3 8255A的引腳信號(hào)與外設(shè)相連的PA7PA0:A口數(shù)據(jù)信號(hào)線(xiàn)。PB7PB0:B口數(shù)據(jù)信號(hào)線(xiàn)。PC7PC0:C口數(shù)據(jù)信號(hào)線(xiàn)。與CPU相連的RESET:復(fù)位信號(hào)。當(dāng)此信號(hào)來(lái)時(shí),所有寄存器都被清除。同時(shí)三個(gè)數(shù)據(jù)端口被自動(dòng)置為輸入端口。D7D0:它們是8255A的數(shù)據(jù)線(xiàn)和系統(tǒng)總線(xiàn)相連。CS:片選信號(hào)。在系統(tǒng)中,一般根據(jù)全部接口芯片來(lái)分配若于低位地址(比如A5、A4、A3)組成各種芯片選擇碼,當(dāng)這幾位地址組成某一個(gè)低電平,于8255A被選中。
9、只有當(dāng)有效時(shí),讀信號(hào)寫(xiě)才對(duì)8255進(jìn)行讀寫(xiě)。 RD:讀信號(hào)。當(dāng)此信號(hào)有效時(shí),CPU可從8255A中讀取數(shù)據(jù)。WR:寫(xiě)信號(hào)。當(dāng)此信號(hào)有效時(shí),CPU可向8255A中寫(xiě)入數(shù)據(jù)。A1、A0:端口選擇信號(hào)。8255A內(nèi)部有3個(gè)數(shù)據(jù)端口和1個(gè)控制端口,共4個(gè)端口。規(guī)定當(dāng)A1、A0:為00時(shí),選中A端口;為01時(shí),選中B端口;為10時(shí),選中C端口;為11時(shí),選中控制口。8255的基本操作如下表2-1所示。 表21 8255的基本操作2.1.2.4芯片8255A的技術(shù)參數(shù),如下表22所示:參數(shù)說(shuō)明:輸入最低電壓:min-0.5V,max0.8 V輸入最高電壓:2.0 V輸出最低電壓:0.45 V輸出最高電壓:
10、2.4 V表22 8255A的技術(shù)參數(shù)2.1.2.5 8255A工作方式控制字A口、B口為輸出模式,工作于方式0。CPU中的數(shù)據(jù)經(jīng)由數(shù)據(jù)線(xiàn)路到達(dá)8255A,再由A口、B口分別段選、位選后輸出到LED。詳細(xì)控制字見(jiàn)表23。表23 8255A的工作方式控制字方式0的工作特點(diǎn)這種方式通常不用聯(lián)絡(luò)信號(hào),不使用中斷,三個(gè)通道中的每一個(gè)都有可以由程序選定作為輸入或輸出。其功能為:兩個(gè)8位通道:通道A、B。兩個(gè)四位通道:通道C高4位和低四位;任何一個(gè)通道可以作輸入/輸出;輸出是鎖存的;輸入是不鎖存的;在方式0時(shí)各個(gè)通道的輸入/輸出可有16種不同的組合。2.2 選擇LED七段數(shù)碼管2.2.1 LED七段數(shù)碼管
11、在實(shí)驗(yàn)中的作用LED發(fā)光二級(jí)管(Light-Emitting Diode),在本設(shè)計(jì)中采用7段發(fā)光二級(jí)管作為終端顯示。物理構(gòu)造:LED發(fā)光二級(jí)管,采用砷化鎵、鎵鋁砷和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個(gè)PN結(jié),具有單向?qū)щ娦浴?.2.2 LED七段數(shù)碼管的功能分析工作原理:當(dāng)在發(fā)光二極管PN結(jié)上加正向電壓時(shí),PN結(jié)勢(shì)壘降低,載流子的擴(kuò)散運(yùn)動(dòng)大于漂移運(yùn)動(dòng),致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會(huì)產(chǎn)生復(fù)合,復(fù)合時(shí)產(chǎn)生的能量大部分以光的形式出現(xiàn)。數(shù)字成像:七段LED顯示器可以控制在哪幾個(gè)數(shù)位上,哪幾個(gè)發(fā)光二極管亮,從而顯示數(shù)字。如果發(fā)光二極管共陽(yáng)極,則輸入為0時(shí)
12、亮,為1時(shí)不亮,反之如果發(fā)光共陰極,則輸入1時(shí)亮,0時(shí)不亮。在本實(shí)驗(yàn)中選用了共陰極。所謂共陰極是指將各LED二極管的陰極連接在一起(一般相連接地)各陽(yáng)極接到相應(yīng)器件引腳上。發(fā)光二極管是一種外加電壓超過(guò)額定電壓時(shí)發(fā)生擊穿,并因此能產(chǎn)生可發(fā)光的器件,數(shù)碼顯示器通常由多個(gè)發(fā)光二極管來(lái)組成七段或八段筆畫(huà)顯示器,當(dāng)段組合發(fā)光時(shí),便會(huì)顯示某一個(gè)數(shù)碼管或字符,七段代碼的各位用作ag和DP的輸入。COM為8個(gè)發(fā)光二極管的公共引線(xiàn),實(shí)驗(yàn)中COM引線(xiàn)接內(nèi)部8個(gè)二極管的陰極,abcdefg(dp)則為8個(gè)發(fā)光二極管的陽(yáng)極的引線(xiàn)。實(shí)驗(yàn)中LED管采用動(dòng)態(tài)顯示:3個(gè)LED顯示器按固定的時(shí)間間隔顯示一段時(shí)間(1.25ms)
13、,利用人眼視覺(jué)滯后,感覺(jué)3個(gè)LED顯示器同時(shí)點(diǎn)亮且無(wú)閃爍感。2.2.3 LED七段數(shù)碼管的技術(shù)參數(shù) 表24 LED顯示的技術(shù)參數(shù)主要參數(shù):此時(shí)的驅(qū)動(dòng)電流為25mA。發(fā)光二極管的壓降一般為1.52.0 V,其工作電流一般取1020mA為宜。發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等。發(fā)光二極管應(yīng)用電路有四種,即直流驅(qū)動(dòng)電路、交流驅(qū)動(dòng)電路、脈沖驅(qū)動(dòng)電路、變色發(fā)光驅(qū)動(dòng)電路。由于8255A的最大驅(qū)動(dòng)電流為4.0mA,而LED的工作電流一般為1020mA,所以需要加一個(gè)驅(qū)動(dòng)器74LS244。2.2.4 LED七段顯示器的功能分析表25 LED真值表LED數(shù)字顯示原理:如下圖26為L(zhǎng)ED數(shù)碼
14、管及其框圖圖26 LED顯示器上面兩圖分別為外形圖和原理圖,當(dāng)七段數(shù)碼管點(diǎn)亮其中幾段可顯示數(shù)字和簡(jiǎn)單的西文字符,將七段數(shù)碼管負(fù)極連接到一起稱(chēng)為公共端,而發(fā)光二極管的正極則分別由引腳引出,便于控制哪個(gè)發(fā)光二極管點(diǎn)亮,在右圖中如果在COM端接低電平,而在其他引出線(xiàn)上施加不同的電平,則對(duì)高電平的發(fā)光二極管就會(huì)點(diǎn)亮,由于將8個(gè)發(fā)光二極管負(fù)極全部連接在一起,稱(chēng)為共陰極數(shù)碼管,還有將8個(gè)發(fā)光二極管的正極連接在一起,故稱(chēng)之為共陽(yáng)極數(shù)碼管。本次實(shí)驗(yàn)用的數(shù)碼管需動(dòng)態(tài)掃描顯示,其接口電路將所有數(shù)碼管的筆畫(huà)控制段與ah同名端連在一起,接到一個(gè)并行端口,每個(gè)公共極COM端由獨(dú)立的I/O線(xiàn)控制,CPU向字模輸出口送出字
15、形碼時(shí),所有數(shù)碼管接收到相同的字形碼,究竟哪個(gè)數(shù)碼管顯示,取決于每個(gè)LED的COM端,所謂動(dòng)態(tài)掃描,就是顯示一位信息時(shí),其他位不能顯示,必須采用分時(shí)方法,輪流控制COM端。2.3 選擇光敏電阻2.3.1光敏電阻在本設(shè)計(jì)中的作用光敏電阻在實(shí)驗(yàn)中是用來(lái)提供模擬電壓的,通過(guò)光照度的變化改變電阻值,提供變化的模擬電壓。2.3.2光敏電阻的功能分析物理構(gòu)造:光敏電阻又稱(chēng)光導(dǎo)管,它幾乎都是用半導(dǎo)體材料制成的光電器件。 光敏電阻沒(méi)有極性,純粹是一個(gè)電阻器件,使用時(shí)既可加直流電壓,也可以加交流電壓。無(wú)光照時(shí),光敏電阻值(暗電阻)很大,電路中電流(暗電流)很小。 當(dāng)光敏電阻受到一定波長(zhǎng)范圍的光照時(shí),它的阻值(亮
16、電阻)急劇減少,電路中電流迅速增大。 一般希望暗電阻越大越好,亮電阻越小越好,此時(shí)光敏電阻的靈敏度高。實(shí)際光敏電阻的暗電阻值一般在兆歐級(jí),亮電阻在幾千歐以下。光敏電阻的原理結(jié)構(gòu):它是涂于玻璃底板上的一薄層半導(dǎo)體物質(zhì),半導(dǎo)體的兩端裝有金屬電極,金屬電極與引出線(xiàn)端相連接,光敏電阻就通過(guò)引出線(xiàn)端接入電路。 為了防止周?chē)橘|(zhì)的影響,在半導(dǎo)體光敏層上覆蓋了一層漆膜,漆膜的成分應(yīng)使它在光敏層最敏感的波長(zhǎng)范圍內(nèi)透射率最大。工作原理:光敏電阻接有一個(gè)穩(wěn)定電壓,當(dāng)光照度變化時(shí),光敏電阻的阻值會(huì)改變,通過(guò)比例放大器輸出電阻的壓降。2.3.3光敏電阻的技術(shù)參數(shù)亮阻約為2K歐,暗阻大于1M歐,外觀直徑 5毫米,最高承
17、受電壓直流120V,最大功耗100mW上升響應(yīng)時(shí)間 20ms,下降響應(yīng)時(shí)間 30ms。實(shí)驗(yàn)中光敏電阻電路輸出的電壓范圍為0-5V。光敏電阻電路圖如下:2.4 選擇芯片ADC08092.4.1 ADC0809在本設(shè)計(jì)中的作用ADC0809接收光敏電阻電路傳送的模擬電壓,將模擬電壓轉(zhuǎn)換為數(shù)字電壓,傳送給CPU進(jìn)行數(shù)據(jù)轉(zhuǎn)換,CPU將數(shù)字電壓通過(guò)電壓與光照度的比例關(guān)系轉(zhuǎn)換為光照度。2.4.2 ADC0809的功能分析物理構(gòu)造:ADC0809是CMOS單片型逐次逼近式AD轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)由8路模擬開(kāi)關(guān)、地址鎖存與譯碼器、比較器、8位開(kāi)關(guān)樹(shù)型DA轉(zhuǎn)換器、逐次逼近數(shù)碼寄存器、時(shí)序及控制邏輯和三態(tài)輸出鎖存器組
18、成。工作原理:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平 時(shí),輸出三態(tài)門(mén)打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線(xiàn)上。2.4.3 ADC0809的技術(shù)參數(shù)ADC0809是8路8位A/D轉(zhuǎn)換器,即分辨率8位。 具有轉(zhuǎn)換起停控制端。 轉(zhuǎn)換時(shí)間為100s單個(gè)5V電源供電 模擬輸入電壓范圍05V,不需零點(diǎn)和滿(mǎn)刻度校準(zhǔn)。工作溫度范圍
19、為-4085攝氏度低功耗,約15mW。2.4.4 ADC0809主要信號(hào)引腳的功能說(shuō)明。見(jiàn)圖27。圖27 引腳圖ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說(shuō)明各引腳功能。 IN7IN08路模擬量輸入端。D7D08位數(shù)字量輸出端。ADDA、ADDB、ADDC3位地址輸入線(xiàn),用于選通8路模擬輸入中的一路ALE地址鎖存允許信號(hào),輸入,高電平有效。對(duì)應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。 START轉(zhuǎn)換啟動(dòng)信號(hào)。A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)。START上升沿時(shí),復(fù)位ADC0809;START下降沿時(shí)啟動(dòng)芯片,開(kāi)始進(jìn)行A/D轉(zhuǎn)
20、換;在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。 EOCA/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。 OE數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效(OE=0,輸出數(shù)據(jù)線(xiàn)呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù))。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開(kāi)輸出三態(tài)門(mén),輸出數(shù)字量。CLK時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ,通常使用頻率為500KHz的時(shí)鐘信號(hào)。 REF(+)、REF(-)基準(zhǔn)電壓。參考電源、參考電壓用來(lái)與輸入的模擬信號(hào)進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為Vref(+)=+5V, Vref(-)=-5V。Vcc電源,單一5V。
21、GND接地。2.5 硬件總邏輯圖及其說(shuō)明 硬件總邏輯圖如下圖28所示:圖28 硬件總邏輯圖芯片8255A的數(shù)據(jù)線(xiàn)D0D7與主機(jī)低八位數(shù)據(jù)線(xiàn)相連,8255A的RD線(xiàn)、WR線(xiàn)、A0、A1、RESET分別與主機(jī)的RD線(xiàn)、WR線(xiàn)、A0、A1、RESET線(xiàn)連接。8255A的A口控制LED的段選,B口控制位選.光敏電路如下:在單片機(jī)上的接口連接如下:3.控制程序設(shè)計(jì)3.1 控制程序設(shè)計(jì)思路說(shuō)明初始化8255芯片,設(shè)置工作方式控制字為89(100010001B),即A、B口為輸出,分別控制LED的段選、位選,C口輸入。下圖為控制字:以采樣五十次為一周期,求得五十次采樣的總值。然后除以50,得到采樣50次的平
22、均值,存入LastAD。在每一次采樣過(guò)程中,都在PC機(jī)和LED上輸出上一周期采樣轉(zhuǎn)化得到的光照強(qiáng)度(單位:勒克斯)。具體轉(zhuǎn)化過(guò)程為:采樣得到的模擬值經(jīng)過(guò)AD轉(zhuǎn)化后為電壓值,電壓范圍為0-5V。而考慮到實(shí)際生活中,一般照明為200lux,重點(diǎn)照明為300lux,所以實(shí)驗(yàn)中可顯示的光照強(qiáng)度為0-500lux。于是參考兩者之間的線(xiàn)性關(guān)系,定下入下圖的關(guān)系: 圖29 電壓-光照度函數(shù)3.2 程序流程圖開(kāi)始初始化8255CX=50采樣,計(jì)算采樣總值i=0?N計(jì)算采樣平均值結(jié)束程序強(qiáng)制關(guān)閉Y圖3-1 程序流程圖百位數(shù)/整數(shù)部分 入BUF/BUFFER+4,十位數(shù)/第一位小數(shù) 入BUF+1/BUFFER+6
23、,個(gè)位數(shù)/第二位小數(shù) 入BUF+2/BUFFER+7。調(diào)用DOS的9號(hào)功能在PC機(jī)上輸出電壓。在LED上輸出一位數(shù)據(jù),位選數(shù)據(jù)DATA2左移一位。重復(fù)三次為一個(gè)周期。然后還原DATA2=0FEH。采樣平均值送8255,8255的PA口段選、PB口位選。延時(shí),i -繼續(xù)下一次采樣3. 3控制程序.MODEL TINY ;8255端口初始化COM_ADDR EQU 0E003HTC_ADDR EQU 0E002H;PCO端口ADDR_0809 EQU 0F000HWR_COM_AD_L EQU 0D004H;寫(xiě)左半屏指令地址WR_COM_AD_R EQU 0D000H;寫(xiě)右半屏指令地址WR_DAT
24、A_AD_L EQU 0D006H;寫(xiě)左半屏數(shù)據(jù)地址WR_DATA_AD_R EQU 0D002H;寫(xiě)右半屏數(shù)據(jù)地址RD_BUSY_AD EQU 0D001H;查找地址RD_DATA_AD EQU 0D003H;讀數(shù)據(jù)地址X EQU 0B8H;起始顯示行基址Y EQU 040H;起始顯示列基址FirstLine EQU 0C0H;起始顯示行EXTRN Display8:NEAR; .STACK SEGMENT STACK DW 100 DUP(?) .STACK ENDS .DATA BUFFER DB 8 DUP(?)LastAD DB 0 ;上一次AD轉(zhuǎn)換值CHUSHI DB 0KKKKK
25、K DB 0;太陽(yáng)圖標(biāo)Line1_1 DB 0021H,0042H,00E4H,0010H,0048H,0024H,0044H,0007H,0044H,0024H,0048H,0010H,00E4H,0042H,0021H,0000H DB 022H,011H,08BH,044H,028H,011H,012H,072H,012H,011H,028H,044H,08BH,011H,022H,000HLine2_1 DB 080H,048H,0E8H,0E8H,0FCH,0E8H,03CH,028H,000H,002H,003H,006H,0FEH,05EH,05FH,05FHLine2_2 DB
26、 0E8H,040H,030H,0DCH,050H,0B0H,090H,010H,05EH,05FH,05FH,0FEH,00EH,002H,002H,003HLine2_3 DB 000H,000H,000H,0C0H,030H,028H,020H,020H,000H,002H,003H,002H,0FEH,046H,046H,046HLine2_4 DB 0FCH,020H,020H,020H,020H,030H,000H,000H,047H,046H,046H,0FEH,002H,002H,003H,002HLine2_5 DB 000H,00CH,01EH,0FFH,0FFH,01EH
27、,00CH,000H,000H,000H,020H,077H,077H,020H,000H,000HLine3_1 DB 000H,040H,042H,044H,05CH,0C8H,040H,07FH,040H,0C0H,050H,04EH,044H,060H,040H,000H DB 000H,080H,040H,020H,018H,007H,000H,000H,000H,03FH,040H,040H,040H,040H,078H,000HLine3_2 DB 000H,0F2H,012H,012H,01EH,000H,0C0H,05EH,052H,0F2H,052H,052H,05EH,0
28、C0H,000H,000H DB 000H,001H,041H,081H,07FH,000H,087H,084H,084H,0FFH,044H,044H,054H,0E7H,040H,000HLine3_3 DB 080H,081H,08EH,004H,000H,010H,050H,090H,010H,010H,010H,0FFH,010H,010H,010H,000H DB 040H,020H,01FH,020H,020H,040H,040H,043H,041H,048H,050H,04FH,040H,040H,040H,000HLine3_4 DB 004H,004H,004H,004H,
29、074H,054H,055H,056H,054H,054H,074H,004H,004H,004H,004H,000H DB 000H,0FFH,001H,001H,03DH,025H,025H,025H,025H,025H,03DH,041H,081H,07FH,000H,000HLine4_1 DB 040H,020H,0F0H,00CH,007H,002H,0FCH,044H,044H,042H,0FEH,043H,043H,042H,040H,000H DB 000H,000H,07FH,000H,000H,000H,07FH,020H,010H,028H,043H,00CH,010H
30、,020H,078H,000HLine5_1 DB 000H,002H,002H,0C2H,002H,002H,002H,002H,0FEH,082H,082H,082H,082H,082H,002H,000H DB 020H,020H,020H,03FH,020H,020H,020H,020H,03FH,020H,020H,020H,020H,020H,020H,000HLine5_2 DB 020H,018H,008H,009H,0EEH,0AAH,0A8H,0AFH,0A8H,0A8H,0ECH,00BH,02AH,018H,008H,000H DB 000H,000H,03EH,002
31、H,002H,002H,002H,0FFH,002H,002H,012H,022H,01EH,000H,000H,000H .CODESTART: MOV AX,.DATA MOV DS,AX NOP MOV DX,COM_ADDR MOV AL,80H OUT DX,AL MOV AL,05H MOV DX,TC_ADDR OUT DX,AL XOR AL,AL ;XOR是異或,實(shí)現(xiàn)AL的清零操作 JMP START6START1: MOV CX,50 ;采樣50次 MOV BX,0 ;累計(jì)五十次的采樣值START2: CALL AD0809 XOR AH,AH ADD BX,AX LOOP
32、 START2 MOV AX,50 XCHG AX,BX ;交換AX和BX的值 DIV BL ;五十次的平均值 CMP AL,LastAD ;若AL等于上一次AD轉(zhuǎn)換值,則數(shù)碼管上值不變 JZ START3START6: MOV LastAD,AL CALL Display_Data LEA SI,BUFFER MOV AL,BUFFER + 2 CALL Display8 AND AL,7FH MOV CHUSHI,AL MOV DL,03H CMP CHUSHI,DL JNB BAOJING_LOW JMP ZHENGCHANG ;光強(qiáng)判斷BAOJING_TOP: MOV DX,TC_AD
33、DR MOV AL,02H OUT DX,AL CALL LCDSHOWTOP JMP START3 BAOJING_LOW: MOV DX,TC_ADDR MOV AL,00H OUT DX,AL CALL LCDSHOWLOW JMP START3 ZHENGCHANG: MOV DX,TC_ADDR MOV AL,05H ;最低位是,1不報(bào)警 OUT DX,AL CALL LCDSHOWOK START3: CALL DLTime JMP START1 ;*; ;ADC0809初始化程序 AD0809 PROC NEAR PUSH CX MOV AL,0 MOV DX,ADDR_0809
34、 OUT DX,AL MOV CX,200 LOOP $ ;延時(shí),等待AD轉(zhuǎn)換完成 MOV DX,ADDR_0809 IN AL,DX POP CX RETAD0809 ENDP;*;顯示程序DISPLAY_DATA PROC NEAR MOV DL,AL MOV AH,0 MOV BL,2 MUL BL MOV BL,10 DIV BL MOV BUFFER + 4,AH MOV AH,0 DIV BL MOV BUFFER + 5,AH MOV BUFFER + 6,AL MOV AL,DL XOR AH,AH MOV BL,51 ;255/51(16進(jìn)制的1=1/52V) DIV BL
35、OR AL,80H ;加上小數(shù)點(diǎn) MOV BUFFER + 2,AL MOV AL,10 MUL AH DIV BL MOV BUFFER + 1,AL ;第一位小數(shù) MOV AL,10 MUL AH DIV BL MOV BUFFER,AL ;第二位小數(shù) MOV buffer+3,10H MOV buffer+7,10H ;消隱 RETDISPLAY_DATA ENDP;*;延時(shí)程序DLTime PROC NEAR MOV CX,30000 LOOP $ RETDLTime ENDP;*;顯示太陽(yáng)圖標(biāo)和“警告!”及“光強(qiáng)過(guò)高”LCDSHOWTOP PROC NEAR CALL LCD_INI
36、T CALL DLTime CALL DisLine1 CALL DLTime CALL DisLine2 CALL DLTime CALL DisLine3 CALL DLTime RETLCDSHOWTOP ENDP;*;顯示太陽(yáng)圖標(biāo)和“警告!”及“光強(qiáng)過(guò)低”LCDSHOWLOW PROC NEAR CALL LCD_INIT CALL DLTime CALL DisLine1 CALL DLTime CALL DisLine2 CALL DLTime CALL DisLine4 CALL DLTimeLCDSHOWLOW ENDP ;*;顯示太陽(yáng)圖標(biāo)和“光強(qiáng)正?!盠CDSHOWOK PR
37、OC NEAR CALL LCD_INIT CALL DLTime CALL DisLine1 CALL DLTime CALL DisLine5 CALL DLTime RETLCDSHOWOK ENDP;*;顯示太陽(yáng)圖標(biāo)DisLine1 PROC NEAR LEA SI,Line1_1 MOV AL,2 ;A-起始顯示行地址,第2行 MOV AH,50 ;B-起始顯示列地址,第32列,以下同 CALL WordDISL RETDisLine1 ENDPDisLine2 PROC NEAR LEA SI,Line2_2 MOV AL,4 MOV AH,16 CALL ByteDISL ;左半
38、屏,顯示一個(gè)字節(jié)子程序 LEA SI,Line2_3 MOV AL,4 MOV AH,24 CALL ByteDISL LEA SI,Line2_4 MOV AL,4 MOV AH,40 CALL ByteDISL LEA SI,Line2_5 MOV AL,4 MOV AH,48 CALL ByteDISL LEA SI,Line2_5 MOV AL,4 MOV AH,56 CALL ByteDISL LEA SI,Line2_5 MOV AL,4 MOV AH,0 CALL ByteDISR ;右半屏字節(jié)顯示數(shù)據(jù) LEA SI,Line2_5 MOV AL,4 MOV AH,8 CALL
39、ByteDISR LEA SI,Line2_5 MOV AL,4 MOV AH,16 CALL ByteDISR LEA SI,Line2_5 MOV AL,4 MOV AH,24 CALL ByteDISR LEA SI,Line2_5 MOV AL,4 MOV AH,32 CALL ByteDISR LEA SI,Line2_5 MOV AL,4 MOV AH,40 CALL ByteDISR RETDisLine2 ENDP;*;顯示“光強(qiáng)過(guò)高”DisLine3 PROC NEAR LEA SI,Line3_1 MOV AL,6 ;A-起始顯示行地址,第6行 MOV AH,32 ;B-起始顯示列地址,第32列,以下同 CALL WordDISL ;左半屏,顯示一個(gè)字節(jié)子程序 LEA SI,Line3_2 MOV AL,6 MOV AH,48 CALL WordDISL LEA SI,Line3_3 MOV AL,6 MOV AH,0 CALL WordDISR ;右半屏,顯示一個(gè)字子程序 LEA SI,Line3_4 MOV AL,6 MOV AH,16 CALL WordDISR RETDisLine3 ENDP;*;顯示“光強(qiáng)過(guò)低”DisLine4 P
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 19618:2025 EN Fine ceramics (advanced ceramics,advanced technical ceramics) - Measurement method for normal spectral emissivity using blackbody reference with an FTIR s
- 廣東水利電力職業(yè)技術(shù)學(xué)院《分子生物學(xué)(英文)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東石油化工學(xué)院《建筑工程概預(yù)算課程A》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025新北師大版英語(yǔ)七年級(jí)下單詞默寫(xiě)表(英譯漢)
- 【名師伴你行】2020高考?xì)v史-二輪強(qiáng)化提能專(zhuān)訓(xùn):綜合檢測(cè)卷(含2013年模擬、調(diào)研試題-含解析)
- 《紅對(duì)勾》2022屆高考英語(yǔ)人教版新課標(biāo)一輪總復(fù)習(xí)-滾動(dòng)測(cè)試28
- 【9語(yǔ)一?!?024年合肥市蜀山區(qū)中考一模語(yǔ)文試題
- 【高考總動(dòng)員】2022屆高考語(yǔ)文一輪總復(fù)習(xí)-考點(diǎn)綜合練4
- 2025年七年級(jí)統(tǒng)編版語(yǔ)文寒假?gòu)?fù)習(xí) 專(zhuān)題07 寫(xiě)作(考點(diǎn)剖析+對(duì)點(diǎn)訓(xùn)練)
- 天津市紅橋區(qū)2024-2025學(xué)年高三上學(xué)期期末英語(yǔ)試題詞匯清單(含答案)
- 2022《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022版)》解讀
- 2022年新媒體編輯實(shí)戰(zhàn)教程試題帶答案(題庫(kù))
- 在一日活動(dòng)中培養(yǎng)幼兒親社會(huì)行為的實(shí)踐研究報(bào)告
- 螺紋及緊固件基礎(chǔ)知識(shí)
- 【課文翻譯】新人教必修三 Unit 1-Unit5 課文翻譯(英漢對(duì)照)
- 高三數(shù)學(xué)集體備課記錄《函數(shù)的單調(diào)性與最值》
- 鋁合金型材切割作業(yè)指導(dǎo)書(shū)
- Windows錯(cuò)誤代碼解釋大全
- 閉水試驗(yàn)自動(dòng)計(jì)算公式及說(shuō)明
- “挑戰(zhàn)杯”優(yōu)秀組織獎(jiǎng)申報(bào)材料
- 小學(xué)二年級(jí)上冊(cè)道德與法治教學(xué)工作總結(jié)
評(píng)論
0/150
提交評(píng)論