天玺体育最火网上大全

登录 免费注册 天玺体育最火网上大全 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

max7160控制lcd,鲜新大出炉

作者:吴明诗 栏目:EDA技术
max7160控制lcd,鲜新大出炉
刚作的,大家看看吧,高手给个意见。我是个穷学生,没有钱买好的液晶,翻箱倒柜,找了个坏的,不过能凑和着看。本来我想用29F040存一部小说的(可以存1万6千多个16*16点阵),可是没有钱买编程器。为了给大家,看看效果,我直接把0,1位接地。本来,一般液晶的话,应该每隔八行有两个空行,可是这块液晶,估计y计数器自加的方式和别的不一样吧。大家看完图再说吧
7160的工作顺序是:首先给lcd一个复位信号,关显示,写x地址,写显示数据,如果数据全部写完,开显示。当然在这些过程中,有判断,确定lcd是否忙。

2楼: >>参与讨论
吴明诗
下几张传不上来了
 
3楼: >>参与讨论
yorktang
不错呀,佩服!
不错呀,好象放在床上照下来的,呵呵。
不过为什么要用它来控制LCD呢,51的MCU不是很便宜吗?如果是学习当然就另当别论哦
不知你是哪的,我是成都的,如果方便的话可以用我们单位的帮你写FLASH

4楼: >>参与讨论
吴明诗
我是作玩的,51谁都会。我在宿舍里照的,济南的
 
5楼: >>参与讨论
吴明诗
有没有人要源程序。作为贴图失败的补偿
 
6楼: >>参与讨论
吴明诗
把源程序贴上吧,给刚学verlog的新手。谁说verlog和原理图差不多
MODULE lcdcontrol(DB,clk,CS1,CS2,DI,RW,rst,oe,addrout,datempu,E,rst1);
input clk,rst,oe;
inout [7:0]DB;  
input [7:0]datempu;
OUTPUT [18:0]addrout;
OUTPUT CS1,CS2,DI,RW,E,rst1;
reg CS1,CS2,DI,RW,E,rw,rst1;
reg  [3:0]counter;
reg  [8:0]rcounter;
reg  [7:0]ioreg;
reg  [18:0]addr;
reg   date_rel;
reg   [7:0]out_reg;
reg   [4:0]state;
reg   [4:0]nextstate;
parameter start0=5'b01101;

parameter start=5'b00101;
parameter read=5'b00001;
parameter read2=5'b00011;
parameter judge=5'b00111;
parameter command=5'b10111;
parameter out=5'b11111;
parameter out1=5'b11110;
parameter date=5'b11100;
parameter date1=5'b11000;
parameter date2=5'b10000;
parameter date3=5'b10001;
parameter date4=5'b10011;
parameter wait1=5'b00000;
parameter wait2=5'b10101;
parameter com2=5'b01111;
always@(posedge clk)
begin
counter<=counter+1;
end

always@(posedge counter[3])
begin
if(rst)
begin
addr<=0;
DI<=0;
RW<=0;
E<=0;
rw<=1;
rst1<=0;
rcounter<=0;
state<=start0;
nextstate<=command;
end
else if(!rst)
begin
case(state)
start0:begin
       if(rcounter<=9'd500)
       begin
       rcounter<=rcounter+1;
       rst1<=0;
       state<=state;
       end
       else if(rcounter>9'd500)
       begin
       rcounter<=0;
       state<=start;
       rst1<=1;
       end
       end

start:
      begin
      E<=0;
      state<=read;
      end
read:
      begin
      E<=1;
      DI<=0;
      RW<=1;
      rw<=1;
      state<=read2;
      end
read2:
      begin
      ioreg<=DB;
      state<=judge;
      end
judge:
      begin
      E<=0;
      if(ioreg[7]==0)
      begin
      state<=nextstate;
      end
      else if(ioreg[7]==1)
      begin
      state<=read;
      end
      end
command:
      begin
      RW<=0;
      date_rel<=0;
      out_reg<=8'b00111110;
      nextstate<=date;
      state<=out;
      end
com2:
      begin
      RW<=0;
      out_reg<=8'b00111111;
      date_rel<=0;
      
      state<=out;
      end
out:  
      begin
      E<=1;
      rw<=0;
      if(date_rel!=1)
      begin
      DI<=0;
      end
      else if(date_rel==1)
      begin
      DI<=1;
      end
      state<=out1;
      end
out1:
      begin
      E<=0;
      state<=read;
      end
date:
      begin
      RW<=0;
      date_rel<=0;
      out_reg<={5'b10111,addr[2:0]};                     
      state<=date1;
      end
date1:
      begin
      
      nextstate<=date2;
      state<=out;
      end
date2:
      begin
      RW<=0;
      out_reg<=datempu;
      date_rel<=1;
      state<=date3;
      end
date3:
      begin
      addr<=addr+1;
      state<=out;
      nextstate<=date4;
      if(addr[9:3]<=7'd63)
      begin
      CS1<=1;
      CS2<=0;
      end
      else
      begin
      CS1<=0;
      CS2<=1;
      end
      end
date4:
      begin
      if(addr[9:0]==0)
      begin
      state<=com2;
      nextstate<=wait1;
      end
      else
      begin
      state<=date;
      end
      end

wait1:
      begin
      if(!oe)
      begin
      state<=state;
      end
      else if(oe)
      begin
      state<=wait2;
      end
      end
wait2:
      begin
      if(!oe)
      begin
&
7楼: >>参与讨论
yorktang
吴明诗,能推荐一本verlog方面的书吗?
能推荐一本Verlog方面的书吗?如果有电子书就更好了,看起来方便!我现在准备学一种HDL,但在选择上还没定下来,不知VHDL与Verlog谁更适合,换句话说不清楚它们的特点?

8楼: >>参与讨论
吴明诗
如何给你
 
9楼: >>参与讨论
吴明诗
建议你上www.edacn.net,有不少你用得到的东西
 
10楼: >>参与讨论
吴明诗
有些问题说明一下
在复位中,加入CS1<=1;CS2<=0;
date进程中,addr[2:0]改为addr[9:7]
date3进程中,addr[9:3]改为addr[6:0]
当时没注意到这是个备份的,这样该过后就对了。
command是关显示,com2是开显示,date是x地址,date2是显示数据。wait是等待一下降沿,写入新的显示数据。
dateaddr实地址输出,datempu是数据输入。rst1是液晶复位,oe是wait中等待的信号。
                    

11楼: >>参与讨论
hqgboy
没原理图???
 
12楼: >>参与讨论
吴明诗
不用原理图,相应的线接起来就行了。
 
13楼: >>参与讨论
mustcan
给楼主顶一下
顺便说一下,你的毛巾被该洗了,^_^

14楼: >>参与讨论
xjg1111
re
CPLD容量有限,可以用FPGA玩玩,
加几个键盘,弄个小游戏进去,岂不更爽!

15楼: >>参与讨论
hqgboy
玩键盘、数码管、LCD,CPLD足以。。。不要用MAXPLUS,那是玩具。
 
16楼: >>参与讨论
吴明诗
mustcan 谢谢,有没有空帮我洗?
考研了时间不是很够呀!不知hqgboy大侠说的是什么意思?"不要用MAXPLUS,那是玩具."指的是什么?


17楼: >>参与讨论
hqgboy
如果用ALTERA的芯片,就直接学QUARTUS吧。
在MAXPLUS中编译通过的,再QUARTUS可能不行,QUA设置更强。

18楼: >>参与讨论
吴明诗
哥哥,我还以为你说的是什么呢。
我一直就用quartus,maxplus综合能力太差了

19楼: >>参与讨论
hy_zhangwang
不错!
现在就开始动手实践,今后竞争力会有优势!

参与讨论
昵称:
讨论内容:
 
 
相关帖子
请推荐支持PALCE16V8 的编程、下载软件,谢谢
VHDL 中如何求变量的倒数?
求助:谁能给个用Verilog编的ADC控制信号的程序?
怎样用CPLD或FPGA实现4个82C54的功能
要编控制6264的fpga程序


Copyright © 1998-2006 lahealthsma.com 浙ICP证030469号