双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx

上传人:b****3 文档编号:6293017 上传时间:2023-05-06 格式:DOCX 页数:38 大小:394.49KB
下载 相关 举报
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第1页
第1页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第2页
第2页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第3页
第3页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第4页
第4页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第5页
第5页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第6页
第6页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第7页
第7页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第8页
第8页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第9页
第9页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第10页
第10页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第11页
第11页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第12页
第12页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第13页
第13页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第14页
第14页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第15页
第15页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第16页
第16页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第17页
第17页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第18页
第18页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第19页
第19页 / 共38页
双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx

《双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx(38页珍藏版)》请在冰点文库上搜索。

双色点阵显示控制器 北京邮电大学数字电路综合实验报告Word格式文档下载.docx

至此,一幅完整的文字信息就显现出来,然后再反复扫描这8行直至显示新的信息。

以下设计采用行扫描方式实现滚动显示。

三、任务解析和系统设计(设计思路、总体框图、分块设计、流程图、状态转移图)

设计思路:

要实现亮度四级可调,选择用四个不同的占空比来控制发红光的发光二极管,当占空比较大时,则在红色发光二极管显示的亮度也就最强。

选择红色发光二极管不同的亮度时,即相当于选择四个不同的占空比。

当检测到时钟的上升沿时,占空比发生变化。

所以还需要再设计一个模值为4的计数器来控制这四个不同的占空比。

发光二极管的八行输出是通过一个八计数器来控制的。

行总而言之,显示亮度四级可调的固定红色汉字,要设计一个模值为4的计数器的模块,一个模值为8的计数器,一个有四个不同的占空比模块。

通过红色发光二极管显示输出。

2、用从红到绿8级渐变色显示一个固定汉字或图形。

从红到绿八级渐变色,首先八种颜色的变化可以通过上一个功能里设计的模值为8的计数器来控制。

然后颜色的变化不同则也是通过8个不同的占空比来实现,发光二极管有两个不同颜色的输出,红色和绿色占空比不一样,混合在在一起则会出现不同的颜色。

3、分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,显示过程中,显示方式用一个btn按键进行切换。

单字循环显示是通过检测到每一个移位时钟时,就将每一行按位向左移八位。

左右滚动显示是通过行扫描实现左移,是通过每来一个移位时钟,将每一行的字模按位左移一位,扫描时钟到来时送出移位后的新字模,通过8次移位,可将一个汉字移出点阵平面,按类似的道理,也可以将一个汉字经8次移位后移进点阵平面。

上下滚动显示则相反的,是通过列扫描实现上移,是通过每来一个移位时钟,将每一行的字模按位上移一位,扫描时钟到来时送出移位后的新字模,通过8次移位,可将一个汉字移出点阵平面。

因此,需要模值为8的计数器模块,一个移动的模块。

实现跟基本要求的第三个功能实现类似,只是显示四个不同的汉字时,加上四个不同的占空比就可以实现。

总体框图(整体模块连接图):

四、分块设计

(1)防抖模块:

设计原因:

只要有按键或是拨码开关,防抖电路就是不可缺少的一个模块。

否则,按键信号中的一些毛刺和抖动往往会引起电路不可预知的错误。

功能:

将带有抖动的信号进行识别和判断,输出持续时间超过0.1s的高电平信号。

(2)计数器4模块

此次实验要求的第一个功能的四级亮度可调,需要用到一个计数器4来控制四种两度,当检测到计数器4输出的时钟发生变化时,既检测到上升沿时,占空比就要发生变化,从而达到四种不同的亮度。

在第三个功能实现里,分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字,三种功能的切换也需要用到计数器4,只需要把计数器4的最后一个状态制0就可。

计数器4是把clk的四个周期记做一个count,当检测到count的上升的时钟时,占空比或者状态发生变化,从而达到控制的作用。

(3)计数器8模块

首先8*8的点阵行和列都有8个输出,需要用计数器8的输出时钟来控制,当检测到计数器8的时钟沿上升时,则输出一行或者列。

用来控制点阵8row行输出,还有8colr和colg列的输出。

(4)占空比模块

第一个功能的亮度四级可调,四种不同的亮度需要通过四种不同的占空比来调节实现。

还有第二个功能的8级渐变色,8种颜色的变化,也是通过发光二极管红色和绿色两种颜色的占空比不同来达到混合后的8种不同颜色。

最有提高要求里的滚动显示过程中实现四种显示颜色的自动变换,是四个不同的字,红绿颜色有四种不同的占空比实现的。

占空比实际上就是正脉冲的持续时间与脉冲总周期的一个比值。

占空比越大,高电平持续的时间也就越长,亮度也就越强。

(5)分频模块

由于实验板只能提供25MHz的时钟信号,而电路中只能使用较低频率的时钟:

用于将实验板上的25MHz的时钟信号经分频后输出

(6)移动模块

定义滚动控制,一个gundong2的取值范围是0到3,控制的单字的扫描,一次移动8列,计数器8每检测到一个上升沿即输出一列,到计数器记完它的一个周期8时,点阵也就完整的输出了一个字,此时移动一次为8位。

一个gundong1的取值范围是0到31,用来控制行和列的扫描。

即计数器8每输出一列,则移动一行或者一列,从而达到单字循环显示、左右滚动显示、上下滚动显示三种显示方式。

不过,最后为了方便,把这个模块移进了计数器8的设计模块里。

每检测到时钟的上升沿,gundong计数加1,行扫描实现左移,是通过每来一个移位时钟,将每一行按位左移一位,扫描时钟到来时则开始移位。

通过8次移位,可将一个汉字移出点阵平面,按类似的道理,也可以将一个汉字经8次移位后移进点阵平面。

(7)功能实现模块

设计原因和功能:

实现四个功能。

第一个功能固定红色显示一个汉字或图形,显示亮度4级可调,通过四种不同的占空比调节亮度,输出仅需要用到红色的发光二极管。

用从红到绿8级渐变色显示一个固定汉字或图形,通过八种不同的占空比来控制两种颜色的输出,调和出8种不同的颜色。

分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,通过行扫描,列扫描检测到计数器8的时钟和移位的位数来控制三种不同的滚动模式。

滚动显示过程中实现四种显示颜色的自动变换,只需要将输出颜色的占空比加入到三种不同的滚动模式里面就可以了。

五、程序代码

防抖模块源代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityfangdouis

port(

clk:

instd_logic;

reset:

resetn:

outstd_logic);

endfangdou;

architectureaoffangdouis

signalresetmp1,resetmp2:

std_logic;

begin

process(clk)

if(clk'

eventandclk='

0'

)then

resetmp2<

=resetmp1;

resetmp1<

=reset;

endif;

endprocess;

resetn<

=clkandresetmp1and(notresetmp2);

enda;

计数器4模块源代码:

entityjishu4is

port(

clk:

cnt4:

outintegerrange0to7);

endjishu4;

architectureaofjishu4is

variablecount:

integerrange0to3;

--Count为中间变量,给cnt4赋值

1'

ifcount=3thencount:

=0;

else

count:

=count+1;

endif;

cnt4<

=count;

计数器8模块源代码:

entityjishuqi8is

port(

cnt8:

endjishuqi8;

architectureaofjishuqi8is

integerrange0to7;

--中间变量,Count为中间变量,给cnt8赋值

ifcount=7thencount:

else

cnt8<

占空比模块源代码:

entityzhankongbiis--亮度四级可调的设置

port(

INSTD_LOGIC;

pwm1:

outstd_logic;

--Pwm为count计数时钟占空比的控制

pwm2:

pwm3:

pwm4:

endzhankongbi;

architectureaofzhankongbiis

variablecount:

integerrange0to49;

--下载可用49999

ifclk'

then

ifcount=49

thencount:

elsecount:

ifcount<

40

thenpwm1<

='

;

elsepwm1<

then

30

thenpwm2<

elsepwm2<

20

thenpwm3<

elsepwm3<

10

thenpwm4<

elsepwm4<

分频模块源代码:

entityfenpinis

clkout:

endfenpin;

architectureaoffenpinis

signalxinhao:

integerrange0to9;

--仿真可取50hz到100hz,下载时可为249

ifcount=9then

xinhao<

=notxinhao;

clkout<

=xinhao;

移动模块源代码:

entitygundongis

gundong1:

outintegerrange0to31;

--水平滚动垂直滚动的扫描

gundong2:

outintegerrange0to3);

--单字滚动的扫描

endgundong;

architectureaofgundongis

variablecount1:

integerrange0to31;

variablecount2:

then

ifcount1=31

thencount1:

elsecount1:

=count1+1;

ifcount2=3

thencount2:

elsecount2:

=count2+1;

gundong1<

=count1;

gundong2<

=count2;

功能实现模块源代码:

entityTranslationis

swt:

instd_logic_vector(1downto0);

inintegerrange0to3;

inintegerrange0to7;

dz4:

--单字滚动的

color32:

inintegerrange0to31;

--水平滚动,垂直滚动

pwm5:

pwm6:

row:

outstd_logic_vector(7downto0);

colr:

colg:

outstd_logic_vector(7downto0)

);

endTranslation;

architectureprojectofTranslationis

typerisarray(7downto0)ofstd_logic_vector(38downto0);

typer1isarray(38downto0)ofstd_logic_vector(7downto0);

signalset:

r;

signalsetud:

r1;

set<

=(

"

000000000111110011111111001010100000000"

--水平滚动的定义

000000000010010001010010001010100000000"

000000000010010000110100001010100000000"

011111100011111011111110001010100111111"

000000000000001000010000001010100000000"

000000001111111000010000001010100000000"

000000000000101000010000010010100000000"

000000000000011000010000100010100000000"

);

setud<

00000000"

--垂直滚动的定义

01111110"

01111100"

00100100"

00111110"

00000010"

11111110"

00001010"

00000110"

11111111"

01010010"

00110100"

00010000"

00101010"

01001010"

10001010"

process(cnt8)

begin

casecnt8is

when0=>

row<

="

01111111"

--所有行的取值情况

when1=>

10111111"

when2=>

11011111"

when3=>

11101111"

when4=>

11110111"

when5=>

11111011"

when6=>

11111101"

when7=>

whenothers=>

endcase;

endprocess;

process(cnt4,swt,cnt8,pwm1,pwm2,pwm3,pwm4,pwm5,pwm6,dz4,color32,set,setud)

variablelight:

ifswt="

00"

then--light

casecnt4is

when0=>

light:

--亮度的调节

when1=>

=pwm6;

when2=>

=pwm4;

when3=>

=pwm1;

colg<

iflight='

then--heart

colr<

="

01000010"

11100111"

00111100"

00011000"

--实现第一种功能固定红字的四级亮度可调

elsecolr<

ifswt="

01"

then--8level

casecnt8is--运用红绿两种颜色的占空比不同,从而实现8种颜色的渐变

colr<

colg<

--实现第二种功能,八种颜色可变

ifpwm6='

thencolr<

elsecolr<

ifpwm5='

ifpwm4='

ifpwm3='

000000

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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