📄 cuncuqi.c
字号:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define RCOMM XBYTE[0x8000]//右屏命令地址
#define LCOMM XBYTE[0x8800]//左屏命令地址
#define RWRITE XBYTE[0x8001]//右屏写地址
#define LWRITE XBYTE[0x8801]//左屏写地址
#define RREAD XBYTE[0x8003]//右屏读地址
#define LREAD XBYTE[0x8803]//左屏读地址
#define STATE XBYTE[0x8002]//状态地址
#define ram XBYTE[0x0000]
sbit SO=P1^4;/*数据输出 */
sbit SI=P1^5;/* 数据输入*/
sbit SK=P1^3;/* 时钟 */
sbit CS=P1^7;/*片选 */
sbit WP=P1^6;/* 保护*/
#define WREN 0x06//写允许
#define WRDI 0x04//写禁止
#define RDSR 0x05//读寄存器
#define WRSR 0x01 //写寄存器
#define READ0 0x03//读0页
#define READ1 0x0b//读1页
#define WRITE0 0x02//写0页
#define WRITE1 0x0a//写1页
unsigned char Read8()
{
bit bData;
unsigned char cLoop;
unsigned char cData;
for(cLoop=0;cLoop<8;cLoop++)
{
SK=1;
SK=0;
bData=SO;
cData<<=1;
if(bData)
{
cData|=0x01;
}
}
return cData;
}
void Write8(unsigned char cData)
{
unsigned char cLoop;
for(cLoop=0;cLoop<8;cLoop++)
{
if((cData&0x80)==0)
{
SI=0;
}
else
{
SI=1;
}
SK=0;
SK=1;
cData<<=1;
}
}
unsigned char ReadSR()
{
unsigned char cData;
CS=0;
Write8(RDSR);
cData=Read8();
CS=1;
return cData;
}
unsigned char WriteSR(unsigned char cData)
{
CS=0;
Write8(WREN);
CS=1;
CS=0;
Write8(WRSR);
Write8(cData);
CS=1;
/*wip_poll();*/
}
void Write1B(unsigned char cData,unsigned char cAddress,bit bRegion)
/* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页 */
{
while((ReadSR()&0x01)==1)
{
}
CS=0;
Write8(WREN);
CS=1;
CS=0;
if(bRegion==0)
{
Write8(WRITE0);
}
else
{
Write8(WRITE1);
}
Write8(cAddress);
Write8(cData);
SK=0;
CS=1;
/*wip_poll();*/
}
unsigned char Read1B(unsigned char cAddress,bit bRegion)
/* 读入一个字节,cAddress为读入地址,bRegion为页 */
{
unsigned char cData;
while((ReadSR()&0x01)==1)
{
}
CS=0;
if(bRegion==0)
{
Write8(READ0);
}
else
{
Write8(READ1);
}
Write8(cAddress);
cData=Read8();
CS=1;
return cData;
}
unsigned char code lib[96][16]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",2*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",3*/
{0x08,0x88,0x68,0xFF,0x28,0x48,0x10,0x48,0x44,0x43,0x44,0x48,0x50,0x10,0x10,0x00},
{0x02,0x01,0x00,0x7F,0x00,0x20,0x22,0x2C,0x21,0x2E,0x30,0x28,0x27,0x22,0x20,0x00},/*"检",4*/
{0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00},
{0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00},/*"测",5*/
{0x00,0x90,0x8C,0xA4,0xA4,0xA4,0xA5,0xA6,0xA4,0xA4,0xA4,0xA4,0x94,0x8C,0x04,0x00},
{0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x70,0x00,0x00},/*"完",6*/
{0x00,0x00,0xFF,0x88,0x48,0x28,0x08,0x80,0x7F,0x88,0x88,0x88,0x84,0x84,0xE0,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"毕",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",8*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",10*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",11*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00},
{0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20},/*"R",0,"A",1*/
{0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"M",2," ",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*" ",4,"I",5*/
{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",6," ",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00},/*" ",8,"F",9*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00},
{0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"R",1*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00},
{0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"O",3*/
{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",5*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00},
{0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"E",0*/
{0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00},
{0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"P",2*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00},
{0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00},/*"O",4*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*" ",6*/
{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",8*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00},
{0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"E",10*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00},
{0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00},/*"R",12*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00},
{0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00},/*"R",14*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",2*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",1*/
{0x08,0x88,0x68,0xFF,0x28,0x48,0x10,0x48,0x44,0x43,0x44,0x48,0x50,0x10,0x10,0x00},
{0x02,0x01,0x00,0x7F,0x00,0x20,0x22,0x2C,0x21,0x2E,0x30,0x28,0x27,0x22,0x20,0x00},/*"检",4*/
{0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00},
{0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00},/*"测",5*/
{0x00,0x90,0x8C,0xA4,0xA4,0xA4,0xA5,0xA6,0xA4,0xA4,0xA4,0xA4,0x94,0x8C,0x04,0x00},
{0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x70,0x00,0x00},/*"完",6*/
{0x00,0x00,0xFF,0x88,0x48,0x28,0x08,0x80,0x7F,0x88,0x88,0x88,0x84,0x84,0xE0,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"毕",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",8*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",10*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",11*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00},
{0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20},/*"R",0,"A",1*/
{0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"M",2," ",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*" ",4,"I",5*/
{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",6," ",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00},/*" ",8,"F",9*/
{0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08},
{0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00},/*"I",10,"N",11*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00},
{0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00},/*"E",12,"!",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",1*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00},
{0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"E",0*/
{0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00},
{0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"P",2*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00},
{0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00},/*"O",4*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*" ",6*/
{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",8*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00},
{0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"F",0*/
{0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00},
{0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00},/*"N",2*/
{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",4*/
};
void ccq()
{
unsigned xdata *s,i,j;
unsigned char l,h,y,dd,ye;
unsigned char vr,k;
bit p,q;
LCOMM=0x3f;//开左屏显示
LCOMM=0xc0;//起始行,0
LCOMM=0x40;//列地址,0
RCOMM=0x3f;//开右屏显示
RCOMM=0xc0;//起始行,0
RCOMM=0x40;//列地址,0
//RAMTEST
p=1;
s=&ram;
i=0;
while(s!=0x7ffe)
{
*s=i;
j=*s;
if(i!=j)
{p=0;}
i++;
s++;
}
//显示一页
ye=0xb8;//页数,0
LCOMM=ye;
RCOMM=ye;
for(y=0;y<4;y++)
{
for(l=0;l<4;l++)
{
for(h=0;h<16;h++)
{
dd=lib[2*l+16*y][h];//取左屏字上半部分
LWRITE=dd;
dd=lib[2*l+16*y+8][h];//取右屏字上半部分
RWRITE=dd;
}
}
ye++;
LCOMM=ye;
RCOMM=ye;
for(l=0;l<4;l++)
{
for(h=0;h<16;h++)
{
dd=lib[1+2*l+16*y][h];//取左屏字下半部分
LWRITE=dd;
dd=lib[1+2*l+16*y+8][h];//取右屏字下半部分
RWRITE=dd;
}
}
ye++;
LCOMM=ye;
RCOMM=ye;
}
if(p==1)
{
ye=0xba;//页数,0
LCOMM=ye;
RCOMM=ye;
for(l=0;l<4;l++)
{
for(h=0;h<16;h++)
{
dd=lib[2*l+64][h];//取左屏字上半部分
LWRITE=dd;
dd=lib[2*l+64+8][h];//取右屏字上半部分
RWRITE=dd;
}
}
ye++;
LCOMM=ye;
RCOMM=ye;
for(l=0;l<4;l++)
{
for(h=0;h<16;h++)
{
dd=lib[1+2*l+64][h];//取左屏字下半部分
LWRITE=dd;
dd=lib[1+2*l+64+8][h];//取右屏字下半部分
RWRITE=dd;
}
}
ye++;
LCOMM=ye;
RCOMM=ye;
}
//E2PROMTEST
WP=1;
q=1;
for(k=0;k<255;k++)
{
vr=k;
Write1B(vr,k,0);
vr=Read1B(k,0);
if(k!=vr)
{q=0;}
}
for(k=0;k<255;k++)
{
vr=k;
Write1B(vr,k,1);
vr=Read1B(k,1);
if(k!=vr)
{q=0;}
}
if(q==1)
{
ye=0xbc;//页数,0
LCOMM=ye;
RCOMM=ye;
for(l=0;l<4;l++)
{
for(h=0;h<16;h++)
{
dd=lib[2*l+80][h];//取左屏字上半部分
LWRITE=dd;
dd=lib[2*l+80+8][h];//取右屏字上半部分
RWRITE=dd;
}
}
ye++;
LCOMM=ye;
RCOMM=ye;
for(l=0;l<4;l++)
{
for(h=0;h<16;h++)
{
dd=lib[1+2*l+80][h];//取左屏字下半部分
LWRITE=dd;
dd=lib[1+2*l+80+8][h];//取右屏字下半部分
RWRITE=dd;
}
}
ye++;
LCOMM=ye;
RCOMM=ye;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -