有用过ST7565LCD驱动的没?
现在用ST7565驱动,可怎么也点不亮.程序如下:<br />#include "mega8.h" <br />#include "delay.h"<br />#define uchar unsigned char<br />#define CS1B PORTC.0<br />#define A0 PORTC.1<br />#define MRE PORTC.2<br />#define MWE PORTC.3<br />#define DataPort PORTD <br /><br />void WriteCom(uchar ComData); <br />void WriteData(uchar Data);<br />void InitST7565(); <br /> <br />main()<br />{ <br /> DDRB = 0xff;<br /> DDRC = 0xff;<br /> PORTC = 0xff;<br /> DDRD = 0xff;<br /> PORTD = 0x00;<br /> CS1B = 0;<br /> InitST7565();<br /> while(1)<br /> {<br /> PORTB.0 = ~PORTB.0;<br /> delay_ms(100);<br /> } <br />}<br /><br />/*===================================================================<br />函数功能:向ST7565写命令<br />输入参数:命令字<br />输出参数:无<br />函数说明:<br />======================================================================*/<br />void WriteCom(uchar ComData)<br />{<br /> MWE = 1; <br /> MRE = 1;<br /> A0 = 0; //写命令<br /> delay_us(50);<br /> DataPort = ComData;<br /> MWE = 0;<br /> delay_ms(50);<br /> MWE = 1;<br /> <br />}<br /><br />/*===================================================================<br />函数功能:向ST7565写数据<br />输入参数:数据<br />输出参数:无<br />函数说明:<br />======================================================================*/<br />void WriteData(uchar Data)<br />{<br /> A0 = 1; //<br /> MRE = 1;<br /> MWE = 0;<br /> DataPort = Data; <br />}<br /><br />/*===================================================================<br />函数功能:初始化ST7565,结果全屏点亮<br />输入参数:数据<br />输出参数:无<br />函数说明:<br />======================================================================*/<br />void InitST7565(void)<br />{<br /> WriteCom(0x81); //设置V0电压寄存器<br /> WriteCom(0x30); //<br /> //delay_us(50);<br /> WriteCom(0xa2); //设置LCD电压偏置 a2--1/9,a3---1/7<br /> //delay_us(50);<br /> WriteCom(0xa1); //设置显示数据区,a0正常,a1 COM与SEG互换<br /> //delay_us(50);<br /> WriteCom(0xc8); //选择COM扫描方向,《C7为正常方向,》C8为反向方向<br /> //delay_us(50);<br /> WriteCom(0x27); //选择内部电阻调节比<br /> //delay_us(50);<br /> WriteCom(0x2f); //选择内部电源供给模式<br /> //delay_us(50);<br /> WriteCom(0xa6); //设置显示模式(a6正,a7反)<br /> //delay_us(50);<br /> WriteCom(0xaf); //打开LCD显示<br /> //delay_us(50);<br /> WriteCom(0xa5); //全屏点亮<br />}有用过ST7565LCD驱动的没? 补充:
芯片是用并行口,硬件是8080系统的接法.<br /><br />#define CS1B PORTC.0 //片选信号 低有效<br />#define A0 PORTC.1 //数据(1)/命令(0)选择信号<br />#define MRE PORTC.2 //读控制信号,低有效<br />#define MWE PORTC.3 //写控制信号,低有效<br />#define DataPort PORTD //数据口<br /><br />PORTB.0 = ~PORTB.0;------用于LED闪烁,方便查看程序是否运行 太厉害了!星河动力航天公司在短时间内连续成功发射,这显示了我国航天技术的飞速发展。
页:
[1]