24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1107  |  回复: 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的回帖

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的回帖
查看全部 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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 接受任何调剂 +4 也就是栗子 2026-04-17 4/200 2026-04-17 17:57 by Equinoxhua
[考研] 279求调剂 +13 张番茄不炒蛋 2026-04-11 13/650 2026-04-17 10:38 by cuisz
[考研] 材料相关专业344求调剂双非工科学校或课题组 +23 hualkop 2026-04-12 25/1250 2026-04-16 22:12 by SUSE_CL
[考研] 291求调剂 +11 关忆北. 2026-04-14 11/550 2026-04-16 15:18 by jiahl2024
[考研] 289 分105500药学专硕求调剂(找B区学校) +4 白云123456789 2026-04-13 4/200 2026-04-16 00:18 by 粉沁若尘
[考研] 求调剂 +11 小聂爱学习 2026-04-11 15/750 2026-04-15 21:57 by noqvsozv
[考研] 生物学调剂 +9 纸扇zhishan 2026-04-13 9/450 2026-04-15 18:28 by AN流800
[考研] 085801电气专硕272求调剂 +19 电气李 2026-04-13 21/1050 2026-04-15 13:37 by 黑科技矿业
[考研] 药学305求调剂 +7 玛卡巴卡boom 2026-04-11 7/350 2026-04-15 13:21 by 西北望—风沙
[考研] 材料工程281还有调剂机会吗 +43 xaw. 2026-04-11 44/2200 2026-04-15 12:46 by 西北望—风沙
[考研] 考研调剂 +13 长弓傲 2026-04-13 14/700 2026-04-14 14:44 by zs92450
[考研] 085408光电信息工程专硕355一志愿长春光机所调剂 +6 王ymaa 2026-04-13 13/650 2026-04-14 11:33 by 王ymaa
[考研] 245求调剂 +6 冰糖橘?汽水 2026-04-13 10/500 2026-04-14 10:49 by jyl0317
[考研] 085600材料与化工349分求调剂 +16 李木子啊哈哈 2026-04-12 17/850 2026-04-14 09:11 by fenglj492
[考研] 考研求调剂 +12 子木呐 2026-04-12 13/650 2026-04-14 01:19 by 王珺璞
[考研] B区0809 ,数一英一,290 求调剂 +3 泠潍1111 2026-04-12 4/200 2026-04-13 20:35 by 学员JpLReM
[考研] +10 李多米lee. 2026-04-12 11/550 2026-04-12 22:58 by yuyin1233
[考研] 291求调剂 +8 关忆北. 2026-04-11 8/400 2026-04-12 09:32 by 逆水乘风
[考研] 求调剂,一志愿材料科学与工程985,365分, +8 材化李可 2026-04-11 10/500 2026-04-12 08:42 by 852137818
[考研] 一志愿厦大0856,306求调剂 +15 Bblinging 2026-04-11 15/750 2026-04-11 22:53 by 314126402
信息提示
请填处理意见