这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【问题】串行输出数据的问题

共5条 1/1 1 跳转至

【问题】串行输出数据的问题

高工
2012-12-19 19:57:22     打赏
在驱动LCD的时候,需要串行将指令写到LCD的GRAM中。
我使用CASE和Function种方法,好像都不行。
因为这两个块里边的代码都是并行执行的。不能一条指令一条指令地执行。

使用状态机的话,状态好像太多了。要100多个状态,简直无法忍受。

问:有什么好方法,将一些一直的指令,串行输出到IO口上边?
比如指令1、2、3、4、5、6,输出指令1之后,延时一段时间输出指令2,以此类推。
输出指令的时候,还要给便rs、cs之类的控制线。



关键词: 问题     串行     输出     数据    

院士
2012-12-19 20:40:00     打赏
2楼
等等大侠们

高工
2012-12-19 20:52:19     打赏
3楼
延时,执行代码。
我竟然这么写了:
    case(delayms)
        51:                 //延时50ms开始写指令
            begin
                //Write_Cmd
                lcd_cs <= 1'b0;
                lcd_rs <= 1'b0;
                lcd_data <= 16'h0000;
                lcd_wr <= 1'b0;
                lcd_wr <= 1'b1;
                lcd_data <= 16'h0001;
                lcd_wr <= 1'b0;
                lcd_wr <= 1'b1;
                lcd_cs <= 1'b1;
                //Write_Data
                lcd_cs <= 0;
                lcd_rs <= 1;
                lcd_data <= (16'h0100)>>8;
                lcd_wr <= 1'b0;
                lcd_wr <= 1'b1;
                lcd_data <= 16'h0100;
                lcd_wr <= 1'b0;
                lcd_wr <= 1'b1;
                lcd_cs <= 1'b1;
            end
        52:
。。。。。。。
】。,。。。。

后来群里边问了问,发现case里边的代码是并行执行的。阻塞赋值也没有改变并行的结果

高工
2012-12-20 08:42:12     打赏
4楼

阻塞肯定也不能解决你的问题,因为速度太快了,LCD的数据口不支持啊,,跑时序吧。。。状态机。。。好像只能这样


高工
2012-12-20 11:46:56     打赏
5楼
考虑过这个问题。可没想到好方法,先这么试试

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]