************************** Copyright(C)CaKe *****************************************
========================================================================================
==============**文件名 : main.c ==============
==============**作者 : CaKen ==============
==============**版本号 : V1.0 ==============
==============**时间 : 2014.08.12 ==============
==============**功能描述 : 1602液晶屏实验测试 ==============
========================================================================================
****************************************************************************************
#include
#include
#define uchar unsigned char //宏定义
#define uint unsigned int //宏定义
uchar code Table1[]="CaKen-2245286160";
uchar code Table2[]=" ";
sbit 1602_RS=P2^4; //数据命令端口
sbit LCD1602_RW=P2^5; //读写端口.我们在这里只写
sbit LCD1602_EN=P2^6; //使能端口
*****************************************************************************************
函数名:延时函数
调 用:delayms();
参 数:
返回值:
结 果:
备 注:
*****************************************************************************************
void delayms(unsigned int ms)
{
unsigned int i , j;
for(i = 0; i < ms; i++)
for(j = 0; j < 110; j++);
}
*****************************************************************************************
函数名:写指令
调 用:Write_com();
参 数:
返回值:
结 果:
备 注:
*****************************************************************************************
void Write_com(uchar com)
{
LCD1602_RS=0; //写指令时RS=L
LCD1602_EN=0;
P0=com; //给端口送指令
delayms(5);
LCD1602_EN=1; //使能端高电平有效
delayms(5);
LCD1602_EN=0;
}
*****************************************************************************************
函数名:写数据
调 用:Write_Date();
参 数:
返回值:
结 果:
备 注:
*****************************************************************************************
void Write_Date(uchar Date)
{
LCD1602_RS=1; //写数据时RS=L
LCD1602_EN=0;
P0=Date; //给端口送数据
delayms(5);
LCD1602_EN=1; //使能端高电平有效
delayms(5);
LCD1602_EN=0;
}
*****************************************************************************************
函数名:LCD1602初始化
调 用:LCD1602_Init();
参 数:
返回值:
结 果:
备 注:
*****************************************************************************************
void LCD1602_Init()
{
unsigned char num;
LCD1602_RW=0; //写信号拉低
LCD1602_EN=0; //使能端拉低
Write_com(0x38); //开显示
Write_com(0x0c); //开显示不显示光标
Write_com(0x06); //每写一个地址和光标加一
Write_com(0x01); //显示清零
Write_com(0x80); //第一行的初始地址为0x80
for(num=0;num<16;num++) //循环的数字要看上面的占多少个字符
{
Write_Date(Table1[num]); //多了和少了都不会对的。
delayms(5);
}
Write_com(0x80+0x40); //第二行初始地址为0x80+0x40
for(num=0;num<16;num++)
{
Write_Date(Table2[num]);
delayms(5);
}
}
*****************************************************************************************
函数名:主函数
调 用:
参 数:
返回值:
结 果: