版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機控制流水燈前言隨著人們生活環(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)。流水燈
2、是一串按一定的規(guī)律像流水一樣連續(xù)閃亮。流水燈控制是可編程控制器的一個應(yīng)用,其控制思想在工業(yè)控制技術(shù)領(lǐng)域也同樣適用。流水燈控制可用多種方法實現(xiàn),但對現(xiàn)代可編程控制器而言,利用移位寄存器實現(xiàn)最為便利。通常用左移寄存器實現(xiàn)燈的單方向移動;用雙向移位寄存器實現(xiàn)燈的雙向移動。本案例利用價格低廉的AT89C52系列單片機控制基色LED燈泡從而實現(xiàn)豐富的變化。推薦精選目 錄前言21、 課程設(shè)計的目的和要求61.1 設(shè)計目的61.2 設(shè)計要求62、 設(shè)計方案選擇63、硬件設(shè)計73.1設(shè)計思路73.2 流水燈電路原理圖73.2.1元件清單83.2.2 硬件電路模塊分析83.3 主要元件說明113.3.3 振蕩器
3、特性153.3.4 芯片擦除154、軟件設(shè)計154.1 主程序設(shè)計154.2 程序流程圖185、 使用keil、proteus軟件調(diào)試仿真說明195.1仿真過程195.2仿真結(jié)果196、 結(jié)束語197、參考文獻(xiàn)20推薦精選1、 課程設(shè)計的目的和要求1.1 設(shè)計目的近年來隨著科技的發(fā)展,單片機的應(yīng)用正在不斷走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新,在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象點的軟件結(jié)合,加以完善。流水燈,可以更簡單、方便的使用。通過本課程設(shè)計使學(xué)生進(jìn)一步鞏固單片機原理及應(yīng)用的基本
4、概念、基本理論,分析問題的基本方法,增強系統(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)。推薦精選2、 設(shè)計方案選擇 根據(jù)設(shè)計的基本要求,要實現(xiàn)其基本要求有兩種設(shè)計方案的選擇,這兩種設(shè)計方案都是基于AT89C51單片機的基礎(chǔ)上設(shè)計的。一種是使用兩片74LS138譯碼器芯片擴展成為4線16線具有16種輸出狀態(tài),從而可以
5、控制16個LED燈;另一種是直接使用單片機的兩個端口控制,這樣也可以實現(xiàn)控制16個LED燈。比較這兩種設(shè)計方案,我們小組選用了后者。因為這個設(shè)計只是簡單的要求實現(xiàn)16個LED燈循環(huán)點亮的流水功能,不用實現(xiàn)其他的功能,即不需要考慮占用I/O口多的問題;而前者的設(shè)計方案需要外添加兩個74LS138芯片,這樣就增加了硬件電路的復(fù)雜性。3、硬件設(shè)計3.1設(shè)計思路 如果要讓接在P0.0口的LED1亮起來,那么只要把P0.0口的電平變?yōu)榈碗娖骄涂梢粤?;相反,如果要接在P0.0口的LED1熄滅,就要把P0.0口的電平變?yōu)楦唠娖剑煌?,接在P0.1P0.7和P2.0P2.7口的其他15個LED的點亮和熄滅的方
6、法同LED1。因此,要實現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1LED16依次點亮、熄滅,16只LED燈便會一亮一暗的做流水燈了。在此我們還應(yīng)注意一點,由于人眼的視覺暫留效應(yīng)以及單片機執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應(yīng)該延時一段時間,否則我們就看不到“流水”效果了。3.2 流水燈電路原理圖推薦精選圖3-1硬件接線圖 利用單片機的P0、P2口高低電平控制LED燈的發(fā)光閃爍,再利用編程實現(xiàn)流水燈的功能。用軟件來實現(xiàn)對LED的控制,實現(xiàn)的軟硬件結(jié)合。每個LED燈接一個限流電阻,來控制流入LED發(fā)光管的電流。復(fù)位電路AT89C51核心部件閃爍系統(tǒng)振蕩系統(tǒng) 硬件系統(tǒng)方框圖3.2.1元
7、件清單表3-1 元件清單名稱型號個數(shù)AT89C51122pF電容210uF電解電容1220歐姆電阻1610k電阻1晶振11.0592M1發(fā)光二極管16推薦精選連接線若干3.2.2 硬件電路模塊分析(1)核心部件89C51單片機是整個流水燈循環(huán)系統(tǒng)的核心功能的部件,其中內(nèi)部有ROM、有RAM、有并行I/O口等,在51單片機內(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ù)位電路,它的作用是將單片機內(nèi)
8、部特殊功能寄存器和端口寄存器恢復(fù)到初始狀態(tài),從內(nèi)部FLASH存儲器的初始狀態(tài)開始執(zhí)行。如圖所示,當(dāng)要對晶片重置時,只要按此開關(guān)就能完成LED和開關(guān)的重置。復(fù)位是單片機的初始化操作,其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。單片機的RST管腳為主機提供了一個外部復(fù)位信號輸入口。復(fù)位信號是高電平有效,高電平有效的持續(xù)時間為2個機器周期以上。單片機的復(fù)位方式可由手動復(fù)位方式完成。RST引腳是復(fù)位信號輸入端,復(fù)位信號為高電平有效,其有效時間應(yīng)持續(xù)24個振蕩周期以上才能完成復(fù)位操作,若使用6MHz晶振,則需持續(xù)4S以上才能完成復(fù)位操作。圖2.10中,在通電瞬間,由于RC
9、的充電過程,在RST端出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能使單片機自動復(fù)位推薦精選圖3-2 復(fù)位電路CPU在第二個機器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每個機器周期重復(fù)一次,直至RST端電平變低。在單片機復(fù)位期間,AlE和 信號都不產(chǎn)生。復(fù)位操作將對部分專用寄存器產(chǎn)生影響,復(fù)位后,這些內(nèi)部寄存器狀態(tài)如表2-6。表1-2 部分專用寄存器復(fù)位狀態(tài)寄存器 值 寄存器 值 PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H P0P3 0FFH IP XXX00000 IE 0XX00000 TMOD 00H TCON 00H TL0,TL1
10、00H TH0,TH1 00H SCON 00H SBUF 不定 PCON 0XXX0000 上電瞬間由于電容C上無儲能,其端電壓近似為零,RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,當(dāng)RST引腳上的電壓小于某一數(shù)值后,單片機就脫離復(fù)位狀態(tài),進(jìn)入正常工作模式。只要高電平能保持復(fù)位所需要的時間(約兩個機器周期),單片機就能實現(xiàn)復(fù)位。(3)振蕩系統(tǒng)單片機本身如同一個復(fù)雜的同步時序電路,為了保證同步工作,電路應(yīng)在唯一的時鐘信號控制下,嚴(yán)格地按規(guī)定時序工作。而時鐘電路就用于產(chǎn)生單片機工作所需要的時鐘信號。為LED燈循環(huán)系統(tǒng)提供穩(wěn)定頻率波在由多片單片機組成的系統(tǒng)中,為了各單片機
11、之間時鐘信號的同步,引入唯一的外部脈沖信號作為各單片機的振蕩脈沖。這時外部的脈沖信號是經(jīng)單片機89C51的XTAL2引腳注入的;在MCS51單片機片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,推薦精選在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調(diào)電容C1、C2形成反饋電路,可構(gòu)成穩(wěn)定的自激振蕩器,振蕩頻率范圍通常是1.212MHz。晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機的運行速度也就快。由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機的時鐘方式。如圖所示 圖3-3 振蕩電路 晶體振蕩器的振蕩信號從XTAL2端送入內(nèi)部時鐘電路,它將該振蕩信號二分頻,產(chǎn)
12、生一個兩相時鐘信號A和B供單片機使用。時鐘信號的周期稱為狀態(tài)時間S,它是振蕩周期的2倍,A信號在每個狀態(tài)的前半周期有效,在每個狀態(tài)的后半周期B信號有效。CPU就是以兩相時鐘A和B為基本節(jié)拍協(xié)調(diào)單片機各部分有效工作的。 MCS-51單片機時鐘電路示意圖如圖下圖所示。 MCS-51單片機時鐘振蕩電路示意圖振蕩電路產(chǎn)生的振蕩脈沖并不直接使用,而是經(jīng)分頻后再為系統(tǒng)所用。振蕩脈沖在片內(nèi)通過一個時鐘發(fā)生電路二分頻后才作為系統(tǒng)的時鐘信號。片內(nèi)時鐘發(fā)生電路實質(zhì)上是一個二分頻的觸發(fā)器,其輸入來自振蕩器,輸出為二相時鐘信號,即狀態(tài)時鐘信號,其頻率為推薦精選fosc/2;狀態(tài)時鐘三分頻后為ALE信號,其頻率為fos
13、c/6;狀態(tài)時鐘六分頻后為機器周期,其頻率為fosc/12。(4)顯示電路 如圖3-4所示,P0口控制LED燈D1D8的顯示,P2口控制LED燈D10D17的顯示。限流電阻為220歐姆,經(jīng)過的電流大概為15mA。 圖3-4 LED顯示電路3.3 主要元件說明 此電路主要元件是AT89C51單片機,單片機內(nèi)部主要包含下列幾個部件:u 一個8位CPU; u 一個時鐘電路; u 4Kbyte程序存儲器; u 128byte數(shù)據(jù)存儲器; u 兩個16位定時/計數(shù)器; u 64Kbyte擴展總線控制電路; u 四個8-bit并行I/O端口; u 一個可編程串行接口; u 五個中斷源,其中包括兩個優(yōu)先級嵌
14、套中斷。推薦精選AT89C51硬件結(jié)構(gòu)框圖3.3.1主要特性AT89C51是一種低功耗/低電壓、高性能的八位CMOS單片機,片內(nèi)有一個4KB的FLASH可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器技術(shù),而且其輸出引腳和指令系統(tǒng)都與MSC51兼容。片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲單元,片內(nèi)的存儲器允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易失性存儲器編程。因此,AT89C51是一種功能強、靈活性高且價格合理的單片機,可方便的應(yīng)用于各種控制領(lǐng)
15、域。3.3.2主要引腳功能推薦精選1.電源引腳Vcc和Vss Vcc:電源端,接5V。 Vss:接地端。 通常在Vcc和Vss引腳之間接0.1高頻濾波電容。 2.時鐘電路引腳XTAL1和XTAL2 XTAL1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳必須接地。 XTAL2:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳為外部時鐘的輸入端。 3.地址鎖存允許ALE 在系統(tǒng)擴展時,ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實現(xiàn)數(shù)據(jù)與低位地址的復(fù)用。當(dāng)單片機上電正常工作后,ALE端就周期
16、性地以時鐘頻率的1/6的固定頻率向外輸出正脈沖信號,ALE的負(fù)載能力為8個LSTTL器件。 4.外部程序存儲器讀選通信號 是讀外部程序存儲器的選通信號,低電平有效。CPU從外部存儲器取指令時,它在每個機器周期中兩次有效。 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 該信號高電平有效,在輸入端保持兩個機器周期的高電平后,就可以完成復(fù)位操作。此外,該引腳還有掉電保護(hù)功能,
17、若在該端接5V備用電源,在使用中若Vcc掉電,可保護(hù)片內(nèi)RAM中信息不丟失。 7.輸入/輸出口引腳P0、P1、P2和P3 P0口(P0.0P0.7):該端口為漏極開路的8位準(zhǔn)雙向口,負(fù)載能力位8高LSTTL負(fù)載,它為8位地址線和8位數(shù)據(jù)線的復(fù)用端口。推薦精選 P1口(P1.0P1.7):它是一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P1口的驅(qū)動能力為4個LSTTL負(fù)載。 P2口(P2.0P2.7):它為一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口的驅(qū)動能力也為4個LSTTL負(fù)載。在訪問外部程序存儲器時,它作存儲器的高8位地址線。 P3口(P3.0P3.7):P3口同樣是內(nèi)部帶上拉電阻的8位準(zhǔn)雙
18、向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é)振蕩器,
19、禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。推薦精選 4、軟件設(shè)計4.1 主程序設(shè)計 #include #define T 10 /定時器時間 T*50ms void Init_Timer0(void); unsigned char Time; void main(void) int flag = 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 =
20、0xfe)/到了P0的最后一個燈 1111 1110推薦精選 flag = 0; if(flag = 0)/P2口準(zhǔn)備亮燈 if(Time = T & P0 = 0xfe) P2 = 0x7f;/P2口開始亮燈0111 1111 P0 = 0xff;/P0口不亮燈1111 1111 Time = 0; if(Time = T) P2=1; P2=P2|0x80; Time = 0; if(P2 = 0xfe)/到了P2口的最后一個燈 1111 1110 P1 = 0x00; /調(diào)試代碼 if(Time = T) P0 = 0x7f; P2 = 0xff; flag = 1;/P0口準(zhǔn)備亮燈 T
21、ime = 0; P1 = 0xff; /調(diào)試代碼 continue;/重新循環(huán); 推薦精選 void Init_Timer0(void) TMOD = 0x01; /選擇工作方式1 TH0 = 0x3C; /設(shè)置初始值,定時50MS TL0 = 0xB0; EA = 1; /打開總中斷 ET0 = 1; /打開定時器0中斷 TR0 = 1; /啟動定時器0 void Timer0() interrupt 1 TH0 = (65536-50000)/256; /設(shè)置初始值 TL0 = (65536-50000)%256; Time+; 此程序中加入了一個P1口用來調(diào)試代碼,這個調(diào)試代碼的主要作用就是為了觀察LED燈循環(huán)點亮后作為明顯的結(jié)束標(biāo)志。在仿真中可以看到LED燈有規(guī)律的一個一個的點亮如此循環(huán)。4.2 程序流程圖推薦精選圖4-1程序流程圖5、 使用keil、proteus軟件調(diào)試仿真說明5.1仿真過程 Proteus仿真時,單片機需要加載程序,加載程序為.HEX文件。本設(shè)計利用Keil Vision4, 在新建Keil項目時選擇AT89C51單片機作為CPU,將C語言源程序?qū)耄凇癘ptions For Target”對話窗口中,選中“Output”選項中的“Create HEX File”,編譯鏈接后就可以生成.HEX文件。在Proteus I
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國皺紋漆行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國臺式電子計算器行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國靚膚祛黃保濕精油數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國耐水洗絨毛數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國立式磁力管道離心泵數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國電子用膠帶數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國梭織男裝數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國開式鋼片綜數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國LDPE光纜護(hù)套料數(shù)據(jù)監(jiān)測研究報告
- 獸用藥品批發(fā)商的物流網(wǎng)絡(luò)規(guī)劃考核試卷
- 動物生產(chǎn)與流通環(huán)節(jié)檢疫(動物防疫檢疫課件)
- 裝配式建筑預(yù)制構(gòu)件安裝-預(yù)制構(gòu)件的吊裝
- 英語主語從句省公開課一等獎全國示范課微課金獎?wù)n件
- 上海天文館分析
- 中醫(yī)睡眠養(yǎng)生中心方案
- 生活中的邏輯學(xué)
- 大學(xué)生返家鄉(xiāng)社會實踐報告
- 初中生物中考真題(合集)含答案
- 《醫(yī)學(xué)免疫學(xué)實驗》課件
- C139客戶開發(fā)管理模型
- GB/T 5019.5-2023以云母為基的絕緣材料第5部分:電熱設(shè)備用硬質(zhì)云母板
評論
0/150
提交評論