利用拨码开关控制液晶显示器进行ASIC字符显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学
课程设计说明书
学生姓名:甘世伟学号:04
学院: 电子与计算机科学技术学院
专业: 微电子学
题目: 利用拨码开关控制液晶显示器进行ASIC字符显示
指导教师:王红亮职称: 讲师
2010 年 6 月 25 日
目录
表—1:OCMJ2X8(128X32)引脚说明....................- 12 -硬件接口 ..................................................................................................................................................................... - 13 -四、电性能参数 ......................................................................................................................................................... - 13 -1)表—1模块时间参数表.........................- 13 -2)表—2模块主要电气参数表.......................- 14 -用户命令 ..................................................................................................................................................................... - 14 -外型尺寸图(图11) .............................................................................................................................................. - 15 -6.附录:液晶显示器简介 (13)
1、课程设计目的
(1)学习操作数字电路设计实验开发系统,掌握液晶显示器的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计方法。
(3)学习掌握可编程器件设计的全过程。
2、课程设计内容和要求:
、设计内容
用VHDL语言编写程序,利用拔码开头控制液晶显示器进行ASIC字符显示。
、设计要求
(1)学习掌握拔码开头控制模块、液晶显示模块的工作原理及应用;
(2)熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;
(3)仿真所编写的程序,模拟验证所编写的模块功能;
(4)下载程序到芯片中,硬件验证所设置的功能,能够实现ASIC字符的显示;
(5)整理设计内容,编写设计说明书.
3、设计方案及实现情况
、设计思路
运用VHDL语言进行各个模块的程序编写,该设计共有四个模块分别为:拨码模块;消抖模块;译码模块;显示模块.整个、模块共有四个单元电路组成为:图1
图1 原理图
、工作原理及框图
图2 系统电路原理图
、各模块功能描述
(1)拨码模块程序代码为:
library ieee;
use bm1 is
port(
rst:in std_logic;
译码
消抖液晶显示
拨码控制
xd: in std_logic;
clk: in std_logic;
xdout: out std_logic );
end bm1;
architecture a of bm1 is
signal count:integer range 0 to 100; begin
process(clk,rst,xd)
begin
if(rst='0')then
count<=0;
xdout<='0';
elsif(clk'event and clk='1')then
if(count=5)then
count<=0;
xdout<=not xd;
else
count<=count+1;
end if;
end if;
end process;
end a;
(2)消抖模块程序代码为:
Library ieee;
use xd is
port(
aj:in std_logic;
rst:in std_logic;
ajout:out std_logic_vector(4 downto 0)
end xd;
architecture ajwork of xd is
signal q: std_logic;
signal count : std_logic_vector(4 downto 0); begin
q<=aj when rst='1'else '0';
process(q,rst)
begin
if(rst='0')then
count<="00000";
elsif q'event and q='1' then
if count="11111" then
count<="00000";
else
count<=count+1;
end if;
end if;
ajout<=count;
end process;
end ajwork;
(3)译码模块程序代码为:
library ieee;
use ym1 is
port(ym:in std_logic_vector(4 downto 0);
Y:out std_logic_vector(7 downto 0));
end ym1;
architecture yima_arch of ym1 is
signal a:std_logic_vector(4 downto 0);
begin