专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

HOLTEK单片机-LCD

作者:佚名   来源:本站原创   点击数:  更新时间:2012年01月02日   【字体:

功能说明:

16X2 的字符型LCD显示“LCD TEST OK”

电路说明:

        电路图如下图所示:


     HT48R50A-1 的端口A接到字符型LCD的D0-D7(数据总线),使用字符型LCD的8位数据接口。

        将HT48R50A-1的PC1接到LCD的读/写引脚。当LCD的读/写引脚为高电平时,表示将从LCD内部读取数据,当LCD的读/写引脚为低电平时,表示将数据写入LCD中。

        将HT48R50A-1的PC2接到LCD的E引脚。当LCD的E引脚为高电平时,LCD的D0-D7引脚上的数据将会被写入LCD中,平时LCD的E引脚保持在低电平。

        将HT48R50A-1的PC0接到LCD的RS引脚。当LCD的RS引脚为低电平并对LCD做读写操作时,可以把LCD的指令写入LCD的指令寄存器,若对LCD做读写操作,可以读取LCD的忙标志位及地址计数器。LCD的忙标志位为1位,地址计数器为7位,合计8位。当LCD的RS引脚为高电平时,可以对LCD的数据寄存器做读/写操作。

        将字符型LCD的CO引脚接到GND。VO引脚是字符型LCD的亮度调整电压输入引脚,通常VO引脚接地时字符型LCD上的字符最清晰,也可以把VO引脚接一个可变电阻作为字符型LCD的对比度调整。

完整版本的程序源码下载地址: http://www.51hei.com/f/htlcd.rar ,以下列出main.c文件:
 

#include "HT46F49E.H"

 

#define lcd_en    _pc1

#define lcd_rs    _pc0

#define lcd_date   _pa

 

unsigned char table1[]="LCD 1602";

unsigned char table2[]="TEST IS OK!";

unsigned char num;

void delayms(unsigned int n)//ms 延时

{

    while(n>0)

    {

        _delay(984);

        n--;  

    }  

}

 

void write_com(unsigned char com)// 写命令

{

    lcd_rs=0;//lcdrs=0 ,选择写命令模式

    delayms(5);

    lcd_date=com;// 命令字送到数据总线

    delayms(5);

    lcd_en=1;//lcden=1 ,使能,init初始化中已经置低

    delayms(5);

    lcd_en=0;

}

 

void write_date(unsigned char date)// 写数据

{

    lcd_rs=1;

    delayms(5); 

    lcd_date=date;

    delayms(5);

    lcd_en=1;

    delayms(5);

    lcd_en=0;

}

 

void lcd_init()

{  

    write_com(0x38);

    delayms(2);

    write_com(0x0c);

    delayms(2);

    write_com(0x06);

    deleyms(2);

    write_com(0x01);

    delayms(2);

}

 

void main()

{  

    lcd_init();

    write_com(0x80);

    for(num=0;num<8;num++)

    {

        write_date(table1[num]);

        delayms(2); 

    }

    write_com(0x80+0x40);

    for(num=0;num<11;num++)

    {

        write_date(table[num]);

        delayms(2); 

    }

    while(1);

} 
关闭窗口

相关文章