LED照明燈智能調光系統的設計(畢業設計)_第1頁
LED照明燈智能調光系統的設計(畢業設計)_第2頁
LED照明燈智能調光系統的設計(畢業設計)_第3頁
LED照明燈智能調光系統的設計(畢業設計)_第4頁
LED照明燈智能調光系統的設計(畢業設計)_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、編號: 本科畢業設計LED照明燈智能調光系統的設計 院 系:信息工程學院姓 名:*學 號:1035140140專 業:通信工程年 級:2010級指導教師:*職 稱:副教授完成日期:2014年5月摘 要照明控制系統在生活中扮演著重要的角色,可以為人們工作、生活提供良好的視覺條件,營造舒適的光環境。本設計采用單片機作為控制系統,克服了傳統照明設備耗能、不便于調節光強等缺點,實現了對光強調整的人性化、智能化的控制。設計通過點亮LED燈的數目來調整光照強度,LED燈點亮的個數越多,光線越充沛。我所做的智能調光系統,是單片機根據AD模塊采集光敏傳入的數據,及時地調整對光強的控制,當外界光照較強時,光照系

2、統提供的光照強度相應較弱,外界光照較弱時,光照系統提供的光照較強,解決了LED照明燈自動開啟、關閉、自適應調整等問題,達到了最佳調光效果。關鍵詞:智能調光;光敏傳感器;LED燈;光照強度AbstractThe intelligent light-control system play important role in our life. It can make people rest, work and live with a good visual condition and excellent psychological feelings, which create a comforta

3、ble environment. This design use the single chip micro-computer as the control system, overcome the traditional lighting systems heavy energy consumption, not easy to adjust light intensity and other shortcomings, realize the humanization and intelligent adjustment control. The single chip micro-com

4、puter adjusts the light intensity according to the AD module data from the photo-sensitive. If the outside light become strong, then the lighting system provided weak light; If the outside light is weak, the lighting system provide the strong light correspondingly, which solve the LED light open and

5、 close automatically and adaptive adjustment problems, achieved the best lighting effect.Key words: intelligent light-conditioning; photo-sensitivesensor; LED; illuminationII目 錄1 緒論11.1 研究背景和意義11.2 指導思想12 硬件設計32.1 需要注意的問題32.2 所使用芯片的簡介42.2.1 單片機芯片42.2.2 模數轉換芯片ADC080862.2.3 地址鎖存芯片74HC37372.2.4 并行口擴展芯片

6、825582.2.5 七段數碼器102.3 主要模塊的實現方案112.3.1 最小系統模塊122.3.2 AD轉換模塊132.3.3 地址鎖存模塊142.3.4 數碼管顯示模塊152.3.5 8255與LED顯示模塊152.4 硬件連接及電路圖153 軟件設計及仿真173.1 軟件的總體設計173.2 AD轉換183.3 七段數碼管的顯示193.4 8255及LED顯示213.5 中斷定時器的使用223.6 延時函數的設定234 實物的連接與調試244.1 光敏電阻5516的相關參數244.2 PCF8591 AD/DA芯片概述244.3 PCF8591的應用254.3.1 器件總地址254.

7、3.2 控制字節254.4 實物的連接方式264.5 硬件程序的燒錄275 設計總結285.1 系統應用前景285.2 設計過程中遇到的主要問題以及解決辦法285.3 創新之處及擴展分析295.4 心得體會30致謝31參考資料32附錄1 Proteus仿真圖33附錄2 實物圖片34附錄3 Keil程序342緒論1 緒論1.1 研究背景和意義隨著社會的發展,照明系統已經成為各種場合具體應用的不可或缺的一部分,它甚至在舞臺燈光、城市路燈、家居環保中起著舉足輕重的作用,而其核心模塊就是單片機智能控制系統。但對于一些大型的應用場合,如:露天停車場、活禽養殖廠、工廠控制車間等,都存在光照應用不合理,電力

8、能源過度消耗等嚴重問題,甚至城市光污染越來越成為一個新的議題。智能調光系統不僅可以解決上述問題,還可以使燈在有需要的時候自動開啟或者關閉,并且能夠做到自適應調整,以達到對外界的最佳照明效果。成功地避免了燈在不需要的時候開啟或者需要時關閉,大大的避免了不必要的電力能源浪費,對于地球環保和能源的節約,可以起到巨大的推動作用。據可靠調查,一個城市每年在電力消耗的經濟支出上對于普通人來說簡直是一個天文數字,且一個人一生中的不必要的用電都可能供城市公用路燈系統支持幾天。智能光照系統如果可以普及化,不僅可以為財政部門省下了一大筆的開支,使其可以將節省下的資金投資到更有意義的地方去,使得城市可以更好、更快的

9、發展。同時對于世界來說,更是可以取得巨大的節約能源效果,對于綠色地球的實現做出巨大的貢獻。展望一下未來,智能調光系統的應用前景是十分光明的。伴隨著物聯網技術的廣泛應用和傳感器技術領域的突破,人們可以更加方便控制各種燈光了。時下正在興起的無線技術,也為智能調光增添了一縷新的色彩。智能調光系統可以廣泛應用于智能家居、智慧旅店、智能建筑、智能農業等系統中,實時探測環境中的光照強度,即時生成數據并發送到監控平臺或系統中心。如:(1)智慧家居根據實際需要,讓你的家明亮舒適。(2)智慧農業為農作物提供適宜的光照,促進作物的生長。(3)智慧廠房為工廠生產提供合適的光照環境,節約能源消耗。(4)智慧樓宇結合陽

10、光和燈光,讓樓宇保持明亮舒適。(5)智慧養殖為家禽家畜提供適宜的光照,促進其生長繁殖。1.2 指導思想智能調光系統的自動化調整的控制方式有很多,本系統采用STC89C52RC和ADC0808、LED燈、七段數碼顯示管等相關的光電檢測、控制、顯示設備,來設計智能光照系統。實現能根據外界光線條件通過光敏電阻、AD轉換模塊等的處理實現控制LED燈,使其可以根據光線的強度自動調整點亮的LED的個數,使燈光的效果達到最佳,進而電力的消耗也降低到最小。本設計是基于光敏電阻傳感器對于外界光線強弱的感應能力的智能調光系統設計,應用了ADC采集模塊采集光敏電阻傳感器兩端的電壓值。當外界光線強度弱到一定程度的時候

11、,此時光敏電阻的阻值變大,而其兩端的電壓也相應的增大,如果ADC采集模塊所采集到的電壓值達到設定的閾值(較大),LED燈打開的數目自動增加。同理,當光線強度大到一定程度的時候,此時光敏電阻的阻值變小,而其兩端的電壓也相應的減小,ADC采集模塊所采集到的電壓值達到一定的閾值(較小),LED燈關閉的數目也自動增加。當然,在上述過程中,也可以使用按鈕來調整LED燈點亮的情況,方便地調整對光線的控制。硬件設計2 硬件設計本設計是以光敏電阻可以根據外界光線的強度而改變自身阻值的特性(光線越強,阻值越小;光線越弱,阻值越大)為基礎設計的LED照明燈智能調光系統。其原理是利用光敏電阻感受外界光線強度并體現在

12、自身阻值的變化上。光敏電阻的阻值發生變化體現在電路中,就是其兩端電壓的變化。這一具體變化需要用ADC模塊采集并經處理后顯示出來,這就需要使用ADC模塊和七段顯示數碼管了。另外,由于要控制的LED燈數目較多(是為了使功能復雜一點),我們還需要進行并行口擴展。一般優先選擇使用8255芯片。2.1 需要注意的問題首先,系統的基礎模塊應該是數據采集模塊,也就是ADC0808了。它是否正常工作關系大局。它的工作時鐘頻率不能太低,幾KHZ以上即可。只有提供了恰當的時鐘脈沖,數據才能被快速地正確的采集,才能進一步送進單片機內部進行處理,最后才能有效控制LED顯示模塊進行顯示。還有一個問題,就是為什么要選擇使

13、用LED燈?LED的內在特征決定了它具有很多優點,諸如:(1)體積小。(2)耗電量低:LED耗電相當低,直流驅動,功耗(單管0.030.06瓦),電光功率轉換接近30%。一般來說LED的工作電壓是23.6V,工作電流是0.020.03A;這就是說,它消耗的電能不超過0.1W,相同照明效果比傳統光源節能近80%。(3)使用壽命長:有人稱LED光源為長壽燈。它為固體冷光源,環氧樹脂封裝,燈體內也沒有松動的部分,不存在燈絲發光易燒、熱沉積、光衰等缺點,在恰當的電流和電壓下,使用壽命可達6萬到10萬小時,比傳統光源壽命長10倍以上。(4)高亮度、低熱量:LED使用冷發光技術,發熱量比普通照明燈具低很多

14、。(5)環保:LED是由無毒的材料做成,不像熒光燈含水銀會造成污染,同時LED也可以回收再利用。光譜中沒有紫外線和紅外線,既沒有熱量,也沒有輻射,眩光小,冷光源,可以安全觸摸,屬于典型的綠色照明光源。(6)堅固耐用:LED被完全封裝在環氧樹脂里面,比燈泡和熒光燈管都堅固。燈體內也沒有松動的部分,使得LED不易損壞。上述一系列的優點,決定了LED燈正在成為主流應用最佳選擇。2.2 所使用芯片的簡介2.2.1 單片機芯片STC89C52RC單片機是宏晶科技推出的新一代高速、低功耗、超強抗干擾的單片機,指令代碼完全兼容傳統8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。STC89C

15、52RC引腳圖如圖2-1所示。圖2-1 STC89C52RC引腳圖STC89C52RC引腳功能說明如下:VCC(40引腳):電源電壓VSS(20引腳):接地P0端口(P0.0P0.7,3932引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數據存儲器時,P0口也可以提供低8位地址和8位數據的復用總線。此時,P0口內部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節;而在校驗程序時,則輸出指令字節。驗證時,要求外接上拉電阻。P1端口(P1.0P1.7,18引腳):P1口是一個帶內

16、部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這是可用作輸入口。表2-1 P1.0和P1.1引腳復用功能引腳號功能特性P1.0T2(定時器/計數器2外部計數輸入),時鐘輸出P1.1T2EX(定時器/計數器2捕獲/重裝觸發和方向控制)P2端口(P2.0P2.7,2128引腳):P2口是一個帶內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電平,這時可用作輸入口。P3端口(P3.0P3.7,1017引腳):P

17、3是一個帶內部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3口除作為一般I/O口外,還有其他一些復用功能,如下表所示:表2-2 P3口引腳復用功能引腳號復用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0的外部輸入)P3.5T1(定時器1的外部輸入)P3.6(外部數據存儲器寫選通)P3.7(外部數據存儲器讀選通)RST(9引腳):復位輸入。當輸入連續兩個機器周期以上高電平時為有效,用來完成單片機的復位

18、初始化操作。看門狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態下,復位高電平有效。ALE/ (30引腳):地址鎖存控制信號,ALE是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳()也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。(29引腳):外部程序存儲器選通信號。當STC89C52RC從外部程序存儲器執行外部代碼時,在每個機器周期被激活兩次,而訪問外部數據

19、存儲器時,將不被激活。/VPP(31引腳):訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,必須接GND。注意加密方式1時,將內部鎖定位RESET。為了執行內部程序指令,應該接VCC。在Flash編程期間,也接收12伏VPP電壓。XTAL1(19引腳):振蕩器反相放大器和內部時鐘發生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。2.2.2 模數轉換芯片ADC0808ADC0808是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接接口。ADC0808由一個8路模擬開關、一

20、個地址鎖存與譯碼器、一個A/D轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉換器進行轉換。三態輸出鎖器用于鎖存A/D轉換完的數字量,當OE端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。ADC0808對輸入模擬量要求:信號單極性,電壓范圍是05V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 圖2-2是它的引腳圖,下面說明各個引腳的功能。圖2-2 ADC0808管腳圖15和2628(IN0IN7):8路模擬量輸入端。8、14、15和1721:8位數字量輸出端。22(AL

21、E):地址鎖存允許信號,輸入,高電平有效。6(START):當START處于上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,START應保持低電平。7(EOC):A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。9(OE):數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。10(CLK):時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。12(VREF(+)和16(VREF(-):參考電壓輸入端。11(VCC):主電源輸入端。13(GND):接地。2325(ADDA、ADDB

22、、ADDC):3位地址輸入線,用于選通8路模擬輸入中的一路。2.2.3 地址鎖存芯片74HC37374HC373,包含八路D型透明鎖存器。適用于面向總線的三態輸出。所有鎖存器共用一個鎖存使能(LE)端和一個輸出使能()端。74HC373芯片引腳圖及工作原理:圖2-3 74HC373的引腳圖:output_enable,輸出使能;LE:latch_enable,數據鎖存使能,latch是鎖存的意思; Dn:第n路輸入數據;Qn:第n路輸出數據;(1)真值表,表示芯片在輸入和其它的情況下的輸出情況。真值表的意思如下:第一、二行:當0、LE1時,輸出端數據等于輸入端數據;第三行:當OE0、LE0時,

23、輸出端保持不變;第四行:當1時,無論Dn、LE為何值,輸出端為高阻態。表2-3 74HC373的真值表DnLEQnHHLHLHLLXLLQnXXHZ(2)高阻態,就是輸出既不是高電平,也不是低電平,而是高阻抗的狀態;在這種狀態下,可以多個芯片并聯輸出;但是,這些芯片中只能有一個處于非高阻態狀態,否則會將芯片燒毀。(3)數據鎖存,即當輸入的數據消失時,在芯片的輸出端,數據仍然保持。(4)數據緩沖,加強驅動能力。74LS244/74LS245/74LS373/74LS573都具備數據緩沖的能力。 在實際應用的時候是這樣做的:OE0;先將數據從單片機的口線上輸出到Dn;再將LE從0->1-&g

24、t;0;這時,你所需要輸出的數據就鎖存在Qn上了,輸入的數據在變化也影響不到輸出的數據了;實際上,單片機現在可以忙著干別的事情,如串行通信、掃描鍵盤2.2.4 并行口擴展芯片82558255是Intel公司生產的可編程并行I/O接口芯片,有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設連接時的中間接口電路。8255作為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數據線、地址線、控制線接口。同時必須具有與外設連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分

25、,因而8255內部結構分為3個部分:與CPU連接部分、與外設連接部分、控制部分。其芯片引腳圖如圖2-4所示。圖2-4 8255芯片的引腳圖各引腳的功能:RESET:復位輸入線,當該輸入端處于高電平時,所有內部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。:芯片選擇信號線,當這個輸入引腳為低電平時,即=0時,表示芯片被選中,允許8255與CPU進行通訊;=1時,8255無法與CPU做數據傳輸.:讀信號線,當這個輸入引腳為低跳變沿時,即產生一個低脈沖且=0時,允許8255通過數據總線向CPU發送數據或狀態信息,即CPU從8255讀取信息或數據。:寫入信號,當這個輸入引腳為低跳變沿

26、時,即產生一個低脈沖且=0時,允許CPU將數據或控制字寫入8255。D0D7:三態雙向數據總線,8255與CPU數據傳送的通道,當CPU執行輸入輸出指令時,通過它實現8位數據的讀/寫操作,控制字和狀態信息也通過數據總線傳送。8255具有3個相互獨立的輸入/輸出通道端口,用+5V單電源供電,能在以下三種方式下工作。方式0基本輸入輸出方式;方式1選通輸入/出方式;方式2雙向選通輸入/輸出方式;PA0PA7:端口A輸入輸出線,一個8位的數據輸出鎖存器/緩沖器,一個8位的數據輸入鎖存器。工作于三種方式中的任何一種。PB0PB7:端口B輸入輸出線,一個8位的I/O鎖存器,一個8位的輸入輸出緩沖器。不能工

27、作于方式二。PC0PC7:端口C輸入輸出線,一個8位的數據輸出鎖存器/緩沖器, 一個8位的數據輸入緩沖器。端口C可以通過工作方式設定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態信號輸入端口。不能工作于方式一或二。A1A0:地址選擇線,用來選擇8255的PA口、PB口、PC口和控制寄存器。當A1A0=00時,PA口被選擇;當A1A0=01時,PB口被選擇;當A1A0=10時,PC口被選擇;當A1A0=11時,控制寄存器被選擇。2.2.5 七段數碼器7段數碼管一般由8個發光二極管組成,其中由7個細長的發光二極管組成數字顯示,另外

28、一個圓形的發光二極管顯示小數點。當發光二極管導通時,相應的一個點或一個筆畫發光。控制相應的二極管導通,就能顯示出各種字符,盡管顯示的字符形狀有些失真,能顯示的數符數量也有限,但其控制簡單,使有也方便。發光二極管的陽極連在一起的稱為共陽極數碼管,陰極連在一起的稱為共陰極數碼管,如圖2-5所示。圖2-5 八位七段數碼顯示器七段數碼管的驅動方法:發光二極管(LED是一種由磷化鎵(GaP)等半導體材料制成的,能直接將電能轉變成光能的發光顯示器件。當其內部有電流通過時,它就會發光。7段數碼管每段的驅動電流和其他單個LED發光二極管一樣,一般為510mA,正向電壓隨發光材料不同表現為1.82.5V不等。7

29、段數碼管的顯示方法可分為靜態顯示與動態顯示,下面分別介紹。(1)靜態顯示所謂靜態顯示,就是當顯示某一字符時,相應段的發光二極管恒定地盡可能截止。這種顯示方法為每一們都需要有一個8位輸出口控制。對于51單片機,可以在并行口上擴展多片鎖存74LS573作為靜態顯示器接口。靜態顯示器的優點是顯示穩定,在發光二極管導通電注一定的情況下顯示器的亮度高,控制系統在運行過程中,僅僅在需要更新顯示內容時,CPU才執行一次顯示更新子程序,這樣大大節省了CPU的時間,提高了CPU的工作效率;缺點是位數較多時,所需I/O口太多,硬件開銷太大,因此常采用另外一種顯示方式動態顯示。(2)動態顯示所謂動態顯示就是一位一位

30、地輪流點亮各位顯示器(掃描),對于顯示器的每一位而言,每隔一段時間點亮一次。雖然在同一時刻只有一位顯示器在工作(點亮),但利用人眼的視覺暫留效應和發光二極管熄滅時的余輝效應,看到的卻是多個字符“同時”顯示。顯示器亮度既與點亮時的導通電流有關,也與點亮時間和間隔時間的比例有關。調整電流和時間參數,可實現亮度較高較穩定的顯示。若顯示器的位數不大于8位,則控制顯示器公共電位只需一個8位I/O口(稱為掃描口或字位口),控制各位LED顯示器所顯示的字形也需要一個8位口(稱為數據口或字形口)。動態顯示器的優點是節省硬件資源,成本較低,但在控制系統運行過程中,要保證顯示器正常顯示,CPU必須每隔一段時間執行

31、一次顯示子程序,這占用了CPU的大量時間,降低了CPU工作效率,同時顯示亮度較靜態顯示器低。2.3 主要模塊的實現方案該設計主要由五大模塊構成:單片機最小系統模塊(實現復位功能),光線接收模塊(用滑動變阻器來等效),AD轉換模塊,地址鎖存模塊(74HC373),8255和LED顯示模塊(供16枚)。晶振電路數碼管顯示輸出LED顯示輸出ADC采集單片機核心模塊圖2-6 系統框圖其系統框圖如圖2-6所示。所需的硬件單片機STC89C52RC、ADC0808元件、8255芯片、74HC373元件、滑動變阻器、發光二極管、電阻、排阻、11.0592M晶振、電源、學習用的單片機最小系統開發板、按鈕等。2

32、.3.1 最小系統模塊最小系統模塊:最小系統是51單片機的最基本的組成部分,它包括單片機及其所需的必要電源、時鐘、復位等部件,它能使單片機處于正常的運行狀態,還可以將最小系統作為應用系統的核心部分,對其進行存儲擴展、A/D擴展等。51單片機的引腳雖然只有四十,但它有很多的擴展功能,根據各種設計要求設計相應的外圍電路。編寫出相應的控制程序,便可以跟外圍電路很好的組合成功能復雜的系統。51單片機最小系統的功能主要有:能夠運行用戶程序,用戶可以復位單片機,具有相對強大的外部擴展等功能。最小系統引腳功能的說明如下:(1)18,19腳為單片機的晶振引腳;外接11.0592MHz的晶振,晶振外圍還有2個2

33、2pF的起振電容,可以使單片機更好的起振。(2)9腳為單片機的復位引腳;當復位引腳出現連續兩個機器周期的高點平時,單片機復位。(3)31引腳為引腳;當接高電平時讀取內部儲存數據,當內部存儲器讀取完成后,單片機自動讀取外部存儲器;當接低電平時,單片機只讀取外部存儲器。單片機最小系統如圖2-7所示。圖2-7 單片機最小系統模塊2.3.2 AD轉換模塊首先,要做一個分壓電路。將滑動變阻器兩個固定端,一端接上5V的直流電源,另外一端接地。中間的可以滑動的位置接上ADC0808的IN7,IN0IN6接地,這樣表示只有通道7可以傳入數據,其余通道都不能采集數據。此外,還需要將ADC0808的地址選通端AD

34、D A,ADD B,ADD C全部接上高電平,表示我們選擇了IN7進行輸入。其次,由于ADC0808內部沒有時鐘電路,我們需要給它提供時鐘信號,這個靠單片機使用定時中斷來產生,將其CLK端接P3.1。其它的,如ALE地址鎖存信號接單片機的P3.2,START接上單片機的P3.0,EOC接上單片機的P3.4,輸出允許端OE接單片機的P3.5。最后,ADC0808輸出的結果是0255之間的8位二進制數,OUT1是最高位,OUT8是最低位,需要將它們對應接上單片機的P1口的P1.7P1.0。ADC0808各引腳連接示意如圖2-8。圖2-8 ADC0808引腳連接示意圖2.3.3 地址鎖存模塊74HC

35、373是地址鎖存器,使用它可以將地址和數據分開傳遞,使用時用單片機的引腳ALE對它的LE來進行控制了。其數據端D0D7接上單片機的P0口的8位引腳,接地,表示它工作在直通方式。輸出端低兩位Q1Q0用作8255的地址選通端。最高位Q7接8255的片選端。74HC373芯片引腳連接示意如圖2-9所示。圖2-9 74HC373的引腳圖2.3.4 數碼管顯示模塊8位七段數碼顯示器有8位位選端和8位數據輸入端。這就大大消耗了單片機的I/O資源,可能的話,需要用74HC373對其單片機進行串口擴展。本次設計的連法:8位位選端由P2口來進行控制,8位數據輸入端有P0口來進行控制,顯示的方式是動態掃描顯示法。

36、即:單片機輪流選中8位中的每一位,來進行顯示。只要延時程序設計的合理,七段數碼顯示器就可以穩定的顯示。8位七段數碼管的顯示結果的說明:最前兩位顯示的是LED燈點亮的數目,中間一位顯示的是任意一個按鈕被按下去的次數,最后三位表示ADC的采集的光敏電阻兩端的電壓值。2.3.5 8255與LED顯示模塊8255芯片的連接:D0D7與單片機的P0口相連,用來接收數據。讀寫端也與單片機讀寫端相連,方便單片機對其進行讀寫操作。地址選通線A0、A1接入7HC373的Q0、Q1。RESET接地,片選端接74HC373的Q7。這樣一來8255的4個端口的地址就可以算出來了,分別是PA0x00,PB0x01,PC

37、0x02,控制端0x03。16枚LED燈的接法為:8255的PA口接上8枚,同樣PB口也接上了8枚,LED使用共陽極的接法,即它們的陽極全部通過排阻接上電源。PC口懸空不用。詳細情況見圖2-10所示。圖2-10 8255引腳連接圖2.4 硬件連接及電路圖本次設計是將上述的五個模塊拼接一起組成一個系統體系,以實現設計所需要的功能。主要的是ADC采集模塊,其次比較重要的就是對LED模塊的控制。單個模塊其功能相對會比較簡單單一,但將一些模塊合理的串接起來就可以實現相對復雜的功能。即:本次設計應有的功能。 電路總體連接方式:(1)ADC0808的連接方式:轉換啟動信號START接到單片機的P3.0口,

38、時鐘信號CLK接到P3.1口,ALE接到單片機的P3.5口,EOC接到單片機的P3.4口,OE接到單片機的P3.4口,OUT8OUT0接單片機P1.0P1.7,使用通道7進行采集,其余通道接地,表示沒有被使用。(2)單片機的P1口既作為數據輸出端,又作為地址選通端。通過與74HC373的連接,來分離數據和地址,采用時分的輸出方式。74H373的LE端口接單片機的ALE端口,利用單片機對LE的輸入電平進行控制。當LE為高電平時,數據從Dn輸入到鎖存器;當LE為低電平時,鎖存器存儲D輸入上的信息一段就緒時間直到LE的下降沿來臨。OE端接地,選為直通方式。(3)8255的地址選通端由地址鎖存芯片74

39、HC373的Q0和Q1來控制,而且片選端也由Q7來控制。8255的讀寫信號與單片機的讀寫信號線連接。三個輸出端口中的PA、PB分別接上8枚LED,PC口懸空,暫時不用。單片機核心控制模塊光敏電阻AD采集模塊七段數碼顯示器地址鎖存模塊8255及LED顯示模塊以下是電路概圖。圖2-11 系統電路概圖23軟件設計及仿真3 軟件設計及仿真3.1 軟件的總體設計考慮到Proteus軟件的仿真模型LDR(光敏電阻)的用法較為繁瑣,調整起來不怎么靈活,光敏電阻的阻值變化要么變化較為緩慢,要么變化劇烈,無法捕捉到有意義的阻值點,無法使實驗的結果一目了然的體現出來。我們選擇用滑動變阻器模仿它的阻值變化。另外,我

40、們選擇采集滑動變阻器的有效電阻兩端的電壓UR,因為如果采集電流的話,采集電路就比較容易干擾單片機系統。LED顯示模塊總共有16枚LED參與點亮,其中智能自動調節的有8枚,人工手動調節的也有8枚。初步效果如下:0<UR <1,說明外界光線最強,所有燈都滅掉;1UR <2,開2個燈;2UR <3,打開4個燈;3UR <4,打開6個燈;4UR <5,說明外界光線最弱,此時所有的8個燈都打開。按鈕1的使用效果:不按時沒有燈點亮,接著就是每按下一次,就依次遞增點亮1盞燈。總共有8個層次的變化。按鈕2的使用方法,只是每按下去一次,就依次遞增點亮2盞燈,總共有4個層次的變

41、化。軟件仿真部分由兩部分組成,結構原理圖用Proteus來創建,單片機C程序由Keil uVision4來編寫。具體步驟:首先,在Keil中創建一個工程,編寫C文件后,并添加到工程中去,編譯正常后,會生成16進制文件。其次,在Proteus中完成原理圖的連接后,再將由Keil生成的16進制文件導入到單片機中去,這樣就可以在Proteus中進行仿真了,注意單片機的晶振頻率需調成12MHZ的。最后,在Proteus中對元器件進行必要的調整,就可以觀察顯示結果了。本系統的軟件執行流程圖如下:NOYES圖3-1 軟件流程圖模式4模式5模式1模式2模式3啟動程序開始進行AD轉換轉換結束?執行顯示處理程序

42、數碼管顯示數據判斷電壓值大小3.2 AD轉換由于ADC0808內部沒有時鐘產生電路,所以若想讓ADC0808正常工作,就必須對其提供合適的時鐘脈沖。我們使用中斷定時器來產生,原因有兩個。一是比較精確,且時鐘脈沖的產生比較穩定。二是充分地利用了單片機閑置的資源內部中斷定時器。 在進行C語言編程的時候,要注意控制好延時時間,使AD轉換正常進行。并且在執行其他子程序之前都要判斷轉換ADC是否已經完成。AD模塊仿真圖如下圖3-2所示。說明如下:Proteus中的電壓表模型所顯示出的是1.09V,是在05V范圍內,再者七段數碼顯示器上顯示的數據也和這一數據相吻合,也就是說本次采集的數據是正確的,但不同的

43、阻值,有可能多多少少存在著一些誤差。頻率計顯示的是ADC0808的采集頻率的大小。圖3-2 ADC0808仿真圖3.3 七段數碼管的顯示8位七段數碼顯示管的數據端是單片機的P0口控制,位選是由P2口來控制。數碼管的顯示是采用動態顯示的方式。即:采用輪流掃描的方式來選中八位中的每一位,利用人眼的視覺余暉效應,來達到穩定顯示的效果。只要延時設置合理,便可穩定的顯示數值。對于8位共陰極七段數碼管的顯示程序display(),單片機要把從P1口讀進來的8位二進制數0255轉換為05V之內的有效電壓值后,再輸出顯示。仿真結果如下圖3-3所示。圖3-3 數碼管的顯示仿真圖說明:8位七段顯示數碼管的前兩位顯

44、示的是LED燈點亮的個數,中間的那位1表示按鈕已經按下一次了;最后3位顯示的是滑動變阻器的等效電阻兩端的電壓值。其數值正好與Proteus中的電壓表所讀出的值相等。數碼管的顯示程序抄錄如下:void display(void)/共陰段碼 char code table = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /07 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,0x40; /8F、-P0=0;P2=0x7f;P0=tablenum2/10;delay(1);P0=0;P2=0xbf;P0

45、=tablenum2%10;delay(1);P0=0;P2=0xdf;P0=table16;delay(1);P0=0;P2=0xef;P0=tablecnt1+cnt2;delay(1); P0=0;P2=0xf7;P0=table16; delay(1); P0=0;P2=0xfb;P0=tablenum1/100|0x80;/第三位 delay(1); P0=0;P2=0xfd;P0=tablenum1%100/10;/十位 delay(1); P0=0;P2=0xfe;P0=tablenum1%10; /個位delay(1); P2=0xff;/關閉顯示器3.4 8255及LED顯示

46、至于對LED顯示模塊的控制,我們是采用對8255的串口寫控制字來操作的。LED顯示自適應調整部分一共分為5個層次,也就需要5個相應的函數,分別是led0()、led2()、led4()、led6()、led8(),具體執行哪一個,要看流程控制語句switch-case的具體參數的值了。下面是LED顯示模塊的仿真截圖。圖3-4 LED顯示模塊的仿真部分處理程序如下:switch(v) case 0:PA8255=0xff;delay(2);break; case 1:PA8255=0xfc;delay(2);break; case 2:PA8255=0xf0;delay(2);break; ca

47、se 3:PA8255=0xc0;delay(2);break; case 4:PA8255=0x00;delay(2);break; default:break; 3.5 中斷定時器的使用C51單片機的定時器/計數器為可編程定時/計數器。在定時/計數器工作之前,必須將控制命令寫入定時器/計數器的控制寄存器,即進行初始化。定時/計數器0和定時/計數器1是所有51系列單片機都具有的功能,對他們的控制是通過定時/計數器模式寄存器TMOD和TCON來實現的,下面介紹TMOD。表3-1 定時/計數器模式寄存器TMOD定時/計數器1定時/計數器0D7D6D5D4D3D2D1D0GATEC/M1M0GAT

48、EC/M1M0GATE:定時操作開關控制位,當GATE=1時,或引腳為高電平,同時TCON中的TR0或TR1控制位為1時,定時/計數器0或1才開始工作。若GATE=0,則只要將TR0或TR1控制位為1,定時/計數器0或1就開始工作。C/:定時器或計數器的功能選擇位。C/=1時為計數器,通過外部引腳T0或T1輸入技術脈沖。C/=0時為定時器,由內部系統的始終提供及時工作脈沖。M1、M0:分別是模式選擇位的高位和低位,通過他們對定時器的工作模式進行設置。當M1M0=10時,定時/計數器工作在方式2,8位自動加載定時/計數器。本次設計需要對ADC0808提供穩定的工作時鐘脈沖,我采用定時中斷來產生。

49、人工手動控制點亮LED的個數需要使用外部中斷來監測按鈕是否按下,以及已經按鈕按了幾下的處理。外部中斷0的程序摘錄如下:void waibu() interrupt 2cnt+;if(cnt=5) cnt=0;switch(cnt)case 0:PB8255=0Xff;delay(2);break;case 1:PB8255=0Xfc;delay(2);break;case 2:PB8255=0Xf0;delay(2);break;case 3:PB8255=0Xc0;delay(2);break;case 4:PB8255=0X00;delay(2);break;3.6 延時函數的設定延時函數

50、,是每次程序必不可少的一部分。本次設計使用它來設定顯示的延遲時間。通過調用它,使ADC0808的采集過程和轉換過程在一定的時間內完成,還可以使七段數碼顯示管穩定的顯示數據。具體程序設計如下:void delay(uint z)/延時z ms的時間uint i, k;for(k=0;k<z;k+)for(i=0;i<120;i+);實物的連接與調試4 實物的連接與調試實物部分我選擇了PCF8591來代替ADC0808,因為ADC0808有8路采集通道,我們只用了其中之一,大部分資源被閑置。并且現如今手上又有一塊閑置的PCF8591。它有4個模擬通道,一路模擬量輸出而且連接比較簡單。本

51、身就是一個AD/DA轉換模塊,而且這個PCF8591模塊又自帶光敏電阻5516,再合適不過了。4.1 光敏電阻5516的相關參數最大電壓(V-dc):150最大功耗(mW):100環境溫度(°C):-30 +70光譜峰值(nm):560亮電阻(10Lux)(K):510暗電阻(M):0.8響應時間(ms):上升:30,下降:30照度電阻特性:2【注】光敏電阻的照度特性是指在光照條件下,它的電阻的變化趨勢或是在電路中體現的電流的曲線變化。注意,光敏電阻的線性度不高。4.2 PCF8591 AD/DA芯片概述PCF8591是一個單片集成、單獨供電、低功耗、8-bit CMOS數據獲取器件

52、。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0, A1和A2可用于硬件地址編程,允許在同一個I2C總線上接入8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數據信號都是通過雙線雙向I2C總線以串行的方式進行傳輸。PCF8591 主要性能指標如下:(1)PCF8951采用單電源供電,工作電壓范圍2.5V6V(2)PCF8591內置跟蹤保持電路(3)PCF8591具備較低待機電流(4)PCF8591通過I2C總線串行輸入/輸出數據(5)PCF8591的采樣率由I2C總線速率決定(6)PCF8591通過3

53、個硬件地址引腳尋址(7)PCF8591的4個模擬口輸入可編程為單端或差分(8)PCF8591具備自動增量頻道選擇(9)PCF8591的AD采樣部分采取8-bit逐次逼近A/D轉換(10)PCF8591具備1路DA數模轉換實現模擬量的輸出 其引腳及功能:圖4-1 PCF8591的引腳圖AIN0AIN3:模擬信號輸入端。A0A3:引腳地址端。SDA、SCL:I2C總線的數據線、時鐘線。OSC:外部時鐘輸入端,內部時鐘輸出端。EXT:內部、外部時鐘選擇線,使用內部時鐘時EXT接地。AGND:模擬信號地。AOUT:D/A轉換輸出端。VREF:基準電源端。4.3 PCF8591的應用4.3.1 器件總地

54、址PCF8591采用典型的I2C總線接口器件尋址方法,即總線地址由器件地址、引腳地址和方向位組成。飛利蒲公司規定A/D器件地址為1001。引腳地址為A2A1A0,其值由用戶選擇,因此I2C系統中最多可接23=8個具有I2C總線接口的A/D器件。地址的最后一位為方向位,當主控器對A/D器件進行讀操作時為1,進行寫操作時為0。總線操作時,由器件地址、引腳地址和方向位組成的從地址為主控器發送的第一字節。4.3.2 控制字節控制字節用于實現器件的各種功能,如模擬信號由哪幾個通道輸入等。控制字節存放在控制寄存器中。總線操作時為主控器發送的第二字節。其格式如下圖4-2所示。圖4-2 PCF8591的控制字

55、其中:D1、D0兩位是A/D通道編號:00通道0,01通道1,10通道2,11通道3,D2,自動增益選擇(有效位為1),D5、D4模擬量輸入選擇:00為四路單數入、01為三路差分輸入、10為單端與差分配合輸入、11為模擬輸出允許有效。當系統為A/D轉換時,模擬輸出允許為0。模擬量輸入選擇位取值由輸入方式決定:四路單端輸入時取00,三路差分輸入時取01,單端與差分輸入時取10,二路差分輸入時取11。最低兩位時通道編號位,當對0通道的模擬信號進行A/D轉換時取00,當對1通道的模擬信號進行A/D轉換時取01,當對2通道的模擬信號進行A/D轉換時取10,當對3通道的模擬信號進行A/D轉換時取11。在進行數據操作時,首先是主控器發出起始信號,然后發出讀尋址字節,被控器做出應答后,主控器從被控器讀出第一個數據字節,主控器發出應答,主控器從被控器讀出第二個數據字節,主控器發出應答一直到主控器從被控器中讀出第n個數據字節,主控器發出非應答信號,最后主控器發出停止信號。4.4 實物的連接方式實物部分我選擇了使用開發板來做,它是我經過多次比較后才選擇的。元器件也是我自己焊的,這要比自己另外

溫馨提示

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

評論

0/150

提交評論