LED点阵书写显示屏913II.docx

上传人:b****1 文档编号:2343702 上传时间:2023-05-03 格式:DOCX 页数:43 大小:694.76KB
下载 相关 举报
LED点阵书写显示屏913II.docx_第1页
第1页 / 共43页
LED点阵书写显示屏913II.docx_第2页
第2页 / 共43页
LED点阵书写显示屏913II.docx_第3页
第3页 / 共43页
LED点阵书写显示屏913II.docx_第4页
第4页 / 共43页
LED点阵书写显示屏913II.docx_第5页
第5页 / 共43页
LED点阵书写显示屏913II.docx_第6页
第6页 / 共43页
LED点阵书写显示屏913II.docx_第7页
第7页 / 共43页
LED点阵书写显示屏913II.docx_第8页
第8页 / 共43页
LED点阵书写显示屏913II.docx_第9页
第9页 / 共43页
LED点阵书写显示屏913II.docx_第10页
第10页 / 共43页
LED点阵书写显示屏913II.docx_第11页
第11页 / 共43页
LED点阵书写显示屏913II.docx_第12页
第12页 / 共43页
LED点阵书写显示屏913II.docx_第13页
第13页 / 共43页
LED点阵书写显示屏913II.docx_第14页
第14页 / 共43页
LED点阵书写显示屏913II.docx_第15页
第15页 / 共43页
LED点阵书写显示屏913II.docx_第16页
第16页 / 共43页
LED点阵书写显示屏913II.docx_第17页
第17页 / 共43页
LED点阵书写显示屏913II.docx_第18页
第18页 / 共43页
LED点阵书写显示屏913II.docx_第19页
第19页 / 共43页
LED点阵书写显示屏913II.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

LED点阵书写显示屏913II.docx

《LED点阵书写显示屏913II.docx》由会员分享,可在线阅读,更多相关《LED点阵书写显示屏913II.docx(43页珍藏版)》请在冰点文库上搜索。

LED点阵书写显示屏913II.docx

LED点阵书写显示屏913II

LED点阵书写显示屏

摘要

本设计运用了基于NiosII嵌入式处理器的SOPC技术。

系统以ALTERA公司的CycloneII系列FPGA为数字平台,将微处理器、Avalon总线、LED点阵扫描控制器、存储器和人机接口控制器等硬件设备集中在一片FPGA上,利用片内硬件来实现LED点阵的带地址扫描,降低系统总功耗和简化CPU编程的同时,提高了系统的精确度、稳定性和抗干扰性能。

关键词:

SOPCFPGA带地址扫描

Abstract

ThisdesignusingtheNiosIIbasedonembeddedprocessorSOPCtechnology.ALTERAsystemtothecompanyfortheCycloneIIFPGAdigitalplatform、series、Willmicroprocessor、AvalonbusofLEDdotmatrixscanningcontroller、memoryandhuman-computerinterfacecontrollerhardwaredevicefocusedonsuchaFPGA,UsingthepieceofhardwaretoachieveinsideofLEDdotmatrixwithaddressscanning,reducethetotalpoweroftheprogrammingandsimplifytheCPU,improvetheprecisionandstabilityofthesystemandtheanti-jammingperformance.

 

Keyword:

SOPCFPGAAddressscanning

 

目录

1引言..................................................................3

2系统方案..............................................................3

2.1主控器选择方案论证...................................................3

2.2点阵驱动方案论证.....................................................3

3理论分析与计算.......................................................4

3.1光笔选取与参数设计..................................................5

3.2LED点阵屏驱动参数设计..............................................5

3.3屏亮自动调节设计....................................................6

3.4超时关显示节电设计..................................................6

4系统电路设计.........................................................7

4.1系统工作原理........................................................7

4.2系统工作时序........................................................7

5系统程序设计.........................................................8

5.1系统流程概述........................................................8

5.2系统总流程图........................................................8

6系统测试与结果.......................................................9

7结论..................................................................9

参考文献...............................................................10

附录:

...................................................................10

附1:

电路原理图.........................................................10

附2:

扫描电路硬件描述...................................................11

附2:

软核NIOSII程序...................................................17

附4:

完整的测试结果.....................................................47

 

1引言

LED点阵显示屏被用到很多领域,随着电子技术的发展,LED点阵书写显示屏的广泛应用是一种趋势。

传统的LED点阵显示是由微处理器实现的,但是以FPGA做控制器将成为发展趋势。

FPGA的结构灵活,其逻辑单元、可编程内部连线和I/O单元都可以由用户编程,可以实现复杂逻辑功能,满足各种设计需求。

其速度快,功耗低,通用性强,特别适用于大型系统的设计。

使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行的不同时刻,按需要改变电路的功能,使系统具备多种空间相关或时间相关的任务)及硬件软化、软件硬化等功能。

用FPGA做为控制器对本系统进行设计,利用它灵活丰富的I/0资源简化了电路,降低了系统的成本。

本作品用FPGA做为控制器,来实现LED点阵书写显示屏的功能。

2系统方案

2.1主控器选择方案论证

方案一:

以ARM为系统控制器

采用32位RISC微处理器ARM实现点阵屏的控制和编码功能,基本上能完成题目的要求,但是ARM不适合多线程操作,如果应用在系统中会使电路和软件设计变得复杂。

方案二:

用FPGA作为系统控制器

FPGA可以直接用硬件扫描、编码、解码、纠错,速度快、稳定性高、扩展性能好、体积小,可以提供丰富的逻辑单元和I/O资源。

用SOPC工具可以快速生成片上软核处理器,将所有的控制单元集成在一片FPGA芯片内,降低了额外的功耗开支。

采用并行的输入/输出方式,可以达到很快的速度。

这样合理的分配了FPGA资源,具有很强的实时性和准确性。

可以实现各种灵活控制。

综合考虑,最后采用方案二。

2.2点阵驱动方案论证

方案一:

串行方式显示

这种显示方式由译码器单元74HC138、数据移位寄存器74HC595和列驱动器组成,点阵显示屏可以用少量I/O口接收控制器传输下来的大量数据,此方案为点阵显示屏系统中比较常用的,所用器件也比较常用,容易买到。

但是它存在一个致命的缺点,就是刷新速度不够快,高速度的地址编码信息无法发送。

方案二:

并行方式显示

可以通过锁存器芯片来增强FPGA的I/O口的驱动能力,将32位宽的数据同时输入到LED点阵列中,达到并行控制LED点阵的目的。

方案中运用4片锁存器74HC573来组成双缓冲寄存器,驱动LED点阵行线,用5片3-8译码器74HC138组合成5-32译码器对LED点阵的32列进行选取。

这样就避免了各行数据显示不同步的问题。

由于并行数据传输速度非常快,所以高速度的地址编码信息可以同步发出。

综上所述,本设计最终选择了第二个方案。

 

3理论分析与计算

3.1光笔选取和参数设计

光笔用光电三极管3DU33(3DU33三极管有个普遍识别管腿的方法,发射极位置会有一块突出的头。

)做为的感光元件,LM393为比较器。

由于点阵的光强相对较弱,通过光电三极管的电流很小,通过串接硅二极管来提升光电三极管发射极电压,方便后级比较器作业。

光笔原理图如下图:

LM393内部结构图图1光笔原理图

 

3.2LED点阵屏驱动设计

本电路采用74HC573做电平转换及行驱动,8550三极管做列驱动,用5片74HC138扩展成5-32译码器对列选信号进行译码,显示亮度和器件参数均可达到系统要求的功能设计。

系统原理图如下:

 

省略4行

……………………………

……

……

……

……

……

图2LED点阵驱动原理图

 

3.3屏亮自动调节设计

利用片外A/D转换芯片将当前光强转换成数字信号,将传统的PWM调光技术稍加修改,变换成带编码的PWM调光方式,根据显示的内容进行屏亮的自动调节。

设计的框图如下:

 

图3点阵屏亮度自动调节图

3.4超时关显示节电设计

基于定时器的数字电路,给定一个时间,当光笔检测到光信号,定时电路自动复位,否则定时电路到给定的时间后数字信号溢出,把溢出信号传送给核心模块,通过功耗管理模块,把系统其余部分模块的时钟切断以达到节电的目的。

系统的节电框图如下:

 

图4超时待机框图

 

4系统电路设计

4.1系统工作原理

以NIOSII软核为主控,系统包括LED扫描为主的多功能模块、按键管理模块、LCD控制等,通过键盘扫描来确定工作模式以实现点亮、划亮、擦除、区域拖拽等功能,用外围电路的反相功能能实现点阵显示屏的反显,功耗管理模块对各模块时钟的控制可以实现节电的功能。

光笔输入

反显

点阵数据

显示缓存

RAM

按键

管理

点阵列选

驱动芯片片选控制

A/D调光调理

NIOSII

32位软核

微处理器

功耗管理模块

LCD

控制器

图5系统工作原理框图

4.2系统工作时序

D10~D6送出Y轴坐标的原码,D5为原码的奇校验,D4~D0为原码的反码校检。

经过双层编码校验,有效防止了周边点阵对数据的干扰。

降低了CPU数据处理的难度,只有确定有效的数据才会通过中断被CPU读入内部进行处理。

X轴坐标值则为当前所选列的地址。

系统工作时序图如下:

 

5系统程序设计

5.1系统流程概述

本系统是以软核NIOSII为主控,编程采用模块死循环的方式:

按任意模式设置键将会复位CPU,CPU重新启动后将根据复位标志进入相应的管理模式,从而实现点亮、划亮、擦除、拖移等功能,这种编程模式在降低编程难度的同时增强了系统的可靠性。

5.2系统总流程图

 

图6系统程序设计流程图

 

6系统测试与结果

6.1划亮反显擦除拖移的测试和结果

各模块均调通,将调好的模块连在一起,加上5v电压源,启动进行系统初始化。

按键进入点亮模式,用光电笔在LED点阵书写显示屏上接触,可以看到接触的点点亮,LCD上显示亮点的精确坐标。

用光笔快速的在书写显示屏上划过,发现划过的地方变亮,多次操作都能实现。

再次按键,进入反显模式,光笔划过,发现经过的地方没有亮其他的部分高亮,反显测试正常。

再次按键进入擦除模式,用光笔在屏幕上划过,显示屏亮的地方变暗了。

再按一次键可以看到整屏由亮变暗,实现了擦除这一功能。

最后进入多字连写模式和区域拖动模式用光笔在LED点阵显示屏上写四个字,最后在屏上循环显示。

最后对写的字用笔圈起来可以用笔移动。

实现了对象拖移功能。

经过反复的测试,所有的功能都能很好的实现,系统正常。

6.2屏亮自动调节测试和结果

外部光环境人为地改变后,测试LED点阵书写显示屏的亮度是否发生变化如果发生变化,则表明能够自动调节,结果屏亮随外部环境的变化而改变,系统正常。

6.3超时关显示节电测试和结果

加5v电压启动系统,对系统初始化。

设定待机关显示的时间,在测试点接入万用表,不进行任何操作到设定的时间,看显示屏是否自动关闭。

结果书写显示屏自动关闭,电路板测试点上的电流小于5mA。

表明测试正常,完成系统要求。

7结论

本作品完成了题目的基本要求和发挥部分的全部要求,系统性能良好。

通过对作品的各项进行了优化,使系统的性能有了提高。

FPGA的运用提高了强大的数据处理能力和较高的运行速度,并且使电路简单。

同时也提高了系统的集成度和可靠性。

参考文献

《模拟电子线路基础》,吴运昌著,广州:

华南理工大学出版社,2004年;

《数字电子技术基础》,阎石著,北京:

高等教育出版社,1997年;

《FPAG系统设计与实践》,黄智伟著,北京:

电子工业出版社,2004年;

《EDA技术与应用(第2版)》,江国强著,北京:

电子工业出版社,2007年;

《电子系统设计》,李金平、沈明山、姜余祥著,北京:

电子工业出版社,2007年;

附录

附1:

FPGA内部构架图

 

 

附2扫描电路硬件描述

modulesaomiao(ram_data,ram_address,

saomiao_clk,saomiao_en_n,

leds_data32,leds_select,

pen_in,

pen_zuobiao_x,pen_zuobiao_y,pen_ok

pen_du_shunjian,liangdu);

//reg[7:

0]liangdu;

input[7:

0]liangdu;

output[3:

0]pen_du_shunjian;

reg[3:

0]pen_du_shunjian;

//line91

input[31:

0]ram_data;

output[4:

0]ram_address;

inputsaomiao_clk,saomiao_en_n;

output[31:

0]leds_data32;

output[4:

0]leds_select;

inputpen_in;

output[4:

0]pen_zuobiao_x;

output[4:

0]pen_zuobiao_y;

outputpen_ok;//兩次數據相同,座標值有效,輸出中斷

regram_clock;

reg[31:

0]leds_data32;

reg[4:

0]leds_select;

reg[4:

0]pen_zuobiao_x;

reg[4:

0]pen_zuobiao_y;

regpen_ok;

reg[4:

0]ram_address;

reg[11:

0]all_shixu;//d'2047.

//hang+xiao.//6bits

//\5..1\0.

reg[5:

0]pen_serial;

reg[5:

0]pen_serial_backup;

