LED點(diǎn)陣心形流水燈禮品設(shè)計(jì)_第1頁(yè)
LED點(diǎn)陣心形流水燈禮品設(shè)計(jì)_第2頁(yè)
LED點(diǎn)陣心形流水燈禮品設(shè)計(jì)_第3頁(yè)
LED點(diǎn)陣心形流水燈禮品設(shè)計(jì)_第4頁(yè)
LED點(diǎn)陣心形流水燈禮品設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(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、景德鎮(zhèn)陶瓷學(xué)院開(kāi)放實(shí)驗(yàn)室單片機(jī)設(shè)計(jì)報(bào)告LED點(diǎn)陣心形流水燈禮品設(shè)計(jì)設(shè)計(jì)人:李盛 目 錄0 前言11 系統(tǒng)組成與功能.11.1 系統(tǒng)組成1 1.1.1 AT89C51單片機(jī)11.1.2 16乘16點(diǎn)陣21.2 系統(tǒng)功能32 系統(tǒng)原理32.1系統(tǒng)仿真圖32.2 實(shí)物照片43 程序流程圖.64 程序代碼.75 結(jié)論14參考文獻(xiàn)1414基于單片機(jī)控制心形流水燈跟點(diǎn)陣0 前言 隨著社會(huì)的發(fā)展,單片機(jī)得到了廣泛的應(yīng)用,人們?cè)絹?lái)越重視單片機(jī)的應(yīng)用。比如溫度是和每個(gè)人息息相關(guān)的,并且在有的生產(chǎn)車間里還要進(jìn)行溫度時(shí)時(shí)測(cè)量,甚至是對(duì)溫度的進(jìn)一步調(diào)控等,這些都是單片機(jī)的應(yīng)用之例。本設(shè)計(jì)是用單片機(jī)和點(diǎn)陣加一個(gè)小的流水

2、燈電路,作為玩具挺有趣的。 這次的作品,初衷是希望通過(guò)單片機(jī)學(xué)習(xí),做個(gè)生日禮物送給朋友。由于時(shí)間緊迫,做的有些倉(cāng)促,望原諒。1系統(tǒng)組成與功能1.1 系統(tǒng)組成本系統(tǒng)主要有AT89C51單片機(jī)、18b20、1602、蜂鳴器、四位一體七段數(shù)碼管等元件組成。1.1.1 AT89C51單片機(jī)AT89S51具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)圖1-1 AT89C51引腳圖電路,片內(nèi)時(shí)鐘振蕩

3、器。此外,AT89S52設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷 系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。引腳圖如圖1-1所示。1.1.2 16乘16點(diǎn)陣顯示模塊本點(diǎn)陣屏采用4塊8*8點(diǎn)陣組合,形成一個(gè)16*16的點(diǎn)陣,加驅(qū)動(dòng)集成電路SN74HC164和74HC595組成。通過(guò)軟件控制,本屏以動(dòng)態(tài)掃描的顯示方式,可顯示文字、圖形、動(dòng)畫(huà)等多種花樣。 1、 SN74HC164是串行移位寄存器,串行輸入并行輸出,當(dāng)清零端CLR為高電平時(shí),每來(lái)一個(gè)時(shí)鐘脈沖CLK寄存器中

4、的數(shù)據(jù)就會(huì)從Qa向Qh方向移動(dòng)一位,即QaQb、QbQc、QcQd、QdQe、QeQf、QfQg、QgQh,同時(shí)兩個(gè)輸入端A和B與非的結(jié)果進(jìn)入Qa,SN74HC164的邏輯功能如圖1-2所示。圖1-2 SN74HC164的邏輯功能圖 2、 74HC595有一個(gè)8位串行輸入,并行輸出的移位寄存器,該寄存器向一個(gè)8位D型存儲(chǔ)寄存器提供數(shù)據(jù)。74HC595N的存儲(chǔ)寄存器具備三態(tài)輸出。移位寄存器和存儲(chǔ)寄存器分別有獨(dú)立的時(shí)鐘。74HC595N的移位寄存器帶有最高優(yōu)先級(jí)的直接清零端(SRCLR)、串行輸入端(SER)和用于級(jí)聯(lián)的串行輸出端。當(dāng)輸出使能端(OE)為高時(shí),74HC595的輸出將處于高阻態(tài)。不管

5、是移位寄存器時(shí)鐘(SRCLK)還是存儲(chǔ)寄存器時(shí)鐘(RCLK),都是上升沿觸發(fā)。如果當(dāng)兩個(gè)時(shí)鐘綁定在一起時(shí),則移位寄存器將一直領(lǐng)先存儲(chǔ)寄存器一個(gè)時(shí)鐘脈沖。 SN74HC595特性:8位串行輸入,并行輸出移位;寬工作電壓范圍:2.06.0 V高強(qiáng)度電流三態(tài)輸出,最多可驅(qū)動(dòng)高達(dá)15個(gè)LSTTL負(fù)載;低功耗,最大ICC =80A;典型tpd=13 ns;5V下驅(qū)動(dòng)電流為±6 mA;移位寄存器可直接清零低輸入電流,最大1A;8位移位寄存器,具有三態(tài)輸出鎖存。最后,集成了74HC595、74HC154的點(diǎn)陣實(shí)物圖見(jiàn)圖1-3所示。3、點(diǎn)陣主要技術(shù)參數(shù):  顯示容量:16*16個(gè)

6、字符圖1-3 點(diǎn)陣實(shí)物圖 芯片工作電壓:4.55.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V4、引腳功能說(shuō)明VCC 5V電源GND 接地DS 串行數(shù)據(jù)輸入STcp 并行數(shù)據(jù)輸出時(shí)鐘 SHcp 串行數(shù)據(jù)輸入時(shí)鐘 CS 選擇器使能 A0-A3 16位數(shù)據(jù)選擇器輸入不算電源線,共8線,算電源為10線。本點(diǎn)陣已將驅(qū)動(dòng)集成電路74HC595、74HC154等放在點(diǎn)陣后面了,引入10線及信號(hào)即可顯示。2 系統(tǒng)設(shè)計(jì) 2.1 系統(tǒng)設(shè)計(jì)方案 利用TC89C52RC單片機(jī),16*16點(diǎn)陣LED,74HC164N 和74HC595N芯片,TIP127三極管組成的

7、漢字點(diǎn)陣顯示系統(tǒng)。本系統(tǒng)主要分成屏體和控制器兩大部分。屏體的主要部分是LED點(diǎn)陣,還有行列驅(qū)動(dòng)電路。LED點(diǎn)陣屏采用16*16LED顯示模塊連接而成。一塊16行16列顯示屏,其LED發(fā)光器件數(shù)量相當(dāng)大,不適合使用靜態(tài)驅(qū)動(dòng)電路,而采用動(dòng)態(tài)掃描驅(qū)動(dòng)電路。掃描驅(qū)動(dòng)電路采用多行的同名列共用一套驅(qū)動(dòng)器,行驅(qū)動(dòng)器一行的行線連接到電源的一端,列驅(qū)動(dòng)器一列的列連接到電源的另一端??刂齐娐坟?fù)責(zé)有序地選通各行,選通每一行之前還要把該行該列的數(shù)據(jù)準(zhǔn)備好,一旦該行選通,這一行上的LED發(fā)光器件就可以根據(jù)列數(shù)據(jù)進(jìn)行顯示。 本系統(tǒng)的控制電路采用單片機(jī)方法,由于單片機(jī)的I/O口數(shù)量少,驅(qū)動(dòng)能力不強(qiáng),則要擴(kuò)展一定的硬件電路,

8、才能滿足顯示屏的需要。硬件電路大體上可分為單片機(jī)控制器、LED顯示屏行列驅(qū)動(dòng)電路、LED點(diǎn)陣屏三部分,LED顯示屏驅(qū)動(dòng)電路使用通用的數(shù)字電路并盡量減少外圍硬件,做到電路簡(jiǎn)單、適應(yīng)性強(qiáng)、成本不高、維護(hù)方便等要求。 為了增強(qiáng)漢字點(diǎn)陣的顯示效果,LED漢字點(diǎn)陣顯示系統(tǒng)也可以有多種顯示模式。最簡(jiǎn)單的顯示模式是靜態(tài)顯示。同靜態(tài)顯示模式相對(duì)應(yīng)有多種動(dòng)態(tài)顯示模式,它們所顯示的文字是動(dòng)態(tài)的。按照文字運(yùn)動(dòng)的特點(diǎn)可以分為平移、閃爍、旋轉(zhuǎn)、縮放等多種顯示模式。產(chǎn)生不同顯示模式的方法可以通過(guò)一定的算法從原來(lái)的顯示數(shù)據(jù)產(chǎn)生。不過(guò)當(dāng)算法太復(fù)雜時(shí)就會(huì)太浪費(fèi)時(shí)間,也可以考慮預(yù)先生成刷新數(shù)據(jù),存儲(chǔ)備用。 本系統(tǒng)采用動(dòng)態(tài)顯示的模

9、式,所謂的動(dòng)態(tài)顯示模式是指逐行輪流點(diǎn)亮。我們把所有的同一行發(fā)光管的陽(yáng)極連接在一起,把所有第一列發(fā)光管的陰極連接一起,先送出對(duì)應(yīng)第一行的發(fā)光管亮滅的數(shù)據(jù)并且鎖存,然后選通第一行使其點(diǎn)亮一定的時(shí)間然后熄滅;再送出第二行的數(shù)據(jù)并且鎖存,然后宣統(tǒng)第二行使其點(diǎn)亮同樣的時(shí)間,然后熄滅;直到第第十六行顯示完后再重新點(diǎn)亮第一行,這樣反復(fù)輪回。如圖2所示。單片機(jī)行掃描LED點(diǎn)陣屏列掃描圖2 系統(tǒng)的整體結(jié)構(gòu)圖 2.2 點(diǎn)陣部分程序流程圖2.3 流水燈部分基于單片機(jī)的流水燈是一個(gè)小設(shè)計(jì),其原理就不詳細(xì)說(shuō)明。單片機(jī)1(左)控制流水燈,單片機(jī)2(右)控制點(diǎn)陣。 下面是系統(tǒng)連線圖:圖21 系統(tǒng)電路連線圖2.2實(shí)物照片具體

10、的實(shí)物照片如下圖實(shí)物圖一實(shí)物圖二圖23 實(shí)物照片圖三3 合并程序流程圖開(kāi)始心形流水燈一個(gè)接一個(gè)亮起點(diǎn)陣依次顯示 葛靜寶寶生日快樂(lè)心形流水燈一個(gè)間隔一個(gè)亮起點(diǎn)陣流動(dòng)顯示生日快心形流水燈全亮然后全滅返回開(kāi)始4 部分程序源代碼點(diǎn)陣單片機(jī)程序/*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar N=7; / N 表示有多少個(gè)漢字, 如要加多個(gè)字,只需改動(dòng)N的值即可sbit DS=P10; /74HC595串行數(shù)據(jù)sbit STcp=P11; /74HC595并行輸出時(shí)鐘sbit SHcp=

11、P12; /74HC595串行時(shí)鐘sbit CS=P13; /74HC154輸出有效信號(hào)/=P2口作為74HC154的選擇控制數(shù)據(jù)輸入=/=P2口整體控制A0-A4,所以無(wú)需單獨(dú)控制每個(gè)信號(hào)=/sbit A0=P30;/sbit A1=P31;/sbit A2=P32;/sbit A3=P33;/=字模表=/=取模方法:陰碼,逆向,逐行=/=uchar code Hanzi=/*0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,0x70,0x14,0x1C,0x0C,0x13,0x04

12、,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40,/*"我",00x00,0x1F,0xFC,0x09,0x48,0x08,0x90,0x04,0xFC,0x7F,0x44,0x40,0x42,0x00,0xFC,0x3F,0x20,0x00,0xE0,0x0F,0x30,0x04,0xD0,0x02,0x08,0x03,0xC6,0x0C,0x31,0x70,0x0C,0x20,/*"愛(ài)",10x90,0x00,0x90,0x01,0x88,0x20,0xC8,0x7F,0x44,0x20,0x2C,

13、0x12,0x16,0x02,0x45,0x0A,0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,0x04,0x01,0x00,0x00,/*"你",2*/0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40,/*"我",

14、3*/* (16 X 16 , 宋體 )*/0x00,0x1F,0xFC,0x09,0x48,0x08,0x90,0x04,0xFC,0x7F,0x44,0x40,0x42,0x00,0xFC,0x3F,0x20,0x00,0xE0,0x0F,0x30,0x04,0xD0,0x02,0x08,0x03,0xC6,0x0C,0x31,0x70,0x0C,0x20,/*"愛(ài)",4*/* (16 X 16 , 宋體 )*/0x90,0x00,0x90,0x01,0x88,0x20,0xC8,0x7F,0x44,0x20,0x2C,0x12,0x16,0x02,0x45,0x0A,

15、0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,0x04,0x01,0x00,0x00,/*"你",5*/* (16 X 16 , 宋體 )*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,/*"!",6*/一定要

16、在字模后加一個(gè)清屏的字模,否則移動(dòng)顯示時(shí)出現(xiàn)亂麻0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/清屏0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;/=延時(shí)程序=void delay(uint N) uchar i; uint j; for(j=0;j<N;j+) for(i=125;i>0;i-);/=逐行測(cè)試=/=目的:查看有無(wú)壞點(diǎn)=void displ

17、ay_test(uchar N) uchar i,j; for(j=0;j<100;j+) DS=0; /整行顯示 for(i=0;i<16;i+) SHcp=0; SHcp=1; STcp=0; STcp=1; P3=N; CS=0; delay(10); /本程序太長(zhǎng),省去部分,需要完整程序請(qǐng) CS=1; /聯(lián)系QQ154401855(或154401856)下載 /+靜態(tài)顯示+/=+顯示程序=/ N表示傳遞過(guò)來(lái)的第幾個(gè)文字,一個(gè)文字占32個(gè)字節(jié),所以M為32的倍數(shù)/=void display_state(uchar M) uchar i,j,n,cont=0; uchar te

18、mp; for(n=0;n<50;n+) /重復(fù)顯示50次,以便能清楚顯示 for(i=0;i<16;i=i+2) temp=HanziM+i+16; /取一字模數(shù)據(jù)存放于temp,高8位 /進(jìn)行8次轉(zhuǎn)換,使8位并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)for(j=0;j<8;j+)if(temp&0x80) /并行數(shù)據(jù)轉(zhuǎn)為串行數(shù)據(jù),高位在前 DS=1;else DS=0;SHcp=0;SHcp=1; /SHcp上升沿鎖存一位數(shù)據(jù)temp=temp<<1; /左移一位,進(jìn)行下一次轉(zhuǎn)換temp=HanziM+i; /取一字模數(shù)據(jù)存放于temp,低8位 /進(jìn)行8次轉(zhuǎn)換,使8位并行

19、數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)for(j=0;j<8;j+)if(temp&0x80) /并行數(shù)據(jù)轉(zhuǎn)為串行數(shù)據(jù),高位在前 DS=1;else DS=0;SHcp=0;SHcp=1; /SHcp上升沿鎖存一位數(shù)據(jù)temp=temp<<1; /左移一位,進(jìn)行下一次轉(zhuǎn)換STcp=0;STcp=1; /STcp上升沿使8位數(shù)據(jù)并行輸入P3=cont; /cont計(jì)數(shù)器作為74HC154的選擇信號(hào),由P2口輸出CS=0; /74HC154 使能,開(kāi)啟顯示delay(2); /延時(shí)一下,以便有足夠的點(diǎn)亮?xí)r間CS=1; /關(guān)顯示,不關(guān)顯示會(huì)出現(xiàn)花屏現(xiàn)象cont+; /cont計(jì)數(shù)器加一 for

20、(i=1;i<16;i=i+2) temp=HanziM+i+16;for(j=0;j<8;j+)if(temp&0x80) DS=1;else DS=0;SHcp=0;SHcp=1;temp=temp<<1;temp=HanziM+i;for(j=0;j<8;j+)if(temp&0x80) DS=1;else DS=0;SHcp=0;SHcp=1;temp=temp<<1;STcp=0;STcp=1;P3=cont;CS=0;delay(2);CS=1;cont+; for(i=0;i<16;i+) DS=0;SHcp=0;S

21、Hcp=1; /SHcp上升沿鎖存一位數(shù)據(jù) cont=0; CS=1; /+動(dòng)態(tài)顯示文字+void display_move(void) uchar i,j,n,cont=0; uchar temp,hang; for(hang=0;hang<32*N;hang=hang+2) /每次上移一行,即實(shí)現(xiàn)動(dòng)態(tài)移動(dòng)顯示效果 for(n=0;n<10;n+) /程序太長(zhǎng),省略一部分,需要完整程序請(qǐng) /聯(lián)系QQ154401855(或154401856)下載 /=主函數(shù)=void main(void) uchar i; P1=0xFF; P2=0xFF; while(1) /* for(i=0

22、;i<16;i+) /16行點(diǎn)陣測(cè)試 display_test(i); delay(100); */ for(i=0;i<32*N;i=i+32) /靜態(tài)漢字顯示 display_state(i); delay(1000); display_move(); /動(dòng)態(tài)漢字顯示 流水燈陣程序/*/#include<reg51.h>/*8位將流水燈編碼存于單片機(jī)程序存儲(chǔ)中*unsigned char code LED1_shun=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F; /順時(shí)針點(diǎn)亮數(shù)據(jù)unsigned char code LED2_ni=0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE; /逆時(shí)針點(diǎn)亮數(shù)據(jù)unsigned int N=300;void delay(unsigned int n)unsigned int i;unsigned char j;for(i=0;i<n;i+)for(j=100;j>0;j-); /程序?qū)嵲谔L(zhǎng),省略一部分voi

溫馨提示

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