-
大小: 48KB文件类型: .c金币: 1下载: 0 次发布日期: 2021-05-10
- 语言: 其他
- 标签:
资源简介
我一个小学生的240128读写程序,很好懂,用89C58调试成功了的,我可是花了两个礼拜的时间。
代码片段和文件信息
////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
/*******************这是我花了一个星期时间调试成功的240128液晶显示模块驱动程序
希望对大家有帮助******************************88*/
//////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
#include
#include
#include
#include
//信号管脚定义(全局变量)(注意:因为液晶数据口接P1,故为间接控制方式)
sbit wr=P3^0;
sbit rd=P3^1;
sbit ce=P3^2;
sbit cd=P3^3;
sbit fs=P3^4;
sbit reset=P3^5;
#define dataport P1 //P1为数据口
#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;
评论
共有 条评论