reg[4:

0]pen_serial_fan;

always@(negedgesaomiao_clk)

begin

if(!

saomiao_en_n)

begin

leds_select<=5'b11111;

all_shixu=9'd0;

leds_data32<=32'h00000000;

pen_zuobiao_x<=5'b00001;

pen_zuobiao_y<=5'b00010;

pen_du_shunjian<=0;//////////////////////////////////////

end

else

begin

all_shixu<=all_shixu+1;

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

//liangdu='hff;

if(all_shixu==(12'd2000+(liangdu*5-1281)))leds_data32<=32'h00000000;//liangdu

if(all_shixu==12'd2000)all_shixu<=12'd0;

//---------------------------------------------------

case(all_shixu)

12'd0:

leds_data32<=32'h00000000;

12'd1:

begin

leds_select<=leds_select+1;

end

//

12'd2:

leds_data32<=32'hffff0000;

12'd52:

pen_serial[5]<=pen_in;//bigwei

12'd53:

leds_data32<=32'hff00ff00;

12'd103:

pen_serial[4]<=pen_in;//3

12'd104:

leds_data32<=32'hf0f0f0f0;

12'd154:

pen_serial[3]<=pen_in;//2

12'd155:

leds_data32<=32'hcccccccc;

12'd205:

pen_serial[2]<=pen_in;//1

12'd206:

leds_data32<=32'haaaaaaaa;

12'd256:

pen_serial[1]<=pen_in;//smallwei

//

12'd257:

leds_data32<=32'h69969669;//

12'd307:

pen_serial[0]<=pen_in;

//反碼

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

12'd308:

leds_data32<=32'h0000ffff;

12'd358:

pen_serial_fan[4]<=pen_in;//bigwei

12'd359:

leds_data32<=32'h00ff00ff;

12'd409:

pen_serial_fan[3]<=pen_in;//3

12'd410:

leds_data32<=32'h0f0f0f0f;

12'd460:

pen_serial_fan[2]<=pen_in;//2

12'd461:

leds_data32<=32'h33333333;

12'd511:

pen_serial_fan[1]<=pen_in;//1

12'd512:

leds_data32<=32'h55555555;

12'd562:

pen_serial_fan[0]<=pen_in;//smallwei

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

12'd563:

leds_data32<=ram_data;//xianshi

/*11'd369:

begin

pen_zuobiao_x<=pen_serial[5:

1];

pen_zuobiao_y<=leds_select;

end

*/

12'd564:

if(

(pen_serial[0]!

=(pen_serial[5]+pen_serial[4]+pen_serial[3]+pen_serial[2]+pen_serial[1]))

&&(pen_serial_fan==~pen_serial[5:

1])

begin

if(pen_serial==pen_serial_backup)

begin

pen_zuobiao_x<=pen_serial[5:

1];

pen_zuobiao_y<=leds_select;

pen_ok<=1;

end

pen_serial_backup<=pen_serial;//getnewdata

end

//--

12'd580:

pen_ok<=0;//getnewdata

endcase

//---------------------------------------------------

end

end

Endmodule

附3软核NIOSII程序

#include"sys/alt_stdio.h"

#include"system.h"

#include"altera_avalon_pio_regs.h"

#include"alt_types.h"

#include"lcd12864.h"

volatilealt_u8temp_x_old;

volatilealt_u8temp_y_old;

volatilealt_u8PEN_GET;//markint

volatilealt_u8DiJiGeZi;//第幾個字

volatilealt_u32ram_zi_1[32];

volatilealt_u32ram_zi_2[32];

volatilealt_u32ram_zi_3[32];

volatilealt_u32ram_zi_4[32];

alt_u8disp_dijigezi[]="-";

volatilealt_u8quyu_state;//區域功能

volatilealt_u8start_x_point;

volatilealt_u8start_y_point;

volatilealt_u32ram_back_up[32];

volatilealt_u32ram_shixin_xuanqu[32];

/*volatilealt_u8quyu_state;//區域功能

volatilealt_u8start_x_point;

volatilealt_u8start_y_point;

volatilealt_u32ram_back_up[32];

volatilealt_u32ram_shixin_xuanqu[32];*/

volatilealt_u8start_point_biaozhi;

volatilealt_u8likai_start_point;//是否离开原点

volatilealt_u8huidao_start_point;//是否回到原点

volatilealt_u8shixing_xuanqu;//是否已经实心选区

//

 

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

当前位置:首页 > 工程科技 > 能源化工

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

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