基于單片機(jī)的LED調(diào)光器的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的LED調(diào)光器的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的LED調(diào)光器的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的LED調(diào)光器的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的LED調(diào)光器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(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、重慶科技學(xué)院智能儀器課程設(shè)計(jì)報(bào)告 學(xué) 院:_電氣與信息工程學(xué)院_ 專業(yè)班級(jí): 測(cè)控0902班 學(xué)生姓名: 學(xué)號(hào): 設(shè)計(jì)地點(diǎn)(單位)_i512_ _ _ _設(shè)計(jì)題目:_led調(diào)光器設(shè)計(jì)_ 完成日期: 年 月 日 指導(dǎo)教師評(píng)語(yǔ): _ _ _ _ 成績(jī)(五級(jí)記分制):_ _ 指導(dǎo)教師(簽字):_ _ 摘 要led作為一種固態(tài)冷光源,是繼白熾燈、熒光燈、高強(qiáng)度放電燈(如高壓鈉燈和金鹵燈)之后的第四代新光源。基于白光led 的固態(tài)照明,是一種典型的綠色照明方式,與傳統(tǒng)光源相比,具有節(jié)能、環(huán)保、壽命長(zhǎng)、體積小、安全可靠等特點(diǎn)。但在實(shí)際中發(fā)現(xiàn)led燈功能單一,不能實(shí)現(xiàn)燈的亮度手動(dòng)和自動(dòng)控制,且不能隨著環(huán)境光

2、的變化而變化,造成能源的浪費(fèi)。本文介紹了以高性能的stc12c5a60s2單片機(jī)為控制核心,利用單片機(jī)的pwm口產(chǎn)生的占空比led進(jìn)行光度的手動(dòng)和自動(dòng)調(diào)節(jié)。通過(guò)光敏電阻對(duì)環(huán)境光度進(jìn)行ad采集,達(dá)到led燈亮度隨環(huán)境自動(dòng)變化。關(guān)鍵詞:led stc12c5a60s2單片機(jī) pwm 占空比 ad采集目 錄摘要11 緒論2 1.1 研究led調(diào)光的目的及意義2 1.2 本課題設(shè)計(jì)內(nèi)容及要求22 led調(diào)光系統(tǒng)總體設(shè)計(jì)3 2.1 總體方案設(shè)計(jì)33 系統(tǒng)硬件設(shè)計(jì)4 3.1 單片機(jī)最小系統(tǒng)4 3.2 led驅(qū)動(dòng)電路7 3.3 按鍵電路84 系統(tǒng)軟件設(shè)計(jì)9 4.1 軟件總體設(shè)計(jì)9 4.2 手動(dòng)調(diào)光程序設(shè)計(jì)1

3、0 4.3 自動(dòng)調(diào)光程序設(shè)計(jì)11 4.4 ad采集程序11 4.5 按鍵程序設(shè)計(jì)125 總結(jié)14參考文獻(xiàn)15致謝16附錄1 系統(tǒng)電路圖17附錄2 程序清單181 緒論1.1 研究led調(diào)光的目的及意義隨著全球能源危機(jī)和氣候變暖問(wèn)題的日益嚴(yán)重,綠色節(jié)能已經(jīng)成為全球普遍關(guān)注的話題,人們正通過(guò)各種途徑尋找新的節(jié)能方式。照明是人類消耗能源的重要方面,在電能消耗中,發(fā)達(dá)國(guó)家照明用電占發(fā)電總量的比例是19%,我國(guó)也達(dá)到12%.隨著經(jīng)濟(jì)發(fā)展,我國(guó)的照明用電將有大比例的提高,因此綠色節(jié)能照明的研究越來(lái)越受到重視。led 作為一種固態(tài)冷光源,是繼白熾燈、熒光燈、高強(qiáng)度放電燈(如高壓鈉燈和金鹵燈)之后的第四代新光

4、源。基于白光led 的固態(tài)照明,是一種典型的綠色照明方式,與傳統(tǒng)光源相比,具有節(jié)能、環(huán)保、壽命長(zhǎng)、體積小、安全可靠等特點(diǎn),代表著照明技術(shù)的未來(lái),并符合當(dāng)前政府提出的建設(shè)資源節(jié)約型和環(huán)境友好型社會(huì)的要求??梢灶A(yù)見(jiàn)不久的將來(lái)。目前,市場(chǎng)上采用白熾燈、鹵素?zé)簟晒鉄魹楣庠吹呐_(tái)燈普遍存在著低效率、高能耗、不易調(diào)光等缺點(diǎn);至于壽命結(jié)束的含汞燈,一旦處理不當(dāng),將對(duì)環(huán)境造成嚴(yán)重危害;且實(shí)際的應(yīng)用中,發(fā)現(xiàn)led燈在周邊亮度大時(shí)依然以同一功率發(fā)光,存在電能浪費(fèi)。另外一方面,因?yàn)閘ed的發(fā)熱量和電流存在正相關(guān)的關(guān)系,發(fā)熱影響了led的壽命,所以在不必要的亮度下也減少了led的壽命。然而,當(dāng)led在周邊亮度小時(shí),l

