LED显示相关内容Word格式.docx

上传人:b****6 文档编号:19369177 上传时间:2023-01-05 格式:DOCX 页数:16 大小:113.18KB
下载 相关 举报
LED显示相关内容Word格式.docx_第1页
第1页 / 共16页
LED显示相关内容Word格式.docx_第2页
第2页 / 共16页
LED显示相关内容Word格式.docx_第3页
第3页 / 共16页
LED显示相关内容Word格式.docx_第4页
第4页 / 共16页
LED显示相关内容Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

LED显示相关内容Word格式.docx

《LED显示相关内容Word格式.docx》由会员分享,可在线阅读,更多相关《LED显示相关内容Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

LED显示相关内容Word格式.docx

5、培养团队协作精神。

二、应用

应用于展览中心、金融市场、医院、体育场馆、机场、码头、车站、街道、高速公路等公共场所,用于显示信息和宣传广告。

如果丰富其软硬件资源,可以更大程度的开发其潜在价值。

也许可以开发一种新游戏,制作一种定性分析测量系统,或者是发展成一种新型定位仪器……

三、作品

1、硬件

采用74HC164串行输入并行输出的芯片,节省了对单片机端口的占用。

用PORTA对LED的行进行操作,用PORTC的C0和C7分别控制74HC164的AB和Clock。

●AVR单片机是增强型内置FLASH的RISC(ReducedInstructionSetCPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结构,达到一个时钟周期可以执行一条指令,绝大部分指令都为单周期指令。

支持在系统编程ISP。

内置的FLASH程序存储器可擦写1000次以上,给用户的开发生产和维护带来方便。

可擦写10万次的E2PROM,为掉电后数据的保存带来方便。

AVR单片机有丰富的片内资源,如RTC,WATCHDOG,AD转换器,PWM,USART,SPI,TWI接口等,I/O口功能强、驱动能力强。

●LED显示系统主要由3部分构成:

PC上位机图像文字转换与数据发送单元、主控单元以及显示子模块。

上位机完成把图像和文字转换成为显示屏的显示码,并且把显示信息发送到主控单元上。

主控单元选用具有32kB片内FLASHROM,若要增加存储容量,可以选用外挂存储器,或者用其它更高级的单片机。

主控单元主要完成对显示数据的滚动和分割处理,然后通过异步串行口发送到每个子模块中。

用一片ATMEGA8-p.htm"

target="

_blank"

title="

ATMEGA8货源和PDF资料"

>

ATMEGA8完成扫描动态显示。

●74HC164是八位串行输入-并行输出移位寄存器.请参见资料。

电路图如下:

实物图如下:

2、软件

基于iccavr的编写要求,将循环语句加入到led点阵屏的现实当中,实现点阵屏对点阵字的循环显示。

流程图如下:

流程图

程序:

//ICC-AVRapplicationbuilder:

2009-5-30下午02:

13:

03

//Target:

M16

//Crystal:

4.0000Mhz

#include<

iom16v.h>

macros.h>

charjiantou[]={0x7d,0x7d,0x18,0x18,0x18,0x18,0x7d,0x7d,0x00,0x66,0x99,0x99,0x442,0x24,0x18,0x00,0x00,0x66,0x66,0x66,0x66,0x24,0x18,0x00};

voidport_init(void)

{

PORTA=0x00;

DDRA=0xff;

PORTC=0x00;

//m103outputonly

DDRC=0xff;

}

voidinit_devices(void)

//stoperrantinterruptsuntilsetup

CLI();

//disableallinterrupts

port_init();

MCUCR=0x00;

GICR=0x00;

TIMSK=0x00;

//timerinterruptsources

SEI();

//re-enableinterrupts

//allperipheralsarenowinitialized

voidsenddata(charb)

chari;

for(i=0;

i<

8;

i++)

{

PORTC|=(~b<

<

i)&

BIT(7);

PORTC|=BIT(0);

PORTC=0X80;

}

voidchang(void)

chari,j;

j=jiantou[0];

for(i=0;

7;

jiantou[i]=jiantou[i+1];

jiantou[7]=j;

voiddisplay()

inti,j,k;

senddata(jiantou[i]);

PORTA=~(0x01<

1);

for(j=0;

j<

1;

j++)

for(k=0;

k<

1000;

k++);

PORTA=0XFF;

voidmain(void)

intj;

init_devices()

while

(1)

10;

display(jiantou);

chang();

以上是软件的程序,由于硬件上采用的是共阳极的led点阵屏,所以将程序中的port端口的输出值取用相反值,从而实现点阵屏的显示。

说明:

●//ICC-AVRapplicationbuilder:

//Target:

//Crystal:

注释行,分别说明了程序生成者是ICC-AVRapplicationbuilder,生成时间,CPU类型,晶振大小,在本例中晶振大小没有用途,但在实际操作中,晶振大小将影响定时器的设置,PWM波形的输出,串口波特率的设定,总线时序等多方面的问题。

●#include<

#include<

包含特定头文件,iom16v.h和macros.h都在icc程序安装文件夹下一个include的目录中,iom16v.h和你选择的芯片相对应,如果你选择的是atmega16,那个这个文件就是iom16v.h,等等,在这样的文件中定义了对应的芯片的各个硬件地址。

macros.h文件中定义了一些宏命令和一些老的语言写法。

通常每一个程序都要包含这个头文件。

●字符数组

●PORTA=0x00;

定义PA口为0x00,及PA口上的所有管脚输出为低电平,同样道理,如果些微PORTA=0xFF,则都输入高电平,0xFF及二进制的11111111,如果想让某一位输出高,其他为低,如00000001,则是PA0输出为高电平,PA1——PA7输出为低电平。

每个口线与单片机实际引脚的对应关系请参看技术手册。

●voidport_init(void)

●voidinit_devices(void)

●voidsenddata(charb)

●voidchang(void)

●voiddisplay()

●voidmain(void)

●For语句

For(表达式1;

表达式2;

表达式3)

{

语句(内部可为空)

执行过程:

1.求解一次表达式1.

2.求解表达式2,若其值为真(非0即为真),则执行for中语句。

然后执行第3步。

否则结束for语句,直接跳出,不再执行

第3步。

3.求解表达式3.

4.跳到第2步重复执行。

●While语句

While(表达式)

语句(内部也可为空)

特点:

先判断表达式,后执行语句。

原则:

若表达式不是0,即为真,那么执行语句。

否则跳出while语句。

3、测试及分析

(1)测试仪器:

AVRStudio软件、仿真器、开发板

(2)测试与分析

a.测试点阵:

系统上电后,全屏点亮时无暗点,表明点阵正常,可使用。

b.程序调试:

通过AVRStudio下载程序到单片机上,逐步运行程序,并观察相关变量的值的改变,以确定各部分程序是否正常运行并可用,直到检测完毕。

c.实时操作:

运行已通过调试的程序.观察点阵屏幕的变化。

4、项目花费统计

元器件

数量

价格

排线

8条

2元

杜邦线

4条

1元

200欧电阻

8支

0.5元

插针

20支

16脚底座

1个

74HC164

8*8LED点阵屏

3.5元

合计

9元

5、成员分工

硬件、软件主要由孙俊杰负责,陈泉佑、胡庆丽为辅;

论文、PPT、网页、总结主要由陈泉佑、胡庆丽负责,孙俊杰为辅,论文、PPT最终由陈泉佑定稿;

网页、总结最终由胡庆丽定稿;

部分工作请老师和同学协助。

最终分配比例为:

孙俊杰:

34%

陈泉佑:

33%

胡庆丽:

结束语

经过认真的学习,努力的实践,终于完成了作品,虽然比较简单,但是适当丰富软硬件资源,该作品的实用前景还是相当广阔的。

通过此课程设计,我们不仅学习到了很多实用的知识,而且加强了同学间的交流,培养了合作精神。

在制作课程设计作品期间,曾听到某些人问:

“单片机即将过时了,学这些有什么用?

我认为,树上的苹果向下落了几千年,牛顿才发现了万有引力;

我们的单片机和发光二极管发展不过一个世纪,其潜在的价值还没有被充分地挖掘出来。

而且,即使是单片机这种实物载体即将过时,其所运用的原理和所体现出来的人类的探索创新的精神,是永远不会过时的。

参考文献和所用资源

参考书籍:

《Atmega16数据手册》

《74HC164数据手册》

《8×

8LED点阵屏工作原理》

《AVR单片机嵌入式系统原理与应用实践》马潮北京航空航天大学出版社

《C程序设计》谭浩强清华大学出版社

相关网站:

http:

//instruct1.cit.cornell.edu/courses/ee476/FinalProjects/

所用资源:

ICCAVR集成开发环境

AVRStudio软件

AVR开发板及相关元器件

Protel99SE

DreamweaverMX

MicrosoftOffice

感谢老师的辛勤教导,感谢同学的帮助支持,也感谢组员之间的相互理解和信任。

文章中不当之处,还请各位读者指出修正。

谢谢!

补充:

由于我们作品的灵活性强,发展空间大,本组同学在课程设计项目顺利完成之后,又适当丰富了软硬件资源,在程序中添加了键盘扫描部分,实现了通过按键控制8×

8LED点阵屏动态显示不同字符的功能。

鉴于时间有限,来不及再写一篇论文,重新制作网页,所以现在将新程序补充如下,相应的作品和视频材料请查看附件,关于新功能的材料准备的不是很充分,为此给读者带来的不便,我们深表歉意。

2009-5-1119:

36:

34

charixinyou[24]={0x7e,0x7e,0x18,0x18,0x18,0x18,0x7e,0x7e,0x00,0x66,0x99,0x99,0x42,0x24,0x18,0x00,0x00,0x66,0x66,0x66,0x66,0x24,0x18,0x00};

charhello[40]={0x00,0x66,0x66,0x7e,0x7e,0x66,0x66,0x00,0x7e,0x06,0x06,0x7e,0x7e,0x06,0x06,0x7e,0x00,0x06,0x06,0x06,0x06,0x7e,0x7e,0x00,0x00,0x06,0x06,0x06,0x06,0x7e,0x7e,0x00,0x00,0x18,0x24,0x66,0x66,0x24,0x18,0x00};

charseeyou[32]={0x18,0x66,0x06,0x08,0x10,0x60,0x66,0x18,0x7e,0x06,0x06,0x7e,0x7e,0x06,0x06,0x7e,0x7e,0x06,0x06,0x7e,0x7e,0x06,0x06,0x7e,0x00,0x66,0x66,0x66,0x66,0x24,0x18,0x00};

DDRA=0xFF;

PORTB=0x00;

DDRB=0xFF;

DDRC=0x00;

PORTD=0x07;

DDRD=0xF8;

//callthisroutinetoinitializeallperipherals

chari;

PORTB|=(~b<

PORTB|=BIT(0);

PORTB=0x00;

}

voidchange1(void)

j=ixinyou[0];

23;

ixinyou[i]=ixinyou[i+1];

ixinyou[23]=j;

voidchange2(void)

j=hello[0];

39;

hello[i]=hello[i+1];

hello[39]=j;

voidchange3(void)

j=seeyou[0];

31;

seeyou[i]=seeyou[i+1];

seeyou[31]=j;

voiddisplay(char*b)

{senddata(b[i]);

PORTA=(0x01<

i);

delay

(1);

PORTA=0x00;

//延时子程序

voiddelay(intn)

while(n-->

0)

125;

j++);

//是否有键按下子程序

charpressed(void)

if(PIND!

=0x07)return1;

return0;

//键盘扫描子程序

charkeyscan(void)

charkeycode;

if(pressed())delay(20);

keycode=PIND;

while(pressed());

delay(20);

returnkeycode;

charj,code=0;

init_devices();

code=keyscan();

switch(code)

case6:

while(pressed()==0)

{for(j=0;

display(ixinyou);

change1();

break;

case5:

display(hello);

change2();

case3:

display(seeyou);

change3();

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1