• 大小: 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;
     

评论

共有 条评论

相关资源