光強計微機設計報告_第1頁
光強計微機設計報告_第2頁
光強計微機設計報告_第3頁
光強計微機設計報告_第4頁
光強計微機設計報告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術課程設計報告題 目 環(huán)境光強測量儀學 院 電子信息工程學院專 業(yè) 20 15 年 12月 22日電子學院通信工程目 錄 1.題義分析及解決方案 31.1 題義需求分析3 1.2 解決問題方法及思路31.3 課題要求及分工3 2.硬件設計 4 2.1選擇芯片8255A 4 2.2選擇LED七段數(shù)碼管 72.3選擇光敏電阻 82.4選擇芯片ADC0809 92.5 硬件總邏輯圖及其說明 103.控制程序設計123.1 控制程序設計思路說明 123.2 程序流程圖 143.3 控制程序 154.上機調(diào)試過程28 4.1 硬件調(diào)試 28 4.2軟件調(diào)試 284.3聯(lián)機調(diào)試284.4調(diào)

2、試結(jié)果及問題的提出28 5.設計結(jié)果分析及問題討論296.參考文獻291.題義分析及解決方案設計一個簡易的光照強度測量儀,由光照強度產(chǎn)生的模擬電壓信號轉(zhuǎn)換為數(shù)字信號,然后轉(zhuǎn)換為照度(單位是勒克斯)顯示在LED上;校準照度測量器:在一定的光強度下,產(chǎn)生200數(shù)字量的電壓,以此對應關系(照度電壓)將其它光強度轉(zhuǎn)換為勒克斯值,顯示在LED上。1.1題義需求分析光照強度測量儀主要根據(jù)光敏電阻的特性制作的。光敏電阻值隨受到的光照強度的變化而變化(光照強度越大,電阻值越小)。將光敏電阻接入電路中,不同光照強度導致光敏電阻值變化,于是光敏電阻上的電壓發(fā)生變化,導致電路的輸出電壓也相應變化。根據(jù)電壓-光照度函

3、數(shù)關系,由電壓計算得到光照強度值,然后以可視化界面形式輸出(即PC機和LED數(shù)碼管顯示),以供用戶查看結(jié)果。其中光敏電阻的特性是光敏電阻隨受到的光照強度的變化電阻值發(fā)生變化,光照強度越強電阻越小,在分壓電路中獲得電壓越低。根據(jù)這一特性,結(jié)合光照強度和輸出的模擬電壓之間的關系,可以得到某一光強度下的對應的模擬電壓。將模擬電壓通過AD轉(zhuǎn)化器轉(zhuǎn)換為數(shù)字電壓,以便于計算機處理。然后再將數(shù)字電壓轉(zhuǎn)換成光照度。1.2.解決問題方法及思路1.2.1硬件部分程序設計中用到的硬件是光敏電阻、ADC0809、8255A和七段LED數(shù)碼管。提出問題:(1)為什么接口使用8255A而不是8279?(2)為什么顯示裝置

4、使用LED七段數(shù)碼管而不是LCD?(3)為什么選用光敏電阻?解決問題:1.2.1.1接口芯片選用8255A而不是8279是由于8255A在本程序中使用軟件控制很容易實現(xiàn)且不需要用到小鍵盤,具體如表11所示。器件名稱特 點8255A芯片8255芯片是可編程的并行接口芯片,不需要附加外部電路便可和大多數(shù)并行傳輸數(shù)據(jù)的外部設備相連,數(shù)據(jù)的各位同時傳送,使用十分方便。8279A芯片8279芯片可以實現(xiàn)對鍵盤/顯示器的自動掃描,以減輕CPU負擔,具有顯示穩(wěn)定,程序簡單,不會出現(xiàn)誤動作等。表11 8255A與8279A性能比較表1.2.1.2 本實驗選擇的顯示設備是七段LED數(shù)碼管,沒有選擇LCD的原因如

5、表12所示。LED與LCD相比,LED在亮度,功耗可視角度和刷新速率等方面更具有優(yōu)勢,其最顯著的特點是使用壽命長光電轉(zhuǎn)換效能高,綠色環(huán)保。LCDLCD占用空間小,功耗低,低輻射,能降低視覺疲勞,但會出現(xiàn)閃爍現(xiàn)象。表12 LCD與LED性能比較表1.2.1.3 本實驗選用的是光敏電阻,因為光敏電阻上的光照強度與輸出電壓成線性關系,得到的模擬電壓也成線性關系。1.2.2軟件部分 根據(jù)硬件需求采用8255A芯片,采用匯編語言,8255A芯片的PA、PB、PC三口的工作方式為方式0,將8255的PA口接發(fā)光二極管,PB口作為段選碼,PC口作位選碼,用軟件編程實現(xiàn)從C口讀入信息,通過 8個LED數(shù)碼管循

6、環(huán)顯示光照強度。2.硬件設計2.1.選擇芯片8255A2.1.1芯片8255A在本設計中的作用芯片8255A通過數(shù)據(jù)口從CPU接受轉(zhuǎn)換得到的光照度數(shù)據(jù),通過B口輸出作為位選,實現(xiàn)LED數(shù)碼管的動態(tài)顯示,通過A口將數(shù)值輸出到LED數(shù)碼管。2.1.2芯片8255A的功能分析2.1.2.1 8255引腳圖8255是可編程并行接口,內(nèi)部有3個相互獨立的8位數(shù)據(jù)端口,即A口、B口和C口。三個端口都可以作為輸入端口或輸出端口。A口有三種工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作為聯(lián)絡信號使用。8255的工作只有當片選CS有效時才能進行,而控制邏輯端口實現(xiàn)對其他端口的

7、控制。2.1.2.2 CPU接口(數(shù)據(jù)總線緩沖器和讀/寫控制邏輯)數(shù)據(jù)總線緩沖器:這是一個8位雙向三態(tài)緩沖器,三態(tài)是由讀/寫控制邏輯控制的。這個緩沖器是8255A與CPU數(shù)據(jù)總線的接口。所有數(shù)據(jù)的輸入/輸出,以及CPU用輸出指令向8255A發(fā)出的控制字和用輸入指令從8255A讀入的外設狀態(tài)信息,都是通過這個緩沖器傳遞的。讀/寫控制邏輯:它與CPU的6根控制線相連,控制8255A內(nèi)部的各種操作??刂凭€RESET用來使8255A復位。和地址線A1及A0用于芯片選擇和通道尋址。控制線和用來決定8位內(nèi)部和外部數(shù)據(jù)總線上信息傳送的方向,即控制把CPU的控制命令或輸出的數(shù)據(jù)送到相應的通道,或把狀態(tài)信息或輸

8、入數(shù)據(jù)送到CPU。8255A的讀/寫控制邏輯的作用,是從CPU的地址和控制總線上接受輸入的信號,轉(zhuǎn)變成各種命令送到A組或B組控制電路進行相應的操作。2.1.2.3 8255A的引腳信號與外設相連的PA7PA0:A口數(shù)據(jù)信號線。PB7PB0:B口數(shù)據(jù)信號線。PC7PC0:C口數(shù)據(jù)信號線。與CPU相連的RESET:復位信號。當此信號來時,所有寄存器都被清除。同時三個數(shù)據(jù)端口被自動置為輸入端口。D7D0:它們是8255A的數(shù)據(jù)線和系統(tǒng)總線相連。CS:片選信號。在系統(tǒng)中,一般根據(jù)全部接口芯片來分配若于低位地址(比如A5、A4、A3)組成各種芯片選擇碼,當這幾位地址組成某一個低電平,于8255A被選中。

9、只有當有效時,讀信號寫才對8255進行讀寫。 RD:讀信號。當此信號有效時,CPU可從8255A中讀取數(shù)據(jù)。WR:寫信號。當此信號有效時,CPU可向8255A中寫入數(shù)據(jù)。A1、A0:端口選擇信號。8255A內(nèi)部有3個數(shù)據(jù)端口和1個控制端口,共4個端口。規(guī)定當A1、A0:為00時,選中A端口;為01時,選中B端口;為10時,選中C端口;為11時,選中控制口。8255的基本操作如下表2-1所示。 表21 8255的基本操作2.1.2.4芯片8255A的技術參數(shù),如下表22所示:參數(shù)說明:輸入最低電壓:min-0.5V,max0.8 V輸入最高電壓:2.0 V輸出最低電壓:0.45 V輸出最高電壓:

10、2.4 V表22 8255A的技術參數(shù)2.1.2.5 8255A工作方式控制字A口、B口為輸出模式,工作于方式0。CPU中的數(shù)據(jù)經(jīng)由數(shù)據(jù)線路到達8255A,再由A口、B口分別段選、位選后輸出到LED。詳細控制字見表23。表23 8255A的工作方式控制字方式0的工作特點這種方式通常不用聯(lián)絡信號,不使用中斷,三個通道中的每一個都有可以由程序選定作為輸入或輸出。其功能為:兩個8位通道:通道A、B。兩個四位通道:通道C高4位和低四位;任何一個通道可以作輸入/輸出;輸出是鎖存的;輸入是不鎖存的;在方式0時各個通道的輸入/輸出可有16種不同的組合。2.2 選擇LED七段數(shù)碼管2.2.1 LED七段數(shù)碼管

11、在實驗中的作用LED發(fā)光二級管(Light-Emitting Diode),在本設計中采用7段發(fā)光二級管作為終端顯示。物理構(gòu)造:LED發(fā)光二級管,采用砷化鎵、鎵鋁砷和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個PN結(jié),具有單向?qū)щ娦浴?.2.2 LED七段數(shù)碼管的功能分析工作原理:當在發(fā)光二極管PN結(jié)上加正向電壓時,PN結(jié)勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產(chǎn)生復合,復合時產(chǎn)生的能量大部分以光的形式出現(xiàn)。數(shù)字成像:七段LED顯示器可以控制在哪幾個數(shù)位上,哪幾個發(fā)光二極管亮,從而顯示數(shù)字。如果發(fā)光二極管共陽極,則輸入為0時

12、亮,為1時不亮,反之如果發(fā)光共陰極,則輸入1時亮,0時不亮。在本實驗中選用了共陰極。所謂共陰極是指將各LED二極管的陰極連接在一起(一般相連接地)各陽極接到相應器件引腳上。發(fā)光二極管是一種外加電壓超過額定電壓時發(fā)生擊穿,并因此能產(chǎn)生可發(fā)光的器件,數(shù)碼顯示器通常由多個發(fā)光二極管來組成七段或八段筆畫顯示器,當段組合發(fā)光時,便會顯示某一個數(shù)碼管或字符,七段代碼的各位用作ag和DP的輸入。COM為8個發(fā)光二極管的公共引線,實驗中COM引線接內(nèi)部8個二極管的陰極,abcdefg(dp)則為8個發(fā)光二極管的陽極的引線。實驗中LED管采用動態(tài)顯示:3個LED顯示器按固定的時間間隔顯示一段時間(1.25ms)

13、,利用人眼視覺滯后,感覺3個LED顯示器同時點亮且無閃爍感。2.2.3 LED七段數(shù)碼管的技術參數(shù) 表24 LED顯示的技術參數(shù)主要參數(shù):此時的驅(qū)動電流為25mA。發(fā)光二極管的壓降一般為1.52.0 V,其工作電流一般取1020mA為宜。發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等。發(fā)光二極管應用電路有四種,即直流驅(qū)動電路、交流驅(qū)動電路、脈沖驅(qū)動電路、變色發(fā)光驅(qū)動電路。由于8255A的最大驅(qū)動電流為4.0mA,而LED的工作電流一般為1020mA,所以需要加一個驅(qū)動器74LS244。2.2.4 LED七段顯示器的功能分析表25 LED真值表LED數(shù)字顯示原理:如下圖26為LED數(shù)碼

14、管及其框圖圖26 LED顯示器上面兩圖分別為外形圖和原理圖,當七段數(shù)碼管點亮其中幾段可顯示數(shù)字和簡單的西文字符,將七段數(shù)碼管負極連接到一起稱為公共端,而發(fā)光二極管的正極則分別由引腳引出,便于控制哪個發(fā)光二極管點亮,在右圖中如果在COM端接低電平,而在其他引出線上施加不同的電平,則對高電平的發(fā)光二極管就會點亮,由于將8個發(fā)光二極管負極全部連接在一起,稱為共陰極數(shù)碼管,還有將8個發(fā)光二極管的正極連接在一起,故稱之為共陽極數(shù)碼管。本次實驗用的數(shù)碼管需動態(tài)掃描顯示,其接口電路將所有數(shù)碼管的筆畫控制段與ah同名端連在一起,接到一個并行端口,每個公共極COM端由獨立的I/O線控制,CPU向字模輸出口送出字

15、形碼時,所有數(shù)碼管接收到相同的字形碼,究竟哪個數(shù)碼管顯示,取決于每個LED的COM端,所謂動態(tài)掃描,就是顯示一位信息時,其他位不能顯示,必須采用分時方法,輪流控制COM端。2.3 選擇光敏電阻2.3.1光敏電阻在本設計中的作用光敏電阻在實驗中是用來提供模擬電壓的,通過光照度的變化改變電阻值,提供變化的模擬電壓。2.3.2光敏電阻的功能分析物理構(gòu)造:光敏電阻又稱光導管,它幾乎都是用半導體材料制成的光電器件。 光敏電阻沒有極性,純粹是一個電阻器件,使用時既可加直流電壓,也可以加交流電壓。無光照時,光敏電阻值(暗電阻)很大,電路中電流(暗電流)很小。 當光敏電阻受到一定波長范圍的光照時,它的阻值(亮

16、電阻)急劇減少,電路中電流迅速增大。 一般希望暗電阻越大越好,亮電阻越小越好,此時光敏電阻的靈敏度高。實際光敏電阻的暗電阻值一般在兆歐級,亮電阻在幾千歐以下。光敏電阻的原理結(jié)構(gòu):它是涂于玻璃底板上的一薄層半導體物質(zhì),半導體的兩端裝有金屬電極,金屬電極與引出線端相連接,光敏電阻就通過引出線端接入電路。 為了防止周圍介質(zhì)的影響,在半導體光敏層上覆蓋了一層漆膜,漆膜的成分應使它在光敏層最敏感的波長范圍內(nèi)透射率最大。工作原理:光敏電阻接有一個穩(wěn)定電壓,當光照度變化時,光敏電阻的阻值會改變,通過比例放大器輸出電阻的壓降。2.3.3光敏電阻的技術參數(shù)亮阻約為2K歐,暗阻大于1M歐,外觀直徑 5毫米,最高承

17、受電壓直流120V,最大功耗100mW上升響應時間 20ms,下降響應時間 30ms。實驗中光敏電阻電路輸出的電壓范圍為0-5V。光敏電阻電路圖如下:2.4 選擇芯片ADC08092.4.1 ADC0809在本設計中的作用ADC0809接收光敏電阻電路傳送的模擬電壓,將模擬電壓轉(zhuǎn)換為數(shù)字電壓,傳送給CPU進行數(shù)據(jù)轉(zhuǎn)換,CPU將數(shù)字電壓通過電壓與光照度的比例關系轉(zhuǎn)換為光照度。2.4.2 ADC0809的功能分析物理構(gòu)造:ADC0809是CMOS單片型逐次逼近式AD轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)由8路模擬開關、地址鎖存與譯碼器、比較器、8位開關樹型DA轉(zhuǎn)換器、逐次逼近數(shù)碼寄存器、時序及控制邏輯和三態(tài)輸出鎖存器組

18、成。工作原理:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。2.4.3 ADC0809的技術參數(shù)ADC0809是8路8位A/D轉(zhuǎn)換器,即分辨率8位。 具有轉(zhuǎn)換起停控制端。 轉(zhuǎn)換時間為100s單個5V電源供電 模擬輸入電壓范圍05V,不需零點和滿刻度校準。工作溫度范圍

19、為-4085攝氏度低功耗,約15mW。2.4.4 ADC0809主要信號引腳的功能說明。見圖27。圖27 引腳圖ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說明各引腳功能。 IN7IN08路模擬量輸入端。D7D08位數(shù)字量輸出端。ADDA、ADDB、ADDC3位地址輸入線,用于選通8路模擬輸入中的一路ALE地址鎖存允許信號,輸入,高電平有效。對應ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。 START轉(zhuǎn)換啟動信號。A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動。START上升沿時,復位ADC0809;START下降沿時啟動芯片,開始進行A/D轉(zhuǎn)

20、換;在A/D轉(zhuǎn)換期間,START應保持低電平。 EOCA/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 OE數(shù)據(jù)輸出允許信號,輸入,高電平有效(OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù))。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ,通常使用頻率為500KHz的時鐘信號。 REF(+)、REF(-)基準電壓。參考電源、參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準。其典型值為Vref(+)=+5V, Vref(-)=-5V。Vcc電源,單一5V。

21、GND接地。2.5 硬件總邏輯圖及其說明 硬件總邏輯圖如下圖28所示:圖28 硬件總邏輯圖芯片8255A的數(shù)據(jù)線D0D7與主機低八位數(shù)據(jù)線相連,8255A的RD線、WR線、A0、A1、RESET分別與主機的RD線、WR線、A0、A1、RESET線連接。8255A的A口控制LED的段選,B口控制位選.光敏電路如下:在單片機上的接口連接如下:3.控制程序設計3.1 控制程序設計思路說明初始化8255芯片,設置工作方式控制字為89(100010001B),即A、B口為輸出,分別控制LED的段選、位選,C口輸入。下圖為控制字:以采樣五十次為一周期,求得五十次采樣的總值。然后除以50,得到采樣50次的平

22、均值,存入LastAD。在每一次采樣過程中,都在PC機和LED上輸出上一周期采樣轉(zhuǎn)化得到的光照強度(單位:勒克斯)。具體轉(zhuǎn)化過程為:采樣得到的模擬值經(jīng)過AD轉(zhuǎn)化后為電壓值,電壓范圍為0-5V。而考慮到實際生活中,一般照明為200lux,重點照明為300lux,所以實驗中可顯示的光照強度為0-500lux。于是參考兩者之間的線性關系,定下入下圖的關系: 圖29 電壓-光照度函數(shù)3.2 程序流程圖開始初始化8255CX=50采樣,計算采樣總值i=0?N計算采樣平均值結(jié)束程序強制關閉Y圖3-1 程序流程圖百位數(shù)/整數(shù)部分 入BUF/BUFFER+4,十位數(shù)/第一位小數(shù) 入BUF+1/BUFFER+6

23、,個位數(shù)/第二位小數(shù) 入BUF+2/BUFFER+7。調(diào)用DOS的9號功能在PC機上輸出電壓。在LED上輸出一位數(shù)據(jù),位選數(shù)據(jù)DATA2左移一位。重復三次為一個周期。然后還原DATA2=0FEH。采樣平均值送8255,8255的PA口段選、PB口位選。延時,i -繼續(xù)下一次采樣3. 3控制程序.MODEL TINY ;8255端口初始化COM_ADDR EQU 0E003HTC_ADDR EQU 0E002H;PCO端口ADDR_0809 EQU 0F000HWR_COM_AD_L EQU 0D004H;寫左半屏指令地址WR_COM_AD_R EQU 0D000H;寫右半屏指令地址WR_DAT

24、A_AD_L EQU 0D006H;寫左半屏數(shù)據(jù)地址WR_DATA_AD_R EQU 0D002H;寫右半屏數(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;太陽圖標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是異或,實現(xiàn)AL的清零操作 JMP START6START1: MOV CX,50 ;采樣50次 MOV BX,0 ;累計五十次的采樣值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 ;光強判斷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不報警 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 $ ;延時,等待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進制的1=1/52V) DIV BL

35、OR AL,80H ;加上小數(shù)點 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;*;延時程序DLTime PROC NEAR MOV CX,30000 LOOP $ RETDLTime ENDP;*;顯示太陽圖標和“警告!”及“光強過高”LCDSHOWTOP PROC NEAR CALL LCD_INI

36、T CALL DLTime CALL DisLine1 CALL DLTime CALL DisLine2 CALL DLTime CALL DisLine3 CALL DLTime RETLCDSHOWTOP ENDP;*;顯示太陽圖標和“警告!”及“光強過低”LCDSHOWLOW PROC NEAR CALL LCD_INIT CALL DLTime CALL DisLine1 CALL DLTime CALL DisLine2 CALL DLTime CALL DisLine4 CALL DLTimeLCDSHOWLOW ENDP ;*;顯示太陽圖標和“光強正?!盠CDSHOWOK PR

37、OC NEAR CALL LCD_INIT CALL DLTime CALL DisLine1 CALL DLTime CALL DisLine5 CALL DLTime RETLCDSHOWOK ENDP;*;顯示太陽圖標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、屏,顯示一個字節(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;*;顯示“光強過高”DisLine3 PROC NEAR LEA SI,Line3_1 MOV AL,6 ;A-起始顯示行地址,第6行 MOV AH,32 ;B-起始顯示列地址,第32列,以下同 CALL WordDISL ;左半屏,顯示一個字節(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 ;右半屏,顯示一個字子程序 LEA SI,Line3_4 MOV AL,6 MOV AH,16 CALL WordDISR RETDisLine3 ENDP;*;顯示“光強過低”DisLine4 P

溫馨提示

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

評論

0/150

提交評論