RSS

AVR8515 和 HD74480字符LCD的接口程序

来源:网络 作者:不详 时间:2007-01-05 Tag: 点击:

//**************************************************
//    AVR8515 和 HD74480字符LCD的接口程序
//
//    硬件连接方式:LCD的D0-D7接8515的c口,
//                  LCD的 RS ->PA0
//                  LCD的 RW ->PA1
//                  LCD的 E  ->PA0
//    !!!注意VEE,有时需要接负电源
//
//    dailizhou@0451.com,2002-7-24
//**************************************************

#include<io8515v.h>

#define RS_H  asm("sbi 0x1B,0")
#define RS_L  asm("cbi 0x1B,0")
#define RW_H  asm("sbi 0x1B,1")
#define RW_L  asm("cbi 0x1B,1")
#define E_H   asm("sbi 0x1b,2")
#define E_L   asm("cbi 0x1b,2")

//******************************************
void Delay()
{
     unsigned char di;
     for(di=0;di<20;di++);
}

//判断lcd是否是内部操作状态
char Lcd_Busy()
{
        char rb;
    
        DDRC=0x0;   //端口c设为输入方式
        E_L;
     RS_L;
    RW_H;
    Delay();
    E_H;
    Delay();
    rb=PINC;
    rb=rb&0x80;
    E_L;
    DDRC=0xff;  //端口c设为输出方式

    return rb;
}


//向Lcd发送命令程序
void Lcd_Command(unsigned char bComm)
{
    while(Lcd_Busy());
    E_L;
     RS_L;
    RW_L;
    Delay();
    E_H;
    PORTC=bComm;
    Delay();
    E_L;
    Delay();

}

//向lcd写入一个字符
void Lcd_Write(char wb)
{
    while(Lcd_Busy());
    E_L;
     RS_H;
    RW_L;
    Delay();
    E_H;
    PORTC=wb;
    Delay();
    E_L;
    Delay();
}

//初始化时用的写命令程序,和Lcd_Command的区别是不判断忙标志
void Lcd_InitCommand(unsigned char bComm)
{
    E_L;
     RS_L;
    RW_L;
    Delay();
    E_H;
    PORTC=bComm;
    Delay();
    E_L;
}

//初始化:8位接口,2行x16字符的工作方式
void Lcd_Init()
{
  char i;
  Lcd_InitCommand(0x30);
  for(i=0;i<100;i++) Delay();
  Lcd_InitCommand(0x30);
  for(i=0;i<10;i++) Delay();
  Lcd_InitCommand(0x30);

  Lcd_Command(0x38);
  Lcd_Command(0x08);
  Lcd_Command(0x01);
  Lcd_Command(0x06);
  Lcd_Command(0x02);
  Lcd_Command(0x0E);
}

//一个测试LCD的小程序
int main()
{
  
  const char *str="Hello,This is Dai in HIT.";

  DDRA=0xFF;
  DDRC=0xFF;
  
  Lcd_Init();

  while(*str)   Lcd_Write( *str++ );

  while(1);
  return 0;

}
//缺少的是一个读显示RAM中数据的程序,自己加上吧

1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
合作站点