首页 > 代码库 > 单片机第14课:LCD使用
单片机第14课:LCD使用
下面是LCD的电路,其中RD接P2^6;LCDE接P2^7,WR接P2^5。
#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit lcd_E = P2^7; sbit lcd_RS = P2^6; sbit lcd_WR = P2^5; uchar code table_show1[] = "Hello!"; uchar code table_show2[] = "I am ChenLu!"; void delay(uint time); void init_lcd(); void write_lcd_command(uchar comm); void write_lcd_data(uchar lcdData); void main() { int flag1,flag2,flag3; init_lcd(); //写入缓存区 write_lcd_command(0x80+0x10); for(flag1=0; flag1<6; flag1++) { write_lcd_data(table_show1[flag1]); } //写入缓存区 write_lcd_command(0x80+0x50); for(flag2=0; flag2<12; flag2++) { write_lcd_data(table_show2[flag2]); } //整个屏幕向左移动至最左端 for(flag3=0; flag3<16; flag3++) { write_lcd_command(0x18); } //停在这里,避免反复刷新 while(1); } //初始化LCD void init_lcd() { //初始化LCD的属性 //显示模式 write_lcd_command(0x38); //光标 write_lcd_command(0x0f); write_lcd_command(0x06); //清屏 write_lcd_command(0x01); //数据指针 write_lcd_command(0x80); } //LCD写命令 void write_lcd_command(uchar comm) { delay(5); //RS=L RW = L E=H lcd_RS = 0; delay(5); lcd_WR = 0; //写命令 P0 = comm; delay(5); lcd_E = 1; delay(5); lcd_E = 0; } //LCD写数据 void write_lcd_data(uchar lcdData) { delay(5); //RS=H RW = L E=H lcd_RS = 1; delay(5); lcd_WR = 0; //写数据 P0 = lcdData; delay(5); lcd_E = 1; delay(5); lcd_E = 0; } //延时函数 void delay(uint time) { uint i,j; for(i=100; i>time; i--) for(j=0; j<100; j++); }使用LCD主要是参考LCD数据手册,基本的用法就是上面的程序,关键是要注意时序问题。
读者可以在网上下载1602液晶资料,然后对着本程序琢磨。
注意:写命令---可以理解为设置显示屏的属性;写数据---可以理解成为你要让显示器显示的数据。
单片机第14课:LCD使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。