LED点阵.docx
- 文档编号:12992613
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:28
- 大小:139.93KB
LED点阵.docx
《LED点阵.docx》由会员分享,可在线阅读,更多相关《LED点阵.docx(28页珍藏版)》请在冰点文库上搜索。
LED点阵
编号:
(智能电子)
实训(论文)说明书
题目:
简易LED显示屏控制
院(系):
专业:
学生姓名:
学号:
指导教师:
2008年01月23日
摘要
随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是RAM应用产品已经走进了千家万户。
LED点阵们的生活带来的诸多方便。
本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。
本设计以数字集成电路技术为基础,ARM技术为核心。
本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。
本系统是用C语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
系统通过点阵显示数据,所以具有人性化的操作和美观的页面效果。
关键词:
ARM;C语言;LED点阵;
Abstract
Withtheelectron,thetechnologypromptnessdevelops,appearsespeciallywiththelarge-scaleintegratedcircuit,giveshumanbeinglifetohavebroughtabouttheultimacychanging.Bethatthemonolithicmachinetechnologyapplicationproducthasalreadywalkedintohugenumbersoffamiliesbytheperson.Lotthatthelifethatelectronperpetualcalendarappearinggivespeoplebringsaboutgoestothelavatory.Systemhardwareoperatingprinciplethemainbodyofabookisdescribedfirst,andattachtheblockdiagramhasgivenexplanationwithsystemstructure,secondlythefunctionandcourseofworkemphasizingeveryhardwareinterfacetechnologyandeachinterfacesmoduleappliedbythesystemhavingintroducedcapital,havesetfortheachproceduremodulesandhaverealizedprocessdetailedly.DesignthatthetechnologyisabasiswithfigureICoriginally,themonolithicmachinetechnologyiscore.
Keywords:
ARM;Clanguage;LED;
目录
引言1
1系统硬件电路的设计2
1.1ARM硬件系统设计原则2
1.2显示电路设计3
1.2.1基本原理3
1.2.2点阵LED扫描3
1.3ARM简介4
1.3.1 ARM芯核4
1.3.2 系统时钟控制器4
1.3.3 内部存储器容量4
1.3.4 USB接口5
1.3.5 GPIO数量5
1.3.6 中断控制器5
1.3.7 扩展总线6
1.3.8 UART和IrDA6
1.3.9DMA控制器6
1.474LS138译码器6
2系统软件设计7
2.1主要程序:
7
3结论9
谢辞10
参考文献11
附录12
引言
本文介绍的基于ARM控制的32*128点阵LED具有以下特点:
用ARM实现32*128点阵显示,具有移动循环选段暂停等功能,该系统稳定可靠,有复位能力。
整个系统包括硬件和软件两部分,硬件包括数字混合部分和ARM控制部分。
这个学期开设了ARM和嵌入式技术这门课,这让我们有机会深入学习和了解这一重要的应用科学技术。
这是一门实践性很强的技术基础课,在学习中不仅要掌握ARM的特点和嵌入式芯片的工作原理,更重要的是学会灵活应用,培养自己分析问题和解决问题的能力,在学习这门课时应该循序渐进,深入浅出。
因此,要通过实验才能更加深入地掌握这门课程的基本内容,熟悉它们的工作原理、功能和使用方法,从而有效地培养我们理论联系实际和解决实际问题的能力,树立严谨的工作作风。
我希望通过这次实训,能够更加深刻地理解课堂所学的理论知识。
1系统硬件电路的设计
1.1ARM硬件系统设计原则
本次我们采用一种是用以嵌入式小系统为核心的控制方案。
利用ARM灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的LED显示功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
通过比较以上两种方案,利用嵌入式小系统的方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
根据方案的选择,系统ARM、74LS138译码器、74LS595等电路组成。
原理图及其各功能模块如下
1.2显示电路设计
LED发光器件一般常用的有2类:
数码管和点阵。
a点阵常用的为8*8。
b点阵都是单管芯,分(行)共阴和(行)共阳,一般都用5v供电
1.2.1基本原理
基本的设计思路是把整个显示屏分成若干相同大小、相同功能的显示模块,而另外用一个中央控制模块控制,同步所有显示模块的运行,实现整体协调的显示。
所以本系统主要由两部分组成:
显示模块和控制模块。
显示模块实际都是相同大小的小LED驱动板,能够驱动LED阵列,具有基本的显示功能,并可以接收来自控制模块的数据和命令,此外一些常用的显示效果如闪烁、滚动等也包括在显示模块中。
考虑到软件编写的方便和硬件的能力,我们把显示模块作为点阵大小。
控制模块负责控制各显示模块,向各显示模块发送数据和命令。
控制模块储存要显示的点阵数据信息,定时向各显示模块下传。
显示电路采用32*128LED显示。
多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路。
我们ARM的一个并行I/O口实现多个LED显示的,其中,74LS138是3线-8线译码器,LED采用共阴极数码管。
1.2.2点阵LED扫描
点阵LED一般采用扫描式显示,实际运用分为三种方式:
(1)点扫描;
(2)行扫描;
(3)列扫描。
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
上图为8×8点阵LED外观及引脚图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
1.3ARM简介
随着国内嵌入式应用领域的发展,ARM芯片必然会获得广泛的重视和应用。
但是,由于ARM芯片有多达十几种的芯核结构,70多家芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难。
所以,对ARM芯片做一对比研究是十分必要的。
1.3.1 ARM芯核
如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(memory management unit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都带有MMU功能。
而ARM7TDMI没有MMU,不支持Windows CE和大部分的Linux, 但目前有uCLinux等少数几种Linux不需要MMU的支持。
1.3.2 系统时钟控制器
系统时钟决定了ARM芯片的处理速度。
ARM7的处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHz,ARM9的处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟为100MHz-233MHz, ARM10最高可以达到700MHz。
不同芯片对时钟的处理不同,有的芯片只有一个主时钟频率,这样的芯片可能不能同时顾及UART和音频时钟的准确性,如Cirrus Logic的EP7312等;有的芯片内部时钟控制器可以分别为CPU核和USB、UART、DSP、音频等功能部件提供不同频率的时钟,如PHILIPS公司的SAA7550等芯片。
1.3.3 内部存储器容量
在不需要大容量存储器时,可以考虑选用有内置存储器的ARM芯片。
见表1。
表1 内置存储器的ARM芯片
芯片型号 供应商 FLASH容量 ROM容量 SRAM容量
AT91F40162 ATMEL 2M Bytes 256K bytes 4K Bytes
AT91FR4081 ATMEL 1M Bytes 128K Bytes
SAA7750 Philips 384K Bytes 64K bytes
PUC3030A Micronas 256K Bytes 56K bytes
HMS30C7202 Hynix 192K Bytes
ML67Q4001 OKI 256K Bytes
LC67F500 Snayo 640K Bytes 32K
1.3.4 USB接口
许多ARM芯片内置有USB控制器,有些芯片甚至同时有USB Host和USB Slave控制器。
见表2。
表2 内置USB控制器的ARM芯片
芯片型号 ARM内核 供应商 USB Slave USB Host IIS接口
S3C2410 ARM920T Samsung 1 2 1
S3C2400 ARM920T Samsung 1 2 1
S5N8946 ARM7TDMI samsung 1 0 0
L7205 ARM720T Linkup 1 1 0
L7210 ARM720T Linkup 1 1 0
EP9312 ARM920T Cirrus Logic 0 3 1
Dragonball MX1 ARM920T Motorola 1 0 1
SAA7750 ARM720T Philips 1 0 1
TMS320DSC2x ARM7TDMI TI 1 0 0
PUC3030A ARM7TDMI Micronas 1 0 5
AAEC-2000 ARM920T Agilent 1 0 0
ML67100 ARM7TDMI OKI 1 0 0
ML7051LA ARM7TDMI OKI 1 0 0
SA-1100 StrongARM Intel 1 0 0
LH79531 ARM7TDMI Sharp 1 0 0
GMS320C7201 ARM720T Hynix 1 0 1
1.3.5 GPIO数量
在某些芯片供应商提供的说明书中,往往申明的是最大可能的GPIO数量,但是有许多引脚是和地址线、数据线、串口线等引脚复用的。
这样在系统设计时需要计算实际可以使用的GPIO数量。
1.3.6 中断控制器
ARM内核只提供快速中断(FIQ)和标准中断(IRQ)两个中断向量。
但各个半导体厂家在设计芯片时加入了自己不同的中断控制器,以便支持诸如串行口、外部中断、时钟中断等硬件中断。
外部中断控制是选择芯片必须考虑的重要因素,合理的外部中断设计可以很大程度的减少任务调度的工作量。
例如PHILIPS公司的SAA7750,所有GPIO都可以设置成FIQ或IRQ,并且可以选择上升沿、下降沿、高电平、低电平四种中断方式。
这使得红外线遥控接收、指轮盘和键盘等任务都可以作为背景程序运行。
而Cirrus Logic公司的EP7312芯片,只有4个外部中断源,并且每个中断源都只能是低电平或者高电平中断,这样在用于接收红外线信号的场合时,就必须用查询方式,会浪费大量的CPU时间。
1.3.7 扩展总线
大部分ARM芯片具有外部SDRAM和SRAM扩展接口,不同的ARM芯片可以扩展的芯片数量即片选线数量不同,外部数据总线有8位、16位或32位。
某些特殊应用的ARM芯片如德国Micronas的PUC3030A没有外部扩展功能。
1.3.8 UART和IrDA
几乎所有的ARM芯片都具有1~2个UART接口,可以用于和PC机通讯或用Angel 进行调试。
一般的ARM芯片通讯波特率为115,200bps,少数专为蓝牙技术应用设计的ARM芯片的UART通讯波特率可以达到920Kbps,如Linkup 公司的L7205。
1.3.9DMA控制器
有些ARM芯片内部集成有DMA(Direct Memory Access)可以和硬盘等外部设备高速交换数据,同时减少数据交换时对CPU资源的占用。
另外,还可以选择的内部功能部件有:
HDLC, SDLC,CD-ROM Decoder,Ethernet MAC,VGA controller, DC-DC。
可以选择的内置接口有:
IIC,SPDIF,CAN,SPI,PCI,PCMCIA。
最后需说明的是封装问题。
ARM芯片现在主要的封装有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封装具有芯片面积小的特点,可以减少PCB板的面积,但是需要专用的焊接设备,无法手工焊接。
另外一般BGA封装的ARM芯片无法用双面板完成PCB布线,需要多层PCB板布线。
1.474LS138译码器
把所使用的每一种二进制代码状态都赋于特定的含义,表示一个特定的信号或对象,叫编码。
如用四位二进制数的0000~1001这十种状太,分别表示0~9这十个十进制数码,称为8421编码。
反过来把代码的特定含义翻译出来,称为译码。
计算机在处理各种文字符号或数码时,必须把这些信息进行二进制编码,在编码时所使用的第一种二进制代码状态都赋予了特定的含义,即表示一个确定的信号或者对象,实现这种功能的电路叫编码器,如用于键盘的BCD码,ASCII码编码器等。
译码器的工作原理把代码的含义‘翻译’成相应的输出信号,以表示其原意。
其功能恰恰与编码器相反。
译码器可以将输入代码的状态翻译成相应的输出信号,以高、低电平的形式在各自的输出端口送出,以表示其意愿。
译码器有多个输入端和多个输出端。
假如输入的端个数为,每个输出端只能有两个状态,则输出端个数最多有2n个。
常用译码器输入、输出端头数来称呼译码器。
我们用到的74LS138就是一个三线-八线译码器。
74138有三个输入端:
A0、A1、A2和八个输出端Q0~Q7。
当输入端A0、A1、A2的编码为000时,译码器输出为Q0=0,而Q1~Q7=1。
即Q0对应于A0、A1、A2为000状态,低电平有效。
S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。
只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入端输入为何值,每个输出端均为1。
2系统软件设计
2.1主要程序:
voidsend_data(unsignedchard1,d2)
{
unsignedcharl;
for(l=0;l<8;l++)
{
if(d1&0x80)IOSET0|=(1<<6);//上半屏数据
elseIOCLR0|=(1<<6);
d1<<=1;
if(d2&0x80)IOSET1|=(1<<31);//下半屏数据
elseIOCLR1|=(1<<31);
d2<<=1;
IOSET0|=(1<<4);//74HC595移位脉冲
IOSET0|=(1<<4);
IOCLR0|=(1<<4);
IOCLR0|=(1<<4);
}
}
//******************************************************************
//行选函数
//******************************************************************
voidselect_hang(unsignedcharH)
{
IOSET0|=(1<<20);//174HC138输出禁止
delay(100);//延时消隐
IOSET0|=(1<<25);//锁存输出
IOCLR0|=(1<<25);
IOCLR1|=(0X0F<<26);//行选
IOSET1|=(H<<26);
IOCLR0|=(1<<20);//使能74HC138译码输出
}
voidfull_display()
{
unsignedcharhang,lie;
for(hang=0;hang<16;hang++)
{
for(lie=0;lie<8;lie++)//发送整行数据
send_data(~TAB[hang][lie],~TAB1[hang][lie]);
select_hang(hang);//行选显示
}
}
3结论
次此设计不但复习巩固了三年多来所学习的专业知识,而且让我门更进一步掌握我们的所学知识。
这次是我我比较好的完成软件和硬件结合的电子作品。
此过程对我们的动手能力又有进一步的提高,也加强了我的团队合作的精神。
所以次此设计将对我们以后的工作起到不可磨灭的作用。
此次设计还让我明白了,做什么事情都要认真仔细,来不得半点马虎。
同时也复习了ARM和嵌入式技术的理论知识,要正确使用LPC2132小系统,必须建立在充分了解它的特点和功能的基础上。
在本次实训中,通过使用嵌入式最小系统来完成相应的密码锁功能,使我更加充分地掌握了ARM和嵌入式芯片的各种性能、特点、使用条件和调试方法,复习了课堂上相关的理论知识,做到理论和实际结合。
最后我认为次此的设计做的是很成功的,成品做出来了,并且达到了预期的结果。
谢辞
在这次课程设计中,同学之间互相帮助,有什么不懂的大家在一起商量,发现我们所学的知识实在是有限,不过我们能够充分利用网络的优势去查阅资料。
在整个设计过程中懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。
虽然这个设计做的不是很完善,但是在设计过程中所学到的东西是这次实训的最大收获和财富,使我终身受益。
本次实训的顺利完成,除开个人的努力之外,我还得到了很多人的帮助,他们不仅给我提供宝贵的建议,而且提出了一些有建设性的想法,这些对于我们完善整个实验起到了重要的作用。
在实训中,我感受到了老师对学生的那种悔人不卷的精神,每天的固定时间,老师都来给我们指导,以致于我们能够完成实习任务。
正是他们利用自己的经验,帮助我们解决了不少问题,而且在平时的实验课他们也给予我指导,使我少走了弯路,避免做无用功,他们的帮助对本次实训的顺利完成起了关键的作用。
请允许我向你们致意崇高的敬意,感谢你们!
参考文献
[1]康华光.电子技术基础(第四版)[M].北京:
高等教育出版社,1998
[2]梁宗善.新型集成块应用[M].武汉:
华中理工大出版社,2004
[3]田泽.嵌入式系统开发与应用.北京航空航天大学出版社,2005年
[4]田泽.嵌入式系统开发与应用实验教程(第2版).北京航空航天大学出版社,2005年
[5]孙红波.ARM与嵌入式技术.电子工业出版社,2007
[6]周立功等.深入浅出ARM7——LPC213x/214x.北京航空航天大学出版社,2006年
附录
正确使用电烙铁
1、选用合适的焊锡,应选用焊接电子元件用的低熔点焊锡丝。
2、助焊剂,用25%的松香溶解在75%的酒精(重量比)中作为助焊剂。
3、电烙铁使用前要上锡,具体方法是:
将电烙铁烧热,待刚刚能熔化焊锡时,涂上助焊剂,再用焊锡均匀地涂在烙铁头上,使烙铁头均匀的吃上一层锡。
4、焊接方法,把焊盘和元件的引脚用细砂纸打磨干净,涂上助焊剂。
用烙铁头沾取适量焊锡,接触焊点,待焊点上的焊锡全部熔化并浸没元件引线头后,电烙铁头沿着元器件的引脚轻轻往上一提离开焊点。
5、焊接时间不宜过长,否则容易烫坏元件,必要时可用镊子夹住管脚帮助散热。
6、焊点应呈正弦波峰形状,表面应光亮圆滑,无锡刺,锡量适中。
7、焊接完成后,要用酒精把线路板上残余的助焊剂清洗干净,以防炭化后的助焊剂影响电路正常工作。
8、集成电路应最后焊接,电烙铁要可靠接地,或断电后利用余热焊接。
或者使用集成电路专用插座,焊好插座后再把集成电路插上去。
9、电烙铁应放在烙铁架上。
PCB
程序
#include
//************************************************************************
//函数声明
//************************************************************************
voidLPC_ARMCoreCFG_Init(void);//ARM内核初始化
voidfull_display();//全屏显示函数
voidLPCARM_SPI0CFG_Init(void);//SPI初始化函数
voidLPCARM_SPI0Send(unsignedcharchr);//SPI接口发送子函数
voiddelay(unsignedlongt);//参数化延时子函数
voidsend_dat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 点阵