1、16X16点阵显示综合实验eda北 华 航 天 工 业 学 院EDA技术综合设计课程设计报告报告题目: 16X16点阵显示综合实验 作者所在系部: 电子工程系 作者所在专业: 自动化 作者所在班级: B08221 作 者 姓 名 : 王建超 指导教师姓名: 崔瑞雪 完 成 时 间 : 2010-11-30 内 容 摘 要EDA技术是现代电子信息工程领域的一门新兴技术,它是在现代先进的计算机工作平台上开发出来的一整套电子系统设计的软硬件工具,并提供了先进的电子系统设计方法。随着EDA技术的不断发展,开发人员完全可以通过自己的电子系统设计来定制其芯片内部的的电路功能,使之成为设计者自己的专门集成电
2、路芯片。在本次课设中,设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮,点亮方式为使点阵显示器显示“”九个字和一种花样,其中列选信号为16-4编码器编码输出。列选信号采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ。字体、格式,注意本次为课设报告、不是实验报告关键词:EDA、可编程逻辑器件、时钟信号、16*16点阵字符发生器目录一、设计要求1二、实验目的1三、硬件要求1四、实验原理1五、程序设计2 16进制计数器2 16*16点阵的行列驱动器2六、原理图12七、仿真波形12八、实验总结13参考文献13课程设计任务书课题名称16*16点阵显示综合
3、实验完成时间指导教师职称学生姓名班 级总体设计要求和技术要点设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮,点亮方式为使点阵显示器显示“沈小兰王建超袁利宏”九个字和一种花样,其中列选信号为16-4编码器编码输出。列选信号采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ。工作内容及时间进度安排11/29日: 上午 熟悉EDA V型试验系统,完成芯片下载,试验箱连线; 下午 调试程序,对错误进行修改,实现目标花样;11/30日: 上午 验收、答辩;讲前面工作写上课程设计成果1与设计内容对应的软件程序2课程设计报告书3成果使用说明书4设计工作量要求
4、一、 实验要求设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮,点亮方式为使点阵显示器显示“沈小兰王建超袁利宏”九个字和一种花样,其中列选信号为16-4编码器编码输出。二、实验目的1、 了解点阵字符的产生和显示原理。2、了解E2PROM和1616点阵LED的工作机理。3、 加强对于总线产生,地址定位的CPLD实现的理解。三、硬件要求1 主芯片EPF10K10LC84-4。2 可变时钟源。3 带有事先编程好字库/字符的E2PROM 2864。4 1616扫描LED点阵。四、实验原理 1616扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共
5、阴极对应有16个LED显示灯。所以其扫描译码地址需4位信号线。要使16点阵上某个点亮,如第10行第4列的LED点亮,只要让列选信号为“0100”,从而选中第4列,再给第10行一个高电平,即可点亮该LED。本实验通过FPGA芯片写入字形,产生扫描信号。为了显示整个汉字,首先分布好汉字的排列,以行给汉字信息;然后以大于24HZ的频率扫描列,即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。由于要显示不同的字,需要给一个信DIN,对不同字不同花样进行选择。而该信号的产生可以通过一个16进制计数器完成。本设计由16进制计数器,行驱动和列驱动组成。输出包括了如下图所示的列选信号SEL0
6、SEL3。五、程序设计 116进制计数器:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY JISHU ISPORT(CLK,RST,LOAD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END JISHU;ARCHITECTURE SHILIU OF JISHU ISBEGIN PROCESS(CLK,RST,LOAD,DIN) BEGIN IF
7、 (CLKEVENT AND CLK=1) THEN IF(RST=1)THEN DOUT0); ELSIF (LOAD=1) THEN DOUT=DIN; ELSIF (DOUT=15) THEN DOUT=0000; ELSE DOUT=DOUT+1; END IF; END IF; END PROCESS;END SHILIU;216*16点阵的行列驱动器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zhi is port( din : in std_logic_vector
8、(3 downto 0); selout : buffer std_logic_vector(3 downto 0); clk,rst: in std_logic; dotout : out std_logic_vector(15 downto 0); end zhi;architecture one of zhi isbeginprocess(clk,rst,din,selout)variable b:std_logic_vector(15 downto 0); beginif rst=1then seloutseloutb:=0000000000000000; when 0000 =b:=
9、0010001000011100; when 0001 =b:=0001000100001000; when 0010 =b:=0000100010010000; when 0011 =b:=0000000000100010; when 0100 =b:=0011100001000100; when 0101 =b:=0001000000001000; when 0110 =b:=0001000000010000; when 0111 =b:=0111111111100000; when 1000 =b:=0111111111111100; when 1001 =b:=000100000000
10、0100; when 1010 =b:=0001010000000100; when 1011 =b:=0001100000000100; when 1100 =b:=0011000000000100; when 1101 =b:=0000000000011100; when others =b:=0000000000000000; end case; when0001=seloutb:=0000000000000000; when 0000 =b:=0000000000000000; when 0001 =b:=0000000110000000; when 0010 =b:=00000011
11、00000000; when 0011 =b:=0000011000000000; when 0100 =b:=0000110000010000; when 0101 =b:=0000000000001000; when 0110 =b:=0111111111111100; when 0111 =b:=0111111111111110; when 1000 =b:=0000000000000000; when 1001 =b:=0000110000000000; when 1010 =b:=0000011000000000; when 1011 =b:=0000001100000000; wh
12、en 1100 =b:=0000000110000000; when 1101 =b:=0000000000000000; when others =b:=0000000000000000; end case; when0010= seloutb:=0000000000000000; when 0000 =b:=0000000000000110; when 0001 =b:=0001100000000110; when 0010 =b:=1001100000000110; when 0011 =b:=1101100110000110; when 0100 =b:=011110011000011
13、0; when 0101 =b:=0011100110000110; when 0110 =b:=0001100110000110; when 0111 =b:=0001100110000110; when 1000 =b:=0011100110000110; when 1001 =b:=0111100110000110; when 1010 =b:=1101100110000110; when 1011 =b:=1001100000000110; when 1100 =b:=0001100000000110; when 1101 =b:=0000000000000110; when othe
14、rs =b:=0000000000000000; end case; when 0011= seloutb:=0000000000000000; when 0000 =b:=0000000000000100; when 0001 =b:=0000000000001100; when 0010 =b:=0001000000011100; when 0011 =b:=0101011011110000; when 0100 =b:=0101011101100000; when 0101 =b:=0101010110000000; when 0110 =b:=1111010111111111; whe
15、n 0111 =b:=0101010111111110; when 1000 =b:=0101010101100100; when 1001 =b:=0101011000110000; when 1010 =b:=0001000000011000; when 1011 =b:=0000000000001100; when 1100 =b:=0000000000000100; when 1101 =b:=0000000000000000; when others =b:=0000000000000000; end case; when0100= seloutb:=0000000000011000
16、; when 0001 =b:=0000011000110000; when 0010 =b:=0110011011000000; when 0011 =b:=0111111111111100; when 0100 =b:=0111111111111110; when 0101 =b:=0110011110000000; when 0110 =b:=0000011011100000; when 0111 =b:=0000000001100000; when 1000 =b:=0000000000000000; when 1001 =b:=0000011111110000; when 1010
17、=b:=0000011111100000; when 1011 =b:=0000000000001000; when 1100 =b:=0111111111111100; when 1101 =b:=0111111111111110; when 1110 =b:=0000000000000000; when others =b:=0000000000000000; end case; when0101= seloutb:=0000000000000000; when 0001 =b:=0000111000000010; when 0010 =b:=0000111000000110; when
18、0011 =b:=0000100110001000; when 0100 =b:=0000100110010110; when 0101 =b:=0000100110101110; when 0110 =b:=0110100111010110; when 0111 =b:=0110101110100110; when 1000 =b:=0110100110000110; when 1001 =b:=0000100110010110; when 1010 =b:=0000100110001110; when 1011 =b:=0000100110000110; when 1100 =b:=000
19、0111000000110; when 1101 =b:=0000111000000010; when 1110 =b:=0000000000000000; when others =b:=0000000000000000; end case; when0110= seloutb:=0000000000000000; when 0000 =b:=0000000000000010; when 0001 =b:=0110000000000110; when 0010 =b:=0110000110000110; when 0011 =b:=0110000110000110; when 0100 =b
20、:=0110000110000110; when 0101 =b:=0110000110000110; when 0110 =b:=0111111111111110; when 0111 =b:=0111111111111110; when 1000 =b:=0110000110000110; when 1001 =b:=0110000110000110; when 1010 =b:=0110000110000110; when 1011 =b:=0110000110000110; when 1100 =b:=0110000000000110; when 1101 =b:=0000000000
21、000010; when others =b:=0000000000000000; end case; when 0111= seloutb:=0000000000100100; when 0001 =b:=0010001000011000; when 0010 =b:=0010010100011000; when 0011 =b:=0010110010100100; when 0100 =b:=0011000001001010; when 0101 =b:=0010010010101010; when 0110 =b:=0010010010101010; when 0111 =b:=0010
22、010010101010; when 1000 =b:=0111111111111110; when 1001 =b:=0010010010101010; when 1010 =b:=0010010010101010; when 1011 =b:=0010010010101010; when 1100 =b:=0011111110001010; when 1101 =b:=0000010000001010; when 1110 =b:=0000010000000010; when others =b:=0000000000000000; end case; when1000= seloutb:
23、=0000000001111100; when 0001 =b:=0000100011000000; when 0010 =b:=0010100100100000; when 0011 =b:=0010101000010000; when 0100 =b:=0111111111001000; when 0101 =b:=0010100100000100; when 0110 =b:=0010100100000010; when 0111 =b:=0000100000000010; when 1000 =b:=0000000000000010; when 1001 =b:=01000100011
24、10010; when 1010 =b:=0100100010001010; when 1011 =b:=0101000010001010; when 1100 =b:=0110010010001010; when 1101 =b:=0111111001110010; when 1110 =b:=0000000000000000; when others =b:=0000000000000000; end case; when1001=seloutb:=0000111100001111; when 0000 =b:=0000111100001111; when 0001 =b:=0000111100001111; when 0010 =b:=0000111100001111; when 0011 =b:=1111000011110000; when 0100 =b:=1111000011110000; when 0101 =b:=1111000011110000; when 0110 =b:=1111111111110000; when 0111 =b:=0000111100001111; when 1000 =b:=00
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1