- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 专业人才培养方案制定调查问卷(毕业生)-电力系统自动化技术(1).docx
- 专业人才培养方案制定调查问卷(毕业生)-电力系统自动化技术(1).pdf
- 北邮数电实验双色点阵扫描控制器.docx
- 人工智能机器人技术发展报告.docx
- 人工智能机器人技术发展报告.pdf
- 金融风险管理计算题.docx
- 小学科学四年级上册《食物的消化》教学实录2.pdf
- 闽教版(2020修订版)信息技术 五年级下册教案.docx
- 陀螺仪”和“加速度计”工作原理.docx
- 光照强度对不同紫薇品种种子萌发的影响.doc
- 福建威而特旋压科技有限公司行业竞争力评级分析报告(2023版).pdf
- 黄山市屯溪区乒乓球培训市场现状及发展对策研究.doc
- 医学成像技术在临床诊断中的应用.docx
- 北京三元食品股份有限公司近三年财务报表分析.doc
- 武汉版生命生态安全【武汉版】《生命安全教育》四年级 第29课《平等待人》课件.pptx
- 潜心耕作,静候芳华绽放+课件--高一上学期期中考试成绩分析主题活动暨家长会.pptx
- 火电厂热工仪表安装与检修基础知识单选题100道及答案解析.docx
- 云南省曲靖市麒麟高中2025年高三第二轮复习测试卷化学试题含解析.doc
- 销售人员十大心态.pptx
- 云南省曲靖市麒麟高级中学2025届第二学期高三期中考试语文试题含解析.doc
文档评论(0)