下面表格是16*2 LCD液晶与 单片机 的硬件接法:
1
VSS
接地
2
VCC
接电源,+5V
3
VO
反视度调整,接地吧
4
RS
寄存器选择,1-资料、0-指令
5
R/W
读写选择,1-读、0-写,如果LCD函数没有用到这个IO口的话就把它接地
6
E
信号使能,E由 1 -> 0 的下降沿时,LCD对RS和DATA进行取样和执行操作
7
DATA-DB0
悬空
8
DATA-DB1
悬空
9
DATA-DB2
悬空
10
DATA-DB3
悬空
11
DATA-DB4
接 单片机 IO口
12
DATA-DB5
接 单片机 IO口
13
DATA-DB6
接 单片机 IO口
14
DATA-DB7
接 单片机 IO口
// 04:lcd_init() //LCD初始化函数
// 05:lcd_DICtate(byte) //写指令的函数
// 07:lcd_gotoxy(x,y) //列行定位函数
// 06:lcd_putchar(byte) //以ASCII方式显示一个字节变量
// 08:lcd_hex(byte) //以十六进制显示一个字节变量
// 09:lcd_byte(byte) //以十进制显示一个字节变量
// 10:lcd_putsf(地址, 个数) //显示FLASH里面的字符串
#include <mega48.h>
#include <delay.h>
#include <1602lcd.h>
unsigned char byte;
unsigned char flash string[]="M8V20";
void main(void)
{
lcd_init(); //1602LCD初始化函数
lcd_dICtate(1); //LCD清屏指令是(1)
while (1)
{
byte++;
lcd_gotoxy(4,0); //光标定位到第4列第0行
lcd_byte(byte); //以十进制的方式显示键值(字节形)
lcd_putchar('='); //显示 = 字符
lcd_putchar(48); //显示数字0 ,数字0的ASCII值是48
lcd_putchar('x'); //显示 x 字符
lcd_hex(byte); //以十六进制的方式显示键值(字节型)
lcd_gotoxy(2,1); //定位到第2列第1行
lcd_putsf(string,5); //显示FLASH里面的字符串
lcd_putsf("-AVRDIY",7); //显示FLASH里面的字符串
delay_ms(500);
}
}
/*下面是<1602LCD.h>文件内容
在使用LCD之前先了解一下4位数据线传输的原理
1:LCD在E由 1->0 时对RS和DB4-DB7进行取样和执行操作
2:RS=0 时表示"准备"写指令,RS=1 时表示"准备"写显示的数据
3:不管是指令数据还是显示数据,数据位都是8位,由于LCD用的是4个数据线,所以在传输时先传输数据的高4位(Msb),然后再传输数据的低4位(Lsb)
比如说我们要写一个指令,指令是0b11001000 ( 高4位是1100,低4位是1000 )
那么就要这样:
先传输高4位 | 接着传输低4位
E=1 ; | E=1 ;
RS=0 ; | RS=0 ;
DB7=1; | DB7=1;
DB6=1; | DB6=0;
本文关键字:程序 AVR单片机,单片机-工控设备 - AVR单片机