?? wxram.#2
字號:
//參考程序B: WXRAM.c程序功能: 從外部擴展XRAM(62256)的首地址(0000H
//)開始依次序寫入256個數據(從0到0FFH),然后再從首地址(0000H)讀出并進行
//比較,看讀出來的256個數據是否正確.若不正確,蜂鳴器響一聲.
#include <c8051f020.h> // SFR declarations
#include <intrins.h>
sbit BUZ = P3^5;
unsigned char xdata *point;
void PORT_Init (void);
void sleep_ms(unsigned char count)
{
unsigned char ii,jj;
for(ii=0;ii<count;ii++)
{
for(jj=0;jj<250;jj++)
_nop_();
}
}
void main (void) {
unsigned char k,WrData,RdData;
/*無效看門狗*/
WDTCN = 0xde;
WDTCN = 0xad;
PORT_Init(); /*初始化端口*/
P6=0x00;
P5=0x00;
WrData=0x0; /*待寫數據變量*/
point=0x0000; /*地址指針*/
for(k=0;k<0x10;k++) /*寫十個數據*/
{
*point=WrData; /*寫數據到RAM*/
point++;
WrData++;
}
WrData=0x0;
point=0x0000;
for(k=0;k<0x10;k++) /*讀出比較*/
{
RdData=*point; /*讀數據*/
if(RdData!=WrData){ /*是否出錯*/
BUZ = 0; /*蜂鳴器響*/
sleep_ms(250);
BUZ = 1; /*蜂鳴器滅*/
}
_nop_();
WrData++;
point++;
_nop_();
}
_nop_();
}
void PORT_Init (void)
{
XBR2 = 0x40; /*使能交叉開關和弱上拉*/
P74OUT |= 0xff; /*使能P4,P5,P6,P7推挽輸出*/
EMI0CF |= 0x2c; /*EMIF工作在地址/數據復用方式,*/
/*只用外部存儲器,ALE高/低脈寬占1個SYSCLK周期*/
EMI0TC |= 0x6c;/*地址建立/保持時間占0個SYSCLK周期,/WR和/RD占12個SYSCLK周期*/
P3MDOUT |= 0x20; /*使能P3.5推挽輸出*/
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -