心形流水燈課設(shè)_第1頁
心形流水燈課設(shè)_第2頁
心形流水燈課設(shè)_第3頁
心形流水燈課設(shè)_第4頁
心形流水燈課設(shè)_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、淮海工學(xué)院課程設(shè)計報告書 課程名稱: 單片機(jī)課程設(shè)計 題 目: 心形流水燈設(shè)計 系 (院): 電子工程學(xué)院 學(xué) 期: 2015-2016-1 專業(yè)班級: 自動化121 姓 名: 陶濤 學(xué) 號: 2012120862 評語:成績:簽名:日期:1引言單片機(jī)的應(yīng)用已經(jīng)廣泛的滲透到國民經(jīng)濟(jì)的各個領(lǐng)域,隨著在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng)正以前所未有的速度被單片機(jī)智能控制系統(tǒng)所取代,它已經(jīng)成為工科大學(xué)生的必修課程之一。單片機(jī)技術(shù)含有硬軟兩個方面的技術(shù)。硬件是以單片機(jī)為核心,再加以其他各元器件組成的電子電路的一個實(shí)體。它既有單片機(jī)的技術(shù),又有電子類專業(yè)所必須的

2、模擬數(shù)字高頻電子電路的綜合運(yùn)用。單片機(jī)的種類繁多,目前單片機(jī)應(yīng)用系統(tǒng)開發(fā)工具也有不少,但同一系列單片機(jī)的開發(fā)工具或?qū)嶒?yàn)系列基本相同。51系列單片機(jī)時目前應(yīng)用最廣泛的一種8為單片機(jī)之一,它具有體積小功能強(qiáng)成本低應(yīng)用面廣等優(yōu)點(diǎn)。經(jīng)過20多年的推廣與發(fā)展,51系列單片機(jī)形成了一個規(guī)模龐大,功能齊全,資源豐富的產(chǎn)品群。當(dāng)今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未見的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動控制的核心就是單片機(jī)。隨著電子技術(shù)的迅速發(fā)展,單片機(jī)得

3、到了越來越多的運(yùn)用。 本設(shè)計用單片機(jī)8951結(jié)合LED制作了一種新型的心形LED流水燈控制系統(tǒng)的設(shè)計,以AT89C51作為主控核心,利用軟件實(shí)現(xiàn)對心形LED流水燈進(jìn)行控制。本系統(tǒng)具有體積小、硬件少、電路結(jié)構(gòu)簡單及容易操作等優(yōu)點(diǎn)。2硬件介紹2.1硬件組成按照單片機(jī)系統(tǒng)擴(kuò)展與系統(tǒng)配置狀況,單片機(jī)應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機(jī)是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷結(jié)構(gòu)、2個全雙工的串行口,具有4.255.50V的

4、電壓工作范圍和024MHz工作頻率,使用AT89C51單片機(jī)時無須外擴(kuò)存儲器。因此,本流水燈實(shí)際上就是一個帶有32個發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位等電路和必要的軟件組成的單個單片機(jī)。2.2 AT89C51引腳功能圖1 AT89C51引腳圖VCC:供電電壓。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須

5、接上拉電阻。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為低八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出

6、地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下:P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2

7、0;/INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(計時器0外部輸入) P3.5 T1(計時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。    ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)

8、。     /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。     XTAL2:來自反向振蕩

9、器的輸出。2.3晶振 晶振,它的基本構(gòu)成大致是:從一塊石英晶體上按一定方位角切下薄片(簡稱為晶片,石英晶體諧振器,簡稱為石英晶體或晶體、晶振;而在封裝內(nèi)部添加IC組成振蕩電路的晶體元件稱為晶體振蕩器。晶振是控制CPU的時鐘頻率的,也就是產(chǎn)生高低電平的周期,一般說來次頻率越高,電腦在單位時間里處理的速度越快晶振本身并不產(chǎn)生振蕩,但它會以一個固定的頻率與外電路發(fā)生諧振,前提是外電路的振蕩頻率必須與晶振的固有振蕩頻率相一致,起碼也要非常接近,否則電路將停振。此次流水燈設(shè)計,我們用12MHZ晶振和30pf的電容,它們組成一個穩(wěn)定的自己振蕩器。電容的大小可以影響震蕩頻率的高低,振蕩器的穩(wěn)定性和

10、起振的快速性。為單片機(jī)提供標(biāo)準(zhǔn)時鐘。圖2時鐘電路2.4 復(fù)位狀態(tài) 復(fù)位是單片機(jī)的初始化操作,其主要功能是將程序計數(shù)器PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化外,當(dāng)程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,也須重新啟動單片機(jī),使其復(fù)位。 單片機(jī)復(fù)位后,除P1.0P1.7的端口鎖存器被設(shè)置成FFH、堆棧指針SP設(shè)置成07H和串行口的SBUF無確定值外,其它各專用寄存器包括程序計數(shù)器PC均被設(shè)置成00H。片內(nèi)RAM不受復(fù)位的影響,上電后RAM中的內(nèi)容是隨機(jī)的。記住這些特殊功能寄存器的復(fù)位狀態(tài),對熟悉單片機(jī)操作,簡短應(yīng)用程序中的初始化部分是十分必要的。

11、單片機(jī)的復(fù)位操作有上電自動復(fù)位和手動按鍵復(fù)位兩種方式。上電自動復(fù)位操作要求接 通電源后自動實(shí)現(xiàn)復(fù)位操作。如圖所示。上電瞬間由于電容C上無儲能,其端電壓近似為零,RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,當(dāng)RST引腳上的電壓小于某一數(shù)值后,單片機(jī)就脫離復(fù)位狀態(tài),進(jìn)入正常工作模式。只要高電平能保持復(fù)位所需要的時間(約兩個機(jī)器周期),單片機(jī)就能實(shí)現(xiàn)復(fù)位。圖3復(fù)位電路2.5流水燈硬件原理圖其具體硬件組成如圖4所示。圖4 流水燈硬件原理圖從原理圖中可以看出,由于采用的是共陽極LED燈,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢?/p>

12、了;相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變?yōu)楦唠娖剑煌?,接在P1.1P1.7口的其他7個LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1LED8依次點(diǎn)亮、熄滅,32只LED燈便會一亮一暗的做流水燈了。至于其他的樣式,可以通過程序進(jìn)行修改。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應(yīng)該延時一段時間,否則我們就看不到“流水”效果了。3 C語言編程#include <REGX51.H>#defineuintunsigned int#defineucharun

13、signed charuchar code table0=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/LED從低位往高位移uchar code table1=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/LED從高位往低位移uchar code table2=0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;/LED從1個亮到8個都點(diǎn)亮(從低位往高位)uchar code table3=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;/LED從1個亮到8個都點(diǎn)

14、亮(從高位往低位)uchar code table4=0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;/LED從8個全亮到一個都不亮(從低位往高位)uchar code table5=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;/LED從8個全亮到一個都不亮(從高位往低位)uchar code table6=0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e;/LED從低位往高位移(最低位始終為0)uchar code table7=0x7f,0x3f,0x5f,0x6f,0x7

15、7,0x7b,0x7d,0x7e;/LED從高位往低位移(最高位始終為0)uchar i,j;/定義循環(huán)變量uint tt=70;/定義時間指數(shù)void delay(uint time)/延時函數(shù)uint x,y;for(x=time;x>0;x-)for(y=110;y>0;y-);void disp0()/狀態(tài)0 所有LED閃爍3次for(i=0;i<3;i+)P0=0x00; P2=0x00; P3=0x00; P1=0x00;delay(300);P0=0xff; P2=0xff; P3=0xff; P1=0xff;delay(300);void disp1()/狀態(tài)

16、1 LED順時針轉(zhuǎn)一圈for(i=0;i<8;i+)P2=table1i;delay(100);P2=0xff;for(i=0;i<8;i+)P3=table1i;delay(100);P3=0xff;for(i=0;i<8;i+)P1=table1i; delay(100);P1=0xff;for(i=0;i<8;i+)P0=table0i;delay(100);P0=0xff;void disp2()/狀態(tài)2 LED逆時針轉(zhuǎn)一圈for(i=0;i<8;i+)P0=table1i;delay(100);P0=0xff;for(i=0;i<8;i+)P1=t

17、able0i;delay(100);P1=0xff;for(i=0;i<8;i+)P3=table0i;delay(100);P3=0xff;for(i=0;i<8;i+)P2=table0i;delay(100);P2=0xff;void disp3()/狀態(tài)3 4個LED同時順時、逆時針移動1/4圈for(i=0;i<8;i+)P0=table1i;P1=table1i;P2=table1i;P3=table0i;delay(100);for(i=0;i<8;i+)P0=table0i;P1=table0i;P2=table0i;P3=table1i;delay(1

18、00);P3=0xff; P0=0xff; void disp4()/狀態(tài)4 2個LED同時順時針移動半圈for(i=0;i<8;i+)P2=table1i;P1=table1i;delay(100);P2=0xff; P1=0xff;for(i=0;i<8;i+)P3=table1i;P0=table0i;delay(100);P3=0xff; P0=0xff;void disp5()/狀態(tài)5 2個LED同時逆時針移動半圈for(i=0;i<8;i+)P0=table1i;P3=table0i;delay(100);P0=0xff; P3=0xff;for(i=0;i<

19、;8;i+)P1=table0i;P2=table0i;delay(100);P1=0xff; P2=0xff;void disp6()/狀態(tài)6 LED自上而下逐漸點(diǎn)亮(一半點(diǎn)亮一半不亮)for(i=0;i<8;i+)P0=table3i;P2=table3i;delay(100);P0=0xff; P2=0xff;for(i=0;i<8;i+)P1=table2i;P3=table3i;delay(100);P1=0xff; P3=0xff;void disp7()/狀態(tài)7 LED自下而上逐漸點(diǎn)亮(直到全部點(diǎn)亮)for(i=0;i<8;i+)P1=table3i;P3=ta

20、ble2i;delay(100);for(i=0;i<8;i+)P0=table2i;P2=table2i;delay(100);void main()while()disp0();/狀態(tài)0 所有LED閃爍3次disp1();/狀態(tài)1 LED順時針轉(zhuǎn)一圈disp2();/狀態(tài)2 LED逆時針轉(zhuǎn)一圈disp3();/狀態(tài)3 4個LED同時順時、逆時針移動1/4圈disp4();/狀態(tài)4 2個LED同時順時針移動半圈disp5();/狀態(tài)5 2個LED同時逆時針移動半圈disp6();/狀態(tài)6 LED自上而下逐漸點(diǎn)亮(一半點(diǎn)亮一半不亮)disp7();/狀態(tài)7 LED自下而上逐漸點(diǎn)亮(直到全部點(diǎn)亮)4 總結(jié)本次實(shí)驗(yàn)主要應(yīng)用的是AT89C51

溫馨提示

  • 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

提交評論