📄 1602.c
字号:
/************************************************************************************/
/* 程序名:LCM1602液晶显示代码 */
/* */
/* 晶振:12.0 M CPU型号:AT89S52 */
/* */
/* */
/* 功能描述: 1602显示,需将J15(1,2)跳线帽插上 */
/* 但是要拔去J2跳线帽? */
/* */
/* http://www.mculover.net */
/* http://www.mculover.net/bbs */
/* */
/* */
/* 湘灵电子工作室 版权所有 */
/* 2006-03-20 */
/************************************************************************************/
#include <reg51.h>
#define Lcd_Data P0 //定义数据端口
sbit RS = P2 ^ 0; //定义和LCM的连接端口
sbit RW = P2 ^ 1;
sbit E = P2 ^ 2;
sbit Busy = P0 ^ 7;
unsigned char code welcome[] = {"Welcome to : "};
unsigned char code website[] = {"www.mculover.net"};
unsigned char code designed[]={"Designed By:"};
unsigned char code whomi[]={"whoami"};
/******************************************************************************/
void Delay(unsigned char t)//延时子程序,延时 1MS*t S
{
unsigned char a;
while(--t != 0)
{
for(a = 0; a < 125; a++);
}
}
/******************************************************************************/
void Read_Busy(void)//读忙信号判断
{
do{
Lcd_Data = 0xff;
RS = 0;
RW = 1;
E = 0;
Delay(2);
E = 1;
}while(Busy);
}
/******************************************************************************/
void Write_Comm(unsigned char lcdcomm) //写指令函数
{
Lcd_Data = lcdcomm;
RS = 0;
RW = 0;
E = 0;
Read_Busy();
E = 1;
}
/******************************************************************************/
void Write_Data(unsigned char lcddata)//写数据函数
{
Lcd_Data = lcddata;
RS = 1;
RW = 0;
E = 0;
Read_Busy();
E = 1;
}
/******************************************************************************/
void Init_LCD(void)//初始化LCD
{
Delay(400); //稍微延时,等待LCM进入工作状态
Write_Comm(0x01);//清显示
// Write_Comm(0x02);//光标归位
Write_Comm(0x38);//8位2行5*8
Write_Comm(0x06);//文字不动,光标右移
Write_Comm(0x0c);//显示开/关,光标开闪烁开
// Write_Comm(0x18);//左移
}
/******************************************************************************/
void main(void)//主函数
{
unsigned char i;
Init_LCD(); //初始化 LCM
Write_Comm(0x80);//写入"welcome to"首地址(第一行)
for(i=0;i<16;i++)
{
Write_Data( welcome[i] );//显示welcometo字样
}
Write_Comm(0xc0);//写入"web"首地址(第2行)
for(i=0;i<16;i++)
{
Write_Data( website[i] );//显示http;//www.mculover.net
}
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -