您的位置:首页 > 其它

1602液晶显示

2010-08-16 14:08 288 查看
1602LCD分两行显示文字(不能显示中文)

1 /*

2 RS =数据/命令选择端(H/L)

3 R/W=读/写选择端(H/L)因TX-1X开发板此脚接地所以只能写不能读取,故本程序不读只写

4 此试验板1602液晶接P0口故此数据通过P0传送

5 lilongjiang@live.com 8/16/2010

6 */

7

8 #include<reg52.h>

9 #define uchar unsigned char

#define uint unsigned int

sbit EN=P3^4;

sbit RS=P3^5;

sbit dula=P2^6; //断选

sbit wela=P2^7; //位选 因这两个芯片也接在P0口故使用液晶避免造成电压低故关闭这两个芯片

uchar code tab1[]="0123456789ABCDEF"; //第一样显示的数据

uchar code tab2[]="GHIJKLMNOPQRSTUV"; //第二行显示的数据

void delay(uint);

uchar i;

void write_com(uchar com) //写命令

{

RS=0;

P0=com;

delay(1);

EN=1;

EN=0;

}

void write_data(uchar date) //写数据

{

RS=1;

P0=date;

delay(1);

EN=1;

EN=0;

}

void init()

{

EN=0;

dula=0; //关闭断选

wela=0; //关闭位选

write_com(0x38); //开显示

write_com(0x0F); //光标

write_com(0x06); //指针

write_com(0x01); //清屏

}

void main()

{

init();

write_com(0x80); //第一行显示地址设为80H

for(i=0;i<16;i++)

{

write_data(tab1[i]);

}

write_com(0xC0); //第二行显示地址设为80H+40H

for(i=0;i<16;i++)

{

write_data(tab2[i]);

}

while(1);

}

void delay(uint x)

{

uint i;

while(x--)

for(i=0;i<110;i++);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: