?? eeprom.lst
字號:
C51 COMPILER V9.00 EEPROM 07/01/2013 12:13:31 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE EEPROM
OBJECT MODULE PLACED IN ..\output\EEPROM.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ..\c_file\EEPROM.C BROWSE INCDIR(..\c_file;..\h_file;..\output;..\project)
-DEBUG OBJECTEXTEND PRINT(.\EEPROM.lst) OBJECT(..\output\EEPROM.obj)
line level source
1 #include <intrins.h>
2 # include "stc12c5a60s2.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5 ////以下是ISP/IAP操作時間宏定義選項
6 //#define EN_IAP 0x80 //系統時鐘 ≤ 30MHz//
7 //#define EN_IAP 0x81 //系統時鐘 ≤ 24MHz//
8 //#define EN_IAP 0x82 //系統時鐘 ≤ 20MHz
9 #define EN_IAP 0x83 //系統時鐘 ≤ 12MHz//
10 //#define EN_IAP 0x84 //系統時鐘 ≤ 6MHz//
11 //#define EN_IAP 0x85 //系統時鐘 ≤ 3MHz//
12 //#define EN_IAP 0x86 //系統時鐘 ≤ 2MHz//
13 //#define EN_IAP 0x87 //系統時鐘 ≤ 1MHz
14 /****************【供用戶調用的3個函數】****************/
15 uchar R_EROM(uchar n,uint x); //讀第n扇區,第x字節的數據
16 void W_EROM(uchar n,uint x,uchar dat); //向第n扇區,第x字節寫入數據dat
17 void C_EROM(uchar n); //擦除第n扇區
18 /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函數:禁止IAP操作,清IAP相關寄存器┈┈┈┈┈
-┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
19 void Q0()
20 {
21 1 IAP_CONTR = 0;
22 1 IAP_CMD = 0;
23 1 IAP_TRIG = 0;
24 1 IAP_ADDRH = 0x80;
25 1 IAP_ADDRL = 0;
26 1 }
27 /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函數:讀一字節入口:第n扇區,第x字節 出口:d
-at┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
28 uchar R_EROM(uchar n,uint x)
29 {
30 1 uchar dat;
31 1 uint addr;
32 1 addr =(n-1)*0x0200 + x-1;
33 1 IAP_CONTR = EN_IAP;
34 1 IAP_CMD = 1; //允許讀取EEPROM
35 1 IAP_ADDRL = addr;
36 1 IAP_ADDRH = addr >> 8;
37 1 IAP_TRIG = 0x5a;
38 1 IAP_TRIG = 0xa5;
39 1 _nop_();
40 1 dat = IAP_DATA;
41 1 Q0();
42 1 return dat;
43 1 }
44 /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函數:寫一字節入口:第n扇區,第x字節,待寫入
-數據dat┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
45 void W_EROM(uchar n,uint x,uchar dat)
46 {
47 1 uint addr;
48 1 addr = (n-1)*0x0200 + x-1;
49 1 IAP_CONTR = EN_IAP;
50 1 IAP_CMD = 2; //允許編寫EEPROM
51 1 IAP_ADDRL = addr;
C51 COMPILER V9.00 EEPROM 07/01/2013 12:13:31 PAGE 2
52 1 IAP_ADDRH = addr >> 8;
53 1 IAP_DATA = dat;
54 1 IAP_TRIG = 0x5a;
55 1 IAP_TRIG = 0xa5;
56 1 _nop_();
57 1 Q0();
58 1 }
59 /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函數:擦除某一扇區 入口:第n扇區 ┈┈┈┈┈
-┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
60 void C_EROM(uchar n)
61 {
62 1 uint addr;
63 1 addr = (n-1)*0x0200;
64 1 IAP_CONTR = EN_IAP;
65 1 IAP_CMD = 3; //允許擦除EEPROM
66 1 IAP_ADDRL = addr;
67 1 IAP_ADDRH = addr >> 8;
68 1 IAP_TRIG = 0x5a;
69 1 IAP_TRIG = 0xa5;
70 1 _nop_();
71 1 Q0();
72 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 120 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -