24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1103  |  回复: 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的回帖

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的回帖
查看全部 8 个回答

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085404 22408 309分求调剂 +7 lzmk 2026-04-14 7/350 2026-04-14 17:02 by lihaoda1994
[考研] 297,工科调剂?河南农业大学本科 +9 河南农业大学-能 2026-04-14 9/450 2026-04-14 16:03 by Art1977
[教师之家] 转长聘了 +7 简单化xn 2026-04-13 7/350 2026-04-14 14:50 by xindong
[考研] 305求调剂 +8 玛卡巴卡boom 2026-04-11 8/400 2026-04-14 09:04 by pengliang8036
[考研] 310求调剂 +15 666真好 2026-04-11 17/850 2026-04-13 22:27 by pies112
[基金申请] 有爆料,一个青年教师卖房得400万,然后换了一个四青帽子 +11 babu2015 2026-04-08 11/550 2026-04-13 16:33 by probebill
[考研] 297工科,求调剂? +13 河南农业大学-能 2026-04-12 13/650 2026-04-13 14:12 by dingyanbo1
[考研] 本科南方医科大学 一志愿985 药学学硕284分 求调剂 +5 弱水听文 2026-04-09 5/250 2026-04-12 13:16 by shengxi123
[考研] 291求调剂 +8 关忆北. 2026-04-11 8/400 2026-04-12 09:32 by 逆水乘风
[考研] 0860004 求调剂 309分 +9 Yin DY 2026-04-08 9/450 2026-04-11 22:55 by dongdian1
[考研] 284求调剂 +11 archer.. 2026-04-09 12/600 2026-04-11 20:23 by 蓝云思雨
[考研] 求调剂,一志愿大连理工大学354分 +5 雨声余生 2026-04-11 6/300 2026-04-11 16:12 by 雨声余生
[考研] 284求调剂 +12 archer.. 2026-04-10 13/650 2026-04-11 08:44 by zhq0425
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 368求调剂 +3 17385968172 2026-04-10 3/150 2026-04-10 20:12 by 电子奥德彪
[考研] 计算机类求调剂,22408-274分 +7 上岸de小虫 2026-04-09 8/400 2026-04-10 19:56 by fxue1114
[考研] 314求调剂 +18 xhhdjdjsjks 2026-04-09 19/950 2026-04-10 18:53 by HPUCZ
[考研] 一志愿中南大学物理学,英一66,求调剂 +4 长烟旖旎 2026-04-08 5/250 2026-04-10 10:31 by 颖果儿
[考研] 332,085601求调剂 +12 ydfyh 2026-04-09 14/700 2026-04-09 17:28 by wp06
[考研] 生物学328分求调剂 +9 闪电kkl 2026-04-08 10/500 2026-04-08 21:42 by liuhuiying09
信息提示
请填处理意见