5、ed燈不能提供足夠和恰當(dāng)?shù)墓舛?,這樣又影響了閱讀,造成視覺(jué)疲勞。而且部分led燈功能單一,缺少亮度調(diào)節(jié)、手動(dòng)控制、自動(dòng)控制,通過(guò)環(huán)境變化改變自身亮度等功能。為解決當(dāng)前問(wèn)題,研究一個(gè)好的led調(diào)光系統(tǒng)意義重大。1.2 本課題設(shè)計(jì)內(nèi)容及要求本次課題設(shè)計(jì)的目標(biāo)是,在了解當(dāng)前l(fā)ed現(xiàn)有功能的基礎(chǔ)上,利用單片機(jī)設(shè)計(jì)一個(gè)led調(diào)光系統(tǒng),該系統(tǒng)能夠調(diào)節(jié)led燈的亮度,且滿足一定的精度要求。因此,本課題研究設(shè)計(jì)內(nèi)容概括如下:1.基本功能1)采用脈寬調(diào)制(pwm)對(duì)led進(jìn)行調(diào)光;2)按給定時(shí)間-輸出功率曲線自動(dòng)調(diào)整led亮度;3)按鍵選擇手動(dòng)/自動(dòng)調(diào)光方式;4)4位數(shù)碼管顯示led光源的相對(duì)亮度(0.0100

6、.0%);5)具有電源開(kāi)關(guān)、電源指示燈、復(fù)位等功能。2. 擴(kuò)展功能 1)實(shí)現(xiàn)光敏自動(dòng)調(diào)光,根據(jù)室內(nèi)的光照變化,自動(dòng)改變led光源的亮度; 2)對(duì)采集的光照數(shù)據(jù)進(jìn)行處理,利用3準(zhǔn)則剔除粗大誤差,設(shè)計(jì)算術(shù)平均數(shù)字濾波器;3) 手動(dòng)遙控調(diào)光功能。2 led調(diào)光系統(tǒng)總體設(shè)計(jì)2.1 總體方案設(shè)計(jì)led調(diào)光系統(tǒng)應(yīng)主要包括稱光敏采集、ad轉(zhuǎn)換、單片機(jī)數(shù)據(jù)處理及控制、pwm控制、按鍵操作等部分。其系統(tǒng)組成如圖2.1所示。在系統(tǒng)中,設(shè)置了手動(dòng)調(diào)光和自動(dòng)調(diào)光。在手動(dòng)調(diào)光時(shí),分為十檔,每一檔對(duì)應(yīng)一個(gè)占空比對(duì)led的電流進(jìn)行控制,從而對(duì)led的亮度進(jìn)行調(diào)節(jié)。自動(dòng)調(diào)光時(shí),在一個(gè)子函數(shù)里調(diào)用控制led亮度函數(shù),再通過(guò)循環(huán)

7、和延時(shí)實(shí)現(xiàn)一個(gè)簡(jiǎn)易的led亮度的變化。光敏電阻采集的信號(hào)換成電信號(hào)送到線性放大器放大,經(jīng)過(guò) a/d轉(zhuǎn)換送入單片機(jī),再經(jīng)數(shù)據(jù)處理后,反饋給led燈改變其亮度,數(shù)碼管則顯示當(dāng)前與光敏電阻串聯(lián)10k電阻的電壓值。該調(diào)光系統(tǒng)是由硬件和軟件兩部分組成。硬件主要包括單片機(jī)最小系統(tǒng)、led驅(qū)動(dòng)電路、按鍵電路、數(shù)碼管顯示電路、led顯示電路等部分;軟件部分主要包括系統(tǒng)初始化子程序、手動(dòng)控制子程序、自動(dòng)控制子程序、ad采集及處理子程序、定時(shí)及中斷子程序等,其軟件采用模塊化設(shè)計(jì)思想,可使程序設(shè)計(jì)思路清晰,便于調(diào)試。圖2.1系統(tǒng)組成框圖3 系統(tǒng)硬件設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)本系統(tǒng)采用新一代的8051單片機(jī)stc12

8、c5a60s2,由國(guó)內(nèi)宏晶科技生產(chǎn),其指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成max810專用復(fù)位電路,其工作電壓范圍是3.5v5.5v。stc12c5a60s2有60kb的用戶應(yīng)用程序空間,256b的ram和1024b的xram。能滿足程序代碼的需求和緩沖區(qū)定義的需求。另外與程序存儲(chǔ)空間獨(dú)立的一片閃存區(qū)域,可在應(yīng)用編程中作eeprom使用。stc12c5a60s2有雙uart以及isp串口,串口資源足夠系統(tǒng)使用。另外通過(guò)宏晶科技提供的軟件,使用uart可很容易地實(shí)現(xiàn)程序下載。stc12c5a60s2有36個(gè)通用i/o口,大部分可位控,并且有強(qiáng)推挽輸出的能力,足夠系統(tǒng)使用。還

9、擁有4個(gè)16bit定時(shí)器和一個(gè)獨(dú)立的波特率發(fā)生器,另外還有兩個(gè)pca模塊,能獲得豐富的定時(shí)器資源。stc12c5a60s2有pdip-40封裝的芯片,易于快速進(jìn)入實(shí)驗(yàn)。封裝引腳圖如圖3.1所示。圖3.1 stc12c5a60s2芯片pdip封裝引腳圖stc12c5a60s2主要性能:1增強(qiáng)型8051cpu,1t,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051。2stc12c5a60s2系列工作電壓:3.3v- 5.5v;stc12le5a60s2系列工作電壓:3.6v-2.2v。3工作頻率范圍:0-35mhz,相當(dāng)于普通8051的0-420mhz。4用戶應(yīng)用程序空間8k/16k/20k/32k

10、/40k/48k/52k/60k/62k字節(jié)等。5片上集成1280字節(jié)ram。6通用i/o口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)i/o口)??稍O(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開(kāi)漏。每個(gè)i/o口驅(qū)動(dòng)能力均可達(dá)到20ma,但整個(gè)芯片最大不要超過(guò)55ma。7isp(在系統(tǒng)可編程)/iap(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器,可通過(guò)串口(p3.0/p3.1)直接下載用戶程序,數(shù)秒即可完成一片。8有eeprom功能(stc12c5a62s2/ad/pwm無(wú)內(nèi)部eeprom)。9看門(mén)狗。10內(nèi)部集成max810專用復(fù)位電路(外部晶

11、體12m以下時(shí),復(fù)位腳可直接1k電阻到地)。11外部掉電檢測(cè)電路:在p4.6口有一個(gè)低壓門(mén)檻比較器。5v單片機(jī)為1.32v,誤差為5%;3.3v單片機(jī)為1.30v,誤差為3%。12時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部r/c振蕩器(溫漂為5%到10%以內(nèi))用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部r/c振蕩器還是外部晶體/時(shí)鐘。常溫下內(nèi)部r/c振蕩器頻率為:5.0v單片機(jī)為:11mhz15.5mhz;3.3v單片機(jī)為:8mhz12mhz。 精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測(cè)試為準(zhǔn)。13共4個(gè)16位定時(shí)器,兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器t0和t1,

12、沒(méi)有定時(shí)器2,但有獨(dú)立波特率發(fā)生器。做串行通訊的波特率發(fā)生器,再加上2路pca模塊可再實(shí)現(xiàn)2個(gè)16位定時(shí)器。14. 2個(gè)時(shí)鐘輸出口,可由t0的溢出在p3.4/t0輸出時(shí)鐘,可由t1的溢出在p3.5/t1輸出時(shí)鐘。15外部中斷i/o口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的pca模塊,power down模式可由外部中斷喚醒,int0/p3.2,int1/p3.3,t0/p3.4,t1/p3.5,rxd/p3.0,ccp0/p1.3(也可通過(guò)寄存器設(shè)置到p4.2 ),ccp1/p1.4 (也可通過(guò)寄存器設(shè)置到p4.3)。16pwm(2路)/pca(可編程計(jì)數(shù)器陣列,2路),

13、也可用來(lái)當(dāng)2路d/a使用,也可用來(lái)再實(shí)現(xiàn)2個(gè)定時(shí)器,也可用來(lái)再實(shí)現(xiàn)2個(gè)外部中斷(上升沿中斷/下降沿中斷均可分別或同時(shí)支持)。17a/d轉(zhuǎn)換,10位精度adc,共8路,轉(zhuǎn)換速度可達(dá)250k/s(每秒鐘25萬(wàn)次)。18通用全雙工異步串行口(uart),由于stc12系列是高速的8051,可再用定時(shí)器或pca軟件實(shí)現(xiàn)多串口。19stc12c5a60s2系列有雙串口,后綴有s2標(biāo)志的才有雙串口,rxd2/p1.2(可通過(guò)寄存器設(shè)置到p4.2),txd2/p1.3(可通過(guò)寄存器設(shè)置到p4.3)。20工作溫度范圍:-40 - +85(工業(yè)級(jí)) /0 - 75(商業(yè)級(jí))。21封裝:pdip-40,lqfp-

14、44,lqfp-48,i/o口不夠時(shí),可用2到3根普通i/o口線外接,74hc164/165/595(均可級(jí)聯(lián))來(lái)擴(kuò)展i/o口,還可用a/d做按鍵掃描來(lái)節(jié)省i/o口,或用雙cpu,三線通信,還多了串口。stc12c5a60s2單片機(jī)最小系統(tǒng)由stc12c5a60s2單片機(jī)及其時(shí)鐘和復(fù)位電路組成,是整個(gè)自動(dòng)稱重系統(tǒng)控制部分的核心。該單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期的單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍,提供flash程序存儲(chǔ)器60kbyte,1kbyte的eeprom,片上集成1280byte ram。工作電壓3.5-5.5v,內(nèi)部集成max810專用復(fù)位電路,擁有4個(gè)

15、定時(shí)器,2個(gè)串口,2路pwm,8路高速10位a/d轉(zhuǎn)換,isp/iap,內(nèi)置看門(mén)狗電路,外部掉電檢測(cè)電路等。stc12c5a60s2的最小系統(tǒng)包括復(fù)位電路和時(shí)鐘電路,復(fù)位電路有上電復(fù)位、按鍵復(fù)位、看門(mén)狗等復(fù)位方式,本設(shè)計(jì)采用按鍵復(fù)位方式。在單片機(jī)的x1、x2引腳之間加上11.0592mhz的晶振,并通過(guò)20pf左右的電容接地為單片機(jī)提供工作時(shí)鐘。其最小系統(tǒng)如圖3.2所示。 圖3.2單片機(jī)最小系統(tǒng)電路圖3.2 led驅(qū)動(dòng)電路本次設(shè)計(jì) l ed 光源共由1只5mm 高亮度小功率led 燈珠組成;燈珠的壓降約3.1v,工作電流約20ma。由白光led 的正向伏安特性可知,當(dāng)led 端電壓超過(guò)其正向?qū)?/p>

16、通電壓后,較小的電壓波動(dòng)都會(huì)導(dǎo)致工作電流的的劇烈變化,從而影響led的正常使用,固led 宜采用恒流驅(qū)動(dòng)方式。采用pwm調(diào)光,其基本原理是保持led正向?qū)娏骱愣?,而通過(guò)控制電流導(dǎo)通和關(guān)斷的時(shí)間比例,即改變輸入脈沖信號(hào)的占空比,使led產(chǎn)生亮暗變化;并利用人眼的視覺(jué)殘留效應(yīng),當(dāng)led 亮暗變化頻率大于120hz 時(shí),人眼就不會(huì)感覺(jué)到閃爍,而看到是led 的平均亮度。pwm 調(diào)光的優(yōu)勢(shì)是led正向?qū)ǖ碾娏魇呛愣ǖ模琹ed的色度就不會(huì)像模擬調(diào)光時(shí)產(chǎn)生變化。輸出的電流值計(jì)算公式為: (1.1)單片機(jī)的頻率是20khz,時(shí)鐘周期為t為50s。led驅(qū)動(dòng)電路如圖3.3圖3.3 led驅(qū)動(dòng)電路圖l1為

17、鎮(zhèn)流電感,選取100h,用于穩(wěn)定通過(guò)led 的電流。d1 是續(xù)流二極管,當(dāng)芯片內(nèi)部mos 管截止?fàn)顟B(tài)時(shí)為儲(chǔ)存在電感l(wèi)1中的電流提供放電回路。pwm 脈沖信號(hào)則由單片機(jī)p1.4口產(chǎn)生,其高低電平?jīng)Q定led的通斷狀態(tài)。將定時(shí)器t0溢出中斷定為1/2500 秒(即400s),每10 次脈沖作為一個(gè)周期,即頻率為250hz。這樣,在每1/250 秒的方波周期中,通過(guò)改變方波的輸出占空比,從而實(shí)現(xiàn)led 燈的10 級(jí)亮度調(diào)節(jié),即led 亮度等級(jí)由每個(gè)周期內(nèi)的高電平脈沖數(shù)目決定。當(dāng)高電平脈沖個(gè)數(shù)為1 時(shí),占空比為1/10,亮度最低,其調(diào)光原理如圖3.4所示;當(dāng)高電平脈沖為10 時(shí),占空比為1,led亮度最

18、大。圖3.4pwm 調(diào)光原理圖3.3 按鍵電路該系統(tǒng)有3個(gè)選擇模式,模式的切換需要按鍵完成,根據(jù)所需功能和要求,該系統(tǒng)采用的是4個(gè)獨(dú)立式按鍵,分別為mode鍵、up鍵、dn鍵和ent鍵。mode鍵功能為模式切換,ent鍵為數(shù)字清零及部分畫(huà)面切換功能,up鍵起數(shù)字加作用,dn起數(shù)字減功能。mode鍵與單片機(jī)p20口相接,up鍵與單片機(jī)p21口相接,dn鍵與單片機(jī)p22口相接,ent鍵與單片機(jī)p32口相接,最終完成模式切換和數(shù)碼管顯示電壓功能。電路如圖3.5所示。圖4.3 按鍵電路圖4 系統(tǒng)軟件設(shè)計(jì)4.1 軟件總體設(shè)計(jì)對(duì)于該led調(diào)光系統(tǒng),軟件部分主要包括系統(tǒng)初始化子程序、手動(dòng)控制子程序、自動(dòng)控制

19、子程序、ad采集子程序、模式選擇子程序等??傮w設(shè)計(jì)思路為:首先進(jìn)行系統(tǒng)初始化,主要是設(shè)置定時(shí)器的工作方式、賦初值及等。在while循環(huán)中調(diào)用各個(gè)子程序,實(shí)現(xiàn)led調(diào)光系統(tǒng)的各個(gè)功能。led調(diào)光系統(tǒng)主函數(shù)流程圖設(shè)計(jì)為如圖4.1所示。圖5.1 系統(tǒng)主函數(shù)流程圖4.2 手動(dòng)調(diào)光程序設(shè)計(jì)手動(dòng)調(diào)光時(shí),分為十檔,分別輸出不同的占空比對(duì)led的電流進(jìn)行控制,從而對(duì)led的亮度進(jìn)行調(diào)節(jié)。其流程圖如圖4.2所示。圖4.2手動(dòng)調(diào)光程序流程圖4.3 自動(dòng)調(diào)光程序設(shè)計(jì)自動(dòng)調(diào)光時(shí),在一個(gè)子函數(shù)里調(diào)用控制led亮度函數(shù),再通過(guò)循環(huán)和延時(shí)實(shí)現(xiàn)一個(gè)led亮度的變化(呼吸燈)。其流程圖如圖4.3所示。圖4.3手動(dòng)調(diào)光程序流程圖

20、4.4 ad采集程序本次設(shè)計(jì)ad采集所用的位數(shù)為10位(便于計(jì)算,且比8位更精確),光敏電阻采集的信號(hào)經(jīng)過(guò)放大器放大反饋給p10口,經(jīng)過(guò)單片機(jī)的處理數(shù)碼管顯示其采樣值,再送給led燈,從而達(dá)到控制燈亮度的變化。其流程圖如圖4.4所示。圖4.4ad采樣程序流程圖4.5 按鍵程序設(shè)計(jì)4個(gè)按鍵操作主要在定時(shí)器0中斷中完成。進(jìn)入按鍵掃描程序,如果有鍵按下就先延時(shí)去抖動(dòng)確定有鍵按下,再判斷是哪個(gè)鍵按下。每個(gè)按鍵具體作用如下:在模式1中,mode鍵功能默認(rèn)工作方式為手動(dòng)控制;up鍵為燈亮度的加控制;down為燈亮度的減控制,長(zhǎng)按mode鍵則跳出手動(dòng)控制。在模式2中,按下mode鍵則進(jìn)入自動(dòng)控制(呼吸燈),

21、每100ms對(duì)應(yīng)一個(gè)亮度變化,長(zhǎng)按mode鍵則跳出自動(dòng)控制在模式3中,按下mode鍵進(jìn)入ad采集模式,燈的亮度變化與環(huán)境光和光敏電阻反饋的信號(hào)有關(guān)。長(zhǎng)按mode鍵則跳出ad采集模式。按鍵程序流程圖如圖4.5所示。圖4.5 按鍵程序流程圖5 總結(jié)此次設(shè)計(jì)led調(diào)光系統(tǒng),歷時(shí)4周,克服了經(jīng)驗(yàn)不足等諸多問(wèn)題,最終得以完成。在整個(gè)設(shè)計(jì)中,實(shí)現(xiàn)了手動(dòng)調(diào)光,自動(dòng)調(diào)光,基于環(huán)境變化調(diào)光等,基本功能全部實(shí)現(xiàn)。拓展功能做得不是很好,只實(shí)現(xiàn)光敏自動(dòng)調(diào)光,而對(duì)采集的光照數(shù)據(jù)進(jìn)行處理,利用3準(zhǔn)則剔除粗大誤差,設(shè)計(jì)算術(shù)平均數(shù)字濾波器和手動(dòng)遙控調(diào)光功能沒(méi)能實(shí)現(xiàn),主要因素是在這方面能力欠缺和時(shí)間不足。調(diào)試過(guò)程中也遇到不少的

22、問(wèn)題:先是拓展板的光敏電阻位置焊錯(cuò),在拆卸的時(shí)候廢了不少的勁。軟件調(diào)試過(guò)程中:先是未加“stc12c5a60s2.h”頭文件,導(dǎo)致出現(xiàn)大量的錯(cuò)誤。之后在按鍵模塊各個(gè)分程序沒(méi)有很好的銜接,導(dǎo)致數(shù)碼管顯示亂碼,led燈亮度沒(méi)有變化,最后在老師和同學(xué)的幫助下最終很好地解決了上訴問(wèn)題。參考文獻(xiàn)1 譚浩強(qiáng).c程序設(shè)計(jì)m.北京:清華大學(xué)出版社,19912 高海生,楊文煥.單片機(jī)應(yīng)用技術(shù)大全m.西南交通大學(xué)出版社,1999-06.3 徐愛(ài)鈞,彭秀華.單片機(jī)高級(jí)c51應(yīng)用程序設(shè)計(jì)m.中國(guó)計(jì)量出版社,2001.4 馬盅梅.單片機(jī)的c語(yǔ)言應(yīng)用程序設(shè)計(jì)m.北京航5 胡文金.單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)教程m.重慶:重慶大學(xué)出

23、版社,2005.致謝通過(guò)4周的努力,終于完成了led調(diào)光的設(shè)計(jì)及調(diào)試工作。由于設(shè)計(jì)經(jīng)驗(yàn)的不足在設(shè)計(jì)及調(diào)試中遇到了很多困難,但得到了老師和同學(xué)們的幫助,在此對(duì)他們表示感謝。在軟件編寫(xiě)與調(diào)試中也得到了老師們的指導(dǎo),在此由衷地感謝他們。由于本人的硬件設(shè)計(jì)和調(diào)試全在i509實(shí)驗(yàn)室完成,實(shí)驗(yàn)室的負(fù)責(zé)老師給我提供了設(shè)計(jì)地方和全部所需器材,非常感謝老師的幫助。在整個(gè)課程設(shè)計(jì)過(guò)程中,我的指導(dǎo)老師楊波老師一直都是耐心的指導(dǎo),至始至終都沒(méi)有停止過(guò)對(duì)我的輔導(dǎo),讓我學(xué)到了許多知識(shí),使我受益非淺。最后,感謝學(xué)校、學(xué)院給予這樣的一次機(jī)會(huì),經(jīng)歷了整個(gè)設(shè)計(jì)過(guò)程,我的收獲是豐富的,也對(duì)整個(gè)大學(xué)的知識(shí)進(jìn)行了梳理,對(duì)所學(xué)專業(yè)有了更

24、深刻的認(rèn)識(shí)。附錄1 系統(tǒng)電路圖附錄2 程序清單 /頭文件#include #include#define uchar unsigned char#define uint unsigned int #define thco 0xee#define tlco 0x3f#define ad_channel 0unsigned int vx=10;unsigned char code duan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76;/段選碼unsigned char da

25、ta_buffer6=0,0,0,0;unsigned char hour=7,min=0,sec=20; /時(shí)鐘時(shí)間unsigned int flag=0;/1分時(shí)間到標(biāo)志bit ad_flag=0;bit sos_flag=0;char tp=0;unsigned int v;unsigned int temp1=600;unsigned char mode=0;unsigned char k=1;bit flag1=0;/vx=5在用于12864lcd的led背光調(diào)整時(shí)上電為半亮度狀態(tài),可根據(jù)自己的用途及要求任意設(shè)定sbit key_h=p22; sbit key_l=p21;sbit

26、mode=p20; sbit p34=p34;sbit p35=p35;sbit p36=p36;sbit p37=p37; sbit p14=p14;sbit p24=p24;sbit p25=p25;sbit p26=p26;sbit p27=p27;sbit p32=p32;/*/void pwm_init (void)/pwm初始化函數(shù)cmod=0x02; /設(shè)置pca定時(shí)器 系統(tǒng)時(shí)鐘 syclk/2 cl=0x00; ch=0x00;ccapm1=0x42; /pwm1設(shè)置pca工作方式為pwm方式(0100 0010) 8位pwm輸出無(wú)中斷 ccap1l=0xff; /設(shè)置pwm1

27、初始值與ccap0h相同 ccap1h=0xff; / pwm1初始時(shí)為0 /啟動(dòng)pca定時(shí)器/*/void pwm1_set (unsigned int a)/pwm1占空比設(shè)置函數(shù)ccap1l=a; /設(shè)置值直接寫(xiě)入ccap1lccap1h=a; /設(shè)置值直接寫(xiě)入ccap1h/*/void delaym(unsigned int a)/延時(shí)函數(shù) 1ms/次(用于1t單片機(jī)) unsigned char n,i,j;while(-a!=0) for(n=1;n0;n-) for(j=222;j0;j-) for(i=12;i0;i-); /*/*/void manual_control()

28、/手動(dòng)控制 pwm1_set(vx*25);/-減調(diào)整-/ if (key_l = 0 ) delaym(20); /延時(shí)20毫秒消抖動(dòng) if(key_l = 0) /如果20sm后key_l還是0狀態(tài)則確認(rèn)下調(diào)鍵是按下的 vx-;if(vx1)vx=10;/如果設(shè)定vx=10,將語(yǔ)句改為if(vx=11)vx=1; while(key_h = 0); /*/void dispaly1()flag=0; data_buffer0=0;data_buffer1=vx;data_buffer2=0; data_buffer3=0;/*/void a1() p34=0,p37=1,manual_co

29、ntrol(); dispaly1();cr=1;/*/unsigned int ad_sample(unsigned char channel) uint i,q=0; unsigned int temp; for(i=0;i10;i+) tp=0; adc_res=0; adc_resl=0; adc_contr=0x88|channel;/選擇ad當(dāng)前通道,并啟動(dòng)轉(zhuǎn)換 while(!tp) tp=0x10; tp&=adc_contr; adc_contr&=0xe7; temp=(adc_res&0x03)*256+adc_resl; q=q+temp; temp=q/10; retu

30、rn temp;/ void a2() if(flag1=1) flag1=0; v=ad_sample(ad_channel); data_buffer0=v/1000; data_buffer1=v/100%10; data_buffer2=v/10%10;data_buffer3=v%10;if(v510) pwm1_set(0xff); void ad_init() p1m0=1; /p10設(shè)為a/d轉(zhuǎn)換功以能 p1m1=1; p1asf=0x01; /通道選擇 auxr1|=0x04; adc_contr=0x80; /打開(kāi)a/d轉(zhuǎn)換器電源/*/void sos_led() /呼吸燈

