51单片机——LCD1602
来源:互联网 发布:开淘宝店邮费 编辑:程序博客网 时间:2024/04/30 03:52
单片机——1602液晶
宗旨:技术的学习是有限的,分享的精神是无限的。
1、1602液晶读写时序
(1)、读状态
RS=L,R/W=H,E=H。(判断忙完毕后释放总线)
(2)、读数据
RS=H,R/W=H,E=H。
(3)、写指令
RS=L,R/W=L,D0~D7=指令码,E=高脉冲
(4)、写数据
RS=H,R/W=L,D0~D7=数据,E=高脉冲
2、液晶显示驱动文件
#include <reg52.h>#define LCD1602_DB P0sbit LCD1602_RS = P1 ^ 0;sbit LCD1602_RW = P1 ^ 1;sbit LCD1602_E = P1 ^ 5;/* 等待液晶准备好 */void LcdWaitReady(){ unsigned char sta; LCD1602_DB = 0xFF; LCD1602_RS = 0; LCD1602_RW = 1; do { LCD1602_E = 1; sta = LCD1602_DB; //读取状态字 LCD1602_E = 0; } while (sta & 0x80); //bit7等于1表示液晶正忙,重复检测直到其等于0为止}/* 向LCD1602液晶写入一字节命令,cmd-待写入命令值 */void LcdWriteCmd(unsigned char cmd){ LcdWaitReady(); LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_DB = cmd; LCD1602_E = 1; LCD1602_E = 0;}/* 向LCD1602液晶写入一字节数据,dat-待写入数据值 */void LcdWriteDat(unsigned char dat){ LcdWaitReady(); LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_DB = dat; LCD1602_E = 1; LCD1602_E = 0;}/* 设置显示RAM起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标 */void LcdSetCursor(unsigned char x, unsigned char y){ unsigned char addr; if (y == 0) //由输入的屏幕坐标计算显示RAM的地址 { addr = 0x00 + x; //第一行字符地址从0x00起始 } else { addr = 0x40 + x; //第二行字符地址从0x40起始 } LcdWriteCmd(addr | 0x80); //设置RAM地址}/* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 */void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str){ LcdSetCursor(x, y); //设置起始地址 while (*str != '\0') //连续写入字符串数据,直到检测到结束符 { LcdWriteDat(*str++); }}/* 初始化1602液晶 */void InitLcd1602(){ LcdWriteCmd(0x38); //16*2显示,5*7点阵,8位数据接口 LcdWriteCmd(0x0C); //显示器开,光标关闭 LcdWriteCmd(0x06); //文字不动,地址自动+1 LcdWriteCmd(0x01); //清屏}
0 0
- 51单片机——LCD1602
- 单片机——LCD1602驱动
- 关于51单片机LCD1602
- 51单片机LCD1602程序
- 51单片机写LCD1602代码
- 通用型51单片机lcd1602驱动
- [51单片机]LCD1602驱动函数
- 51单片机LCD1602程序详解
- 51单片机--LCD1602编程入门
- 嵌入式学习笔记(12)——51单片机之LCD1602
- 基于51单片机的LCD1602显示
- LCD1602液晶显示+超声波测距-51单片机
- 51单片机之LCD1602的驱动程序
- AVR单片机驱动LCD1602
- 基于51单片机的LCD1602液晶驱动实现
- AVR单片机控制LCD1602液晶显示
- 单片机笔记之LCD1602显示屏
- altera小实验——LCD1602显示
- OpenCV实现区域生长算法
- HTTP客户端(libcurl) & HTTP服务端(libevent)
- 【jeecg移动开发能力】Jeecg 重磅来袭,强大移动报表配置能力,一次配置七种展现风格
- object-c学习笔记
- NDK环境搭建(Native Code的编译,不需要Cygwin)
- 51单片机——LCD1602
- iOS 蓝牙开发那些事
- 计算的极限(一):所有机器的机器,与无法计算的问题
- Android 6.0 运行时权限处理完全解析
- Spring Security权限管理框架
- 【计算机】DMA原理1
- ZOJ 1420 Cashier Employment
- 个推平台API使用经验
- Css之关于块级元素水平居中