北邮数电实验双色点阵扫描控制器.pdf

北邮数电实验双色点阵扫描控制器.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2018212048赵依然 实验 5 双色点阵扫描显示控制器 一、实验要求 1. 用 8×8 点阵显示字符,每次显示一个字符,每秒切换一次,显示内容为“B”、“U”、“P”、 “T”及姓名的第一个字母。如张三显示的内容为“B”、“U”、“P”、“T”、“Z”、“S”。 2.为系统设置一个复位键,复位后重新从“B”开始循环显示。要求使用按键复位。 二、实验设计思路 我们知道点阵的结构,当 row轮流 0的时候,二极管阴极为低电平,这时候我们给到一 个高电平在红灯或者绿灯的阳极的时候,就能驱使灯点亮。这样我们可以基于“视觉暂留”的 现象,快速刷新 row灯,使得点阵能够快速点亮,这样就能显示一个完整的字,最后再利 用一个模7计数器来实现每个字母之间的转换。 我们引入一个 1000hz的时钟,并对其进行一个 1000分频变成 1hz的时钟。之后再利用这 个模7计数器来控制cor_l和cor_g和row来控制灯的颜色、每行灯亮时列的亮灯情况。另 外,我们需要一个模 8计数器,后面再设计一个 3-8线译码器,这样能够控制 row的亮灯 情况。最后我们需要注意的是,由于row需要快速刷新,故我们需要用1000hz的时钟,而 字符之间的转换的计数器要用1hz的时钟,来满足亮灯1s的条件。 我们还需要设计一个复位键,以便能做到按下按钮重新回到第一个字母的功能,这需要reset 按下时,模7计数器的数字回到0。这样把带防抖的复位键加进去即可。 最后顶层将这两个模块连接起来即可。 三、VHDL代码及注释 点阵部分: libraryIEEE; useIEEE.std_logic_1164.all; useIEEE.std_logic_unsigned.all; useIEEE.std_logic_arith.all; entitydianzhenis port(clk:instd_logic; col_r:outstd_logic_vector(7 downto0); --红灯的控制显示 col_g:outstd_logic_vector(7 downto0); --绿灯的控制显示 row:outstd_logic_vector(7 downto0);--二极管阴极控制 reset:instd_logic); enddianzhen; architectureaofdianzhenis signalsel7:std_logic_vector(2 downto0); --模7计数器的信号 signalsel8:std_logic_vector(2 downto0); --模8计数器的信号 signalclk_add:std_logic:=0; --分频后的时钟begin p1:process(clk) --1000分频 variable c:integerrange0to499:=0; begin if(clkeventandclk=1)then ifc=499then clk_add=notclk_add; c:=0; else c:=c+1; endif; endif; endprocessp1; p2:process(clk)--模 8计数器 begin if(clkeventandclk=1)then sel8=sel8+1;--加满自动重新归零 endif; endprocessp2; p3:process(clk_add,reset)--模7计数器 begin if(reset=1)then--当出现重置的信号为高电平时,计数器重置为000,这样就能回到字母B sel7=000; elsif(CLK_addEVENTAND CLK_add=1)then if(sel7=O6)then sel7=O0;--模满7归零 elsesel7=sel7+1; endif; endif; endprocessp3; p4:process(sel7,sel8)—模7和模8共同作用,模8用来快速刷新row,模7用来控制哪个字 母,每行对应相对的列点亮的情况,显示字母。 begin casesel7 is whenO0=casesel8is--字母B,运用循环嵌套,如7是显示B的最上面一行,0是显示 最下面一行左下角灯为(0,0),右上角为(7,7),这样的方式点亮灯显示字符。 whenO7 =col_rcol_grow whenO6

文档评论(0)

bakey8 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档