有用过ST7565LCD驱动的没?

[复制链接]
3068|1
手机看帖
扫描二维码
随时随地手机跟帖
丁丁上路|  楼主 | 2007-3-9 14:29 | 显示全部楼层 |阅读模式
现在用ST7565驱动,可怎么也点不亮.程序如下:
#include "mega8.h" 
#include "delay.h"
#define uchar   unsigned char
#define  CS1B   PORTC.0
#define  A0     PORTC.1
#define  MRE    PORTC.2
#define  MWE    PORTC.3
#define  DataPort        PORTD  

void WriteCom(uchar ComData); 
void WriteData(uchar Data);
void InitST7565(); 
 
main()
{       
        DDRB = 0xff;
        DDRC = 0xff;
        PORTC = 0xff;
        DDRD = 0xff;
        PORTD = 0x00;
        CS1B = 0;
        InitST7565();
        while(1)
        {
                PORTB.0 = ~PORTB.0;
                delay_ms(100);
        }       
}

/*===================================================================
函数功能:向ST7565写命令
输入参数:命令字
输出参数:无
函数说明:
======================================================================*/
void WriteCom(uchar ComData)
{
        MWE = 1;  
        MRE = 1;
        A0 = 0;           //写命令
        delay_us(50);
        DataPort = ComData;
        MWE = 0;
        delay_ms(50);
        MWE = 1;
  
}

/*===================================================================
函数功能:向ST7565写数据
输入参数:数据
输出参数:无
函数说明:
======================================================================*/
void WriteData(uchar Data)
{
        A0 = 1;         //
        MRE = 1;
        MWE = 0;
        DataPort = Data;        
}

/*===================================================================
函数功能:初始化ST7565,结果全屏点亮
输入参数:数据
输出参数:无
函数说明:
======================================================================*/
void InitST7565(void)
{
        WriteCom(0x81);                 //设置V0电压寄存器
        WriteCom(0x30);                 //
        //delay_us(50);
        WriteCom(0xa2);                 //设置LCD电压偏置 a2--1/9,a3---1/7
        //delay_us(50);
        WriteCom(0xa1);                 //设置显示数据区,a0正常,a1 COM与SEG互换
        //delay_us(50);
        WriteCom(0xc8);                 //选择COM扫描方向,《C7为正常方向,》C8为反向方向
        //delay_us(50);
        WriteCom(0x27);                 //选择内部电阻调节比
        //delay_us(50);
        WriteCom(0x2f);                 //选择内部电源供给模式
        //delay_us(50);
        WriteCom(0xa6);                 //设置显示模式(a6正,a7反)
        //delay_us(50);
        WriteCom(0xaf);                 //打开LCD显示
        //delay_us(50);
        WriteCom(0xa5);                 //全屏点亮
}

相关帖子

丁丁上路|  楼主 | 2007-3-9 14:46 | 显示全部楼层

有用过ST7565LCD驱动的没? 补充:

芯片是用并行口,硬件是8080系统的接法.

#define  CS1B   PORTC.0             //片选信号  低有效
#define  A0     PORTC.1             //数据(1)/命令(0)选择信号
#define  MRE    PORTC.2             //读控制信号,低有效
#define  MWE    PORTC.3             //写控制信号,低有效
#define  DataPort        PORTD      //数据口

PORTB.0 = ~PORTB.0;------用于LED闪烁,方便查看程序是否运行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

105

帖子

0

粉丝