拨码开关控制液晶显示器显示汉字
目 录
1. 课程设计目的 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 2. 课程设计内容和要求 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2
2.1 设计内容 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2
2.2 设计要求 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 3. 设计
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
及实现情况 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2
3.1 设计思路 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2
3.2 工作原理及框图 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3
3.3 各模块功能描述 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 6
3.4 仿真结果 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 12
3.5 实验箱验证情况 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 12 4. 课程设计总结 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 12 5. 参考文献 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 13
1
1、课程设计目的
(1)学习操作数字电路设计实验开发系统,掌握液晶显示模块的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。
(3)学习掌握可编程器件设计的全过程。
2、课程设计内容和要求:
2.1、设计内容
(1)学习掌握拨码开关控制、液晶显示模块的工作原理及应用。
(2)熟练掌握VHDL编程语言,编写液晶显示模块的控制逻辑。 2.2、设计要求
(1)仿真所编写的程序,模拟验证所编写的模块功能。
(2)下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数字的显示。
(3)整理设计内容,编写设计说明书。
3、 设计方案及实现情况
3.1、设计思路
根据指导教师布置的课
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,通过参考书籍、查阅手册、图表和文献资料,网络等获取相
关的知识后,了解到:
液晶显示模块硬件接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令
的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)
通知
关于发布提成方案的通知关于xx通知关于成立公司筹建组的通知关于红头文件的使用公开通知关于计发全勤奖的通知
OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数
据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,
此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的
其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。
接下来我又更深入的学习了MAX+plusII软件和硬件描述语言,根据设计前期的准备,我
决定用有效状态机的方法来编写VHDL源程序,之后在MAX+plusII软件中进行编译仿真,画原理图,仿真得到波形图,然后根据分配的管脚图连接器件,下载程序至实验箱来验证程序
是否正确。
2
表1 OCMJ2X8屏幕显示坐标关系表
3.2、工作原理及框图
3.2.1液晶LCD显示器的工作原理:
液晶显示器是一种采用了液晶控制透光技术来实现色彩的显示器。从液晶显示器的结构
来看,采用的LCD显示屏都是由不同部分组成的分层结构。LCD由两块玻璃板构成,厚约1mm,
其间由包含有液晶材料的5um均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两
边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背
光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。背光板发出的
光线在穿过第一层偏振过滤层之后进入包含成千上万液晶液滴的液晶层。液晶层中的液滴都
被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。在玻璃板与液晶
材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶
的旋光状态,液晶材料的作用类似于一个个小的光阀。液晶材料周边是控制电路部分。当LCD
中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,
然后经过第二层过滤层在屏幕上显示出来。
3.2.2设计原理图如下:
图1 设计原理图
(1)液晶显示模块简介:
OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和 ASCII8*8
3
(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。
OCMJ中文模块系列液晶显示器也可用作一般的点阵图形显示器之用。提供有位点阵和字
节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形
显示。完全兼容一般的点阵模块。
OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显
示,并可通过字节点阵图形方式造字。
本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。一改传统的使用大量
的设置命令进行初始化的方法,OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成
的,实现了“即插即用”。同时保留了一条专用的复位线供用户选择使用,可对工作中的模块
进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
用户硬
件接口采用REQ/BUSY 握手协议,简单可靠。
方引脚 名称 方向 说明 引脚 名称 说明 向
1 VLED+ I 背光源正极(LED+5V) 8 DB1 I 数据1
2 VLED- I 背光源负极(LED-OV) 9 DB2 I 数据2
3 VSS I 地 10 DB3 I 数据3
4 VDD I (+5V) 11 DB4 I 数据4
5 REQ I 请求信号,高电平有效 12 DB5 I 数据5
应答信号=1:已收到数据并正在处
理中 6 BUSY O 13 DB6 I 数据6 =0:模块空闲,可接收数
据
7 DB0 I 数据0 14 DB7 I 数据7
表2 OCMJ2X8(128X32)引脚说明
(2)用户命令
用户通过用户命令调用 OCMJ 系列液晶显示器的各种功能。命令分为操作码及操作数两
部分,操作数为十六进制。共分为 3 类10 条。如下表3所示:
一)、字符显示命令 1、显示国标汉字 2、显示8X8ASCII字符 3、显示8X16ASCII
字符 二)、图形显示命令 4、显示位点阵 5、显示字节点阵
三)、屏幕控制命令 6、清屏 7、上移 8、下移
9、左移 10、右移
表3 用户命令表
(以下所示取值范围分别为:2X8、4X8、5X10的取值范围)
4
1)显示国标汉字
命令格式: F0 XX YY QQ WW
该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中
XX:为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09
YY:为以汉字为单位的屏幕列坐标值,取值范围00到01、00到03、00到04
QQ WW:坐标位置上要显示的GB 2312 汉字区位码
2)显示8X8 ASCII字符
命令格式:F1 XX YY AS
该命令为4字节命令(最大执行时间为0.8毫秒,Ts2=0.8mS),其中
XX:为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13
YY:为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F
AS:坐标位置上要显示的ASCII 字符码
3)显示8X16ASCII字符
命令格式:F9 XX YY AS
该命令为4字节命令(最大执行时间为1.0毫秒,Ts2=1.0mS),其中
XX:为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13
YY:为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F
AS:坐标位置上要显示的ASCII 字符码
4)显示位点阵
命令格式: F2 XX YY
该命令为3字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中
XX:为以1*1点阵为单位的屏幕行坐标值,取值范围00到7F、20到9F、00到9F
YY:为以1*1点阵为单位的屏幕列坐标值,取值范围00到40、00到40、00到40 5)显示字节点阵
命令格式: F3 XX YY BT
该命令为4字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中
XX:为以1*8点阵为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13
YY:为以1*1点阵为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F
BT:字节像素值,0 显示白点,1 显示黑点 (显示字节为横向)
5
6)清屏
命令格式:F4
该命令为单字节命令(最大执行时间为11毫秒,Ts2=11mS),其功能为将屏幕清空。
7)上移
命令格式:F5
令为单字节命令(最大执行时间为25毫秒,Ts2=25mS),其功能为将屏幕向上移 一个
点阵行。
8)下移
命令格式:F6
该命令为单字节命令(最大执行时间为30毫秒,Ts2=30mS),其功能为将屏幕向下移动一个点阵行。
9)左移
命令格式:F7
该命令为单字节命令(最大执行时间为12毫秒,Ts2=12mS),其功能为将屏幕向左移动一个点阵行。
10)右移
命令格式: F8
该命令为单字节命令(最大执行时间为12毫秒,Ts2=12mS),其功能为将屏幕向右移动一个点阵行。
3.2.3设计框图
设计输入 功能仿真
设计处理 时序仿真
下载编程 在线测试
3.3、各模块功能描述
液晶显示模块共有四个单元电路组成,分别是:时序发生器、地地址发生器、
存储器、控制器。引脚功能图和内部结构框图分别如图3和图4所示。
6
图2 液晶控制器引脚功能图
图3 液晶控制器内部结构框图
其中:
时钟发生器共有三组时钟输出,分别送给:
地址发生器:使其产生存储器读地址。
存储器:作为输出数据的同步时钟。
控制器:作为控制器的工作时钟及输出信号同步时钟。
地址发生器在时钟信号与BUSY信号的共同作用下,产生存储器所需的地址信息。当BUSY信号有效时(BUSY=‘1’),停止输出地址信号;当液晶模块处于空闲状态(BUSY=‘0’)时,输出地址信号。
控制器用来产生液晶模块所需的STOBE和存储器输出使能信号。当BUSY信号有效时(BUSY=‘1’),关闭存储器的输出;当液晶模块处于空闲状态(BUSY=‘0’)时,分别送出STOBE=‘1’和存储器输出使能信号,等待BUSY变为‘1’。当BUSY=‘1’时,使STOBE=‘0’,数据传送结束。
存储器主要用来存储液晶模块的命令,在同步时钟的作用下,数据同步输出。该存储器
可为ROM型,也可以为RAM型。当为ROM型是,其显示模式及显示数据不可变,即只能显示
固定的信息;为RAM型时,其显示模块及数据可根据需要任意配置,即可显示出更为灵活及
复杂的信息,如实时的波形显示器等。
7
图4 液晶显示模块
VHDL源程序如下:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
USE ieee.std_logic_arith.all;
ENTITY hanzi is
PORT(rest,clk,BUSY: IN std_logic;
REQ : OUT std_logic;
ain : OUT STD_LOGIC_VECTOR (3 downto 0) ;
dout: out std_logic_vector(7 downto 0)
);
END hanzi;
ARCHITECTURE doit OF hanzi IS
signal counter :std_logic_vector(7 downto 0); signal addrbegin:std_logic_vector(7 downto 0); signal addr1: std_logic_vector(7 downto 0); signal addr: std_logic_vector(7 DOWNTO 0); signal DAT : std_logic_vector(7 downto 0); BEGIN
p0:process(ain) begin
case ain is
8
when "0000" => addrbegin<="00000001";
when "0001" => addrbegin<="00000110";
when "0010" => addrbegin<="00001011";
when "0011" => addrbegin<="00010000";
when "0100" => addrbegin<="00010101";
when "0101" => addrbegin<="00010111";
when others => null;
end case;
end process p0;
P1: process(clr,busy)
begin
if(clr='0') then
addr<="00000000";
elsif(busy'event and busy='0') then
addr<=addrbegin+addr1;
end if;
end process P1;
P2: process(clr,busy)
begin
if(clr='0') then
addr1<="00000000";
elsif(busy'event and busy='1') then
if(addr1="00000011") then
addr1<="00000000";
else
9
addr1<=addr1+1;
end if;
end if;
end process P2;
P3: process(busy, clk)
begin
if(busy='1') then
counter<="00000000";
elsif(clk'event and clk='1') then
counter<=counter+1;
end if;
end process P3;
dout<=DAT;
REQ<='1' when counter>="00000100" else
'0';
P4:PROCESS(addr) BEGIN
CASE addr IS
WHEN "00000000" => DAT<="11110100";
WHEN "00000001" => DAT<="11110000";
WHEN "00000010" => DAT<="00001000";
WHEN "00000011" => DAT<="00001000";
WHEN "00000100" => DAT<="00101110";
WHEN "00000101" => DAT<="00110010";
WHEN "00000110" => DAT<="11110011";
WHEN "00000111" => DAT<="00001001";
WHEN "00001000" => DAT<="00001000";
10
WHEN "00001001" => DAT<="00010101";
WHEN "00001010" => DAT<="00100100";
WHEN "00001011" => DAT<="11110011";
WHEN "00001100" => DAT<="00001000";
WHEN "00001101" => DAT<="00001001";
WHEN "00001110" => DAT<="00011111";
WHEN "00001111" => DAT<="00101110";
WHEN "00010000" => DAT<="11110011";
WHEN "00010001" => DAT<="00001001";
WHEN "00010010" => DAT<="00001001";
WHEN "00010011" => DAT<="00010011";
WHEN "00010100" => DAT<="00101100";
WHEN "00010101" => DAT<="11110011";
WHEN "00010011" => DAT<="00001000";
WHEN "00010100" => DAT<="00001010";
WHEN "00010101" => DAT<="00101001";
WHEN "00010110" => DAT<="01001000";
WHEN "00010111" => DAT<="11110011";
WHEN "00011000" => DAT<="00001001";
WHEN "00011001" => DAT<="00001010";
WHEN "00011010" => DAT<="00011100";
WHEN "00011011" => DAT<="00100110";
WHEN OTHERS => DAT<="00000000";
END CASE;
END PROCESS P4;
END doit;
11
3.4、仿真结果
3.5、实验箱验证情况
实验连线:将CLK接时钟模块输出,使其频率为1.25MHZ~2.5MHZ,BUSY接液晶模块的BUSY输入端,REQ接液晶模块的REQ输出端,Q[7..0]分别接液晶模块的DB[7..0]输入端,ain[4..0]接4个拨码开关,rest也接到一个拨码开关上。
4、课程设计总结
通过这次课程设计,我学会了找参考书籍、查阅手册、图表和文献资料等。通过独立思
考,深入钻研有关问题,学会了自己分析解决问题的办法。通过实际电路方案的分析比较、
设计计算、元件选取、安装调试等环节,初步掌握了简单实用电路的分析方法和工程设计方
12
法,基本掌握数字电路的一般设计方法,掌握组合逻辑电路、时序逻辑电路的设计方法,提
高自己的设计和实验能力,为以后从事生产和科研工作打下一定的基础。
通过这次课程设计,我更熟悉掌握了MAX+plusII软件,同时也认识到设计者必须有广泛
的知识基础,缜密的思路以及认真工作的态度,这对我今后的学习和工作都将起到不可忽视
的作用。
通过这次课程设计,使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远
不够的。只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正为社会服
务,从而提高自己的实际动手能力和独立思考能力。
最后要感谢老师和研究生学长对我们课程设计的指导与帮助!!! 5、参考文献
(1)侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计. 西安:西安电子科技大学出版社,1999
(2)求是科技.CPLD/FPGA应用开发技术与工程实践. 北京:人民邮电出版社,2005
(3)罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲. 北京:电子工业出版社,2007
(4)姜雪松,张海风.可编程逻辑器件和EDA设计技术[M].北京:机械工业出版社,2006
13