搜索
bottom↓
回复: 0

用过160128dot uc1698driver的人进来看看

[复制链接]

出0入0汤圆

发表于 2013-10-14 16:57:02 | 显示全部楼层 |阅读模式
电路和程序都放上来,大家帮我看看,现在屏还是显示不了数据,只是背光亮了而已。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit bm=P1^0;
sbit cs=P1^1;
sbit cd=P1^2;
sbit rd=P1^3;//WR1
sbit wr=P1^4;//WR0
sbit rst=P1^5;
#define dport P2

void delay_us(uint us)
{
        while(us--);
}

void delay_ms(uint ms)
{
        uchar i;
        while(ms--)
                for(i=0;i<120;i++);
}
//
//void write(bit flag,uchar dat)
//{                   cs=0;
//_nop_();
//                cd=flag;
//                _nop_();
//         rd=0;
//                 wr=0;
//     
//       _nop_();
//     dport=dat;
//     
//     _nop_();
////     _nop_();
//     wr=1;
//         rd=1;
//         _nop_();
//     cd=~flag;
//         _nop_();
//     cs=1;
//
//       
//}

void write(bit flag,uchar dat)
{
        cs=0;
        cd=flag;                                        //flag=1,write command;flag=0,write data
        wr=0;
        rd=1;
        dport=dat;
        wr=1;
}


void lcdscan(uchar dat1,uchar dat2)
{
        uchar i,j;
        write(0,0x60);                        //row address LSB
        write(0,0x70);                        //row address MSB
        write(0,0x00);                        //culomn address LSB
        write(0,0x10);                        //culomn address MSB

        for(j=0;j<160;j++)
        {
                for(i=0;i<40;i++)
                {
                        if(j%2==0)
                        {
                                write(1,dat1);
                                write(1,dat1);
                                write(1,dat1);
                        }
                        else
                        {
                                write(1,dat2);
                                write(1,dat2);
                                write(1,dat2);
                        }               
                }
        }
}

//void init()
//{
//cs=0 ;
///*reset*/
//rst=0;
//delay_ms(2);//power on reset
//rst=1;
//delay_ms(200);
//write(0,0xe2);
//delay_ms(10);    //delay(2000);
//write(0,0x2b);   
//write(0,0xa0);
//           
//write(0,0xeb);    //set bias                        BR[1:0]  111010xx   
//write(0,0xf1);    //set com end                     CEN      11110001
//write(0,0x9f);    //duty=1/160
//write(0,0x81);    //set VLCD value          
//write(0,0x45);    //VLCD=(CV0+Cpm*pm)*(1+(T-25)*CT%)
//write(0,0xc4);    //LCD mapping control LC[2:0]=100
//write(0,0x89);    //set ram address control
//
//write(0,0xd1);    //set color pattern=RGB
//write(0,0xd5);    //set color mode=4k-color
//write(0,0xc8);    //设置不当会有flicker
//write(0,0x18);    //LCMCOMM=0x0018;
//write(0,0xa6);    //inverse display: 0:darkest 15:lightest
////write(0,0xad);  //set ON/OFF display enable
//write(0,0xaf);//set ON/OFF display enable G16        
////set column addr: 0,0
//write(0,0x60);   
//write(0,0x70);   
////set row addr: 0,0
//write(0,0x10);  
//write(0,0x00);
//}

void init(void)
{
        cs=0;

        /*reset*/
        rst=0;
        delay_ms(2);                        //power on reset
        rst=1;
        delay_ms(200);
        write(0,0xe2);                        //reset by command
        delay_ms(2);

        /*power control*/                                       
        write(0,0xe9);                        //Bias Ratio:1/10 bias
        write(0,0x2b);                        //power control set as internal power
        write(0,0x24);                        //set temperate compensation as 0%
        write(0,0x81);                        //electronic potentionmeter
        write(0,198);       

        /*display control*/
        write(0,0xa4);                        //all pixel off
        write(0,0xa6);                        //inverse display off

        /*lcd control*/
        write(0,0xc0);                        //19:partial display and MX disable,MY enable
        write(0,0xa3);                        //line rate 15.2klps
        write(0,0xd1);                        //rgb-rgb
        write(0,0xd5);                        //4k color mode
        write(0,0x84);                        //12:partial display control disable


        /*n-line inversion*/
        write(0,0xc8);
        write(0,0x10);                        //enable NIV

        /*com scan fuction*/
        write(0,0xda);                        //enable FRC,PWM,LRM sequence

        /*window*/
        write(0,0xf4);                        //wpc0:column
        write(0,0x25);                        //start from 130
        write(0,0xf6);                        //wpc1
        write(0,0x5A);                        //end:272

        write(0,0xf5);                        //wpp0:row
        write(0,0x00);                        //start from 0
        write(0,0xf7);                        //wpp1
        write(0,0x9F);                        //end 160

        write(0,0xf8);                        //inside mode

        write(0,0x89);                        //RAM control

        write(0,0xad);                        //display on,select on/off mode.Green Enhance mode disable
       
        /*scroll line*/
        write(0,0x40);                        //low bit of scroll line
        write(0,0x50);                        //high bit of scroll line
        write(0,0xc4);                        //19,enable FLT and FLB
        write(0,0x90);                        //14:FLT,FLB set
        write(0,0x00);

        /*partial display*/
        write(0,0x84);                        //12,set partial display control:off
        write(0,0xf1);                        //com end
        write(0,0x9f);                        //160
        write(0,0xf2);                        //display start
        write(0,0);                                //0
        write(0,0xf3);                        //display end
        write(0,159);                        //160
}


void main()
{
        bm=0;
        rst=1;
        delay_us(10);
        init();       
        while(1)
        {
//                write(0,0x84);
                lcdscan(0xf0,0x0f);
                delay_ms(1000);

               
                write(0xff,0xff);                                //all pixel on
                delay_ms(1500);

                lcdscan(0xff,0x00);                                //横线
                delay_ms(1000);
                write(0,0x41);                                        //scroll 1 line
                delay_ms(1300);
                write(0,0x40);                                        //no scroll

                lcdscan(0x0f,0x0f);                                //竖线
                delay_ms(1000);
                write(0,0xa7);                                        //inverse display
                delay_ms(1500);
                write(0,0xa6);
        }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表