?? wxramb.lst
字號:
C51 COMPILER V7.05 WXRAMB 02/13/2006 11:25:07 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE WXRAMB
OBJECT MODULE PLACED IN WXRAMB.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe WXRAMB.C DB OE
stmt level source
1 //參考程序B://WXRAMB.C 程序對片內數據存儲器(4K RAM)實現讀/寫操作,先在地址//0000---00FFH寫入數據,再讀出
-進行比較是否正確,若不正確蜂鳴器響一聲
2 #include <c8051f020.h> // SFR declarations
3 #include <intrins.h>
4 sbit BUZ = P3^5 ; // P3^5位管理蜂鳴器
5 unsigned char xdata *point;
6 void PORT_Init (void);
7 void sleep_ms(unsigned char count) //延時
8 {
9 1 unsigned char ii,jj;
10 1 for(ii=0;ii<count;ii++)
11 1 {
12 2 for(jj=0;jj<250;jj++)
13 2 _nop_();
14 2 }
15 1 }
16 void main (void) //主程序
17 {
18 1 unsigned char WrData,RdData;
19 1 unsigned int k;
20 1 WDTCN = 0xde; /*無效看門狗*/
21 1 WDTCN = 0xad;
22 1 PORT_Init(); /*初始化端口*/
23 1 WrData=0x0; /*寫入數據從0開始*/
24 1 point=0x0000; /*地址指針從0000開始*/
25 1 for(k=0;k<0x100;k++) /*寫16個數據*/
26 1 {
27 2 *point=WrData; /*寫數據到片內數據存儲器(4K RAM)*/
28 2 point++;
29 2 WrData++;
30 2 }
31 1 WrData=0x0;
32 1 point=0x0000;
33 1 for(k=0;k<0x10;k++) /*讀出比較*/
34 1 {
35 2 RdData=*point; /*讀數據*/
36 2 if(RdData!=WrData){ /*是否出錯*/
37 3 BUZ = 0; /*蜂鳴器響*/
38 3 sleep_ms(250);
39 3 BUZ = 1; /*蜂鳴器滅*/
40 3 }
41 2 _nop_();
42 2 WrData++;
43 2 point++;
44 2 _nop_();
45 2 }
46 1 _nop_();
47 1 }
48
49 void PORT_Init (void)
50 {
51 1 XBR2 = 0x40; /*使能交叉開關和弱上拉*/
52 1 EMI0CF |= 0x20; /*只用片內數據存儲器,ALE高/低脈寬占1個SYSCLK周期*/
53 1 EMI0TC |= 0x6c;/*地址建立/保持時間占0個SYSCLK周期/WR和/RD占12個SYSCLK周期*/
54 1 P3MDOUT |= 0x20; /*使能P3.5推挽輸出*/
C51 COMPILER V7.05 WXRAMB 02/13/2006 11:25:07 PAGE 2
55 1 }
56
57
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 129 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -