⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cuncuqi.c

📁 单片机C语言实现的对ROM进行测试的C语言的源代码。可供单片机开发人员参考。
💻 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 + -