打印
[AVR单片机]

avr 12864液晶屏显示求助!!!!!!!!

[复制链接]
1811|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tjuhwf00|  楼主 | 2011-5-22 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在12864液晶屏上显示字符FLASHMAN,这是我代码,液晶屏为什么什么也显示不出来?求高手~~




#include <iom128v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int

const uchar cs=0;
const uchar sid=1;
const uchar sclk=2;
const uchar psb=3;
const uchar rst=5;
const uchar table[]="FLASHMAN";
void LcdIni(void);
void WrOp(uchar dat);
void WrDat(uchar dat);
void SndByte(uchar dat);
void delay(void);

void main()
{
uchar i;
LcdIni();
WrOp(0X80+0X00);
for(i=0;i<8;i++)
{
   WrDat(table[i]);
  delay();
}


while(1);
}
void LcdIni(void)
{
DDRC=0XFF;   
PORTC=0XFF;    //PORTC输出全部为1
PORTC &=~BIT(psb);  //psb为低,选择串口方式

PORTC |=BIT(cs);  //片选有效
PORTC &=~BIT(rst);
delay();    //延时以复位
PORTC |=BIT(rst);  
PORTC &=~BIT(cs);  //片选无效

WrOp(0X20);
WrOp(0X01);
//WrOp(0X02);
WrOp(0X06);
WrOp(0X0C);

}
void WrOp(uchar dat)
{
PORTC |=BIT(cs);
SndByte(0XF8);  //命令字1111 1000
SndByte(dat & 0XF0);//高四位0000
SndByte(dat<<4);
PORTC &=~BIT(cs);
delay();
}
void WrDat(uchar dat)
{
PORTC |=BIT(cs);
SndByte(0XFA);
SndByte(dat & 0XF0);
SndByte(dat<<4);
PORTC &=~BIT(cs);
delay();
}

void SndByte(uchar dat)
{
uchar i;
for(i=8;i>0;i--)
  {
   if(dat & BIT(i-1)) PORTC |=BIT(sid);   //置1
   else PORTC &=~BIT(sid);    //置0
   PORTC |=BIT(sclk);     
   NOP();
   PORTC &=~BIT(sclk);
  }
}
void delay(void)
{
uchar i,j;
for(i=0;i<200;i++)
  for(j=0;j<200;j++);
}

相关帖子

沙发
airwill| | 2011-5-24 13:01 | 只看该作者
液晶没有显示, 除了软件的时序方面的问题外, 液晶屏上还有个对比度的调节, 要调到合适位置以使显示最佳.
如果不知道这个条件, 就找一下屏的资料看一看

使用特权

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

本版积分规则

0

主题

2

帖子

0

粉丝