ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:387.72KB ,
资源ID:7152292      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7152292.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(双色点阵显示控制器 北京邮电大学数字电路综合实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

双色点阵显示控制器 北京邮电大学数字电路综合实验报告.docx

1、双色点阵显示控制器 北京邮电大学数字电路综合实验报告数字电路综合实验报告班 级: 姓 名: 班内序号: 学 号: 日 期: 一、实验摘要采用EDA技术的自顶向下的模块化设计方法,借助相关开发软件,例如Qualtus软件,将硬件描述语言VHDL程序固化于具有丰富I/O口、内部逻辑和连线资源的FPGA(现场可编程门阵列)中。该技术具有系统设计效率高、集成度好、保密性强、易于修改、易于实现等优点,成为当今数字系统设计主流技术。此方式所制作的LED点阵控制器,由于是纯硬件行为,具有速度快、可靠性高、抗干扰能力强、开发周期短等显著优点。二、实验任务(1)任务要求双色点阵显示控制器设计实现一个 88 双色

2、点阵显示控制器。基本要求:1、固定红色显示一个汉字或图形,显示亮度4 级可调,用一个btn 按钮实现亮度调节,亮度变化视觉效果要尽量明显。2、用从红到绿 8 级渐变色显示一个固定汉字或图形。3、分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,显示过程中,显示方式用一个btn 按键进行切换。4、显示的图形或汉字要尽量饱满美观。提高要求:1、 滚动显示过程中实现四种显示颜色的自动变换,颜色变化视觉效果要尽量明显。2、 自拟其它功能。(2)EDA点阵显示汉字原理以88的LED点阵为例,88的LED点阵是由64个发光二极管按矩阵形式排列而成,每一行上的发光管有一个公共

3、的阳极(或阴极),每一列上的发光管有一个公共的阴极(或阳极),一般按动态扫描方式显示汉字或图形。由于所用实验板上提供有1 kHz的时钟,本例设计中利用该时钟进行扫描,使每行扫描时间为1 ms,实验结果显示亮度合适。现以行扫描为例简单说明动态扫描显示的原理。工作时先将要扫描行的点阵字模从各列上输出,再让译码器选中(扫描)该行,使本行得以显示,接着再送下一行数据,再使下一行有效,直到8行全被扫描一遍。至此,一幅完整的文字信息就显现出来,然后再反复扫描这8行直至显示新的信息。以下设计采用行扫描方式实现滚动显示。三、任务解析和系统设计(设计思路、总体框图、分块设计、流程图、状态转移图) 设计思路:基本

4、要求:1、固定红色显示一个汉字或图形,显示亮度4 级可调,用一个btn 按钮实现亮度调节,亮度变化视觉效果要尽量明显。 要实现亮度四级可调,选择用四个不同的占空比来控制发红光的发光二极管,当占空比较大时,则在红色发光二极管显示的亮度也就最强。选择红色发光二极管不同的亮度时,即相当于选择四个不同的占空比。当检测到时钟的上升沿时,占空比发生变化。所以还需要再设计一个模值为4的计数器来控制这四个不同的占空比。发光二极管的八行输出是通过一个八计数器来控制的。行总而言之,显示亮度四级可调的固定红色汉字,要设计一个模值为4的计数器的模块,一个模值为8的计数器,一个有四个不同的占空比模块。通过红色发光二极管

5、显示输出。2、 用从红到绿 8 级渐变色显示一个固定汉字或图形。从红到绿八级渐变色,首先八种颜色的变化可以通过上一个功能里设计的模值为8的计数器来控制。然后颜色的变化不同则也是通过8个不同的占空比来实现,发光二极管有两个不同颜色的输出,红色和绿色占空比不一样,混合在在一起则会出现不同的颜色。3、分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,显示过程中,显示方式用一个btn 按键进行切换。单字循环显示是通过检测到每一个移位时钟时,就将每一行按位向左移八位。左右滚动显示是通过行扫描实现左移,是通过每来一个移位时钟,将每一行的字模按位左移一位,扫描时钟到来时送出移

6、位后的新字模,通过8次移位,可将一个汉字移出点阵平面,按类似的道理,也可以将一个汉字经8次移位后移进点阵平面。上下滚动显示则相反的,是通过列扫描实现上移,是通过每来一个移位时钟,将每一行的字模按位上移一位,扫描时钟到来时送出移位后的新字模,通过8次移位,可将一个汉字移出点阵平面。因此,需要模值为8的计数器模块,一个移动的模块。提高要求:1、 滚动显示过程中实现四种显示颜色的自动变换,颜色变化视觉效果要尽量明显。实现跟基本要求的第三个功能实现类似,只是显示四个不同的汉字时,加上四个不同的占空比就可以实现。总体框图(整体模块连接图):四、分块设计(1) 防抖模块:设计原因:只要有按键或是拨码开关,

7、防抖电路就是不可缺少的一个模块。否则,按键信号中的一些毛刺和抖动往往会引起电路不可预知的错误。功能:将带有抖动的信号进行识别和判断,输出持续时间超过0.1s的高电平信号。(2) 计数器4模块设计原因:此次实验要求的第一个功能的四级亮度可调,需要用到一个计数器4来控制四种两度,当检测到计数器4输出的时钟发生变化时,既检测到上升沿时,占空比就要发生变化,从而达到四种不同的亮度。在第三个功能实现里,分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字,三种功能的切换也需要用到计数器4,只需要把计数器4的最后一个状态制0就可。功能:计数器4是把clk的四个周期记做一个count,

8、当检测到count的上升的时钟时,占空比或者状态发生变化,从而达到控制的作用。(3) 计数器8模块设计原因:首先8*8的点阵行和列都有8个输出,需要用计数器8的输出时钟来控制,当检测到计数器8的时钟沿上升时,则输出一行或者列。功能:用来控制点阵8row行输出,还有8colr和colg列的输出。(4) 占空比模块设计原因:第一个功能的亮度四级可调,四种不同的亮度需要通过四种不同的占空比来调节实现。还有第二个功能的8级渐变色,8种颜色的变化,也是通过发光二极管红色和绿色两种颜色的占空比不同来达到混合后的8种不同颜色。最有提高要求里的滚动显示过程中实现四种显示颜色的自动变换,是四个不同的字,红绿颜色

9、有四种不同的占空比实现的。功能:占空比实际上就是正脉冲的持续时间与脉冲总周期的一个比值。占空比越大,高电平持续的时间也就越长,亮度也就越强。(5)分频模块设计原因:由于实验板只能提供25MHz的时钟信号,而电路中只能使用较低频率的时钟:功能:用于将实验板上的25MHz的时钟信号经分频后输出(6)移动模块设计原因:定义滚动控制,一个gundong2的取值范围是0到3,控制的单字的扫描,一次移动8列,计数器8 每检测到一个上升沿即输出一列,到计数器记完它的一个周期8时,点阵也就完整的输出了一个字,此时移动一次为8位。一个gundong1的取值范围是0到31,用来控制行和列的扫描。即计数器8每输出一

10、列,则移动一行或者一列,从而达到单字循环显示、左右滚动显示、上下滚动显示三种显示方式。不过,最后为了方便,把这个模块移进了计数器8的设计模块里。功能:每检测到时钟的上升沿,gundong计数加1,行扫描实现左移,是通过每来一个移位时钟,将每一行按位左移一位,扫描时钟到来时则开始移位。通过8次移位,可将一个汉字移出点阵平面,按类似的道理,也可以将一个汉字经8次移位后移进点阵平面。(7)功能实现模块设计原因和功能:实现四个功能。第一个功能固定红色显示一个汉字或图形,显示亮度4 级可调,通过四种不同的占空比调节亮度,输出仅需要用到红色的发光二极管。用从红到绿 8 级渐变色显示一个固定汉字或图形,通过

11、八种不同的占空比来控制两种颜色的输出,调和出8种不同的颜色。分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,通过行扫描,列扫描检测到计数器8的时钟和移位的位数来控制三种不同的滚动模式。滚动显示过程中实现四种显示颜色的自动变换,只需要将输出颜色的占空比加入到三种不同的滚动模式里面就可以了。五、程序代码防抖模块源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fangdou isport(clk:in std_logic;reset:in std_

12、logic;resetn:out std_logic);end fangdou;architecture a of fangdou issignal resetmp1,resetmp2:std_logic;beginprocess(clk)beginif(clkevent and clk=0) thenresetmp2=resetmp1;resetmp1=reset;end if;end process;resetn=clk and resetmp1 and (not resetmp2);end a;计数器4模块源代码:library ieee;use ieee.std_logic_1164.

13、all;use ieee.std_logic_unsigned.all;entity jishu4 is port( clk:in std_logic; cnt4:out integer range 0 to 7);end jishu4;architecture a of jishu4 isbeginprocess(clk) variable count:integer range 0 to 3; -Count为中间变量,给cnt4赋值beginif(clkevent and clk=1) then if count=3 then count:=0; else count:=count+1;

14、end if;end if;cnt4=count;end process;end a;计数器8模块源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishuqi8 isport ( clk:in std_logic; cnt8:out integer range 0 to 7);end jishuqi8;architecture a of jishuqi8 isbeginprocess(clk) variable count:integer range 0 to 7; -中间

15、变量,Count为中间变量,给cnt8赋值beginif(clkevent and clk=1) then if count=7 then count:=0; else count:=count+1; end if;end if;cnt8=count;end process;end a;占空比模块源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zhankongbi is -亮度四级可调的设置 port( clk:IN STD_LOGIC; pwm1:out std_logic

16、; -Pwm为count计数时钟占空比的控制 pwm2:out std_logic; pwm3:out std_logic; pwm4:out std_logic);end zhankongbi;architecture a of zhankongbi isbeginprocess(clk)variable count:integer range 0 to 49; -下载可用49999beginif clkevent and clk=1 then if count=49 then count:=0; else count:=count+1; end if;end if;if clkevent

17、and clk=1 then if count40 then pwm1=1; else pwm1=0; end if;end if;if clkevent and clk=1 then if count30 then pwm2=1; else pwm2=0; end if;end if;if clkevent and clk=1 then if count20 then pwm3=1; else pwm3=0; end if;end if;if clkevent and clk=1 then if count10 then pwm4=1; else pwm4=0; end if;end if;

18、end process;end a;分频模块源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport( clk:in std_logic; clkout:out std_logic);end fenpin;architecture a of fenpin issignal xinhao:std_logic;beginprocess(clk) variable count:integer range 0 to 9; -仿真可取50hz到100hz,下载时可为2

19、49beginif clkevent and clk=1 then if count=9 then count:=0; xinhao=not xinhao; else count:=count+1; end if;end if;clkout=xinhao;end process;end a; 移动模块源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity gundong is port( clk:in std_logic; gundong1:out integer range 0 t

20、o 31; -水平滚动垂直滚动的扫描 gundong2:out integer range 0 to 3); -单字滚动的扫描end gundong;architecture a of gundong isbeginprocess(clk) variable count1:integer range 0 to 31; variable count2:integer range 0 to 3; beginif(clkevent and clk=1) then if count1=31 then count1:=0; else count1:=count1+1; end if; if count2

21、=3 then count2:=0; else count2:=count2+1; end if;end if;gundong1=count1;gundong2=count2;end process;end a; 功能实现模块源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Translation is port( swt:in std_logic_vector(1 downto 0); cnt4:in integer range 0 to 3; cnt8:in integer

22、 range 0 to 7; dz4:in integer range 0 to 3; -单字滚动的 color32:in integer range 0 to 31; -水平滚动,垂直滚动 pwm1:in std_logic; pwm2:in std_logic; pwm3:in std_logic; pwm4:in std_logic; pwm5:in std_logic; pwm6:in std_logic; row:out std_logic_vector(7 downto 0); colr:out std_logic_vector(7 downto 0); colg:out std_

23、logic_vector(7 downto 0) );end Translation;architecture project of Translation istype r is array(7 downto 0) of std_logic_vector(38 downto 0);type r1 is array(38 downto 0) of std_logic_vector(7 downto 0);signal set:r;signal setud:r1;beginset=(000000000111110011111111001010100000000, -水平滚动的定义00000000

24、0010010001010010001010100000000,000000000010010000110100001010100000000,011111100011111011111110001010100111111,000000000000001000010000001010100000000,000000001111111000010000001010100000000,000000000000101000010000010010100000000,000000000000011000010000100010100000000);setudrowrowrowrowrowrowrowr

25、owrow light:=1; -亮度的调节 when 1= light:=pwm6; when 2= light:=pwm4; when 3= light:=pwm1; when others = light:=0; end case; colg colr colr colr colr colr colr colr colr colr = 00000000;-实现第一种功能固定红字的四级亮度可调 end case; else colrcolr=01000010;colgif pwm6=1 then colr=11100111;colg=00000000;else colr=00000000;colgif pwm5=1 then colr=11111111;colg=00000000;else colr=00000000;colgif pwm4=1 then colr=11111111;colg=00000000;else colr=00000000;colgif pwm3=1 then colr=11111111;colg=000000

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

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