fpga5110Word文件下载.docx
- 文档编号:22863438
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:18
- 大小:18.28KB
fpga5110Word文件下载.docx
《fpga5110Word文件下载.docx》由会员分享,可在线阅读,更多相关《fpga5110Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
parameterclk_h=2'
d1;
parameterclk_rising_edge=2'
d2;
parameterclk_falling_edge=2'
d3;
parameteridle=4'
//状态机2的初始状态
parametershift_data=4'
parametershift_data1=4'
parameterclear_screen=43'
parameterset_xy=4'
d4;
parameterdisp_char=4'
d5;
parameterset_xy2=4'
d6;
parameterdisp_char2=4'
d7;
parameterset_xy3=4'
d8;
0]data_reg;
//数据寄存器
0]cnt2;
//串行传输data_reg时的移位计数器
reg[15:
0]cnt3;
//状态机2的运行步骤计数器,25步reg[4:
reg[8:
0]cnt4;
//显示位置计数器
reg[6:
0]char_reg;
//字符寄存器
reg[2:
0]y_reg;
//y坐标寄存器,Y:
0~5(3’b101)
0]x_reg;
//x坐标寄存器,X:
0~83(7'
b1010011)
reg[0:
255]men[5:
0];
//字符库,为menory变量,第一个[每个存储单元深度],第二个[存储器的深度]
255]temp;
//字符暂存寄存器
parameterONN=1'
b0;
parameterOFF=1'
b1;
parameterCMD=1'
parameterDATA=1'
//-----字符库,每个字符占8行6列-----
initial
begin
//空白
men[0]={8'
h00,8'
h00,
8'
h00};
/*--文字:
力反宋体12--现调整为:
宽度x高度=16x16*/
men[1]={8'
hFF,8'
hEF,8'
hEF,
h0F,8'
hFF,
h7F,8'
hBF,8'
hDF,8'
hE7,8'
hF9,8'
hFE,8'
hC0,8'
hFF};
虎宋体12--现调整为:
men[2]={8'
hF8,8'
h08,8'
h48,8'
h4A,8'
h2A,8'
h0A,8'
hCA,8'
h18,8'
h80,8'
h60,8'
h1F,8'
h40,8'
h20,8'
h1C,8'
h04,
h05,8'
h7D,8'
h81,8'
hE0,8'
men[3]={8'
雄楷体12--现调整为:
宽度x高度=16x16-*/
men[4]={8'
hFC,8'
hBC,8'
hA0,8'
hE0,
h4C,8'
h10,8'
h2C,
h15,8'
h1A,8'
起楷体12--现调整为:
men[5]={8'
hA0,
hB0,8'
hF0,8'
h21,8'
h31,8'
h3F,8'
h34,
h37,8'
h2F,8'
h6C,8'
h66,8'
h24,8'
h20};
//men[0]={8'
h00,8'
h42,8'
hFE};
//0sp
//men[1]={8'
h42,8'
//1!
//men[2]={8'
h0F};
//3#
//men[3]={8'
//4$
end
//-----
assignlcd_sclk=clk;
//slck:
5110的同步时针输入=分频时钟
assignlcd_rst=1;
//lcd_rst:
5110的复位信号输出,低电平进行复位
//-----时钟分频-----
always@(posedgesys_clk)
begin
if(!
reset)cnt<
=0;
//rest=0,进行时钟复位
else
cnt<
=cnt+1;
if(cnt==49)cnt<
//50*20ns=1000ns=1us,产生频率为1Mhz的时钟
if(cnt<
25)clk<
//占空比调整50%
elseclk<
=1;
end
//-----切换状态机1:
模拟clk的状态-----
reset)
p<
=clk_l;
//状态机p1=clk_l=2'
d0=0
case(p)
clk_l:
if(clk)p<
=clk_rising_edge;
//clk为高电平,p变成上升沿
elsep<
//clk为低电平,p变成低电平
clk_rising_edge:
p<
=clk_h;
//p在上升沿后变成高电平
clk_h:
clk)p<
=clk_falling_edge;
//clk为低电平,p变成下降沿
//clk为高电平,p变成高电平
clk_falling_edge:
//p在下降沿后变成低电平
default;
endcase;
//-----切换状态机2-----
always@(posedgesys_clk)
p2<
=idle;
//idle=3'
lcd_sce<
=OFF;
//OFF=1'
lcd_sce:
片选信号,低电平,该芯片工作
cnt3<
//cnt3:
16位的状态计数器
case(p2)
//-----------------------------------------------
idle:
//p2为idle状态
=cnt3+1;
case(cnt3)
//-----data_reg:
8位数据寄存器---lcd_dc:
数据命令切换脚---状态机2的状态------状态返回
0:
begindata_reg<
=8'
h21;
//8'
b0010_0001表示命令集的功能设置,
//第2位PD=0,芯片是活动的;
PD=1芯片处于掉电模式;
//第1位V=0,水平寻址;
V=1垂直寻址模式
//第0位H=1,使用扩展指令集;
H=0使用基本指令集
lcd_dc<
=CMD;
=shift_data;
p_back<
1:
hc8;
b1100_1000设置液晶偏置电压V_op寄存器
//V_op6=1V_op5=0V_op4=0V_op3=1V_op2=0V_op1=0V_op0=0
2:
h06;
b0000_0110温度控制,温度校正
//第1位TC_1=1
//第0位TC_0=0整个表示选用温度系数2
3:
h13;
//8‘b0001_0011设置偏置系统
//第2为BS_2=0第1位BS_1=1第0位BD_0=1;
4:
h20;
b0010_0000表示命令集的功能设置
//第0位H=0,使用扩展指令集;
5:
beginp2<
=clear_screen;
//p2状态由shift_data换成clear_screen
6:
h0c;
b0000_1100设定显示模式,正常显示
//第2位D=1,
//第0位E=0,DE=01表示普通模式
//-----设置显示坐标-----
7:
=set_xy;
//p2状态变成set_xy
//返回状态也变成set_xy
y_reg<
//y坐标为0(范围为0-5)
x_reg<
//x坐标为2(范围为0-83)
//-----显示字符-----
8:
=disp_char;
//p2状态变成显示字符
char_reg<
=4;
//雄
9:
10:
=3;
//黑块
11:
//力
12:
=2;
13:
14:
15:
//空格
16:
=5;
//起
17:
18:
=32;
19:
20:
begincnt3<
=20;
//执行完后,在这进行停止
//------------------------------------------------
shift_data:
//p2为传输数据状态
if(p==clk_falling_edge)//在下降沿进行数据传输
if(cnt2==8)
cnt2<
=p_back;
=shift_data1;
=ONN;
lcd_sdin<
=data_reg[7];
//将数据寄存器的最高位发送
shift_data1:
if(p==clk_rising_edge)//上升沿数据进行移位
data_reg<
={data_reg[6:
0],data_reg[7]};
//进行数据高位移位
=cnt2+1;
elsep2<
//-------------------------------------------------
clear_screen:
//清屏
h00;
cnt4<
=cnt4+1;
=DATA;
if(cnt4==504)//6行*84列=504
set_xy:
//设置X,y方向坐标
case(cnt4)
begindata_reg<
=(8'
b0100_0000|y_reg);
b1000_0000|x_reg);
beginp2<
disp_char:
//字符从字符库读入
if(cnt4==16)//需要修改
=set_xy2;
=y_reg+1;
temp=men[char_reg];
0:
data_reg<
=temp[0:
7];
1:
=temp[8:
15];
2:
=temp[16:
23];
3:
=temp[24:
31];
4:
=temp[32:
39];
5:
=temp[40:
47];
6:
=temp[48:
55];
7:
=temp[56:
63];
8:
=temp[64:
71];
9:
=temp[72:
79];
=temp[80:
87];
=temp[88:
95];
=temp[96:
103];
=temp[104:
111];
=temp[112:
119];
=temp[120:
127];
set_xy2:
=disp_char2;
//--------------------------------------------------
disp_char2:
if(cnt4==16)
=set_xy3;
=y_reg-1;
=x_reg+16;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fpga5110