📄 memext.c
字号:
#include <reg52.h>
#include <absacc.h>
#include "memext.h"
sbit MEM_CE = P1^4;
#define TEST_BASE 0x00
void delay(unsigned int n)
{
unsigned int i;
for(i = 0;i<n;i++);
}
uchar Read_Byte(uint address,uchar page)
{
uchar c;
//////num always < 8
page &= MAX_PAGE_MASK; /////pages always less than 16
EA = 0; ////disable the interrupt
c = P1 & MEM_P1_HIGH;
P1 = c | (page & MEM_P1_LOW);
MEM_CE = 0;
//delay(100);
c = XBYTE[address];
//delay(100);
MEM_CE = 1;
P1 &= MEM_P1_HIGH;
EA = 1 ;
return c;
}
void page_input(uint address,uchar page,uchar num,uchar *pXfer_Buf)
{
uchar c,c1;
num &= MAX_NUM_MASK; //////num always < 8
page &= MAX_PAGE_MASK; /////pages always less than 16
EA = 0; ////disable the interrupt
//// P1 = page;
////only change the 4LSB of P1
/// MEM_CE = 0;
c = P1 & MEM_P1_HIGH;
P1 = c | (page & MEM_P1_LOW);
for(c1 = 0;c1 < num; c1++)
{
MEM_CE = 0;
pXfer_Buf[c1] = XBYTE[address+c1];
MEM_CE = 1;
// delay(300);
}
/// MEM_CE = 1;
P1 &= MEM_P1_HIGH;
EA = 1 ;
}
void main(void)
{
char c1,c3;
//char c2[1];
uint i,j;
TMOD = 0x20;
TH1 =0xfd;
SCON = 0x50;
TR1 = 1;
while(1)
{
for(j=0;j<6;j++)
{
for(i = 0; i<0xff;i++)
{
/// page_input(TEST_BASE + i,j,1,c2);
c3 = Read_Byte(TEST_BASE+i,j);
delay(10000);
// P1 = ~c1;
c1 = TEST_BASE+i;
SBUF = c1;
while(TI == 0);TI = 0;
//// SBUF = c2[0];
SBUF = c3;
while(TI == 0);
TI = 0;
}
/// while(1);
SBUF = 0xff;
while(TI == 0);TI = 0; SBUF = 0xff;
while(TI == 0);TI = 0; SBUF = 0xff;
while(TI == 0);TI = 0; SBUF = 0xff;
while(TI == 0);TI = 0; SBUF = 0xff;
while(TI == 0);TI = 0;
delay(65535); delay(65535); delay(65535);
/// P1 = ~c1; delay(65535); delay(65535);
} ///delay(65535); delay(65535);delay(65535); delay(65535);delay(65535); delay(65535);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -