资源简介
240128液晶程序 C51单片机程序写的
代码片段和文件信息
#include
#include
#include
#include
//信号管脚定义(全局变量)(注意:因为液晶数据口接P1,故为间接控制方式)
sbit wr=P2^0;
sbit rd=P2^1;
sbit ce=P2^2;
sbit cd=P2^3;
sbit fs=P2^4;
sbit reset=P2^5;
#define dataport P0 //P0为数据口
#define unchar unsigned char
#define unint unsigned int
//延时函数
void Lcddelay(unsigned char MS);
//指令,数据读写状态检查
void RWCheck();
//数据自动读写状态检查
void AutoRCheck();
//数据自动写状态检查
void AutoWCheck();
// 向数据口发Data
void OutPortData(unint dat);
//写有 1 个参数命令
void OutPortCom1(unint command);
//写有 2 个参数命令
void OutPortCom2(unint dat command) ;
//写有 3 个参数命令
void OutPortCom3(unint data1 data2 command);
//清屏
void ClearScreen();
//初始化LCD
//需要手动设置
void InitLCD();
//显示图片
void ShowLine();
//显示几个汉字ab为显示首地址,UP为字串首地址如:汉字库数组名[][UP];K为要显示的连续汉字个数
void display_1(unint abupk);
//显示几个字符ab为字符首地址,UP为字符串首地址如:字符库数组名[][UP];K为要显示的连续汉字个数
void display_2(unint abupk);
/********************************/
/* 定义开机图片 */
/********************************/
unchar code hanzi[][16];
//定义中文字库
unchar code dy_1[][16];
//定义ASCII字库8列*16行
unchar code dy_2[][16];
//函数原形声明结束,函数定义开始//
//延时函数
void Lcddelay(unsigned char MS)
{
unsigned char us usn;
while(MS!=0)
{
usn = 4;
while(usn!=0)
{
us=0xf0;
while(us!=0){us--;}
usn--;
}
MS--;
}
}
//状态检查函数
//指令,数据读写状态检查
void RWCheck()
{
unchar dat;
do
{
dataport=0xff;
cd=1;//指令通道
rd=0;//读
dat=dataport;
rd=1;//恢复
dat=0x03&dat;//STA0STA1是否准备好
}while(dat!=0x03);
}
//数据自动读状态检查
void AutoRCheck()
{
unchar dat;
do{
dataport=0xff;
cd=1;
rd=0;
dat=dataport;
rd=1;
dat=0x04&dat;//STA2是否准备好
}while(dat==0x00);
}
//数据自动写状态检查
void AutoWCheck()
{
unchar dat;
do{
dataport=0xff;
cd=1;
rd=0;
dat=dataport;
rd=1;
dat=0x08&dat;//STA3是否准备好
}while(dat==0x00);
}
/*------------------------------------------------------------------------------------*/
/*------输入/出函数与T6963通讯------------------------------------------------*/
/*------------------------------------------------------------------------*/
// 向数据口发Data
void OutPortData(unchar dat)
{
RWCheck();//是否忙检查
cd=0; //数据通道
dataport=dat; //写数据
wr=0;//打开写;
wr=1;
}
//写有 1 个参数命令
void OutPortCom1(unchar command)
{
RWCheck();//检查是否忙
cd=1; //指令通道
dataport=command;// 写指令
wr=0; //打开写
wr=1;//关写
}
//写有 2 个参数命令
void OutPortCom2(dat command)
{
OutPortData(dat);//写数据
OutPortCom1(command); //写指令
}
//写有 3 个参数命令
void OutPortCom3(data1 data2 command)
{
OutPortData(data1);//写数据
OutPortData(data2);//写数据
OutPortCom1(command);//写指令
}
/*---------------------------------------------------------------------------------------------------*/
//清屏
void ClearScreen()
{
unsigned int i;
///////// 清显示 RAM 区 0000h--2000h (8
评论
共有 条评论