📄 8.23.c
字号:
#include<reg51.h>
#include<absacc.h>
#include"ZK.h"
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
#define C_ADD XBYTE[0x0100]//指令通道地址
#define D_ADD XBYTE[0x0000]//数据通道地址
#define CR 30//显示区宽度,32字节
//sbit RD=P3^7;
//sbit WR=P3^6;
void delay(int i){
while(i--);
}
/*-----------------------------------------------------------------------------------------
**函数名:ReadStateWord()
**功能:读取状态字
**参数:void
**返回:uchar 液晶状态字
------------------------------------------------------------------------------------------*/
uchar ReadStateWord(){
uchar a=0;
a=C_ADD;
return a;
}
/*----------------------------------------------------------------------------------------
**函数名:Test_S1_S0()
**功能:判断状态位S1,S0(读写指令与读写数据状态)
**参数:void
**返回:bit 0:忙,1:准备好
------------------------------------------------------------------------------------------*/
bit Test_S1_S0(void){
if((ReadStateWord()&0x03)==0x03)
return 1;
else
return 0;
}
/*----------------------------------------------------------------------------------------
**函数名:Test_S2()
**功能:判断状态位S2(数据自动读状态)
**参数:void
**返回:bit 0:忙,1:准备好
------------------------------------------------------------------------------------------*/
bit Test_S2(void){
if((ReadStateWord()&0x04)==0x04)
return 1;
else
return 0;
}
/*----------------------------------------------------------------------------------------
**函数名:Test_S3()
**功能:判断状态位S3(数据自动写状态)
**参数:void
**返回:bit 0:忙,1:准备好
------------------------------------------------------------------------------------------*/
bit Test_S3(void){
if((ReadStateWord()&0x08)==0x08)
return 1;
else
return 0;
}
/*----------------------------------------------------------------------------------------
**函数名:Test_S6()
**功能:判断状态位S6(屏读/拷屏状态)
**参数:void
**返回:bit 0:正确,1:出错
------------------------------------------------------------------------------------------*/
bit Test_S6(void){
if((ReadStateWord()&0x40)==0x40)
return 1;
else
return 0;
}
/*----------------------------------------------------------------------------------------
**函数名:WriteCommand_0()
**功能:写入无参数指令
**参数:comm 写入的指令数据
**返回:void
------------------------------------------------------------------------------------------*/
void WriteCommand_0(uchar comm){
while(Test_S1_S0()==0);
C_ADD=comm;//????????????????
}
/*----------------------------------------------------------------------------------------
**函数名:WriteData()
**功能:写入数据
**参数:dat写入的指令数据
**返回:void
------------------------------------------------------------------------------------------*/
void WriteData(uchar dat){
while(Test_S1_S0()==0);
D_ADD=dat;//????????????????
}
/*----------------------------------------------------------------------------------------
**函数名:AutoWriteData()
**功能:写入数据
**参数:dat写入的指令数据
**返回:void
------------------------------------------------------------------------------------------*/
void AutoWriteData(uchar dat){
while(Test_S3()==0);
D_ADD=dat;//????????????????
}
/*----------------------------------------------------------------------------------------
**函数名:WriteCommand_1()
**功能:写入单字节参数指令
**参数:uchar data1 参数 uchar comm 指令数据
**返回:void
------------------------------------------------------------------------------------------*/
void WriteCommand_1(uchar data1,uchar comm){
while(Test_S1_S0()==0);
D_ADD=data1;
while(Test_S1_S0()==0);
C_ADD=comm;//???????????
}
/*----------------------------------------------------------------------------------------
**函数名:WriteCommand_2()
**功能:写入双字节参数指令
**参数:uchar data1 参数1;uchar data2 参数2;uchar comm 指令数据
**返回
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -