24小时热门版块排行榜    

查看: 1377  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +16 爱看书的可乐 2026-08-26 18/900 2026-08-28 15:14 by winsaint
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 系统查不到 +10 董八千 2026-08-26 10/500 2026-08-26 16:30 by Equinoxhua
[基金申请] 2026国自然函评费到账 +22 羊腰板 2026-08-21 25/1250 2026-08-26 15:00 by zuocuiping
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见