搜索
bottom↓
回复: 9

驱动12864出了点情况....

[复制链接]

出0入0汤圆

发表于 2012-11-27 15:42:51 | 显示全部楼层 |阅读模式
本帖最后由 STM32不完全手册 于 2012-11-27 15:44 编辑

今天弄到了了一块JM12864M,老师说是N年前花100多买的,绝对好用
结果在网上DOWN了一段代码更改了一下...一小天了,还没驱动起来,对照了数据手册,也没找到哪里不对劲...

我的两份原厂的参考资料........

和一张12864靓照.......谢谢万能的坛友帮忙,求点播



#include "reg52.h"
#include "intrins.h"
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit CS = P1^2 ;

#define io_LCD12864_DATAPORT P3
#define SET_DATA RS = 1 ;
#define CLR_INC RS = 0 ;
#define SET_READ RW = 1 ;
#define CLR_WRITE RW = 0 ;
#define SET_EN CS = 1 ;
#define CLR_EN CS = 0 ;


void v_Lcd12864PutString_f( unsigned char x, unsigned char y, unsigned char *pData );
void v_Lcd12864CheckBusy_f( void ) ;
void v_Lcd12864SendData_f( unsigned char byData ) ;
void v_Lcd12864SendCmd_f( unsigned char byCmd ) ;
void v_DelayMs_f( unsigned int nDelay ) ;
void v_Lcd12864Init_f( void ) ;
void v_Lcd12864SetAddress_f( unsigned char x, y ) ;
void delay( unsigned int nDelay )  ;


void main( void )
{
        v_Lcd12864Init_f() ;
        v_Lcd12864PutString_f( 0,1, "★☆12864") ;
        while( 1 ) ;
}

void v_Lcd12864PutString_f( unsigned char x, unsigned char y, unsigned char *pData )
{
        v_Lcd12864SetAddress_f( x, y ) ;
        while( *pData != '\0' )
                {
                        v_Lcd12864SendData_f( *pData++ ) ;
                }
}
void v_Lcd12864CheckBusy_f( void )
{
        unsigned int nTimeOut = 0 ;
        CLR_INC       
        SET_READ
        CLR_EN                 
        SET_EN
        while( ( io_LCD12864_DATAPORT & 0x80 ) && ( ++nTimeOut != 0 ) ) ;
        CLR_EN
        CLR_INC
        SET_READ
}
void v_Lcd12864SendCmd_f( unsigned char byCmd )
{
        v_Lcd12864CheckBusy_f() ;
        CLR_INC
        CLR_WRITE
        SET_EN
        io_LCD12864_DATAPORT = byCmd ;
        CLR_EN

}
void v_Lcd12864SendData_f( unsigned char byData )
{
        v_Lcd12864CheckBusy_f() ;
        SET_DATA
        CLR_WRITE
        SET_EN
        io_LCD12864_DATAPORT = byData ;
        CLR_EN

}
void delay( unsigned int nDelay )  //89us
{
        unsigned int i ;
        for( ; nDelay > 0 ; nDelay-- )
        {
                for( i = 9 ; i > 0 ; i-- ) ;
        }
}
void v_DelayMs_f( unsigned int nDelay )
{
        unsigned int i ;
        for( ; nDelay > 0 ; nDelay-- )
        {
                for( i = 125 ; i > 0 ; i-- ) ;
        }
}

void v_Lcd12864Init_f( void ) //初始化
{
        v_Lcd12864SendCmd_f(0x30) ;
        delay(1);
        v_Lcd12864SendCmd_f(0x0c) ;
        delay(1);
        v_Lcd12864SendCmd_f(0x01);
        v_DelayMs_f(6) ;
        v_Lcd12864SendCmd_f(0x02);
        v_DelayMs_f(6) ;
        v_Lcd12864SendCmd_f(0x06);
        delay(1);
        v_Lcd12864SendCmd_f(0x0c);
        delay(1);
}

void v_Lcd12864SetAddress_f( unsigned char x, y )
{
        unsigned char byAddress ;
        switch( y )
        {
        case 0 : byAddress = 0x80 + x ;
        break;
        case 1 : byAddress = 0x90 + x ;
        break ;
        case 2 : byAddress = 0x88 + x ;
        break ;
        case 3 : byAddress = 0x98 + x ;
        break ;
        default :
        break ;
        }
        v_Lcd12864SendCmd_f( byAddress ) ;
}

本帖子中包含更多资源

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

x

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2012-11-27 15:58:42 | 显示全部楼层
superAFE 发表于 2012-11-27 15:55
怎么有些人老是喜欢下载代码来烧进去实现的,话说我从来搞这些底层的东西从来都是手动一条一条语句码出来的 ...

的确是个烂习惯,感觉有些时候也挺没抓手的,所以就copy了一段

出0入0汤圆

发表于 2012-11-27 16:18:20 | 显示全部楼层
感觉12864不是很难的,但就是不能很好的理解。

出0入0汤圆

发表于 2012-11-27 16:32:10 | 显示全部楼层
看看对比度有没有问题

出0入0汤圆

 楼主| 发表于 2012-11-27 16:39:57 | 显示全部楼层
gao_hailong 发表于 2012-11-27 16:32
看看对比度有没有问题

这个12864的18脚为NC 我在3脚接的是50K的电阻,拧到头之后可以看见黑格,但不太清晰。对比度只能调成这样了

出0入0汤圆

发表于 2012-11-27 16:58:09 | 显示全部楼层
会不会硬件接错了,不应该这样效果的

出0入0汤圆

发表于 2012-11-27 17:45:42 | 显示全部楼层
直接移植的,我也一直没有用成功,都是有问题的。。。要修改才可以用

出0入0汤圆

发表于 2012-11-27 17:54:03 | 显示全部楼层
建议你先用现在的12864看看,有可能是年代久远的产品和现在的不同。

出0入0汤圆

 楼主| 发表于 2012-11-27 18:11:06 | 显示全部楼层
canidream 发表于 2012-11-27 17:45
直接移植的,我也一直没有用成功,都是有问题的。。。要修改才可以用

不是啊 我是对照数据手册时序改的...但一直都没好用

出0入0汤圆

发表于 2012-11-27 18:34:51 | 显示全部楼层
建议LZ下个长沙太阳人的液晶测试程序试试。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-23 20:23

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

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