资讯详情

单片机写LCD1602液晶程序源码

本程序的pdf格式的原理图下载:http://www.51hei.com/f/ks51.pdf /***********写1602液晶**************/ /** *功能:写1602液晶 *时间:二〇一四年三月十五日 08:59:26 *作者:寒竹子 **/

#include <reg52.h> #include <intrins.h>

typedef unsigned int uint; typedef unsigned char uchar;

//1602 sbit LCD1602_RS = P1^0; sbit LCD1602_RW = P1^1; sbit LCD1602_EN = P1^5;

void LCD1602_Wait(); void writeCmd_LCD1602(uchar cmd); void writeData_LCD1602(uchar dat); void LCD1602_Init(); void writeString_LCD1602(uchar * pstr); void LCD1602_ShowStr(uchar x, uchar y, uchar * pstr);

void main() { LCD1602_Init();

/* writeCmd_LCD1602(0x00 | 0x80); writeData_LCD1602('C');

writeString_LCD1602("Hanzhuzi"); */ LCD1602_ShowStr(0, 0, "han zhu ying xue"); LCD1602_ShowStr(0, 1, "QQ:1754410821"); while (1); }

//LCD1602判忙准备 void LCD1602_Wait() { uchar sta = 0;//读取液晶当前状态 P0 = 0xFF;//读取状态时必须把总线拉高才能正确的读取其状态!否则写入有时不成功!!! LCD1602_RS = 0; LCD1602_RW = 1;

do { LCD1602_EN = 1; sta = P0;//读取状态 LCD1602_EN = 0;//避免液晶输出数据影响到总线P0上的其他器件 } while (sta & 0x80);//检测第七位是否为1,若为1继续等待直到0为止 }

//LCD1602写命令 void writeCmd_LCD1602(uchar cmd) { //在进行读写数据之前要进行液晶忙碌等待 LCD1602_Wait();

LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_EN = 0; P0 = cmd; LCD1602_EN = 1;//高脉冲送入命令 LCD1602_EN = 0;//避免液晶输出数据影响其他的器件 }

//LCD1602写数据 void writeData_LCD1602(uchar dat) { LCD1602_Wait();

LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_EN = 0; P0 = dat;//送入数据 LCD1602_EN = 1;//高脉冲 LCD1602_EN = 0;//避免液晶输出数据影响到其他器件 }

//LCD1602初始化 void LCD1602_Init() { writeCmd_LCD1602(0x38);//5*7点阵,16*2显示 writeCmd_LCD1602(0x0C);//开显示,不显示光标 writeCmd_LCD1602(0x06);//数据指针++,光标++ writeCmd_LCD1602(0x01);//清屏 }

//LCD1602写String void writeString_LCD1602(uchar * pstr) { while (*pstr) { writeData_LCD1602(*pstr++); } }

//LCD1602按地址写 void LCD1602_ShowStr(uchar x, uchar y, uchar * pstr) { uchar addr = 0; //判断RAM地址 if (y == 0) //LCD1602的左上角地址是 (0, 0) { addr = (0x00 + x);//确定x坐标,x为偏移量 } else { addr = (0x40 + x);//第二行 }

//写入地址 writeCmd_LCD1602(addr | 0x80);//地址是从0x80H开始的

//写入数据 while (*pstr != '\0') { writeData_LCD1602(*pstr++); } }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台