心形花样流水灯设计报告Word格式.doc

上传人:wj 文档编号:222561 上传时间:2023-04-28 格式:DOC 页数:18 大小:2.65MB
下载 相关 举报
心形花样流水灯设计报告Word格式.doc_第1页
第1页 / 共18页
心形花样流水灯设计报告Word格式.doc_第2页
第2页 / 共18页
心形花样流水灯设计报告Word格式.doc_第3页
第3页 / 共18页
心形花样流水灯设计报告Word格式.doc_第4页
第4页 / 共18页
心形花样流水灯设计报告Word格式.doc_第5页
第5页 / 共18页
心形花样流水灯设计报告Word格式.doc_第6页
第6页 / 共18页
心形花样流水灯设计报告Word格式.doc_第7页
第7页 / 共18页
心形花样流水灯设计报告Word格式.doc_第8页
第8页 / 共18页
心形花样流水灯设计报告Word格式.doc_第9页
第9页 / 共18页
心形花样流水灯设计报告Word格式.doc_第10页
第10页 / 共18页
心形花样流水灯设计报告Word格式.doc_第11页
第11页 / 共18页
心形花样流水灯设计报告Word格式.doc_第12页
第12页 / 共18页
心形花样流水灯设计报告Word格式.doc_第13页
第13页 / 共18页
心形花样流水灯设计报告Word格式.doc_第14页
第14页 / 共18页
心形花样流水灯设计报告Word格式.doc_第15页
第15页 / 共18页
心形花样流水灯设计报告Word格式.doc_第16页
第16页 / 共18页
心形花样流水灯设计报告Word格式.doc_第17页
第17页 / 共18页
心形花样流水灯设计报告Word格式.doc_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

心形花样流水灯设计报告Word格式.doc

《心形花样流水灯设计报告Word格式.doc》由会员分享,可在线阅读,更多相关《心形花样流水灯设计报告Word格式.doc(18页珍藏版)》请在冰点文库上搜索。

心形花样流水灯设计报告Word格式.doc

此外,AT89S52设计和配置了振荡频率可

为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

引脚图如右图所示。

此次设计把51单片机的4个I/O口与32个5mm高亮LED灯相接,通过单片机控制各I/O引脚的高低电平控制LED的亮灭从而形成各种不同亮灭的花样。

2.点阵显示设计:

(1)8*8点阵原理图:

从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;

因此要实现一根柱形的亮法,如图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

一根竖柱:

对应的列置1,而行则采用扫描的方法来实现。

一根横柱:

对应的行置0,而列则采用扫描的方法来实现。

(2)74HC245:

74HC245是一种三态输出、八路信号收发器,主要应用于大屏显示,以及其它的消费类电子产品中增加驱动

主要特性:

☆采用CMOS工艺

☆宽电压工作范围:

3.0V—5.0V

☆双向三态输出

☆八线双向收发器

☆封装形式:

SOP20、SOP20-2、TSSOP20、DIP20

此次设计采用74HC245来驱动8*8点阵,74HC245一端与51单片机的P0口想连,另一端则与点阵的输入端相连,从而通过单片机控制驱动点阵。

三、硬件设计

心型流水灯的硬件设计如下图:

点阵显示的硬件设计图如下:

本次设计通过74HC245来驱动8*8点阵,74HC245的输入端与51单片机的P0口想连,74HC245的输出端则与点阵的行相连,而点阵的列则与单片机的P3口相连,通过单片机控制、74HC245驱动,从而完成了点阵的显示。

四、软件设计

心形花样流水灯的程序如下:

#include<

reg52.h>

#include<

intrins.h>

#define uintunsignedint

#define ucharunsignedchar

ucharcodetable[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

//逐个点亮0~7

ucharcodetable1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};

//逐个点亮7~0

ucharcodetable2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};

//逐个灭0~7

ucharcodetable3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};

//逐个灭7~0

/***********************************************************/

voiddelay(uintt);

//延时

voidzg(uintt,uchara);

//两边逐个亮

voidqs(uintt,uchara);

//全部闪烁

voidzgxh(uintt,uchara);

//逆时针逐个点亮

voiddjs(uintt,uchara);

//对角闪

voidlbzgm(uintt,uchara);

//两边逐个灭

voidnszgm(uintt,uchara);

//逆时针逐个灭

voidsztl(uintt,uchara);

//顺时逐个同步亮

voidnztl(uintt,uchara);

//逆时逐个同步亮

voidsztm(uintt,uchara);

//顺时逐个同步灭

voidnztm(uintt,uchara);

//逆时逐个同步灭

voidhwzjl(uintt,uchara);

//横往中间亮

voidhwzjm(uintt,uchara);

//横往中间灭

voidnzdl(uintt,uchara);

//逆时逐段亮

voidnzdgl(uintt,uchara);

//逆时逐段一个点亮

voidjgs(uintt,uchara);

//间隔闪

/**********************************************************/

voidzg(uintt,uchara)//两边逐个亮

{

uchari,j;

for(j=0;

j<

a;

j++)

{

P0=P1=P2=P3=0xff;

P0=0x7f;

delay(t);

for(i=0;

i<

7;

i++)

{

P0=table1[i+1];

P2=table1[i];

delay(t);

}

P2=0x00;

P1=0xfe;

P1=table[i+1];

P3=table1[i];

delay(t);

P3=0x00;

}

}

voidqs(uintt,uchara) //全部闪烁

ucharj;

for(j=0;

{

P0=P1=P2=P3=0xff;

delay(t);

P0=P1=P2=P3=0x00;

}

voidzgxh(uintt,uchara)//逆时针逐个点亮

for(j=0;

P0=P1=P2=P3=0xff;

for(i=0;

8;

{

P0=table1[i];

}

for(i=0;

P1=table[i];

P3=table[i];

P2=table[i];

}

voidnszgm(uintt,uchara)//逆时针逐个灭

P0=P1=P2=P3=0x00;

P0=table3[i];

P1=table2[i];

P3=table2[i];

P2=table2[i];

voiddjs(uintt,uchara)//对角闪

P0=P3=0x00;

delay(t);

P1=P2=0x00;

voidlbzgm(uintt,uchara)//两边逐个灭

uchari,j;

for(j=0;

{

P0=P2=0x00;

P3=0x01;

for(i=7;

i>

1;

i--)

P1=table[i-1];

P3=table1[i-2];

P1=0xfe;

P3=0xff;

P1=0xff;

P2=0x01;

P0=table1[i-1];

P2=table1[i-2];

P0=0x7f;

P2=0xff;

P0=0xff;

voidsztl(uintt,uchara)//顺时逐个同步亮

P0=table[i];

P1=P2=P3=table1[i];

voidnztl(uintt,uchara)//逆时逐个同步亮

P1=P2=P3=table[i];

voidsztm(uintt,uchara)//顺时逐个同步灭

P0=table2[i];

P1=P2=P3=table3[i];

voidnztm(uintt,uchara)//逆时逐个同步灭

P1=P2=P3=table2[i];

voidhwzjl(uintt,uchara)//横往中间亮

P0=P2=P1=table1[i];

voidhwzjm(uintt,uchara)//横往中间灭

P0=P2=P1=table3[i];

voidnzdl(uintt,uchara)//逆时逐段亮

P3=0xff;

P2=0xff;

voidnzdgl(uintt,uchara)//逆时逐段一个点亮

uchari,j,k,l;

k=table1[0];

P0=k;

l=table[0];

P1=P2=P3=l;

k=_crol_(k,-1);

P0=k;

l=_crol_(l,1);

P1=P2=P3=l;

voidjgs(uintt,uchara)//间隔闪

P0=0x55;

P1=P2=P3=0xaa;

P0=0xaa;

P1=P2=P3=0x55;

voidmain()

uchari;

while

(1)

zg(100,1);

//两边逐个亮

lbzgm(100,1);

//两边逐个灭

jgs(300,10);

djs(100,20);

////////////////////////////////////////////

P1=P2=P3=0xff;

for(i=0;

3;

P0=0x00;

delay(800);

P0=0xff;

}

for(i=0;

P1=0x00;

P1=0xff;

P3=0x00;

P3=0xff;

P2=0x00;

P2=0xff;

qs(500,3);

/////////////////////////////////////////////

6;

zgxh(50,1);

nszgm(50,1);

djs(100,20);

qs(200,10);

djs(100,50);

5;

sztl(200,1);

//顺时逐个同步亮

nztm(200,1);

nztl(200,1);

sztm(200,1);

//顺时逐个同步灭

djs(300,10);

nzdgl(300,10);

zgxh(100,1);

nszgm(100,1);

nzdl(200,3);

jgs(50,100);

//////////////////////////////////////////////////

nzdgl(50,40);

4;

qs(100,10);

}

djs(1000,10);

10;

hwzjl(200,1);

hwzjm(200,1);

}

zg(300,1);

lbzgm(300,1);

//顺时逐个同步亮

djs(500,20);

djs(100,30);

djs(50,50);

delay(1000);

voiddelay(uintt)

uintx,y;

for(x=t;

x>

0;

x--)

for(y=120;

y>

y--);

点阵显示的程序如下:

RS_CNT EQU 30H

NUM EQU 31H

TCON_T EQU 32H

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0

START:

MOV RS_CNT,#00H

MOV NUM,#00H

MOV TCON_T,#00H

MOV TMOD,#01H

MOV TH0,#(65536-5000)/256

MOV TL0,#(65536-5000)MOD256

MOV IE,#82H

SETB TR0

SJMP $

INT_T0:

MOV DPTR,#TABLE

MOV A,RS_CNT

MOVC A,@A+DPTR

MOV P3,A

MOV DPTR,#TABLE1

MOV A,NUM

MOV B,#8

MUL AB

ADD A,RS_CNT

CPL A

MOV P0,A

INC RS_CNT

CJNE A,#8,NEXT

NEXT:

INC TCON_T

MOV A,TCON_T

CJNE A,#200,RETUNE

INC NUM

CJNE A,#7,RETUNE

MOV NUM,#00H

RETUNE:

RETI

TABLE:

DB 080H,040H,020H,010H,008H,004H,002H,001H

TABLE1:

DB 00H,00H,42H,42H,7EH,42H,42H,00H

DB 30H,48H,44H,22H,44H,48H,30H,00H

DB 00H,00H,7EH,02H,02H,7EH,00H,00H

DB 00H,10H,10H,10H,10H,10H,10H,00H

DB 02H,2AH,2AH,7EH,2AH,6AH,22H,10H

DB 00H,22H,7AH,2AH,7AH,22H,7EH,20H

END

五、系统测试

点阵的测试图:

心形花样流水灯测试图:

两边逐个点亮花型逆时针熄灭花型

顺时针逐个熄灭的花型顺时针逐个点亮的花型

对角逐个闪花型竖向中间灭花型

六、总结与体会

在本次设计中出现了很多问题:

第一次焊接好之后,接通电源,没有任何反应。

经仔细检查之后没有发现什么错误,也向老师和许多同学请教过,结果还是没一点反应,于是第一次的焊接宣告失败,无奈只好在从新开始焊。

第二次焊接的时候吸取了第一次的一些经验与教训,给每个I/O口都加上了200欧的电阻,并不断的纠正了自己的焊接方法,一步一步的,经过一下午的努力终于焊接好了,接通电源,一切正常工作,真是黄土不负有心人。

通过这学期单片机的学习我学到了不少东西,学会了有的东西需要自己通过自己的努力来解决。

这次单片机作品的制作学会了焊接的初步技术,以及

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2