LCD1602 C程序
LCD基本显示程序
四条数据线输入:DB4—RB0,DB5—RB1,DB6—RB2,DB7—RB3
寄存器选择RS接RB4,为"L"指令寄存器,为"H"数据寄存器
读写使能控制线E,接RE2,每当E线向LCD模块发送一个正脉冲,LCD模块与单片机之间将进行一次数据交换;
//**********定义与声明*******************
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineERE2
#defineRSRB4
uchari,num,byte,ys;
ucharconsttable[]="Shanqinggong";//为什么2009前面要空开两个才能显示后空开1个儿呢?这个定义要小心!一定要用ucharconst,不要丢了uchar,也不要用code
ucharconsttable1[]="tongxin06-2";//4第二数组定义初值
voidlcd_init(void);
voidwritecom(char);
voidwritEDAta(char);
voiddelay(uintz)//5延迟函数常用
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//***************主函数*****************
voidmain()
{
lcd_init();
while(1)
{
;
}
}
//*******lcdinitial***************关于LCD的初始化
voidlcd_init()
{
TRISB=0x00;
TRISE=0x00;
PORTB=0X00;
writecom(0x28);//将LCD设置成4为数据方式,两行显示,5*7点阵
writecom(0x0C);//显示控制:打开显示,
writecom(0x06);//设置输入模式
writecom(0x01);//清LCD
writecom(0x80);
for(num=0;num<16;num++)//循环
{
writedata(table[num]);
delay(1);
}
writecom(0x80+0x40);//11液晶显示第二行时分秒
for(num=0;num<15;num++)
{
writedata(table1[num]);
delay(1);
}
}
//********写命令控制*****************
voidwritecom(chari)
{
byte=i;
i=i>>4;
PORTB=i;
RS=0;
E=1;
for(ys=10;ys>0;ys--);
E=0;
PORTB=byte;
RS=0;
E=1;
for(ys=10;ys>0;ys--);
E=0;
}
//********写数据控制*****************
voidwritedata(chari)
{
byte=i;
i=i>>4;
PORTB=i;
RS=1;
E=1;
for(ys=10;ys>0;ys--);
E=0;
PORTB=byte;
RS=1;
E=1;
for(ys=10;ys>0;ys--);
E=0;
}
【LCD1602 C程序】
推荐阅读
- IIC的PCF8563实用时钟程序_iccavr
- M50462AP摇控器-PIC解码程序_已测试OK
- keil c51的内部RAM_idata动态内存管理程序
- STM32中VDDA为什么也要接电源才能烧录程序?
- IO口模拟SPI通信C51程序
- 51单片机驱动1602程序
- CVAVR生成的典型USART收发的接口程序
- PIC16C74单片机显示程序
- 单片机练习-RC-5红外遥控器程序及简单制造DIY PC遥控器
- STM32 CAN总线应用程序,调试通过仅供参考