單片機(jī)控制流水燈_第1頁
單片機(jī)控制流水燈_第2頁
單片機(jī)控制流水燈_第3頁
單片機(jī)控制流水燈_第4頁
單片機(jī)控制流水燈_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機(jī)控制流水燈單片機(jī)控制流水燈26/26PAGE26單片機(jī)控制流水燈單片機(jī)控制流水燈單片機(jī)控制流水燈前言隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到彩色霓虹燈不斷變化閃爍。LED燈由于其豐富的燈光色彩,低廉的造價以及控制簡單等特點而得到了廣泛的應(yīng)用,用彩燈來裝飾街道和城市建筑物已經(jīng)成為一種時尚。但目前市場上各式樣的LED燈控制器大多數(shù)用全硬件電路實現(xiàn),電路結(jié)構(gòu)復(fù)雜、功能單一,這樣一旦制作成品只能按照固定的模式閃亮,不能根據(jù)不同場合、不同時間段的需要來調(diào)節(jié)亮燈時間、模式、閃爍頻率等動態(tài)參數(shù)。這種彩燈控制器結(jié)構(gòu)往往有芯片過多、電路復(fù)雜、功率損耗大等缺點。此外從功能效果上看,亮燈模式少而且樣式單調(diào),缺乏用戶可操作性,影響亮燈效果。因此有必要對現(xiàn)有的彩燈控制器進(jìn)行改進(jìn)。流水燈是一串按一定的規(guī)律像流水一樣連續(xù)閃亮。流水燈控制是可編程控制器的一個應(yīng)用,其控制思想在工業(yè)控制技術(shù)領(lǐng)域也同樣適用。流水燈控制可用多種方法實現(xiàn),但對現(xiàn)代可編程控制器而言,利用移位寄存器實現(xiàn)最為便利。通常用左移寄存器實現(xiàn)燈的單方向移動;用雙向移位寄存器實現(xiàn)燈的雙向移動。本案例利用價格低廉的AT89C52系列單片機(jī)控制基色LED燈泡從而實現(xiàn)豐富的變化。目錄TOC\o"1-3"\h\u20080前言 2118691、課程設(shè)計的目的和要求 6230031.1設(shè)計目的 6215061.2設(shè)計要求 652082、設(shè)計方案選擇 6138053、硬件設(shè)計 7245023.1

設(shè)計思路

760563.2流水燈電路原理圖 718717 832079 8188723.3主要元件說明 1128152 153351 15267204、軟件設(shè)計 15266794.1主程序設(shè)計 1523044.2程序流程圖 1854765、使用keil、proteus軟件調(diào)試仿真說明 19299315.1仿真過程 1954895.2仿真結(jié)果 19202206、結(jié)束語 1919717、參考文獻(xiàn) 20課程設(shè)計的目的和要求1.1設(shè)計目的近年來隨著科技的發(fā)展,單片機(jī)的應(yīng)用正在不斷走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新,在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用,單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象點的軟件結(jié)合,加以完善。流水燈,可以更簡單、方便的使用。通過本課程設(shè)計使學(xué)生進(jìn)一步鞏固單片機(jī)原理及應(yīng)用的基本概念、基本理論,分析問題的基本方法,增強(qiáng)系統(tǒng)地運用已學(xué)的理論知識解決實際問題的能力和查閱資料的能力。培養(yǎng)一定的自學(xué)能力和獨立分析問題、解決問題的能力,能通過獨立思考、查閱工具書、參考文獻(xiàn),尋找解決方案。1.2設(shè)計要求設(shè)計流水燈的基本要求:設(shè)計一個16個LED燈的流水燈,應(yīng)用AT89C51實驗開發(fā)板的定時器功能實現(xiàn),電路開啟后LED燈在時鐘信號作用下按一定規(guī)律轉(zhuǎn)換狀態(tài)。設(shè)計方案選擇根據(jù)設(shè)計的基本要求,要實現(xiàn)其基本要求有兩種設(shè)計方案的選擇,這兩種設(shè)計方案都是基于AT89C51單片機(jī)的基礎(chǔ)上設(shè)計的。一種是使用兩片74LS138譯碼器芯片擴(kuò)展成為4線—16線具有16種輸出狀態(tài),從而可以控制16個LED燈;另一種是直接使用單片機(jī)的兩個I/O端口控制,這樣也可以實現(xiàn)控制16個LED燈。比較這兩種設(shè)計方案,我們小組選用了后者。因為這個設(shè)計只是簡單的要求實現(xiàn)16個LED燈循環(huán)點亮的流水功能,不用實現(xiàn)其他的功能,即不需要考慮占用I/O口多的問題;而前者的設(shè)計方案需要外添加兩個74LS138芯片,這樣就增加了硬件電路的復(fù)雜性。3、硬件設(shè)計3.1

設(shè)計思路

“流水”效果了。3.2流水燈電路原理圖圖3-1硬件接線圖利用單片機(jī)的P0、P2口高低電平控制LED燈的發(fā)光閃爍,再利用編程實現(xiàn)流水燈的功能。用軟件來實現(xiàn)對LED的控制,實現(xiàn)的軟硬件結(jié)合。每個LED燈接一個限流電阻,來控制流入LED發(fā)光管的電流。復(fù)位電路復(fù)位電路AT89C51核心部件閃爍系統(tǒng)振蕩系統(tǒng)硬件系統(tǒng)方框圖元件清單表3-1元件清單名稱型號個數(shù)AT89C51122pF電容210uF電解電容1220歐姆電阻1610k電阻1晶振11.0592M1發(fā)光二極管16連接線若干3.2.2硬件電路模塊分析(1)核心部件89C51單片機(jī)是整個流水燈循環(huán)系統(tǒng)的核心功能的部件,其中內(nèi)部有ROM、有RAM、有并行I/O口等,在51單片機(jī)內(nèi)部有一個CPU用來運算、控制,有四個并行I/O口,分別是P0、P1、P2、P3,有ROM,用來存放程序,有RAM,用來存放中間結(jié)果,此外還有定時/計數(shù)器,串行I/O口,中斷系統(tǒng),以及一個內(nèi)部的時鐘電路。(2)復(fù)位系統(tǒng)電路中C1、R1、VCC等組成復(fù)位電路,它的作用是將單片機(jī)內(nèi)部特殊功能寄存器和端口寄存器恢復(fù)到初始狀態(tài),從內(nèi)部FLASH存儲器的初始狀態(tài)開始執(zhí)行。如圖所示,當(dāng)要對晶片重置時,只要按此開關(guān)就能完成LED和開關(guān)的重置。復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。單片機(jī)的RST管腳為主機(jī)提供了一個外部復(fù)位信號輸入口。復(fù)位信號是高電平有效,高電平有效的持續(xù)時間為2個機(jī)器周期以上。單片機(jī)的復(fù)位方式可由手動復(fù)位方式完成。RST引腳是復(fù)位信號輸入端,復(fù)位信號為高電平有效,其有效時間應(yīng)持續(xù)24個振蕩周期以上才能完成復(fù)位操作,若使用6MHz晶振,則需持續(xù)4μS以上才能完成復(fù)位操作。圖2.10中,在通電瞬間,由于RC的充電過程,在RST端出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能使單片機(jī)自動復(fù)位圖3-2復(fù)位電路CPU在第二個機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每個機(jī)器周期重復(fù)一次,直至RST端電平變低。在單片機(jī)復(fù)位期間,AlE和信號都不產(chǎn)生。復(fù)位操作將對部分專用寄存器產(chǎn)生影響,復(fù)位后,這些內(nèi)部寄存器狀態(tài)如表2-6。表1-2部分專用寄存器復(fù)位狀態(tài)寄存器值寄存器值PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0~P30FFHIPXXX00000IE0XX00000TMOD00HTCON00HTL0,TL100HTH0,TH100HSCON00HSBUF不定PCON0XXX0000上電瞬間由于電容C上無儲能,其端電壓近似為零,RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,當(dāng)RST引腳上的電壓小于某一數(shù)值后,單片機(jī)就脫離復(fù)位狀態(tài),進(jìn)入正常工作模式。只要高電平能保持復(fù)位所需要的時間(約兩個機(jī)器周期),單片機(jī)就能實現(xiàn)復(fù)位。(3)振蕩系統(tǒng)單片機(jī)本身如同一個復(fù)雜的同步時序電路,為了保證同步工作,電路應(yīng)在唯一的時鐘信號控制下,嚴(yán)格地按規(guī)定時序工作。而時鐘電路就用于產(chǎn)生單片機(jī)工作所需要的時鐘信號。為LED燈循環(huán)系統(tǒng)提供穩(wěn)定頻率波在由多片單片機(jī)組成的系統(tǒng)中,為了各單片機(jī)之間時鐘信號的同步,引入唯一的外部脈沖信號作為各單片機(jī)的振蕩脈沖。這時外部的脈沖信號是經(jīng)單片機(jī)89C51的XTAL2引腳注入的;在MCS-51單片機(jī)片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調(diào)電容C1、C2形成反饋電路,可構(gòu)成穩(wěn)定的自激振蕩器,振蕩頻率范圍通常是1.2~12MHz。晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機(jī)的運行速度也就快。由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機(jī)的時鐘方式。如圖所示圖3-3振蕩電路

晶體振蕩器的振蕩信號從XTAL2端送入內(nèi)部時鐘電路,它將該振蕩信號二分頻,產(chǎn)生一個兩相時鐘信號A和B供單片機(jī)使用。時鐘信號的周期稱為狀態(tài)時間S,它是振蕩周期的2倍,A信號在每個狀態(tài)的前半周期有效,在每個狀態(tài)的后半周期B信號有效。CPU就是以兩相時鐘A和B為基本節(jié)拍協(xié)調(diào)單片機(jī)各部分有效工作的。MCS-51單片機(jī)時鐘電路示意圖如圖下圖所示。MCS-51單片機(jī)時鐘振蕩電路示意圖振蕩電路產(chǎn)生的振蕩脈沖并不直接使用,而是經(jīng)分頻后再為系統(tǒng)所用。振蕩脈沖在片內(nèi)通過一個時鐘發(fā)生電路二分頻后才作為系統(tǒng)的時鐘信號。片內(nèi)時鐘發(fā)生電路實質(zhì)上是一個二分頻的觸發(fā)器,其輸入來自振蕩器,輸出為二相時鐘信號,即狀態(tài)時鐘信號,其頻率為fosc/2;狀態(tài)時鐘三分頻后為ALE信號,其頻率為fosc/6;狀態(tài)時鐘六分頻后為機(jī)器周期,其頻率為fosc/12。(4)顯示電路如圖3-4所示,P0口控制LED燈D1~D8的顯示,P2口控制LED燈D10~D17的顯示。限流電阻為220歐姆,經(jīng)過的電流大概為15mA。圖3-4LED顯示電路3.3主要元件說明此電路主要元件是AT89C51單片機(jī),單片機(jī)內(nèi)部主要包含下列幾個部件:

一個8位CPU;

一個時鐘電路;

4Kbyte程序存儲器;

128byte數(shù)據(jù)存儲器;

兩個16位定時/計數(shù)器;

64Kbyte擴(kuò)展總線控制電路;

四個8-bit并行I/O端口;

一個可編程串行接口;

