📄 api.c
字号:
#include "def.h"
#include "option.h"
#include "44blib.h"
#include "44b.h"
void PcPdChangeTran(unsigned char data ){
unsigned char PD[6],Pool8,PD8=0x01,i;
unsigned short Pool16,PC16;
Pool8=0xf0&data;
Pool16=(unsigned short)data;
Pool16&=0x000f;
Pool16<<=4;
Pool8>>=4;
PD[4]=0x0;
for(i=0;i<4;i++)
{ PD[i]=Pool8&PD8;
PD8<<=1;
switch(i)
{case 0:PD[i]<<=3;
break;
case 1:PD[i]<<=1;
break;
case 2:PD[i]>>=1;
break;
case 3:PD[i]>>=3;
break;
}
}
for(i=0;i<4;i++)
PD[4]+=PD[i];
PD[5]=rPDATD;
PD[5]&=0xf0;
PD[5]+=PD[4];
rPDATD=PD[5];
PC16=rPDATC;
PC16&=0xff0f;
PC16+=Pool16;
rPDATC=PC16;
}
void RET(int Cond){
if(Cond==Low)
rPDATD&=~(0x01<<7);
else
rPDATD|=0x01<<7;
}
void CS(int Cond){
if(Cond==Low)
rPDATD&=~(0x1<<4);
else
rPDATD|=0x1<<4;
}
void RW(int Cond){
if(Cond==Low)
rPDATD&=~(0x1<<5);
else
rPDATD|=0x1<<5;
}
void RS(int Cond){
if(Cond==Low)
rPDATD&=~(0x1<<6);
else
rPDATD|=0x1<<6;
}
void E(int Cond){
if(Cond==Low)
rPDATC|=0x1<<8;
else
rPDATC&=~(0x1<<8);
}
void Delay1(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}
void disply(int stat){
E(0);
RS(0);
RW(0);
Delay1(30);
E(1);
PcPdChangeTran(62+stat);
Delay1(30);
E(0);
}
void setpage(int page){
RS(0);
RW(0);
Delay1(30);
E(1);
PcPdChangeTran(184+page);
Delay1(30);// Delay(5);
E(0);
}
void sethang(int hang){
RS(0);
RW(0);
Delay1(30);
E(1);
PcPdChangeTran(192+hang);
Delay1(30);// Delay(5);
E(0);
}
void setlie(int lie){
RS(0);
RW(0);
Delay1(30);
E(1);
PcPdChangeTran(64+lie);
Delay1(30);
E(0);
}
void wdisply(char zi){
RS(1);
RW(0);
Delay1(30);
E(1);
PcPdChangeTran(zi);
Delay1(30);
E(0);
}
void clear(){
int i,j;
CS(1);
for(i=0;i<4;i++)
{setpage(i);
for(j=0;j<64;j++)
{ //if(j>=64)
//CS(0);
// else
// CS(1);
setlie(j);
wdisply(0x00);
}
}
}
void clear1(){
int i,j;
CS(0);
for(i=0;i<4;i++)
{
for(j=64;j<128;j++)
{ //if(j>=64)
//CS(0);
// else
// CS(1);
setpage(i);
setlie(j);
wdisply(0x00);
}
}
}
void mhangngezi(int m,int n,char *zi){//1<=n<=8,m={1,2}
int cs,cs2,j=m;
if(m==1)
j=0;
else
j=2;
if(n>4)
{CS(0);
n=n-4;
}
else
CS(1);
cs2=(n-1)*16;
for(cs=0;cs<33;cs++){
if(cs==16)
{j+=1;
cs2=(n-1)*16;
}
setlie(cs2);
setpage(j);
wdisply(zi[cs]);
cs2++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -