-
目录
一、总体设计
思路
.....................................
..................................................
.................
1
1.1
基本原理
< br>.
...................................
..................................................
.....................
1
1.2
总体设计图框图
......
..................................................
......................................
3
1.3
顶层文件设计
.......
..................................................
.........................................
3
二、单元电路设计
..............................................
..................................................
........
4
2.1
时序控制模块
.......
..................................................
.........................................
4
2.2
扫描控制模块
.......
..................................................
.........................................
5
2.3
显示控制模块
.......
..................................................
.........................................
6
三、仿真结果
................................................ .................................................. ............
1
3
四
、系统调试
..................................
..................................................
..........................
1
5
4.1
创建工程
.........
..................................................
.............................................
1
5
4.2
全程编译
.........
..................................................
.............................................
1
5
4.3
管脚绑定
.........
..................................................
.............................................
1
5
4.4
硬件调试
.......................
..................................................
..............................
1
6
五、心得体会
< br>............................................... .................................................. .............
1
7
六、附录
...................................
..................................................
.................................
1
8
6.1
总电路图
.........
..................................................
.............................................
1
8
6.2
参考程序:
........
..................................................
..........................................
1
9
七、参考文献
< br>............................................... .................................................. .............
2
7
一、总体设计思路
1.1
基本原理
LED
就是
Light Emitting Diode
(发光二极管)的缩写。在某些半导体材
料的
PN<
/p>
结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形
式释放出来,从而把电能直接转换为光能。
PN
结加反向电
压,少数载流子难以
注入,
故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,
通
称
LED
。
LED
显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文
字、图形、图像、动
画、行情、视频、录像信号等各种信息的显示屏幕。
中小规
模的
LED
点阵显示使用非常广泛,
采
用单片机控制时,
需要扩展大量
的外围资源,
< br>并且不便于进行扩展、
修改和维护。
在系统可编程逻辑器
件具有丰
富的
I/O
口及内部资源,器
件的编程和修改也极为方便。本设计是以
Altera
公
司可编程逻辑芯片
EP1K30TC144-3
为控制核心、附加一定外围电路组成的一个
16
×
16
点阵,此点阵系统使用逐列循环扫描的方式来显示自己姓名的英文大写
字母。这样不但简化了外围电路、而且易于修改、扩展和维护。
16
×
16
扫
描
LED
点阵的工作原理同
8
位扫描数码管类似。
它有
16
< br>个共阴极
输出端口
,
每个共阴极
对应有
16
个
LED
< br>显示灯,
所以其扫描译码地址需
4
位信号
线(
SEL0-SEL3
)<
/p>
,其汉字扫描码由
16
位段地址(
0-15
)输入。
通过时钟的每列
扫描显示完整汉字。
点阵
LED
一般采用扫描式显示,实际
运用分为三种方式:
(
1
)点扫描
(
2
)行扫描
(
3
)列扫描
若使用第一种方式,其扫描频率必须大于
16
×
64=1024Hz
,周期
小于
1ms
即
可。若使用第二和第三种
方式,则频率必须大于
16
×
8=12
8Hz
,周期小于
7.8ms
即可符合
视觉暂留要求。此外一次驱动一列或一行(
8
颗
LED
)时需外加驱动电
路提高电流,否则
LED
亮度会不足。
1
实验箱上为我们提供了
16*16
的点阵显示模块。通过观察,我们可以看到,
此点阵显示屏即为
16
行、
1
6
列的
LED
显示灯。那么控制这些灯
的亮暗分布,就
能达到字符显示的目的。首先我们设计要正确显示自己名字的英文大写字
母
(
T,A,N,G,J,I,N,G
)
,显示屏上的灯的亮暗情况具体应如何。
< br>如第一个字母‘
T
’
:
0000
11111
11111
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
如果高电平‘
1
时表示灯是亮的,低
电平‘
0
’时灯是暗的,这样上面的灯
呈现在我们眼前的就是‘
T
’字了。依次类推,我们就可以设计
出所有要显示的
字母了。
这样这些字母就好象是被我们当作了固
定模型了。
但如何点亮这些灯呢,
这就要求有一个脉冲循环扫描
的电路,
我们采用列扫描,
当扫描的和我们先设计
好的字母模型的高电平相匹配时,
灯就相应的点亮。
由于扫描的速度很快,
我们
人的眼睛并不会感到灯的闪烁,所以
每扫描完
16
列就会显示在我们眼中一个字
母了。
但要所有的字母就可以依次的显示出来并不停的循环显示,
< br>就还要再有一
个时序控制电路来控制。
此时序控制电路象
一个计数器,
有自动清零的功能,
这
样
就可以实现循环的效果了。
2
1.2
总体设计图框图
图
1.2
总
体设计框图
1.3
顶层文件设计
顶层文件来实现循环显示各个字母的功能。
它由时序控制模块,
扫描模块和
字母显示控制模块组成。
时序控制模块利
用脉冲来控制每个字母的显示时间。
扫
描控制模块利用列扫描脉
冲产生列扫描信号。
而字母显示控制模块用时序控制模
块和扫描
控制模块所提供的脉冲信号来点亮各个字母模型中相应的灯。
在时序模
< br>块的控制下(此设计中每八个字母为一个循环)实现了各个字母循环显示的功
能。
要实现显示自己的英文名字大写字母。结合实际,模块<
/p>
chw
,
cnta, cora
分别实现时序控制模块,扫描模块和字母显示控制模块。具体电路的
顶层文件
设计如下图
图
1.3
顶层文件设计
3
二、单元电路设计
2.1
时序控制模块
此模块用来控制每个字母的显示时间,
当计满四个脉冲时
cnt
自动清零,
即
每个字母显示四
个脉冲的时间。一共有八个字母(
T,A,N,G,J,I,N,G
)
。当
tmp=1000
时,
p>
tmp
自动清零,
此后是这些字母显示的下
一个循环。
如此不停的循
环显示各个字母。
为使字母不断地循环显示,
并且使每个字母之间有停顿,
就需要在中间加一
定的延时和循环环节。
在这一环节中,
可以通过修改其数值来控制每个字母的显
示时
间。
图
2.1
时序控制模块
程序如下:
Library
ieee;
use _logic_;
use
_logic_;
Entity chw is
Port(clk:in
std_logic;
q:out std_logic_vector(3 downto 0));
End chw;
Architecture
chw_arc of chw is
Begin
Process(clk)
variable
cnt:integer range 0 to 1000;
variable tmp:std_logic_vector(3 downto
0);
4
begin
If clk'event and
clk='1'then
If cnt<1000 then
cnt:=cnt+1;
Else
cnt:=0;
If tmp=
tmp:=
Else
tmp:=tmp+1;
End if;
End if;
End if;
q<=tmp;
End process;
End chw_arc;
2.2
扫描控制模块
此模块用来实现列扫描控制,通过对每一列的扫描来完成对字母的现实,
,<
/p>
每扫描完
16
列,
tmp
自动清零,这样就提供了一个列循环扫描的功能,这样就
可以循环的是各个字母。
只要扫描的频率足够快,就能给人
以连续的感觉。因此要控制扫描的频率,
不能太低,否则,就会造成视觉上的不连续。<
/p>
图
2.2
扫描控制模块
扫描程序如下
5
Library ieee;
use _logic_;
use _logic_;
Entity cnta is
Port(clk:in std_logic;
--
端口定义
输入信号
q:out std_logic_vector(3 downto 0));
--
端口定义
输出信号
End cnta;
Architecture count of cnta is
Signal
lie:std_logic_vector(3 downto 0);
Begin
Process(clk)
begin
If clk'event and
clk='1'then
If lie=
Lie<=
Else
Lie<=lie+1;
End if;
End if;
q<=lie-1;
End process;
End count;
2.3
显示控制模块
此模块为列驱动控制器
sel
控制的是所显示的字<
/p>
,
用来实现显示出相应的字
母。
ch
控制字母的个数,
sel
< br>控制扫描的行数。
使对应列选择信号输出每一列对
应的数
据,点量相应的灯。
例如当
ch
p>
为
0000B
时,表示输出字的第一列文字
信息,
sel
为
0001B
时,
表示输出字的第二列文字信息,依次类推。
6
图
2.3
显示控制模块
显示程序如下:
LIBRARY
IEEE;
USE IEEE. STD_LOGIC_;
ENTITY cora IS
PORT(ch : IN
STD_LOGIC_VECTOR(3 downto 0);
sel : IN
STD_LOGIC_VECTOR(3 downto 0);
q : OUT
STD_LOGIC_VECTOR(15 downto 0));
END
cora;
ARCHITECTURE cora_arc
OF cora IS
BEGIN
PROCESS(ch,sel)
BEGIN
CASE ch IS
When
case sel is
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
7
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when others=>null; end
case;
When
case sel is
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
others=>null;
end case;
When
case sel is
when
=>q<=
when
=>q<=
8
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
others=>null; end case;
When
case sel is
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
9
when
=>q<=
when
=>q<=
when
others=>null; end case;
When
case sel is
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when others=>null; end
case;
When
case sel is
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
10
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
others=>null; end case;
When
case sel is
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
others=>null; end case;
When
case sel is
11
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when
=>q<=
when others=>null; end case;
when others=>null; end
case;
END PROCESS;
END cora_arc;
12
三、仿真结果
3.1
时序控制模块仿真
3.2
扫描控制模块仿真
13
-
-
-
-
-
-
-
-
-
上一篇:迷茫英语句子说说心情
下一篇:美国2010-2017年排名前200的英文名