基于單片機(jī)的彩燈設(shè)計_第1頁
基于單片機(jī)的彩燈設(shè)計_第2頁
基于單片機(jī)的彩燈設(shè)計_第3頁
基于單片機(jī)的彩燈設(shè)計_第4頁
基于單片機(jī)的彩燈設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)的彩燈設(shè)計工程名稱基于單片機(jī)的彩燈設(shè)計專業(yè)班級學(xué)生姓名指導(dǎo)教師摘要本文設(shè)計了一種基于單片機(jī)的簡易流水燈的控制系統(tǒng)。主要由AT89S52主控制器、LED發(fā)光二極管顯示電路和按鍵控制等電路構(gòu)成,可以實(shí)現(xiàn)彩燈的不同類型顯示切換。本系統(tǒng)以單片機(jī)匯編語言進(jìn)行主程序的設(shè)計,中斷效勞程序等軟件設(shè)計,由于匯編語言與單片機(jī)底層結(jié)合,使程序設(shè)計的邏輯關(guān)系更加簡潔明了。此程序直接在Keil軟件編譯程序,利用Proteus進(jìn)行仿真調(diào)試,方便修改調(diào)試。關(guān)鍵詞:單片機(jī);數(shù)字控制;流水燈;AT89S52AbstractThispaperdescribesthedesignofachipbasedonaflowcontrolsystem.ThesystemconsistsofAT89S52,LEDlight-emittingdiode,key,canbeachievelanterndifferenttypesofdisplayswitch.Hardwaremainlyincludesmaincontroller,LEDdisplaycircuit,aresetcircuit,acrystaloscillatorcircuit.Systemprogramdesignincludesthedesignofthemainprogram,interruptserviceprogramandsoon.ThissystembasedontheMCUassemblylanguageforsoftwaredesign,theassemblylanguageandSCMunderlyingcombination,makethelogicrelationofdesigningprogrammoreconcise.ThisprogramdirectlyintheKeilsoftwarecompiler,usingProteussimulationdebugging,easytomodifytheprogram.Keywords:singlechipmicrocomputer;digitalcontrol;lightwater;AT89S52目錄摘要IAbstractII第1章緒論11.1概述11.2整體設(shè)計11.3硬件電路設(shè)計11.3.1顯示局部電路設(shè)計21.3.2控制電路設(shè)計21.3.3總體電路原理介紹3第2章軟件局部設(shè)計52.1使用軟件介紹52.1.1Keil簡介52.1.2Proteus簡介52.2程序流程圖62.2.1主程序流程圖62.2.2中斷效勞程序流程圖72.3源程序代碼8第3章電路調(diào)試與仿真123.1電路Proteus仿真及下載調(diào)試12結(jié)論13參考文獻(xiàn)14附錄15附錄1電路原理圖15附錄2元件清單16致謝17第1章緒論1.1概述當(dāng)今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未見的速度被單片機(jī)智能控制系統(tǒng)所取代。隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否認(rèn)的。單片機(jī)具有體積小、功能強(qiáng)、本錢低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動控制的核心就是單片機(jī)。目前,一個學(xué)習(xí)與應(yīng)用單片機(jī)的高潮正在工廠、學(xué)校及企事業(yè)單位大規(guī)模地興起。學(xué)習(xí)單片機(jī)的最有效方法就是理論與實(shí)踐并重,本文用AT89C52單片機(jī)自制了一款可實(shí)現(xiàn)多種循環(huán)顯示狀態(tài)的流水燈,重點(diǎn)介紹了其軟件編程方法。1.2整體設(shè)計實(shí)驗(yàn)總體電路構(gòu)造方案比擬簡單,主要包括鍵盤控制電路〔用脈沖按鍵開關(guān)對電路進(jìn)行控制〕和顯示電路〔單片機(jī)控制發(fā)光二極管的顯示〕。圖1.1實(shí)驗(yàn)方案圖按照單片機(jī)系統(tǒng)擴(kuò)展與系統(tǒng)配置狀況,單片機(jī)應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C52單片機(jī)是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷結(jié)構(gòu)、2個全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C52單片機(jī)時無須外擴(kuò)存儲器。因此,本流水燈實(shí)際上就是一個帶有八個發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個單片機(jī)。1.3硬件電路設(shè)計實(shí)驗(yàn)電路可劃分為兩個組成局部,一者為顯示電路局部,主要是由4組不同色彩的發(fā)光二極管組成,用來顯示流水燈的不同顯示形態(tài),另一局部即控制電路局部,主要由脈沖按鍵開關(guān),二極管組成,用以控制流水燈的不同顯示狀態(tài)。1.3.1顯示局部電路設(shè)計首先介紹顯示電路局部,電路原理圖如下列圖所示:圖1.2顯示電路組成圖從上圖中可以看出,如果要讓接在P0.0口的LED1亮起來,那么只要把P0.0口的電平變?yōu)榈碗娖骄涂梢粤?相反,如果要接在P0.0口的LED1熄滅,就要把P0.0口的電平變?yōu)楦唠娖?同理,接在P0.1~P0.7口的其他7個LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1~LED8依次點(diǎn)亮、熄滅,8只LED燈便會一亮一暗的做流水燈了。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應(yīng)該延時一段時間,否那么我們就看不到“流水〞效果了??刂齐娐吩O(shè)計再來介紹控制電路,控制電路的電路原理圖如下列圖所示:圖2.3鍵盤控制電路組成圖從上圖我們可以看到:不按下任何按鍵的時候,P3.2口與P1.0~P1.3均為高電平,D9~D12均截止,所以電路做默認(rèn)的運(yùn)行狀態(tài)。按下K1鍵后,P1.0口變?yōu)榈碗娖?,D9導(dǎo)通,中斷方式選擇P1.0口指向的方式,電路改變運(yùn)行狀態(tài),執(zhí)行P1.0口所指向的程序;按下K2鍵,P1.1口變?yōu)榈碗娖?,D10導(dǎo)通,電路再次改變運(yùn)行狀態(tài),執(zhí)行P1.1口所指向的程序;按下K3鍵,P1.2口變?yōu)榈碗娖?,D11導(dǎo)通,電路再次改變運(yùn)行狀態(tài),執(zhí)行P1.2口所指向的程序;按下K4鍵,P1.3口變?yōu)榈碗娖?,D12導(dǎo)通,電路再次改變運(yùn)行狀態(tài),執(zhí)行P1.3口所指向的程序。總體電路原理介紹整體硬件組成如下列圖2.4所示:圖2.4流水燈電路原理圖整體設(shè)計思路:由主程序和中斷效勞程序組成。主程序中執(zhí)行左右流水燈,在中斷效勞程序中,首先讀取按鍵狀態(tài),然后延時10ms,再讀取按鍵狀態(tài)。把兩次獲得的按鍵狀態(tài)比擬,如果不同,就表示是抖動,退出中斷;否那么,就去判斷是哪個按鍵按下。如果是K1,就執(zhí)行左向流水燈;如果是K2,就執(zhí)行右向流水燈;如果是K3,就執(zhí)行亮點(diǎn)向中間移動;如果是K4,就執(zhí)行亮點(diǎn)向兩邊移動。本著盡量使任務(wù)簡單化的原那么,我采用置標(biāo)志位的方法。即在主程序中設(shè)定一個標(biāo)志位,不斷的對這個標(biāo)志進(jìn)行查詢:如果是標(biāo)志為狀態(tài)1,就執(zhí)行雙向流水燈;如果是狀態(tài)2,就執(zhí)行左向流水燈;如果是狀態(tài)3,就執(zhí)行右向流水燈,依次類推。而在中斷效勞程序中,只需要進(jìn)行如下工作:去抖動,鍵識別,改變標(biāo)志位。這里我們用存放器r0的內(nèi)容作為標(biāo)志,當(dāng)它里面的內(nèi)容是0ffh時,執(zhí)行左右流水燈程序;為01h時,執(zhí)行左流水燈;02h時執(zhí)行右流水燈;03h時執(zhí)行兩個亮點(diǎn)向中間移動;04h時執(zhí)行兩個亮點(diǎn)向兩邊移動。第2章軟件局部設(shè)計2.1使用軟件介紹2.1.1Keil簡介單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷開展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷開展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境〔uVision〕將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果使用C語言編程,那么Keil幾乎就是你的不二之選〔目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件〕,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。Proteus簡介Proteus組合了高級原理布圖、混合模式SPICE仿真,PCB設(shè)計以及自動布線來實(shí)現(xiàn)一個完整的電子設(shè)計系統(tǒng)。ISIS是Proteus系統(tǒng)的中心,它遠(yuǎn)不僅是一個圖表庫。Proteus的ISIS是一款Labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。它是具有控制原理圖畫圖的外觀的超強(qiáng)的設(shè)計環(huán)境。無論用戶的要求是快速實(shí)現(xiàn)復(fù)雜設(shè)計的仿真以及PCB設(shè)計,還是設(shè)計精美的原理圖以供出版,ISIS是您的最好工具。該軟件的特點(diǎn):①全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。②具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。③目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。④支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大,可仿真51、AVR、PIC。2.2程序流程圖2.2.1主程序流程圖中斷效勞程序流程圖2.3源程序代碼org0000hljmpstartorg0003hljmpext1org0020hstart:movr0,#0ffh;對r0賦值,r0為所設(shè)標(biāo)志位setbea;開中斷setbex0;允許外部中斷0申請中斷setbit0;外部中斷0為跳變方式觸發(fā)movsp,#70h;設(shè)置中斷l(xiāng)oop0:cjner0,#0ffh,loop1;r0不為ff,轉(zhuǎn)到loop1ajmpmain_light;否那么執(zhí)行左右流水燈loop1:cjner0,#01h,loop2;r0不為01,轉(zhuǎn)到loop2ajmpk1_light;否那么執(zhí)行左向流水燈loop2:cjner0,#02h,loop3;r0不為02,轉(zhuǎn)到loop3ajmpK2_light;否那么執(zhí)行右向流水燈loop3:cjner0,#03h,loop4;r0不為03,轉(zhuǎn)到loop4ajmpk3_light;否那么執(zhí)行雙亮點(diǎn)向中間移動loop4:cjner0,#04h,loop5;r0不為04,轉(zhuǎn)到loop5ajmpk4_light;否那么執(zhí)行雙亮點(diǎn)向兩邊移動loop5:ajmploop0;返回重新查詢ext1:clrea;關(guān)中斷pushaccpushpswmova,p1;讀入鍵值anla,#0fh;屏蔽高四位mov30h,a;鍵狀態(tài)存入30hlcalldel10msmova,p1;再次讀入鍵值anla,#0fhcjnea,30h,pass;兩次鍵值不同,是抖動,退出中斷ajmpk1_check;如果相等,進(jìn)行鍵識別k1_check:cjnea,#0eh,k2_check;不是k1,判斷是不是k2movr0,#01h;是k1,置標(biāo)志為01ajmppassk2_check:cjnea,#0dh,k3_check;不是k2,判斷是不是k3movr0,#02h;是k2,置標(biāo)志為02ajmppassk3_check:cjnea,#0bh,k4_check;不是k3,判斷是不是k4movr0,#03h;是k3,置標(biāo)志為03ajmppassk4_check:cjnea,#07h,pass;不是k4,退出中斷movr0,#04h;是k4,置標(biāo)志為04ajmppasspass:poppsw;現(xiàn)場恢復(fù)popaccsetbea;開中斷reti;中斷返回main_light:movr7,#08h;左右流水燈程序movr6,#06hmova,#0fehl_loop:movr1,a;r1保存現(xiàn)在亮點(diǎn)位置,做樣式變換時從該處開始movp0,alcalldel100msrladjnzr7,l_loopmova,#0bfhr_loop:movr1,amovp0,alcalldel100msrradjnzr6,r_loopajmploop0k1_light:movr1,a;左向流水燈movp0,alcalldel100msrlamovr1,aajmploop0k2_light:movr1,a;右向流水燈movp0,alcalldel100msrramovr1,aajmploop0k3_light:movp0,#07eh;雙亮點(diǎn)向中間移lcalldel100msmovp0,#0bdhlcalldel100msmovp0,#0dbhlcalldel100msmovp0,#0e7hlcalldel100msajmploop0k4_light:movp0,#0e7h;雙亮點(diǎn)向兩邊移lcalldel100msmovp0,#0dbhlcalldel100msmovp0,#0bdhlcalldel100msmovp0,#07ehlcalldel100msajmploop0del10ms:;10ms延時子程序(12M)movr5,#20temp1:movr4,#248djnzr4,$djnzr5,temp1retdel100ms:movr3,#0c3h;100.036mstemp2:movr2,#0ffh;511usdjnzr2,$djnzr3,temp2retend第3章電路調(diào)試與仿真3.1電路Proteus仿真及下載調(diào)試翻開Proteus軟件,在ISIS中連接好電路并導(dǎo)入Hex文件后,啟動電路運(yùn)行起來。電路默認(rèn)的運(yùn)行狀態(tài)為雙像流水燈。在按下K1鍵后,電路的運(yùn)行狀態(tài)變?yōu)樽笙蛄魉疅?,有一定延時。按下K2鍵后,電路開始運(yùn)行右向流水燈。按下K3鍵后,兩個亮點(diǎn)向中間移動。按下K4鍵,兩個亮點(diǎn)由中間向兩邊移動。仿真的結(jié)果和要求得到的結(jié)果一致。利用STC-ISP單片機(jī)下載軟件將程序燒錄到AT89S2芯片中,給電路板接上電源,8個發(fā)光二極管開始依次點(diǎn)亮進(jìn)行左右循環(huán)。按下不同的按鍵,流水燈實(shí)現(xiàn)不同的顯示形態(tài)。調(diào)試成功。結(jié)論通過本次單片機(jī)音樂彩燈設(shè)計,我加深了對《單片機(jī)原理與應(yīng)用》所學(xué)知識的理解,掌握了單片機(jī)內(nèi)部資源的使用方法和步驟,了解了常用程序的編寫方法〔顯示、中斷等〕;同時也學(xué)習(xí)到了單片機(jī)應(yīng)用的一般步驟和調(diào)試方法及軟件的調(diào)試方法〔模擬仿真〕;并且能夠?qū)嵱孟嚓P(guān)軟件及設(shè)備進(jìn)行模擬與調(diào)試;在老師的指導(dǎo)下完成單片機(jī)課程設(shè)計的各項內(nèi)容,通過這次的實(shí)踐提高了自己的動手能力。參考文獻(xiàn)[1]趙晶.Prote199高級應(yīng)用[M].北京:人民郵電出版社,2000.P18-25.[2]鄭步生,吳渭.Multisim200l電路設(shè)計及仿真入門與應(yīng)用[M].北京:電子工業(yè)出版社,2002.P221-234.[3]沈美明,溫冬嬋.IBM—PC匯編語言程序設(shè)計[M].北京:清華大學(xué)出版社,2001.P

溫馨提示

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

評論

0/150

提交評論