• 大小: 47KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-23
  • 语言: 其他
  • 标签: 240128  

资源简介

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

评论

共有 条评论