资源描述:
《点阵字符型液晶显示器驱动控制电路设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验四点阵字符型液晶显示器驱动控制电路设计(6学时)一、实验目的熟悉Verilog状态机的一般形式,使用状态机控制LCD1602显示器。二、实验内容设计LCD102显示器控制器,实现在LCD屏上显示ASCII字符。三、实验程序显示地址、显示ASCII码分别由SW12-SW8和SW7-SW0设定。显示地址、显示ASCII码分别由SW12-SW8和SW7-SW0设定。modulelcd1602(rs,rw,en,clk,reset,lcd_address,lcd_date_in,lcd_data_out,on,bl
2、on,key);inputclk,reset,key;input[7:0]lcd_date_in;//数据引脚连接input[4:0]lcd_address;output[7:0]lcd_data_out;outputrs,rw,en,on,blon;regrs,rw,en,ret;reg[7:0]lcd_data_out;reg[7:0]state;reg[2:0]count;reg[30:0]counter,t1,t2,t3,t4,m1,m2;//reg[4:0]t1,t2,t3,t4,m1,m2;para
3、metersta1=3'b000,sta2=3'b001,sta3=3'b010,sta4=3'b011,sta5=3'b100;parameter//funset=8'b,//clear=8'b,//完成清屏DDREM=8'b,//8'b,setdate=8'b;assignon=1;assignblon=1;always@(negedgeresetorposedgeclkornegedgekey)beginif(!reset)beginret=0;state<=DDREM;count<=sta1;endel
4、seif(!key)beginif(ret==1)state=DDREM;endelseif(!ret)begin//case(state)//funset://初始化//begincase(count)sta1:beginif(counter==75000)beginlcd_data_out=8'h38;//工作方式设定if(m1!=20)m1=m1+1;elsebeginen=1;if(m2!=20)m2=m2+1;elsebeginen=0;m1=0;m2=0;counter=0;count=sta2;e
5、ndendendelsecounter=counter+1;endsta2:beginlcd_data_out=8'h08;//指令0x08关显示屏if(m1!=75000)m1=m1+1;elsebeginen=1;if(m2!=75000)m2=m2+1;elsebeginen=0;m1=0;m2=0;count=sta3;endendendsta3:beginlcd_data_out=8'b;//完成清屏if(m1!=75000)m1=m1+1;elsebeginen=1;if(m2!=75000)m2=
6、m2+1;elsebeginen=0;m1=0;m2=0;count=sta4;endendendsta4:beginlcd_data_out=8'b;//指令0x06输入方式设置AC+1if(m1!=75000)m1=m1+1;elsebeginen=1;if(m2!=75000)m2=m2+1;elsebeginen=0;m1=0;m2=0;count=sta5;endendendsta5:beginlcd_data_out=8'b;//指令0x0C开显示屏if(m1!=75000)m1=m1+1;else
7、beginen=1;if(m2!=75000)m2=m2+1;elsebeginen=0;m1=0;m2=0;end//count=sta1;state=clear;endendendendcaseif(count==sta5)beginret=1;state=setdate;end//end/*clear://完成清屏beginlcd_data_out=8'b;rs=0;rw=0;if(m1==75000)m1=m1+1;elsebeginen=1;if(m2!=75000)m2=m2+1;elsebegin
8、en=0;m1=0;m2=0;state=DDREM;endendend*/elsebegincase(state)DDREM://写地址beginrs=0;rw=0;lcd_data_out={3'b100,lcd_address[4:0]};//8'h80;//{3'b000,lcd_address[4:0]};//输入地址if(t1!=75000)t1=t1+1;elsebegi