欢迎来到天天文库
浏览记录
ID:51686725
大小:88.00 KB
页数:4页
时间:2020-03-15
《CPLD在LED点阵屏上实现字符滚动.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、CPLD在LED点阵屏上实现字符滚动本实验箱是16*16LED点阵屏,采用共阳极发光二极管,在某一时刻点阵屏只有一列中的指定的发光二极管发光,原理图如下:CPLD提供四个控制信号来为LED点阵屏的某一列提供电源,D6为0时,IC1起作用,根据D4、D5、P163的值来译中L1~L8中的某一列;D6为1时,IC2起作用,根据D4、D5、P163的值来译中L9~L16中的某一列。而行数据是通过两片74LS373来控制的,当P175接高电平1时,IC3起作用,根据输入来显示出某一列的R1~R8行数据;当P176接高电平1时,IC4起作用,根据输入来显示出某一列
2、的R9~R16行数据。(1)顶层模块原理图该原理图包括三个模块:分频模块(fp模块)、存储器模块(rom模块)和滚动控制模块(scancontrol模块),如下图所示:(1)分频模块该模块将50MHz时钟信号分频为1MHz和1Hz两个时钟信号,用于对字符滚动的控制。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfpisport(inclk:instd_logic;clk1Hz,clk1MHz:outstd_logic);endentity;archi
3、tecturearch_fpoffpissignalfp1:std_logic_vector(24downto0);signalfp2:std_logic_vector(4downto0);signalf1,f2:std_logic;beginprocess(inclk)beginif(inclk'eventandinclk='1')theniffp1=24999999thenfp1<="0000000000000000000000000";f1<=notf1;--f1产生1Hz的频率elsefp1<=fp1+1;endif;iffp2=24thenfp
4、2<="00000";f2<=notf2;--f2产生1MHz的频率elsefp2<=fp2+1;endif;endif;endprocess;clk1Hz<=f1;clk1MHz<=f2;endarch_fp;(2)rom模块该模块用于存储要显示的字符的字模信息,字模信息可以从专用的字模提取软件中提取出来。针对本实验箱,需要纵向提取字模信息,每个汉字包括32个字节,然后将字模信息存放于ROM中,这样就得到了一个待显示数据序列。(2)滚动控制模块该模块实现字符由右向左实现滚动显示,且每次滚动一列。它是通过寻址的方式来控制待显示数据序列的释放过程来实现的,
5、其原理示意图为:0123…kk+1k+2k+3…k+29k+30k+31N-1Nidsp_code字符信息定位0123…293031scan_code点阵扫描定位由此可知,某一时刻能在显示序列中定位带显示数据的地址能用下式计算:address=idsp_code+scan_code;LED点阵屏其中,idsp_code的取值范围为0~N,它控制字符显示的滚动速度;scan_code的取值范围为0~31,它与LED点阵屏的列驱动速度相关。因此,控制idsp_code扫遍全部待显示数据的时间,可调节字符信息的滚动速度;改变scan_code的重复扫描周期,可
6、改善在LED点阵屏上显示完整字符信息的稳定性。由显示原理,可以构造出它所对应的硬件实现结构图,如下图:其VHDL语言源代码如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYscancontrolISPORT(clk1Hz,clk1MHz,reset:INSTD_LOGIC;adress:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--ROM中待显示数据的地址scan:OUTST
7、D_LOGIC_VECTOR(3DOWNTO0);--控制译中某一列alen,ale:OUTSTD_LOGIC); --分别控制R1~R8行数据和R9~R16行数据显示ENDscancontrol;ARCHITECTUREoneOFscancontrolISSIGNALidsp_code:STD_LOGIC_VECTOR(7DOWNTO0);--字符信息定位SIGNALscan_code:STD_LOGIC_VECTOR(4DOWNTO0);--点阵扫描定位SIGNALr_scan:STD_LOGIC_VECTOR(3DOWNTO0):="0000"
8、;--暂存scan信息SIGNALr_alen:STD_LOGIC:='1';
此文档下载收益归作者所有