31、子函數(shù) unsigned int i;for(i = 100;i 100;i=i-5) pwm1_set(i); delaym(200); /*/void main(void) static unsigned int flag1=0;unsigned char i; tmod=0x11;/定時(shí)器0初始化th0=thco;tl0=tlco;tr0=1;et0=1;ea=1;key_h = 1;key_l = 1;pwm_init ();while(1) if (mode = 0 ) delaym(20); /延時(shí)20毫秒消抖動(dòng) if(mode = 0) /如果20sm后key_l還是0狀態(tài)則確認(rèn)

32、下調(diào)鍵是按下的 flag1+ ;if(flag1=4)flag1=0;/如果設(shè)定vx=10,將語(yǔ)句改為if(vx=200)/秒計(jì)時(shí),定時(shí)器定時(shí)5ms,計(jì)200次為一秒 count=0; sec-; if(sec=0) sec=20,cr=0, ccon = 0; cl = 0; /復(fù)位pca的計(jì)數(shù)器 ch = 0; flag=0; ad_count+; if(ad_count=100)/半s時(shí)間到 ad_count=0; flag1=1; bit+; if(bit=4)bit=0; p24=p25=p26=p27=1;/先關(guān)位碼 p0=duandata_bufferbit;/開(kāi)段碼 if(co

33、unt100&bit=1)p0|=0x80;/0.5s中間小數(shù)點(diǎn)亮,之后滅,不斷循環(huán) switch(bit)/送位碼 case 0: p24=0;break; case 1: p25=0;break; case 2: p26=0;break; case 3: p27=0;break; (不加頭文件程序無(wú)法運(yùn)行喲?。╊^文件stc12c5a60s2.h/-/新一代 1t 8051系列 單片機(jī)內(nèi)核特殊功能寄存器 c51 core sfrs/ 7 6 5 4 3 2 1 0 reset valuesfr acc = 0xe0; /accumulator 0000,0000sfr b = 0xf0; /

34、b register 0000,0000sfr psw = 0xd0; /program status word cy ac f0 rs1 rs0 ov f1 p 0000,0000/-sbit cy = psw7;sbit ac = psw6;sbit f0 = psw5;sbit rs1 = psw4;sbit rs0 = psw3;sbit ov = psw2;sbit p = psw0;/-sfr sp = 0x81; /stack pointer 0000,0111sfr dpl = 0x82; /data pointer low byte 0000,0000sfr dph = 0x

35、83; /data pointer high byte 0000,0000/-/新一代 1t 8051系列 單片機(jī)系統(tǒng)管理特殊功能寄存器/ 7 6 5 4 3 2 1 0 reset valuesfr pcon = 0x87; /power control smod smod0 lvdf pof gf1 gf0 pd idl 0001,0000/ 7 6 5 4 3 2 1 0 reset valuesfr auxr = 0x8e; /auxiliary register t0x12 t1x12 uart_m0x6 brtr s2smod brtx12 extram s1brs 0000,00

36、00/-sfr auxr1 = 0xa2; /auxiliary register 1 - pca_p4 spi_p4 s2_p4 gf2 adrj - dps 0000,0000/*pca_p4: 0, 缺省pca 在p1 口 1,pca/pwm 從p1 口切換到p4 口: eci 從p1.2 切換到p4.1 口, pca0/pwm0 從p1.3 切換到p4.2 口 pca1/pwm1 從p1.4 切換到p4.3 口spi_p4: 0, 缺省spi 在p1 口 1,spi 從p1 口切換到p4 口: spiclk 從p1.7 切換到p4.3 口 miso 從p1.6 切換到p4.2 口 mo

37、si 從p1.5 切換到p4.1 口 ss 從p1.4 切換到p4.0 口s2_p4: 0, 缺省uart2 在p1 口 1,uart2 從p1 口切換到p4 口: txd2 從p1.3 切換到p4.3 口 rxd2 從p1.2 切換到p4.2 口gf2: 通用標(biāo)志位adrj: 0, 10 位a/d 轉(zhuǎn)換結(jié)果的高8 位放在adc_res 寄存器, 低2 位放在adc_resl 寄存器 1,10 位a/d 轉(zhuǎn)換結(jié)果的最高2 位放在adc_res 寄存器的低2 位, 低8 位放在adc_resl 寄存器dps: 0, 使用缺省數(shù)據(jù)指針dptr0 1,使用另一個(gè)數(shù)據(jù)指針dptr1*/-sfr wak

38、e_clko = 0x8f; /附加的 sfr wak1_clko/* 7 6 5 4 3 2 1 0 reset value pcawakeup rxd_pin_ie t1_pin_ie t0_pin_ie lvd_wake _ t1clko t0clko 0000,0000bb7 - pcawakeup : pca 中斷可喚醒 powerdown。b6 - rxd_pin_ie : 當(dāng) p3.0(rxd) 下降沿置位 ri 時(shí)可喚醒 powerdown(必須打開(kāi)相應(yīng)中斷)。b5 - t1_pin_ie : 當(dāng) t1 腳下降沿置位 t1 中斷標(biāo)志時(shí)可喚醒 powerdown(必須打開(kāi)相應(yīng)中斷

39、)。b4 - t0_pin_ie : 當(dāng) t0 腳下降沿置位 t0 中斷標(biāo)志時(shí)可喚醒 powerdown(必須打開(kāi)相應(yīng)中斷)。b3 - lvd_wake : 當(dāng) cmpin 腳低電平置位 lvd 中斷標(biāo)志時(shí)可喚醒 powerdown(必須打開(kāi)相應(yīng)中斷)。b2 - b1 - t1clko : 允許 t1cko(p3.5) 腳輸出 t1 溢出脈沖,fck1 = 1/2 t1 溢出率b0 - t0clko : 允許 t0cko(p3.4) 腳輸出 t0 溢出脈沖,fck0 = 1/2 t1 溢出率*/-sfr clk_div = 0x97; /clock divder - - - - - clks2

40、 clks1 clks0 xxxx,x000/-sfr bus_speed = 0xa1; /stretch register - - ales1 ales0 - rws2 rws1 rws0 xx10,x011/*ales1 and ales0:00 : the p0 address setup time and hold time to ale negative edge is one clock cycle01 : the p0 address setup time and hold time to ale negative edge is two clock cycles.10 : the p0 address setup time and hold time to ale negative edge is three clock cycles. (default)11 : the p0 address setup time and hold time to ale negative edge is four clock cy

溫馨提示

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