📄 935e2ram.c
字号:
/////////////////////////////////////////////////////
#include <Reg935.h>
#include<intrins.h>
#define uchar unsigned char
/////////////////////////////////////////////////////
sbit LED_red = P1^7 ;
sbit LED_green = P1^6 ;
sbit KEY1 = P0^0 ;
sbit KEY2 = P0^5 ;
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
main()
{
uchar Temp;
uchar Count;
uchar Data;
uchar Addr;
uchar data ser_dat[64]={0};
P1M1=0x00; /*设置P1.0,P1.7 为推挽输出,P1.1 为输入状态*/
P1M2=0xC0;
P0M1=0x00;
P0M2=0x00;
while(1)
{
if(KEY1==0) //当KEY1按下,向 地址为0-->0xff的区域写入数据0->0xff.
{
LED_green=0; //点亮运行指示灯
Addr=0x00; //地址初始值
Data=0x00; //待写入数据初始值
Count=65; //循环次数
EA=0; //写操作前关闭中断功能,避免干扰
while(Count>0)
{
DEECON=0x00; //初始化DEECON
DEEDAT=Data; //赋值DEEDAT
DEEADR=Addr; //赋值DEEADR
while((DEECON&0x80)==0); //等待写完成
DEECON=DEECON&0x7F; //清0写完成标志位
Data++; //待写入数据递增
Addr++; //地址递增
Count--; //循环次数递减
if(Count==0)
{
LED_green=1; //最后一次循环,熄灭运行指示灯
}
}
EA=1; //开中断
}
//read--------------------------
if(KEY2==0) //当KEY2按下时,校验地址0-->0xff区域间的数据,不对则BEEP
{
LED_red=0;
Addr=0x00; //首地址
Data=0x00; //首数据
Count=64; //循环次数
while(Count>0)
{
DEECON=0x00; //初始化DEECON
DEEADR=Addr; //赋值DEEADR
while((DEECON&0x80)==0); //等待
Temp=DEEDAT; //将读出的值赋给Tem
ser_dat[Count-1]=Temp;
Data++; //待校验数据递增
Addr++; //地址递增
Count--; //循环次数递减
}
LED_red=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -