标题:
单片机LCD1602在两行显示字符A和OK实验 Proteus仿真加源程序
[打印本页]
作者:
51黑电子happy
时间:
2017-3-29 23:48
标题:
单片机LCD1602在两行显示字符A和OK实验 Proteus仿真加源程序
51单片机驱动LCD1602液晶屏在两行显示字符A和OK实验的仿真原理图(proteus工程文件可到本帖附件下载):
0.png
(26.89 KB, 下载次数: 71)
下载附件
2017-3-29 23:45 上传
单片机源程序:
//-----------------------------------------------------------------------------------
//程序名: LCD8-2.c
//程序功能:LCD在两行显示字符A和OK
//-------------------------------------------------------------------------------------
#include <reg51.h>
sbit RS=P2^5; // 引脚定义
sbit RW=P2^6;
sbit EN=P2^7;
sbit busy=P0^7; // "忙"标志位
#define LCD P0 //命令或数据线
//字符串表
unsigned char code str2[]={" OK "};
//---------------------------------- 判断液晶显示器是否忙函数 ----------------------------
CHECK_BF() //判断是否忙碌
{
do
{
LCD=0xff;
RS=0; // RS=0,选择指令寄存器
RW=1; // RW=1,选择读模式
EN=0; // 执行显示命令
EN=1; // 允许读/写
}
while(busy); //busy为高电平表示忙,循环等待
}
//-------------------------------------- 写命令函数 -----------------------------------
WR_COMM() //写命令
{
RS=0; // RS=0,选择指令寄存器
RW=0; // RW=0,选择写模式
EN=0; // 执行显示命令
CHECK_BF(); // 等待
EN=1; // E=1,允许读/写LCD
}
//-------------------------------------- 写数据函数 -------------------------------------
WR_DATA() //写数据
{
RS=1; // RS=1,选择数据寄存器
RW=0; //准备写入数据
EN=0; //执行显示命令
CHECK_BF(); //判断液晶模块是否忙
EN=1; // E=1,允许读/写LCD
}
//------------------------------------- 初始化函数 ---------------------------------
INIT_LCD() //初始化
{
unsigned char i=200;
{
while(--i);
LCD=0x01; //清屏并光标复位
WR_COMM(); //写入命令
LCD=0x38; //设置显示模式:8位2行5x7点阵
WR_COMM();
LCD=0x0f; //显示器开、光标关、光标禁止闪烁
WR_COMM();
LCD=0x06; //文字不动,光标自动右移
WR_COMM(); //写入命令
}
}
//---------------------------------------- 主函数 -----------------------------------
main()
{
unsigned char i;
INIT_LCD(); //调用初始化函数
//-----------------------------
//写入第1行字符
LCD=0x84; //写入显示起始地址(第1行第5个位置)
WR_COMM(); //写入命令
LCD=('A'); //写字符
WR_DATA();
// }
//------------------------------
//写入第2行字符
LCD=0xc7; //写入显示起始地址(第2行第6个位置)
WR_COMM(); //写入命令
for(i=0;i<3;i++)
{
LCD=str2[i]; //提取字符
WR_DATA(); //送出
}
while(1); //停止到这里
}
//---------------------------------------------------------------------------------------
复制代码
0.png
(52.74 KB, 下载次数: 72)
下载附件
2017-3-29 23:48 上传
该系列源码包含有很多非常经典,代码风格十分规范,而且注释详细的单片机例程,还带仿真,对于MCU学习特别是初学者是很有帮助的,全部源码下载(共25个项目):
http://www.51hei.com/bbs/dpj-79328-1.html
本例程下载(含proteus仿真工程文件与源码):
单片机LCD1602在两行显示字符A和OK实验.rar
(27.16 KB, 下载次数: 42)
2017-3-29 23:47 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
Dee糕
时间:
2018-6-5 00:42
谢谢答主!很有帮助!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1