- 1
- 0
- 约6.29千字
- 约 7页
- 2017-08-11 发布于重庆
- 举报
动手学AVR单片机二十五
?????? LCD1602液晶是一种字符型液晶,它可以显示两行字符,每行可以显示16个字符。本实例采用JCM1602C液晶,这种液晶是HD44780的兼容电路,管脚和指令系统与HD44780完全一致。具体的使用手册可到该公司网站下载。也可以采用其他兼容HD44780的其他液晶,控制方式和程序一样。
HD44780系列兼容液晶管脚如下图所示:
引脚号 符号 I/O 功能 1 Vss 2 Vdd 3 Vo 4 Rs I 5 R/W I 6 E I 7-10 DB0-DB3 I/O 11-14 DB4-DB7 I/O 15-16
?
一、电路实现
在本实例中,LCD1602的电路原理图如下;
?
?
二、控制流程
a)端口初始化:设置单片机与LCD1602相连接的各个端口的输入输出状态以及电平状态。
b)液晶(LCD)初始化:设置液晶显示字符前需要进行的操作,依次为:清屏、显示模式设置、显示开关控制、光标设置。主要目的是首先清除液晶屏上原来保存的数据,使液晶屏显示内容为空,然后设置液晶显示模式,接着选择是否打开液晶显示(当然要打开显示了)以及设定光标是否显示和闪烁,最后要设置每当显示一个字符后字符地址指针加一还是减一(也就是下一个字符要显示在这个字符的左边还是右边)。
c)液晶显示字符,可以指定位置显示,也可以连续显示多个字符。
?
三、程序代码
lcd1602.h头文件的内容
/*LCD1602.h 文件引脚连接mcu????????????????????? lcd
GND????????????????????? VSSVcc????????????????????? Vcc偏压信号,接可调电阻???? VEEPG0????????????????????? RSPG1????????????????????? R/WPG2????????????????????? EPB0????????????????????? D0PB1????????????????????? D1PB2????????????????????? D2PB3????????????????????? D3PB4????????????????????? D4PB5????????????????????? D5PB6????????????????????? D6? PB7????????????????????? D7Vcc????????????????????? VCCGND????????????????????? GND*/
//端口位定义#define RS PG0?????????? //数据/命令控制端 0命令,1数据#define RW PG1?????????? //读/写选择控制端 0写,1读#define E PG2??????????? //使能端????????? 下降沿读,高电平写
//函数声明void LCDPort_Init(void);????? //液晶端口初始化void LCD_Init(void);??? //LCD初始化void Write_Com(unsigned char LCD_Com);?? //LCD写指令void Write_Data_Byte(unsigned char LCD_Data);? //LCD写字节数据void Write_Place_xy(unsigned char x,unsigned char y); //指定当前写字符的位置void Write_Data_String(unsigned char x,unsigned char y,unsigned char *data); ???????????????????????????????????????? //在指定的(x,y)位置上写入字符串数据void Write_Data_Char(unsigned char x,unsigned char y,unsigned char data);???????????????????????????????????????? //在指定的(x,y)位置上写入字符数据void Check_Busy(void);?? //读写检测函数,每次对液晶操作前都要进行读写检测
void Delayus(unsigned int lus);???????? //us延时函数void Delayms(unsigned int lms);??????? //ms延时函数
?
lcd1602.c文件的内容
/*LCD1602.c 文件*/
#include avr/
原创力文档

文档评论(0)