畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)家用投影機(jī)電腦型控制板的設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)家用投影機(jī)電腦型控制板的設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)家用投影機(jī)電腦型控制板的設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)家用投影機(jī)電腦型控制板的設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)家用投影機(jī)電腦型控制板的設(shè)計(jì)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要隨著人們對高素質(zhì)、高節(jié)奏生活的要求也越來越高,從而帶動(dòng)了科學(xué)的迅猛開展,也使越來越多的科學(xué)技術(shù)也應(yīng)用于日常生活當(dāng)中,使得人們的生活水平更進(jìn)一步的提高,也更多樣化。單片機(jī)憑借其強(qiáng)大的結(jié)構(gòu)體系,得以廣泛應(yīng)用于智能儀器儀表、家用電器、交通等領(lǐng)域.Keil提供的集成開發(fā)環(huán)境下,C語言程序得以編譯、管理、連接、仿真、調(diào)試防止了調(diào)試后又要調(diào)用編輯器的重復(fù)過程,因此縮短了開發(fā)周期。本文介紹的家用投影儀采用AT89C2051,并用C語言程序載入加以控制,能進(jìn)行調(diào)焦,啟動(dòng)/關(guān)閉風(fēng)扇、實(shí)現(xiàn)溫控、光控等根本操作。關(guān)鍵詞 家用投影儀,C語言,單片機(jī) AbstractAs for high-quality, hi

2、gh-paced demands of living is getting higher and higher, which led to the rapid development of science, but also a growing number of science and technology also applies to daily life, making peoples standard of living further increased and more diversified. With its powerful single-chip architecture

3、 can be widely used in intelligent instruments and meters, household appliances, transportation and other fields. Keil provided under the integrated development environment, C language program to compile, management, connectivity, simulation, debugging avoided after debugging Editor calls to repeat

4、the process and therefore shorten the development cycle. This article describes the use of the home projector AT89C2051, and C language program to control the loading, focus can be activated on / off fans, to achieve temperature control, light control and other basic operations. Keywords :home proje

5、ctor, C language, single-chip目 錄 TOC o 1-3 h z u HYPERLINK l _Toc231804810 摘 要 PAGEREF _Toc231804810 h I HYPERLINK l _Toc231804811 Abstract PAGEREF _Toc231804811 h II HYPERLINK l _Toc231804812 目 錄 PAGEREF _Toc231804812 h III HYPERLINK l _Toc231804813 1 引 言 PAGEREF _Toc231804813 h 1 HYPERLINK l _Toc2

6、31804814 系統(tǒng)功能描述 PAGEREF _Toc231804814 h 1 HYPERLINK l _Toc231804815 系統(tǒng)方案 PAGEREF _Toc231804815 h 1 HYPERLINK l _Toc231804816 1.3 本文的目的和意義 PAGEREF _Toc231804816 h 2 HYPERLINK l _Toc231804817 單片機(jī)原理 PAGEREF _Toc231804817 h 3 HYPERLINK l _Toc231804818 2.1 AT89C2051功能簡介 PAGEREF _Toc231804818 h 3 HYPERLIN

7、K l _Toc231804819 3 電路設(shè)計(jì) PAGEREF _Toc231804819 h 6 HYPERLINK l _Toc231804820 調(diào)焦電機(jī)正反轉(zhuǎn)控制電路LG9110工作原理 PAGEREF _Toc231804820 h 6 HYPERLINK l _Toc231804821 3.2 LED數(shù)碼管顯示器電路分析 PAGEREF _Toc231804821 h 7 HYPERLINK l _Toc231804822 電腦板電路圖設(shè)計(jì) PAGEREF _Toc231804822 h 11 HYPERLINK l _Toc231804823 4軟件設(shè)計(jì) PAGEREF _To

8、c231804823 h 14 HYPERLINK l _Toc231804824 程序設(shè)計(jì) PAGEREF _Toc231804824 h 14 HYPERLINK l _Toc231804825 定義及初始化模塊 PAGEREF _Toc231804825 h 14 HYPERLINK l _Toc231804826 4.1.2 源不正常處理子程序模塊 PAGEREF _Toc231804826 h 15 HYPERLINK l _Toc231804827 4.1.3 溫度不正常處理子程序模塊 PAGEREF _Toc231804827 h 16 HYPERLINK l _Toc23180

9、4828 4.1.4 驅(qū)動(dòng)焦距電機(jī)的子程序模塊 PAGEREF _Toc231804828 h 16 HYPERLINK l _Toc231804829 完整代碼詳解 PAGEREF _Toc231804829 h 16 HYPERLINK l _Toc231804830 調(diào)試應(yīng)用及故障處理 PAGEREF _Toc231804830 h 23 HYPERLINK l _Toc231804831 功能調(diào)試24 HYPERLINK l _Toc231804832 4.2.2 使用技巧 PAGEREF _Toc231804832 h 24 HYPERLINK l _Toc231804833 4.2

10、.3 日常保養(yǎng)與維護(hù) PAGEREF _Toc231804833 h 25 HYPERLINK l _Toc231804834 投影機(jī)常見故障處理 PAGEREF _Toc231804834 h 25 HYPERLINK l _Toc231804835 結(jié) 論 PAGEREF _Toc231804835 h 27 HYPERLINK l _Toc231804836 致 謝 PAGEREF _Toc231804836 h 28 HYPERLINK l _Toc231804837 參考文獻(xiàn) PAGEREF _Toc231804837 h 291 引 言系統(tǒng)功能描述電腦板的技術(shù)要求及實(shí)現(xiàn)功能有:接通

11、電源后,投影機(jī)處于待機(jī)狀態(tài),紅燈紅燈LED亮。按遙控器電源鍵或投影機(jī)面板電源觸發(fā)鍵,紅燈滅,綠燈綠LED亮,同時(shí)投影機(jī)的投影燈亮,冷卻風(fēng)扇啟開工作。延時(shí)30s后,內(nèi)部光敏電阻檢測投影燈光源,假設(shè)正常,那么電腦板發(fā)出一個(gè)負(fù)脈沖給驅(qū)動(dòng)板,整機(jī)開始工作。在10s內(nèi),按兩次面板電源觸發(fā)鍵,或直接按一次遙控器電源,電腦板再發(fā)出一個(gè)負(fù)脈沖給驅(qū)動(dòng)板,整機(jī)停止工作。同時(shí)投影燈滅,綠燈閃爍,冷卻風(fēng)扇延時(shí)3min停, 隨后綠燈滅,紅燈亮。正常工作時(shí)假設(shè)投影燈滅,那么電腦板發(fā)出一個(gè)負(fù)脈沖給驅(qū)動(dòng)板,整機(jī)停止工作。同時(shí)切斷投影燈光源電源,紅燈慢閃,風(fēng)扇延時(shí)3min停,紅燈仍慢閃。正常工作時(shí),假設(shè)投影機(jī)內(nèi)的溫度大于60,

12、那么經(jīng)熱敏電阻檢測后,電腦發(fā)出一個(gè)負(fù)脈沖給驅(qū)動(dòng)板,整機(jī)停止工作。同時(shí)切斷投影燈光源電源,紅燈快閃,風(fēng)扇延時(shí)3min 停,紅燈仍快閃。系統(tǒng)方案圖1.1為電腦板的系統(tǒng)構(gòu)成方框圖,有單片機(jī)控制器、按鍵輸入、遙控輸入、繼電器輸入、調(diào)焦點(diǎn)擊輸出、熱敏/光敏傳感、LED指示及電源等8局部組成。單片機(jī)控制器是整個(gè)系統(tǒng)的核心,負(fù)責(zé)整個(gè)系統(tǒng)的運(yùn)行,這里使用了小巧的AT89C2051。按鍵輸入電路負(fù)責(zé)投影機(jī)調(diào)焦鏡頭的電機(jī)正反轉(zhuǎn)控制駛?cè)朐O(shè)定。遙控輸入端接液晶屏組件板,現(xiàn)在市場上所見的大多為日常液晶屏組件,如日立、富士等品牌,其功能較強(qiáng),帶TV、Video、S端、VGA、LR聲音等,有的還帶功放,可直接驅(qū)動(dòng)喇叭,并且

13、都具全功能紅外遙控,其遙控觸發(fā)信號(hào)可直接引入電腦板中作遙控開/關(guān)機(jī)信號(hào)。繼電器輸出電路用于驅(qū)動(dòng)12V直流風(fēng)扇電機(jī)及220V交流投影光源燈的工作。調(diào)焦電機(jī)輸出用于調(diào)整投影機(jī)鏡頭的焦距。熱敏/光敏傳感器用于探測工作過程中系統(tǒng)的狀態(tài),以進(jìn)行保護(hù)。如投影燈損壞時(shí),那么風(fēng)扇延時(shí)3min后自動(dòng)停機(jī)。再如當(dāng)機(jī)內(nèi)溫升達(dá)60以上時(shí),那么光源斷電,風(fēng)扇延時(shí)3min后自動(dòng)停機(jī)。LED指示電路用以顯示工作狀況。電源局部負(fù)責(zé)對整個(gè)系統(tǒng)供電,從液晶屏組件板引入的12V電壓,經(jīng)78L08。78L05兩級(jí)穩(wěn)壓電路后,提供單片機(jī)穩(wěn)定可靠的5V電源。熱敏傳感LED指示電源光敏傳感遙控傳感繼電器輸出調(diào)焦電機(jī)驅(qū)動(dòng)單片機(jī)控制器按鍵輸入

14、 圖1.1 電腦板的系統(tǒng)構(gòu)成方框圖1.3 本文的目的和意義隨著大規(guī)模集成電路技術(shù)日益成熟,通信技術(shù)、計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)及家用電器產(chǎn)業(yè)飛速開展,自制家用投影機(jī)已成為電子愛好者的一個(gè)熱點(diǎn),也有很多愛好者及工程技術(shù)人員將其視為推向市場的一個(gè)產(chǎn)品。進(jìn)口的投影機(jī)產(chǎn)品價(jià)格非常昂貴,稍上檔次的一般均在2萬元以上。而電子愛好者自制的話一般都不會(huì)超過2000元,市場銷售價(jià)可達(dá)35004000元外型和工藝等可能趕不上時(shí)髦進(jìn)口貨,利潤空間還是非常大的。一些中小型民營企業(yè)、學(xué)校、街道、機(jī)關(guān)在進(jìn)行公務(wù)或商務(wù)活動(dòng)時(shí),均需價(jià)廉物美的投影機(jī);而且家庭使用時(shí),假設(shè)將投影機(jī)與家庭影院系統(tǒng)相結(jié)合,那么由于其氣勢恢宏的大尺寸畫面可

15、超過100寸,能產(chǎn)生電影院級(jí)的震撼,因此市場前景十分看好。稍高級(jí)一點(diǎn)的投影機(jī),一般都有微電腦控制系統(tǒng),對投影機(jī)運(yùn)行中各種狀態(tài)如溫度、投影光源、遙控 /受控操作進(jìn)行監(jiān)控及響應(yīng)。熟悉計(jì)算機(jī)系統(tǒng)的組成原理,能很好地考查這大學(xué)三年來所學(xué)有知識(shí),培養(yǎng)獨(dú)立分析問題、解決問題的能力和初步進(jìn)行科學(xué)研究的能力以及創(chuàng)新意識(shí)、創(chuàng)新能力和獲取新知識(shí)能力的訓(xùn)練。通過鍛煉使用所學(xué)的專業(yè)知識(shí)分析CPU設(shè)計(jì)的原理,可以為日后的進(jìn)行相關(guān)的設(shè)計(jì)工作或進(jìn)一步的深造打下很好的根底。單片機(jī)原理2.1 AT89C2051功能簡介AT89C系列與MCS-51系列單片機(jī)相比有兩大優(yōu)勢:第一,片內(nèi)程序存儲(chǔ)器采用閃速存儲(chǔ)器,使程序的寫入更加方便

16、;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整個(gè)硬件電路的體積更小。AT89C2051的功能:1)和MCS-51產(chǎn)品 的兼容 2)2K字節(jié)可重編程閃速存儲(chǔ)器 3)耐久性:1000次寫擦除周期 4)2.7V6V 的操作范圍 5)全靜態(tài)操作:024MHz 6)兩級(jí)加密程序存儲(chǔ)器 7)1288位內(nèi)部RAM 8)15根可編程I/O引線 9)兩個(gè)16位定時(shí)器/計(jì)數(shù)器 10)六個(gè)中斷源 11)可編程串行UART通道 12)直接LED驅(qū)動(dòng)輸出 13)片內(nèi)模擬比擬器 14)低功耗空載和掉電方式AT89C2051結(jié)構(gòu)AT89C2051是一個(gè)有20個(gè)引腳的芯片,引腳配置如圖3.1所示,內(nèi)部結(jié)構(gòu)

17、如圖3.2所示。與8051內(nèi)部結(jié)構(gòu)進(jìn)行比照后可發(fā)現(xiàn),AT89C2051減少了兩個(gè)對外端口(即P0、P2口),使它最大可能地減少了對外引腳,因而芯片尺寸有所減小。AT89C2051芯片的20個(gè)引腳功能為:VCC 電源電壓。GND 接地。RST復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),所有I/O引腳復(fù)位至“1。 XTAL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2來自反向振蕩放大器的輸出。P1口8位雙向I/O口。引腳提供內(nèi)部上拉,當(dāng)作為輸入并被外部下拉為低電平時(shí),它們將輸出電流(IIL),這是因內(nèi)部上拉的緣故。P3口引腳與為7個(gè)帶內(nèi)部上拉的雙向I/O引腳。在內(nèi)部已與片內(nèi)比擬器

18、輸出相連,不能作為通用I/O引腳訪問。圖2.1 AT89C2051引腳配置表 P3口特殊功能P3 口引腳PRXD串行輸入口PTXD串行輸出口P外部中斷0P外部中斷1PT0定時(shí)器0外部輸入PT1定時(shí)器1外部輸入 AT89C2051內(nèi)部結(jié)構(gòu)3 電路設(shè)計(jì)調(diào)焦電機(jī)正反轉(zhuǎn)控制電路LG9110工作原理LG9110是為控制和驅(qū)動(dòng)電機(jī)設(shè)計(jì)的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,是外圍器件本錢降低,整機(jī)可靠性提高。該芯片有兩個(gè)TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個(gè)輸出端能直接驅(qū)動(dòng)電機(jī)的正反轉(zhuǎn)動(dòng),它具有較大的電流驅(qū)動(dòng)能力,每通道能通過750800mA的持續(xù)電流,峰值

19、電流能力可達(dá)1.52.0A;同時(shí)它具有較低的輸出飽和壓降;內(nèi)置的鉗位二極管能釋放感性負(fù)載的反向沖擊電流,使它在驅(qū)動(dòng)繼電器、直流電機(jī)、步進(jìn)電機(jī)或開關(guān)功率管時(shí)平安可靠。LG9110被廣泛應(yīng)用于玩具汽車電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)驅(qū)動(dòng)和開關(guān)功率管等電路上。其特點(diǎn)如下:1低靜態(tài)工作電流。2)12V。3每通道具有800mA連續(xù)電流輸出能力。4) 較低的飽和壓降。5) TTL/CMOS輸出電平兼容,可直接連CPU。6) 輸出內(nèi)置鉗位二極管,適用于感性負(fù)載。7控制和驅(qū)動(dòng)集成于單片IC之中。8引腳具備高壓保護(hù)功能。9工作溫度:080.LG9110的引腳連線如下圖。LG9110的引腳定義、電特性及邏輯控制表分別如表、表及

20、表所列。 表3.1 LG9110的引腳定義序號(hào)符號(hào)功能1OAA路輸出引腳2Vcc電源電壓3Vcc電源電壓4OBB路輸出引腳5GND地線6IAA路輸入引腳7IBB路輸入引腳8GND地線表3.2 LG9110的電特性符號(hào)參數(shù)范圍單位最小典型最大Vcc電源電壓612VIdd靜態(tài)電流1020AIin工作電流200350500AIc持續(xù)輸出電流750800850mAImax峰值電流15002000mA表 LG9110的邏輯控制表IAIBOAOB1010010100001100 LED數(shù)碼管顯示器電路分析在單片機(jī)系統(tǒng)中,經(jīng)常用LED發(fā)光二極管數(shù)碼管顯示器來顯示單片機(jī)系統(tǒng)的工作狀態(tài),運(yùn)算結(jié)果等信息。LED數(shù)

21、碼管顯示器是單片機(jī)與人對話的一種重要輸出設(shè)備。1 LED數(shù)碼管顯示器的構(gòu)造及特點(diǎn)圖是LED數(shù)碼管顯示器的構(gòu)造,它實(shí)際上是由8個(gè)發(fā)光二極管構(gòu)成,其中7個(gè)發(fā)光二極管排列成“8字形的筆畫段,另一個(gè)發(fā)光二極管為圓點(diǎn)形狀,安裝在顯示器的右下角作為小數(shù)點(diǎn)使用。通過發(fā)光二極管亮暗的不同組合,從而可顯示出09的阿拉伯?dāng)?shù)字以及其他能由這些筆畫段構(gòu)成的各種字符。LED數(shù)碼管顯示器的內(nèi)部結(jié)構(gòu)共有兩種不同的形式,一種是共陽極顯示器,其內(nèi)部電路如下圖,即8個(gè)發(fā)光二極管的正極全部連接在一起組成公共端,負(fù)極那么各自獨(dú)立引出。使用時(shí)公共陽極接+5V,這時(shí)陰極接低電平的發(fā)光二極管就導(dǎo)通點(diǎn)亮,接高電平的那么不亮。另一種是共陰極顯

22、示器,其內(nèi)部電路如下圖,即8個(gè)發(fā)光二極管的負(fù)極全部連接在一起組成公共端,正極那么各自獨(dú)立引出。使用時(shí)公共陰極接地,這時(shí)陽極接高電平的發(fā)光二極管就導(dǎo)通點(diǎn)亮,接低電平的那么不亮。圖 LED數(shù)碼管顯示器的構(gòu)造 圖 共陽極顯示器內(nèi)部結(jié)構(gòu) 圖 共陰極顯示器內(nèi)部結(jié)構(gòu)從尺寸上分,LED數(shù)碼顯示管的種類很多,常用的有0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、5.0寸等。一般小于1.0寸的為單管芯,1.21.5寸為雙管芯,1.8寸以上的為3個(gè)以上管芯,因而他們的供電電壓不同,一般每個(gè)管芯的壓降為2V左右。通常,0.8寸以下采用5V供電,1.023.寸采用12V供電,3.0以

23、上的選擇更高電壓供電。驅(qū)動(dòng)電路中的限流電阻R通常根據(jù)LED的工作電流計(jì)算得到。R=(Vcc-VLED)/ILED式中,Vcc為電源電壓+5V,VLED為壓降一般取2V左右,ILED為工作電流可取120mA。通常取幾百。在此使用的AT89C51單片機(jī),其I/O口具有20 mA的灌電流輸出能力,因此可直接驅(qū)動(dòng)共陽極的LED數(shù)碼管顯示器。2) LED數(shù)碼管顯示器的根本原理 為了顯示數(shù)字或符號(hào),要為LED數(shù)碼管顯示器提供代碼,因?yàn)檫@些代碼是為顯示字形的,因此稱之為字形代碼。七段發(fā)光二極管,再加上一個(gè)小數(shù)點(diǎn)位,共計(jì)8位代碼,由一個(gè)數(shù)據(jù)字節(jié)提供。各位數(shù)據(jù)的對應(yīng)關(guān)系如表所列。 表數(shù)據(jù)位D7D6D5D4D3D

24、2D1D0顯示段H(或稱dp)gfedcba LED數(shù)碼管顯示器的字形段碼表如表所列。 顯示器的字形段碼表顯示字形字型碼共陽極字型碼共陰極0C0H3FH1F9HF9H2A4HA4H3B0HB0H499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77HB83H7CHCC6H39HDA1H5EHE86H79HF8EH71H熄滅FFH00H3)LED數(shù)碼管顯示器的顯示方法在單片機(jī)應(yīng)用系統(tǒng)中,的顯示方法有兩種:靜態(tài)顯示法和動(dòng)態(tài)掃描顯示法。 1 靜態(tài)顯示法 所謂靜態(tài)顯示,就是每一個(gè)顯示器各筆畫段都要獨(dú)占具有鎖存功能的輸出口線,CPU把欲顯示的字形代碼送到輸出口上

25、,就可以使顯示器顯示出所需要的數(shù)字或符號(hào)。此后,即使CPU不再去訪問它,顯示的內(nèi)容也不會(huì)消失因?yàn)楦鞴P畫段接口具有鎖存功能。靜態(tài)顯示法的優(yōu)點(diǎn)是顯示程序十分簡單,顯示亮度大。由于CPU不必經(jīng)常掃描顯示器,所以節(jié)約了CPU的工作時(shí)間。但靜態(tài)顯示也有其缺點(diǎn),主要是占用的I/O口線較多,硬件本錢也較高。所以靜態(tài)顯示法常用在顯示數(shù)目較少的應(yīng)用系統(tǒng)中。圖3.8為靜態(tài)顯示示意圖。圖3.5中由74LS2738D鎖存器作擴(kuò)展輸出口,輸出控制信號(hào)由P2.0和WR合成。當(dāng)二者同時(shí)為0時(shí),或門輸出為0,將P0口數(shù)據(jù)鎖存到74LS273中,口地址為FEEEH。輸出口線的低4位和高4位分別接BCD-7段顯示譯碼驅(qū)動(dòng)器74L

26、S47,他們驅(qū)動(dòng)兩位數(shù)碼管作靜態(tài)的連續(xù)顯示。圖3.5 靜態(tài)顯示示意圖2)動(dòng)態(tài)掃描顯示法動(dòng)態(tài)掃描顯示是單片機(jī)應(yīng)用系統(tǒng)中最常用的顯示方式之一。它是把所有顯示器的8個(gè)筆畫段ah的各同名端互相并接在一起,并把它們接到字段輸出口上。為了防止各個(gè)顯示器同時(shí)顯示相同的數(shù)字,各個(gè)顯示器的公共端COM還要受到另一組信號(hào)的控制,即把它們接到位輸出口上。這樣,對于一組LED數(shù)碼管顯示器需要由兩組信號(hào)來控制:一組是字段輸出口輸出的字形代碼,用來控制顯示的字形,稱為段碼;另一組是位輸出口輸出的控制信號(hào),用來選擇第幾位顯示器工作,稱為位碼。在這兩組信號(hào)的控制下,可以一位一位地輪流點(diǎn)亮各個(gè)顯示器,顯示各自的數(shù)碼,以實(shí)現(xiàn)動(dòng)態(tài)

27、掃描顯示。在輪流點(diǎn)亮一遍的過程中,每位顯示器點(diǎn)亮地時(shí)間是極為短暫的15ms。由于LED具有余輝特性以及人眼視覺的惰性,盡管各位顯示器實(shí)際上是分時(shí)斷續(xù)的顯示,但只要適中選取掃描頻率,給人眼的視覺印象就會(huì)是在連續(xù)穩(wěn)定地顯示,并不覺察有閃爍現(xiàn)象。動(dòng)態(tài)掃描顯示由于各個(gè)數(shù)碼管的字段線是并聯(lián)使用的,因而大大簡化了硬件電路。動(dòng)態(tài)顯示示意圖如圖3.11所示。圖3.6 動(dòng)態(tài)顯示示意圖在實(shí)際的單片機(jī)系統(tǒng)中,LED顯示程序都是作為一個(gè)子程序供監(jiān)控程序調(diào)用,因此各位顯示器都掃過一遍之后,就返回監(jiān)控程序。返回監(jiān)控程序后,進(jìn)行一些其他操作,再調(diào)用顯示掃描程序,通過這種反復(fù)調(diào)用來實(shí)現(xiàn)LED數(shù)碼管顯示器的動(dòng)態(tài)掃描。動(dòng)態(tài)掃描顯

28、示在使用時(shí)必須反復(fù)調(diào)用顯示子程序,假設(shè)CPU要進(jìn)行其他操作,顯示子程序只能插入循環(huán)子程序中,這往往束縛了的CPU工作,降低了CPU的工作效率。另外掃描顯示電路電路中,顯示器數(shù)目也不宜太多,一般在12個(gè)以內(nèi),否那么會(huì)使人發(fā)覺出顯示器在分時(shí)輪流顯示。這兩種顯示方式各有利弊:靜態(tài)顯示法雖然數(shù)據(jù)顯示穩(wěn)定,占用很少的CPU工作時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的電路硬件較多。動(dòng)態(tài)掃描顯示占用的時(shí)間多,但CPU使用的硬件少,能節(jié)省線路板空間及降低本錢。動(dòng)態(tài)掃描顯示由于外圍元件少,降低了本錢,充分發(fā)揮了軟件的優(yōu)勢,因而在單片機(jī)系統(tǒng)中得到了廣泛的應(yīng)用。工業(yè)生產(chǎn)節(jié)能時(shí)控器也采用動(dòng)態(tài)掃描顯示。電腦

29、板電路如圖AT89C2051單片機(jī)的P3.2液晶屏組件板的觸發(fā)信號(hào)端相連,每次按遙控器的開/關(guān)鍵后,從液晶屏組件板觸發(fā)端輸出一個(gè)脈沖信號(hào),經(jīng)單片機(jī)處理后,從P1.4輸出一個(gè)負(fù)脈沖加至觸發(fā)驅(qū)動(dòng)板,實(shí)現(xiàn)遙控啟動(dòng)/關(guān)機(jī)。P3.3外接手控ON/OFF按鍵,也可以進(jìn)行啟動(dòng)/關(guān)機(jī)。P3.4/P3.5外接的INC+、INC-按鍵用于調(diào)整投影機(jī)的投影鏡頭焦距,按下INC=鍵后,P1.6輸出低電平,P1.5輸出高電平,調(diào)焦電機(jī)正轉(zhuǎn):反之,按下INC-鍵后,P1.5輸出低電平,P1.6輸出高電平,調(diào)焦電機(jī)反轉(zhuǎn)。釋放按鍵后,調(diào)焦電機(jī)停轉(zhuǎn),焦距鎖定。P1.1、P3.7分別外接熱敏電阻、光敏電阻,投影燈亮?xí)r,光敏電阻受

30、光,P3.7為低電平。機(jī)內(nèi)溫度小于60時(shí),經(jīng)P1.0、P1.1內(nèi)部的比擬器判別,內(nèi)部P3.6為低電平,這時(shí)驅(qū)動(dòng)板正常工作。否那么假設(shè)P3.6或P3.7為高電平,那么整機(jī)進(jìn)入保護(hù)狀態(tài)。P3.0輸出井光耦后,通過繼電器驅(qū)動(dòng)直流電風(fēng)扇工作。P3.1輸出經(jīng)光耦后,通過繼電器驅(qū)動(dòng)220V交流投影燈工作。為了使驅(qū)動(dòng)板工作穩(wěn)定、可靠,除設(shè)置兩級(jí)穩(wěn)壓電路,L1、L2、C1C4雙匹型濾波器外,還采用了輸出光耦隔離的方式驅(qū)動(dòng),使整機(jī)工作穩(wěn)定性極佳。外部連接描述:J1:1腳接液晶屏組件板的12V電源;4腳接液晶屏組件板的地;2、3腳外接12V直流冷卻風(fēng)扇。J2:1腳及3、4腳短路以增大繼電器K1的觸點(diǎn)電流容量,K1

31、的觸點(diǎn)經(jīng)J2后串入投影燈,投影燈的工作電壓為交流220V。J3:1腳為負(fù)脈沖輸出端,接驅(qū)動(dòng)板觸發(fā)端;2、3腳對GND5V之間接2個(gè)按鍵,作為調(diào)焦電機(jī)控制;4腳為GND5V輸出;5腳接面板的開/關(guān)按鍵;6腳與液晶屏組建板觸發(fā)端相連,以接收遙控開/關(guān)的觸發(fā)信號(hào)。J4:1、2腳外接直流12V慢速電機(jī),進(jìn)行工作調(diào)焦。J5:1、2腳間接紅色LED,2、3腳間接綠色LED,其中2腳為公共陽極。13腳也可接入一個(gè)雙色LED。 K的負(fù)溫度系數(shù)熱敏電阻。J7:1、2腳間接入一個(gè)100 K的光敏電阻。圖3.7電腦板電路圖 4軟件設(shè)計(jì)定義及初始化模塊bit on_off =0; /開/關(guān)機(jī)標(biāo)志,“1”開,“0”關(guān)b

32、it over30s =0; /30s溢出標(biāo)志,“1”溢出,“0”未溢出bit time30s =0; /30s定時(shí)啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”不啟動(dòng)bit over3m =0; /3min溢出標(biāo)志,“1”溢出,“0”未溢出bit time3m =0; /3min定時(shí)啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”不啟動(dòng)bit drv_flag =0; /驅(qū)動(dòng)板啟動(dòng)標(biāo)志,“1”已啟動(dòng),“0”已關(guān)閉bit off_flag =0; /允許關(guān)機(jī)標(biāo)志,“1”允許關(guān)機(jī),“0”不允許關(guān)機(jī)bit rled_flashf =0; /紅發(fā)光管快閃啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”關(guān)閉bit rled_flashs =0; /紅發(fā)光管慢

33、閃啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”關(guān)閉bit gled_flag =0; /綠發(fā)光管慢閃啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”關(guān)閉bit off10s_flag =0; /關(guān)機(jī)時(shí)10s計(jì)時(shí)標(biāo)志,“1”啟動(dòng)計(jì)時(shí),“0”關(guān)閉計(jì)時(shí)uchar cnt =0; /30s軟件計(jì)時(shí)器uchar key_flag =0; /鍵按下計(jì)時(shí)器unit counter =0; /3min軟件計(jì)器/*以下為I/O端口定義*sbit inc =P34; /焦距增加值按鍵sbit dec =P35; /焦距減少值按鍵 sbit m0 =P16; /焦距電機(jī)正轉(zhuǎn)輸出sbit m1 =P15; /焦距電機(jī)反轉(zhuǎn)輸出sbit rled =P12

34、; /輸出至紅發(fā)光管sbit gled =P13; /輸出至綠發(fā)光管 sbit out_drv =P14; /輸出負(fù)脈沖至驅(qū)動(dòng)板sbit out_light =P31; /輸出控制220v光源繼電器sbit out_fan =P30; /輸出控制12v風(fēng)扇繼電器sbit check_tem =P36; /溫度檢測端sbit check_light =P37; /光源檢測端/*初始化子函數(shù)*/void init()inc =1;dec =1;mo =1;m1 =1; /端口初始化check_tem =1;check_light =1;P3_2 =1;P3_3 =1;init_timer1();

35、/初始化定時(shí)器1ITO =1;IT1 =1;外中斷0、外中斷1為邊沿觸發(fā)/*= = = = = = = = = = = = = = = = = = = = = = = = = */on_off =0;off_flag =0;drv_flag =0; /初始化標(biāo)志off10s_flag =0; /關(guān)閉10s計(jì)時(shí)功能/*定時(shí)器1初始化*/void init_temer1()TMOD =ox11; /定時(shí)器T1方式1THO = -(48000/256); /定時(shí)初值為50msTLO =-(48000%256);IE =ox8f; /開放CPU中斷TR1 =1; /啟動(dòng)T1 源不正常處理子程序模塊/*

36、光源不正常處理子函數(shù)*/void fun_light() if(drv_flag)drv();drv_flag =0 /假設(shè)驅(qū)動(dòng)板已工作,再發(fā)一個(gè)觸發(fā)脈沖使其停止工作out_fan =0; /冷卻風(fēng)扇繼續(xù)工作3minout_light =1;gled =1; /投影燈關(guān)閉,綠燈滅rled_flashf =0;rled_flashs =0; /紅燈慢閃標(biāo)志置位 over3m =0; time3m =0; /啟動(dòng)3min計(jì)時(shí) EX0 =0; EX1 =0; /關(guān)閉外中斷 while(!over3m)out_light =1;out_fan =0; /等3min延時(shí)結(jié)束 EX0 =1; EX1 =1

37、; /開放外中斷 time3m =0; over3m =0; on_off =0; /關(guān)機(jī)標(biāo)志復(fù)位 while(!on_off) /光源關(guān)閉,冷卻風(fēng)扇停轉(zhuǎn),紅燈仍慢閃,等待人工處理out_fan =1;out_light =1;off_flag =0;key_flag =0;rled_flashf =0;rled_flashs =1;gled_flash =0;off10s_flag =0;if(on_off)rled_flashs =0;break; /假設(shè)有人又按下啟動(dòng)鍵,又進(jìn)入正常狀態(tài) 溫度不正常處理子程序模塊/*溫度不正常處理*/void fun_tem() if(drv_flag)d

38、rv();drv_flag =0; /假設(shè)驅(qū)動(dòng)板已工作,再發(fā)一個(gè)觸發(fā)脈沖使其停止工作out_fan =0; /冷卻風(fēng)扇繼續(xù)工作3minout_light =1;gled =1; /投影燈關(guān)閉,綠燈滅rled_flashf =1; /紅燈快閃標(biāo)志置位rled_flashs =0; over3m =0; time3m =1; /啟動(dòng)3min計(jì)時(shí) EX0 =0; EX1 =0; /關(guān)閉外中斷 while(!over3m)out_light =1;out_fan =0; /等3min延時(shí)結(jié)束 EX0 =1; EX1 =1; /開放外中斷 time3m =0; over3m =0; on_off =0;

39、 /關(guān)機(jī)標(biāo)志復(fù)位 while(!on_off) /光源關(guān)閉,冷卻風(fēng)扇停轉(zhuǎn),紅燈仍快閃,等待人工處理out_fan =1;out_light =1;gled =1;off_flag =0;key_flag =0;rled_flashf =1;rled_flashs =0;gled_flash =0;off10s_flag =0;if(on_off)rled_flashf =0;break; /假設(shè)有人又按下啟動(dòng)鍵,又進(jìn)入正常狀態(tài) 驅(qū)動(dòng)焦距電機(jī)的子程序模塊/*驅(qū)動(dòng)焦距電機(jī)的子函數(shù)*/void drv _mot(void) if(!inc)|(!dec) /假設(shè)有人按下焦距+或焦距按鍵delay(1

40、0); /延時(shí)10ms再判 if(!inc)m0=0;m1=1; /按下焦距+按鍵后,焦距電機(jī)正傳 else if(!dec) /否那么按下焦距按鍵后,焦距電機(jī)反轉(zhuǎn) m1=0;m0=1; elsem1=1;m0=1; /兩個(gè)鍵都不按下,電機(jī)不轉(zhuǎn) if(inc)&(dec)m1=1;m0=1; /兩個(gè)鍵都按下,電機(jī)不轉(zhuǎn)完整代碼詳解# define uchar unsigned char# define uint unsigned int/*/bit on_off =0; /開/關(guān)機(jī)標(biāo)志,“1”開,“0”關(guān)bit over30s =0; /30s溢出標(biāo)志,“1”溢出,“0”未溢出bit time3

41、0s =0; /30s定時(shí)啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”不啟動(dòng)bit over3m =0; /3min溢出標(biāo)志,“1”溢出,“0”未溢出bit time3m =0; /3min定時(shí)啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”不啟動(dòng)bit drv_flag =0; /驅(qū)動(dòng)板啟動(dòng)標(biāo)志,“1”已啟動(dòng),“0”已關(guān)閉bit off_flag =0; /允許關(guān)機(jī)標(biāo)志,“1”允許關(guān)機(jī),“0”不允許關(guān)機(jī)bit rled_flashf =0; /紅發(fā)光管快閃啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”關(guān)閉bit rled_flashs =0; /紅發(fā)光管慢閃啟動(dòng)標(biāo)志,“1”啟動(dòng),“0”關(guān)閉bit gled_flag =0; /綠發(fā)光管慢閃啟動(dòng)標(biāo)

42、志,“1”啟動(dòng),“0”關(guān)閉bit off10s_flag =0; /關(guān)機(jī)時(shí)10s計(jì)時(shí)標(biāo)志,“1”啟動(dòng)計(jì)時(shí),“0”關(guān)閉計(jì)時(shí)uchar cnt =0; /30s軟件計(jì)時(shí)器uchar key_flag =0; /鍵按下計(jì)時(shí)器unit counter =0; /3min軟件計(jì)器/*以下為I/O端口定義*sbit inc =P34; /焦距增加值按鍵sbit dec =P35; /焦距減少值按鍵 sbit m0 =P16; /焦距電機(jī)正轉(zhuǎn)輸出sbit m1 =P15; /焦距電機(jī)反轉(zhuǎn)輸出sbit rled =P12; /輸出至紅發(fā)光管sbit gled =P13; /輸出至綠發(fā)光管 sbit out_d

43、rv =P14; /輸出負(fù)脈沖至驅(qū)動(dòng)板sbit out_light =P31; /輸出控制220v光源繼電器sbit out_fan =P30; /輸出控制12v風(fēng)扇繼電器sbit check_tem =P36; /溫度檢測端sbit check_light =P37; /光源檢測端/*函數(shù)列表*/void start();void drv();void fun_light();void fun_tem();void fun1();void init();void init_timer1();void delay(uint k);void drv_mot(void);/*主函數(shù)*/void m

44、ain(void) init(); /上電時(shí)初始化 while(1) /無限循環(huán) if(on_off) /假設(shè)啟動(dòng)標(biāo)志為1 if(! off_flag)start();off_flag=1; /假設(shè)原來停機(jī)等待,那么啟動(dòng) cher_tem=1;cher_light=1; /溫度與光源檢測端置為輸入狀態(tài) if(! cherk_tem)&(! cher_light) /假設(shè)光源與溫度正常 if(drv_flag) /假設(shè)以啟動(dòng)驅(qū)動(dòng)板 drv_mot(); /調(diào)用驅(qū)動(dòng)焦距電機(jī)的子程序,進(jìn)行調(diào)焦 gled=0;rled=1; /正常工作過程,綠燈亮gled_flash=0;rled_flashf=0;

45、rled_flashs=0; /綠燈慢閃標(biāo)志復(fù)位,紅燈快、慢閃標(biāo)志復(fù)位 out_light=0; /投影光源亮out_fan=0; /冷卻風(fēng)扇轉(zhuǎn) if(check_tem)fun_tem(); /假設(shè)溫度不正常,調(diào)用fun_tem()子程序處理 if(check_light)fun_light(); /假設(shè)光源不正常,調(diào)用fun_light()子程序處理 else /否那么啟動(dòng)標(biāo)志為0,進(jìn)入關(guān)機(jī)或待機(jī)過程 if(off_flag) /假設(shè)關(guān)機(jī)標(biāo)志有效 if(drv_flag)fun1(); /假設(shè)以啟動(dòng)標(biāo)志板,進(jìn)入關(guān)機(jī)過程 rled=0;gled=1; /正常待機(jī)過程 out_light=1;

46、 /投影光源滅 out_fan=1; /冷卻風(fēng)扇停轉(zhuǎn) /*初始化子函數(shù)*/void init()inc =1;dec =1;mo =1;m1 =1; /端口初始化check_tem =1;check_light =1;P3_2 =1;P3_3 =1;init_timer1(); /初始化定時(shí)器1ITO =1;IT1 =1; /外中斷0、外中斷1為邊沿觸發(fā)/*= = = = = = = = = = = = = = = = = = = = = = = = = */on_off =0;off_flag =0;drv_flag =0; /初始化標(biāo)志off10s_flag =0; /關(guān)閉10s計(jì)時(shí)功能/

47、*定時(shí)器1初始化*/void init_temer1()TMOD =ox11; /定時(shí)器T1方式1THO = -(48000/256); /定時(shí)初值為50msTLO =-(48000%256);IE =ox8f; /開放CPU中斷TR1 =1; /啟動(dòng)T1/*定時(shí)器1中斷效勞子函數(shù)*/void time1(void) interrupt 3 using 1 THO =-(48000/256); /重裝定時(shí)初值TLO =-(48000/256);/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

48、*/if (gled_flash) /假設(shè)綠燈慢閃標(biāo)志有效cnt + +;if(cnt=10)gled =! gled ;cnt =0; /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/if(rled_flashs) /假設(shè)紅燈慢閃標(biāo)志有效cnt + +; if(cnt=10)rled=! rled;cnt =0; /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/if(

49、rled_flashf) /假設(shè)紅燈快閃標(biāo)志有效cnt + +; if(cnt=2)rled=! rled;cnt =0; /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/if(time3m) /假設(shè)3min啟動(dòng)標(biāo)志有效counter+ +; /開始計(jì)數(shù) if(counter=2510)over3m =1;counter=0; / 3min到,那么3min溢出標(biāo)志置位/*- - - - - - - - - - - - - - - - - - - - - - - - - - - -

50、- - - - - - - - - - -*/if(time30s) /假設(shè)30s啟動(dòng)標(biāo)志有效counter+ +; /開始計(jì)數(shù) if(counter=400)over30 s=1;counter=0; / 30s到,那么30s溢出標(biāo)志置位/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/if(off10s_flag) /假設(shè)s10啟動(dòng)標(biāo)志有效counter+ +; /開始計(jì)數(shù)if(counter=130off10s_flag=0;key_flag=1;counter=0; /假設(shè)1

51、0s內(nèi)無第二次關(guān)機(jī)按鍵動(dòng)作,那么鍵計(jì)數(shù)器置1,繼續(xù)保持開機(jī)工作/*外中斷0效勞子函數(shù)*/void zd_int0() interrupt 0 using 2 /遙控控制開/關(guān)機(jī)on_off = ! on_off ; /開/關(guān)機(jī)標(biāo)志取反,“1”開,“0”關(guān)/*外中斷1效勞子函數(shù)*/void zd_int1()interrupt 2 using 3 /手動(dòng)控制開/關(guān)機(jī)delay(5) /延時(shí)5ms再判if(P3_3= =0)key_flag+ +; /假設(shè)鍵依舊按下,鍵計(jì)數(shù)器遞加if(key_flag= =1)on_off =1;off10s_flag =0; /鍵計(jì)數(shù)器為1,那么開機(jī)if(key

52、_flag=1)ke y_flag=0; /鍵計(jì)數(shù)器的范圍為02,即020s有效if(key_flag= =0)on_off =0;off10s_flag =0; /鍵計(jì)數(shù)器為,那么關(guān)機(jī)等待if(key_flag= =2)off10s_flag =1; /鍵計(jì)數(shù)器為2,進(jìn)入關(guān)機(jī)狀態(tài)/*機(jī)器已工作情況下,10s內(nèi)連按二次關(guān)機(jī)鍵,鍵計(jì)數(shù)器為2,進(jìn)入關(guān)機(jī)。否那么,10s一到,鍵計(jì)數(shù)器又置1繼續(xù)進(jìn)入工作。因?yàn)殡娔X認(rèn)為可能有人不慎碰到關(guān)機(jī)鍵*/ while(P3_3 = =0) /等待釋放后退出中斷子函數(shù) delay(5); if(P3_3= =1)break;/*延時(shí)K*1ms子函數(shù)*/viod de

53、lay(uint k)uint i,j;for(i=0;ik;i+)for(j=0;j121;j+);/*啟動(dòng)子函數(shù)*/void start() gled_flash=0;rled_flashf=0;reld_flashs=0; /復(fù)位相關(guān)標(biāo)志gled=0;rled=1; /綠燈亮out_light=0; /點(diǎn)亮投影燈光源out_fan+0; /冷卻風(fēng)扇啟動(dòng)time30s=1; /30s標(biāo)志置位EX0=0;EX1=0; /開放INT0、INT1中斷while(!over30s); /等延時(shí)30stime30s=0; /相關(guān)標(biāo)志復(fù)位over30s=0;if(! cher_light) /假設(shè)光源

54、檢測端為低電平,即光源正常發(fā)光 if(! drv_flag)drv();drv_flag=1; /假設(shè)驅(qū)動(dòng)板啟動(dòng)標(biāo)志為“0”尚未啟動(dòng),調(diào)用觸發(fā)子函數(shù)EX0=1;EX1=1; /關(guān)閉外中斷/*產(chǎn)生觸發(fā)驅(qū)動(dòng)板的負(fù)脈沖子函數(shù)*/void drv() /產(chǎn)生1ms的負(fù)脈沖out_drv=1;out_drv+0;delay(1);out_drv=1;/*光源不正常處理子函數(shù)*/void fun_light() if(drv_flag)drv();drv_flag =0 /假設(shè)驅(qū)動(dòng)板已工作,再發(fā)一個(gè)觸發(fā)脈沖使其停止工作out_fan =0; /冷卻風(fēng)扇繼續(xù)工作3minout_light =1;gled =

55、1; /投影燈關(guān)閉,綠燈滅rled_flashf =0;rled_flashs =0; /紅燈慢閃標(biāo)志置位 over3m =0; time3m =0; /啟動(dòng)3min計(jì)時(shí) EX0 =0; EX1 =0; /關(guān)閉外中斷 while(!over3m)out_light =1;out_fan =0; /等3min延時(shí)結(jié)束 EX0 =1; EX1 =1; /開放外中斷 time3m =0; over3m =0; on_off =0; /關(guān)機(jī)標(biāo)志復(fù)位 while(!on_off) /光源關(guān)閉,冷卻風(fēng)扇停轉(zhuǎn),紅燈仍慢閃,等待人工處理out_fan =1;out_light =1;off_flag =0;k

56、ey_flag =0;rled_flashf =0;rled_flashs =1;gled_flash =0;off10s_flag =0;if(on_off)rled_flashs =0;break; /假設(shè)有人又按下啟動(dòng)鍵,又進(jìn)入正常狀態(tài)/*溫度不正常處理*/void fun_tem() if(drv_flag)drv();drv_flag =0; /假設(shè)驅(qū)動(dòng)板已工作,再發(fā)一個(gè)觸發(fā)脈沖使其停止工作out_fan =0; /冷卻風(fēng)扇繼續(xù)工作3minout_light =1;gled =1; /投影燈關(guān)閉,綠燈滅rled_flashf =1; /紅燈快閃標(biāo)志置位rled_flashs =0;

57、over3m =0; time3m =1; /啟動(dòng)3min計(jì)時(shí) EX0 =0; EX1 =0; /關(guān)閉外中斷 while(!over3m)out_light =1;out_fan =0;/等3min延時(shí)結(jié)束 EX0 =1; EX1 =1; /開放外中斷 time3m =0; over3m =0; on_off =0; /關(guān)機(jī)標(biāo)志復(fù)位 while(!on_off) /光源關(guān)閉,冷卻風(fēng)扇停轉(zhuǎn),紅燈仍快閃,等待人工處理out_fan =1;out_light =1;gled =1;off_flag =0;key_flag =0;rled_flashf =1;rled_flashs =0;gled_f

58、lash =0;off10s_flag =0;if(on_off)rled_flashf =0;break; /假設(shè)有人又按下啟動(dòng)鍵,又進(jìn)入正常狀態(tài)/*關(guān)機(jī)子函數(shù)*/void fun1() out_light=1: /關(guān)閉光源 if(drv_flag)drv();drv_flag=0; /假設(shè)驅(qū)動(dòng)板啟動(dòng)標(biāo)志為“1”以啟開工作,調(diào)用觸發(fā)子函數(shù)發(fā)一個(gè)脈沖令其關(guān)機(jī)over3m=0; /去除3min溢出標(biāo)志time3m=1; /啟動(dòng)3min計(jì)時(shí)EX0=0;EX1=0; /關(guān)閉外中斷while(! over3m)glad_flash=1; rled_flashf=0;reld_flashs=0;rled

59、=1;out_fan=0; /*等待3min延時(shí),同時(shí)翻開風(fēng)扇冷卻*/EX0=1;EX1=1; /3min過,翻開外中斷over3m=0; /清楚標(biāo)志time3m=0;off_flag=0;out_light=1;out_fan=1;gled_flash=0;reld_flashf=0;rled_flashs=0;gled=1;rled=0;/*驅(qū)動(dòng)焦距電機(jī)的子函數(shù)*/void drv _mot(void) if(!inc)|(!dec) /假設(shè)有人按下焦距+或焦距按鍵delay(10); /延時(shí)10ms再判 if(!inc)m0=0;m1=1; /按下焦距+按鍵后,焦距電機(jī)正傳 else i

60、f(!dec) /否那么按下焦距按鍵后,焦距電機(jī)反轉(zhuǎn) m1=0;m0=1; elsem1=1;m0=1; /兩個(gè)鍵都不按下,電機(jī)不轉(zhuǎn) if(inc)&(dec)m1=1;m0=1; /兩個(gè)鍵都按下,電機(jī)不轉(zhuǎn) 調(diào)試應(yīng)用及故障處理功能調(diào)試電腦板安裝完成后,主要測兩個(gè)電壓,一個(gè)是J1的1腳,正常應(yīng)為12V;另一個(gè)是U3的輸出電壓,應(yīng)為5V。這兩點(diǎn)電壓無問題的話,一般只要電路無短路、開路問題,元器件質(zhì)量無問題,那么投影機(jī)即能正常工作。另外投影機(jī)安裝調(diào)試時(shí)的注意問題也在此列出。1)投影機(jī)用于家庭環(huán)境,一般不用怎么調(diào)試便會(huì)有滿意的效果。但用于工程,由于信號(hào)源不標(biāo)準(zhǔn),信號(hào)線太長,多種大功率的電器設(shè)備之間的電

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論