24小时热门版块排行榜    

查看: 1386  |  回复: 7

yushasha11

金虫 (著名写手)

[求助] 求助:320240液晶屏的驱动!

最近在做320240液晶屏的驱动,用PIC18单片机,始终清不了屏,好像除了复位都不好用呀。我在网上下了两个C的程序,移植到PIC上都不好用。总线端口的数据是对的,所以分析是没有写到寄存器里面。而且无论程序怎么变化,都是显示各种横条纹,和几个竖条纹,一条一条的变化,不能按点动。希望有调此类型液晶屏的高手们,帮帮小女子吧。部分程序贴出来,可以QQ我,加好友时写明PIC或液晶屏都行。小女子在此多谢了,如有帮助,另送金币100。
程序中的SystemSet等指令代码在程序最前面已经定义,贴太长了怕不容易看。需要的话可以贴出。
void LCD_initial()  //液晶初始化
{
        unsigned char i;
        TRISF=0x00;                             //用到的端口设为输出状态
        TRISCbits.TRISC2 = 0;              //A0_dr
        TRISEbits.TRISE1 = 0;        //WR_dr
        TRISEbits.TRISE0 = 0;        //RD_dr
        TRISAbits.TRISA1 = 0;        //RES_dr
        TRISAbits.TRISA0 = 0;        //SEL_dr
        TRISEbits.TRISE5 = 0;              //选8080时序
        PORTEbits.RE5 = 0;
        delay(60);                             //上机延时一会儿 60对应250us
                 RES_dr = 1;
            delay(60);
            RES_dr = 0;                             //复位
            delay(60);
            RES_dr = 1;
            delay(60);

        write_cmd( SystemSet );                     //硬件初始化SystemSet
            for (i=0;i<8;i++)
        {
                write_data( code_ParaSysTable8 );
            }

            write_cmd( Scroll );
            for (i=0;i<10;i++)
            {
                write_data( code_ParaScrTable10 );
            }
            write_cmd( HdotScr );   //点位移量设置
            write_data( 0x00 );                //不移动
           write_cmd( Ovlay );                //显示合成设置
            write_data( 0x00 );                //二重合成
         write_cmd(DispOff);              //显示状态关闭
         write_data(0x57);                 
        screen_clear(0);          //液晶清屏,32KB RAM 清零
        write_cmd(DispOn);    //显示状态开启
         write_data(0x54);      //
}

void screen_clear(uchar part)      //清屏子函数
{
        uint i = 10240;       //10240 = 0x2800  10KB RAM
        write_cmd(CsrW);      //写入光标地址
        write_data(0x00);      //先写低八位
         write_data(0x00);      //高八位
        write_cmd(CsrDirR);   //光标向右方向移动
      if(part == 1) write_data(0x00);     //显示区1
else if(part == 2) write_data(BasePart2);//显示区2
else if(part == 3) write_data(BasePart3);//显示区3
else if(part == 4) write_data(BasePart4);//显示区4
else {i = 32768;   write_data(0x00);}    //所有显示区 32KB RAM
        write_cmd(mWrite);    //显示数据写入
         while(i--)
        {
        write_data(0x00);                   //写入0
        }
}

void write_cmd(unsigned char cmdcode)   //写指令
{
         CS_dr = 0;
         A0_dr = 1;    //指令
         RD_dr = 1;
         databus = cmdcode;
         WR_dr = 0;
         WR_dr = 1;  
         CS_dr = 1;
         databus =0xff;
}

void write_data(unsigned char Di_drspdata)     //写数据
{
         CS_dr = 0;
         A0_dr = 0;    //数据  
         RD_dr = 1;  
         databus = Di_drspdata;
         WR_dr = 0;
         WR_dr = 1;
         CS_dr = 1;
         databus =0xff;
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mvpyqz

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
你的液晶清屏的时候不用先写清屏寄存器地址,再写清屏指令吗?

[ 发自手机版 http://muchong.com/3g ]

» 本帖已获得的红花(最新10朵)

2楼2013-09-27 10:17:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yushasha11

金虫 (著名写手)

送红花一朵
引用回帖:
2楼: Originally posted by mvpyqz at 2013-09-27 10:17:17
你的液晶清屏的时候不用先写清屏寄存器地址,再写清屏指令吗?

你帮我看看,下面这几句算不算是呀
           write_cmd(CsrW);      //写入光标地址
        write_data(0x00);      //先写低八位
        write_data(0x00);      //高八位
3楼2013-09-27 13:53:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mvpyqz

至尊木虫 (知名作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2013-09-29 09:57:26
哦,是这几句。你的液晶驱动器清屏的指令寄存器是这个程序中的csrw指代值不?还有向这个指令寄存器输入0x0000是表示清屏吗?还有这个时序控制,高低电平有效等等都是你的液晶驱动器那样的时序不?这些你再看看使用说明书,确认一下!

[ 发自手机版 http://muchong.com/3g ]
4楼2013-09-27 15:01:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yushasha11

金虫 (著名写手)

引用回帖:
4楼: Originally posted by mvpyqz at 2013-09-27 15:01:19
哦,是这几句。你的液晶驱动器清屏的指令寄存器是这个程序中的csrw指代值不?还有向这个指令寄存器输入0x0000是表示清屏吗?还有这个时序控制,高低电平有效等等都是你的液晶驱动器那样的时序不?这些你再看看使用说 ...

CSRW的指令名称是光标地址设置,有CSRL和CSRH共16位。mWrite,是显示数据写入指令。该指令写入后允许MPU连续地向显示存储器内写入数据。写入的单元地址由光标指针CSR提供,写操作完成后光标指针自动根据所设置的光标指针移动方向进行修改。write_cmd(CsrDirR);   //光标向右方向移动
关于时序问题,我有个挺大的疑问,我选择的是8080时序,上面对时间的要求都是最低不少于多少ns,但是我的单片机最少一条指令走下去也要远大于它规定的值,所以我没有按照时序图,把每一个时间设置在要求的值那儿。
谢谢你,至少帮我打开了些思路!
5楼2013-09-27 16:02:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mvpyqz

至尊木虫 (知名作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2013-09-29 09:57:37
引用回帖:
5楼: Originally posted by yushasha11 at 2013-09-27 16:02:36
CSRW的指令名称是光标地址设置,有CSRL和CSRH共16位。mWrite,是显示数据写入指令。该指令写入后允许MPU连续地向显示存储器内写入数据。写入的单元地址由光标指针CSR提供,写操作完成后光标指针自动根据所设置的光标 ...

不用把时间设置在它的那个值,只要不小于它的最小值就行的

[ 发自手机版 http://muchong.com/3g ]
6楼2013-09-27 16:34:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yushasha11

金虫 (著名写手)

引用回帖:
6楼: Originally posted by mvpyqz at 2013-09-27 16:34:46
不用把时间设置在它的那个值,只要不小于它的最小值就行的
...

嗯,我没法对我的单片机进行小于1us的操作,所以只能大于它的最小值了,而且是远大于
7楼2013-09-29 09:35:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

blackbird08

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by yushasha11 at 2013-09-29 09:35:35
嗯,我没法对我的单片机进行小于1us的操作,所以只能大于它的最小值了,而且是远大于...

问题解决了吗?我现在遇到的和你现象一样,实在是没头绪了啊...
生活向前冲
8楼2014-04-01 16:13:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yushasha11 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:51 by jCd0dEvKHShX
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:50 by jCd0dEvKHShX
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 ASdOkHsho7FD 2026-08-28 5/250 2026-08-29 11:49 by jCd0dEvKHShX
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +5 ASdOkHsho7FD 2026-08-28 8/400 2026-08-29 11:39 by jCd0dEvKHShX
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 ASdOkHsho7FD 2026-08-28 8/400 2026-08-29 11:17 by jCd0dEvKHShX
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 9/450 2026-08-29 09:59 by jklily
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 有没有仍没收到信息的 +3 德尚中行 2026-08-27 3/150 2026-08-28 15:24 by rongshuxia
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见