搜索
bottom↓
回复: 13

请教1622驱动问题,一直点不亮,查了好几天没查出原因

[复制链接]

出0入0汤圆

发表于 2012-4-22 12:42:44 | 显示全部楼层 |阅读模式
/*
************************************************************
*                                          液晶显示命令字定义
************************************************************
*/
const u8 TAB_REST[9] =
{
        0b00000001,/*打开系统振荡器命令*/
    0b00000011,/*打开LCD 偏压发生器命令*/
    0b00000101,/*WDT 溢出标志输出失效命令*/
    0b00000110,/*时基输出使能命令*/
        0b00011000,/*系统时钟源片内RC振荡器命令*/
        //0b00101001,/*LCD1/3偏压选项4个公共口命令*/
        0b01000000,/*声音频率4KHz命令*/
        0b00001000,/*关闭声音输出命令*/
        0b10100000,/*时基/WDT 时钟输出1Hz命令*/
        0b10000000/*禁止/IRQ 输出有效命令*/
};                                               

/*
************************************************************
*                         Start
*
*   功能描述:启动1622
*   参  数  :无
*   返回值  :无
************************************************************
*/
void Start(void)   
{   
    CS = HIGH;   
    WR = HIGH;   
    DATA = HIGH;      
    Delay1622();   
    Delay1622();   
    CS = LOW;   
    Delay1622();   
}   
/*
************************************************************
*                             Stop
*
*   功能描述:停止信号
*   参  数  :无
*   返回值  :无
************************************************************
*/
void Stop(void)   
{   
    WR = HIGH;   
    CS = HIGH;   
    DATA = HIGH;   
    Delay1622();   
}  
/*
************************************************************
*                     Write1622
*
*   功能描述:写数据到1622
*   参  数  :无
*   返回值  :无
************************************************************
*/
void Write1622(void)
{
    u8 i,j,data;       
   
    Start();       
    Send(0xA0,3);         
    Send(0x00,6);   
   
    for(i = 0;i < 26;i++){
        data = LcdBuffer[i];
        for(j = 0;j < 8;j++){
            if(data & 0x01)
                DATA = HIGH;   
            else  
                DATA = LOW;  
            WR = LOW;
            Delay1622();   
            WR = HIGH;   
            Delay1622();
            data >>= 0x01;
        }
    }
    Stop();
}
/*
************************************************************
*                     Command1622
*
*   功能描述:1622初始化
*   参  数  :无
*   返回值  :无
************************************************************
*/
void Command1622(void)   
{   
    u8 i;  
    Start();   
    Send(0x80,3);   
    for(i = 0;i < 9;i++){   
        Send(TAB_REST[i],8);   
        Send(0x00,1);  
    }   
    Stop();   
}   
/*
************************************************************
*                     Delay1622
*
*   功能描述:延时一段时间
*   参  数  :无
*   返回值  :无
************************************************************
*/
void Delay1622(void)   
{   
    u8 i;   
    for(i = 0;i < 5;i++);      
    return;   
}   
/*
************************************************************
*                             Send
*
*   功能描述:写一个字节的数据
*   参  数  :Writebuffer(待写入数据),BitLength(写入数据长度)
*   返回值  :无
************************************************************
*/  
void Send(u8 Writebuffer,u8 BitLength)   
{   
    u8 i;   
    for(i = 0;i < BitLength;i++)   
    {   
        if(Writebuffer & 0x80)
            DATA = HIGH;   
        else  
            DATA = LOW;   
        WR = LOW;   
        Delay1622();   
        WR = HIGH;   
        Delay1622();   
        Writebuffer <<= 1;   
    }   
}
大家帮忙看一下程序上是否有问题,通过示波器看波形没问题的,但是一直显示不了(或者说是很淡,基本看不清),硬件上VLCD通过一个1K电阻都VDD(5V),除了三根信号线(CS,WR,DATA)外其他没有接.先谢过大家!

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

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

出0入0汤圆

发表于 2012-4-22 19:26:05 | 显示全部楼层
硬件图呢?

出0入0汤圆

 楼主| 发表于 2012-4-22 20:57:06 | 显示全部楼层
上图。。。。。。。。。。。。

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2012-4-22 20:59:54 | 显示全部楼层
顶上来,大家都来看一下。。。

出0入0汤圆

 楼主| 发表于 2012-4-22 21:01:10 | 显示全部楼层
在线等。。。

出0入0汤圆

发表于 2012-4-22 21:55:42 | 显示全部楼层
看不清硬件,能不能上个大图?

出0入0汤圆

 楼主| 发表于 2012-4-22 22:01:02 | 显示全部楼层
图片点击一下,就可以看大图了

出0入0汤圆

发表于 2012-4-22 22:10:50 | 显示全部楼层
本帖最后由 dianzichina 于 2012-4-22 22:11 编辑

还是不大,看不清硬件,看了程序,没见入口主程序啊。改start为MAIN如何?

出0入0汤圆

发表于 2012-4-22 22:17:55 | 显示全部楼层
既然看波形没问题,太模糊的话是不是能出字符了?那就加个偏压吧。

出0入0汤圆

 楼主| 发表于 2012-4-22 22:31:57 | 显示全部楼层
哪里加偏压?VLCD吗?加多少合适?

出0入0汤圆

发表于 2012-4-22 22:53:39 | 显示全部楼层
多少合适应该看液晶的说明,你应该把液晶的说明也上传的。如果你的液晶上面能看到字符,只是有点不清楚的话,可能这个有效果了。如果不是这样,那原因另查。

出0入0汤圆

 楼主| 发表于 2012-4-22 23:18:44 | 显示全部楼层
不经意间把两个COM口给短路了,结果有显示,但是是乱码,正常的话就没有显示了。。。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-4-23 07:19:18 | 显示全部楼层
有显示但是乱码那说明程序有问题了。看软件吧。

出0入0汤圆

 楼主| 发表于 2012-4-23 16:59:05 | 显示全部楼层
回楼上,显示乱码是因为两个COM口短路了,正常情况下显示正常,只是很暗而已,而且我看过波形都是对的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 02:15

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

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