基于51单片机的LCD1602显示程序模块
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这个是我自己编写的基于51单片机控制lcd602显示的库函数,请下载我的头文件,在网上本人还分享了很多热门模块的库函数,都是现成的,欢迎下载!!!!
/************************************************************************
1,先初始化1602:lcd_init();
2,调整显示位置:lcd_pos(hang,lie);
3,送显示:lcd_wdat(uchar dat);显示字符
lcd_show(uchar dis[]);显示字符串
4,清屏为:lcd_wcmd(0x01); //清除lcd内容
delay12_ms(2);
注:
显示的时候必须传送对应的ASK码
显示字符串的时候如果超过本行显示范围不会自动跳到第二行占用了P0和P25,P26,P27 同时包含delay.c文件必须
************************************************************************/
#include "myconfig.h"
#include "delay.h"
#define LCD_RS P26 //1602的命令和数据选择端
#define LCD_RW P25 //1602的读写控制端
#define LCD_EP P27 //1602是能信号
#define LCD_DATE P0 //1602的数据传输或命令端口
/****************(外部不操作)测忙程序************************/
uchar lcd_bz()
{
uchar result;
LCD_RS =0;
LCD_RW =1;
LCD_EP =1;
_nop_();
_nop_();
_nop_();
_nop_();
result =(P0 &0x80);
LCD_EP =0;
return result;//返回结果,1为忙,0位空闲
}
/****************(外部不操作)写命令函数************************/
void lcd_wcmd(int cmd)
{
while(lcd_bz());
LCD_RS =0;
LCD_RW =0;
LCD_EP =0;
_nop_();
_nop_();
LCD_DATE = cmd;