五個中斷源,其中包括兩個優(yōu)先級嵌套中斷。AT89C51硬件結(jié)構(gòu)框圖3.3.1主要特性AT89C51是一種低功耗/低電壓、高性能的八位CMOS單片機(jī),片內(nèi)有一個4KB的FLASH可編程可擦除只讀存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器技術(shù),而且其輸出引腳和指令系統(tǒng)都與MSC—51兼容。片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲單元,片內(nèi)的存儲器允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易失性存儲器編程。因此,AT89C51是一種功能強(qiáng)、靈活性高且價格合理的單片機(jī),可方便的應(yīng)用于各種控制領(lǐng)域。3.3.2主要引腳功能1.電源引腳Vcc和VssVcc:電源端,接+5V。Vss:接地端。通常在Vcc和Vss引腳之間接0.1μ高頻濾波電容。2.時鐘電路引腳XTAL1和XTAL2XTAL1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳必須接地。XTAL2:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳為外部時鐘的輸入端。3.地址鎖存允許ALE在系統(tǒng)擴(kuò)展時,ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實現(xiàn)數(shù)據(jù)與低位地址的復(fù)用。當(dāng)單片機(jī)上電正常工作后,ALE端就周期性地以時鐘頻率的1/6的固定頻率向外輸出正脈沖信號,ALE的負(fù)載能力為8個LSTTL器件。4.外部程序存儲器讀選通信號是讀外部程序存儲器的選通信號,低電平有效。CPU從外部存儲器取指令時,它在每個機(jī)器周期中兩次有效。5.程序存儲器地址允許輸入端/VPP當(dāng)為高電平時,CPU執(zhí)行片內(nèi)程序存儲器指令,但當(dāng)PC中的值超過0FFFH時,將自動轉(zhuǎn)向執(zhí)行片外程序存儲器指令。當(dāng)為低電平時,CPU只執(zhí)行片外程序存儲器指令。對于8031,由于其無片內(nèi)ROM,故必須接低電平。6.復(fù)位信號RST該信號高電平有效,在輸入端保持兩個機(jī)器周期的高電平后,就可以完成復(fù)位操作。此外,該引腳還有掉電保護(hù)功能,若在該端接+5V備用電源,在使用中若Vcc掉電,可保護(hù)片內(nèi)RAM中信息不丟失。7.輸入/輸出口引腳P0、P1、P2和P3P0口(P0.0~P0.7):該端口為漏極開路的8位準(zhǔn)雙向口,負(fù)載能力位8高LSTTL負(fù)載,它為8位地址線和8位數(shù)據(jù)線的復(fù)用端口。P1口(P1.0~P1.7):它是一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P1口的驅(qū)動能力為4個LSTTL負(fù)載。P2口(P2.0~P2.7):它為一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口的驅(qū)動能力也為4個LSTTL負(fù)載。在訪問外部程序存儲器時,它作存儲器的高8位地址線。P3口(P3.0~P3.7):P3口同樣是內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P3口除了作為一般的I/O口使用之外,其還具有特殊功能。3.3.3振蕩器特性XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度3.3.4芯片擦除AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。4、軟件設(shè)計4.1主程序設(shè)計#include<reg51.h>#defineT10//定時器時間T*50msvoidInit_Timer0(void);unsignedcharTime;voidmain(void){intflag=1;//P0口先開始亮燈Time=0;P0=0x7f;P2=0xff;Init_Timer0();//初始化定時器while(1){if(flag==1)//P0口準(zhǔn)備亮燈{if(Time==T)//0.5s移動一次{P0>>=1;P0=P0|0x80;Time=0;}}if(P0==0xfe)//到了P0的最后一個燈11111110flag=0;if(flag==0)//P2口準(zhǔn)備亮燈{if(Time==T&&P0==0xfe){P2=0x7f;//P2口開始亮燈01111111P0=0xff;//P0口不亮燈11111111Time=0;}if(Time==T){P2>>=1;P2=P2|0x80;Time=0;}}if(P2==0xfe)//到了P2口的最后一個燈11111110{P1=0x00;//調(diào)試代碼if(Time==T){P0=0x7f;P2=0xff;flag=1;//P0口準(zhǔn)備亮燈Time=0;P1=0xff;//調(diào)試代碼continue;//重新循環(huán);}}}}voidInit_Timer0(void){TMOD=0x01;//選擇工作方式1TH0=0x3C;//設(shè)置初始值,定時50MSTL0=0xB0;EA=1;//打開總中斷ET0=1;//打開定時器0中斷TR0=1;//啟動定時器0}voidTimer0()interrupt1{TH0=(65536-50000)/256;//設(shè)置初始值TL0=(65536-50000)%256;Time++;}此程序中加入了一個P1口用來調(diào)試代碼,這個調(diào)試代碼的主要作用就是為了觀察LED燈循環(huán)點

溫馨提示

  • 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

提交評論