📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 06/20/2008 14:30:59 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(9,SPEED) REGFILE(.\SM59D04G2.ORC) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<SM59D04G2.h>
2 void ISP_enable (void);
3 void ISP_disable (void);
4 void ISP_Byte_Program (unsigned int DPTR1,unsigned char ONE_DATA1);
5 void ISP_Sector_erase1(unsigned char block); //block=1 to 8
6 //void ISP_512Byte_read_write(unsigned char block);
7 void ISP_readByte(unsigned char block,unsigned int startplace,unsigned int len);
8 void ISP_writeByte(unsigned char block,unsigned int startplace,unsigned int len,unsigned char *wrturndata)
-;
9
10 //void uart_init(void);
11 //void uart_send(unsigned char val);
12 //unsigned char code read_buffer[1] _at_ 0x3c00;
13 unsigned char code g[1] _at_ 0x3000;
14 unsigned char code g1[8] ={0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e};
15 unsigned char idata returndata2[21]={1,4,6,7,5,6,7,8,0x0b,0x0a,1,5,0x0c,4,5,6,7,0x0d,9,0x0a};
16 unsigned char xdata returndata1[512];
17 unsigned char xdata returndata3[21];
18 //unsigned char xdata b;
19 void main()
20 {
21 1
22 1 //uart_init();
23 1 ISP_writeByte(1,0,20,returndata2);
24 1 ISP_readByte(1,0,20);
25 1
26 1 //b=0x08;
27 1 //uart_send(b);
28 1
29 1 while(1)
30 1 {
31 2 //P2_7 =0; //test
32 2 //while(1);
33 2 };
34 1 }
35
36 //void uart_init(void) //串口初始化 // 正常
37 //{
38 //RCAP2H=0xff; //波特率=9600;
39 //RCAP2L=0xdc;
40 //TL2=0xff;
41 //TH2=0xdc;
42 //SCON=0X50;
43 //T2CON=0X34;
44 //}
45
46 //void uart_send(unsigned char val) //功能描述:向串口发送一个字符 // 正常
47 //{
48 //SBUF=val;
49 //while(TI==0);
50 //TI=0;
51 //}
52 //***********************//
53 //功能:打开ISP操作使能
54 //入口:无
C51 COMPILER V8.02 MAIN 06/20/2008 14:30:59 PAGE 2
55 //出口:无
56 //调用函数:无
57 //***********************//
58 void ISP_enable (void) // 正常
59 {
60 1 EA =0;
61 1 ISP_DATA =0x55;
62 1 ISP_DATA =0xaa;
63 1 ISP_DATA =0x55;
64 1 SCONF =SCONF|0x04|0x02;
65 1 }
66 //***********************//
67 //功能:关闭ISP操作使能
68 //入口:无
69 //出口:无
70 //调用函数:无
71 //***********************//
72 void ISP_disable (void) // 正常
73 {
74 1 SCONF =SCONF&0x0FB|0x02;
75 1 EA =1;
76 1 }
77 //***********************//
78 //功能:写入任意一字节到EEPROM的数据
79 //入口:16位地址DPTR1,一字节数据ONE_DATA1
80 //出口:无
81 //调用函数:ISP_enable();ISP_disable();
82 //***********************//
83 void ISP_Byte_Program (unsigned int DPTR1,unsigned char ONE_DATA1) // 正常
84 {
85 1 ISP_enable();
86 1 ISP_DATA =ONE_DATA1;
87 1 ISP_ADDRH =(unsigned char)(DPTR1>>8);
88 1 ISP_ADDRL =(unsigned char)DPTR1;
89 1 ISP_CMD =ISP_IAP_BYTE_PROGRAM;
90 1 ISP_disable();
91 1 }
92 //***********************//
93 //功能:擦除任意EEPROM块的数据
94 //入口:块block
95 //出口:无
96 //调用函数:ISP_enable();ISP_disable();
97 //***********************//
98 void ISP_Sector_erase1(unsigned char block) //block=0 to 7 // 正常
99 {
100 1 unsigned char reblockh;
101 1 reblockh=g1[block];
102 1 ISP_enable();
103 1 ISP_ADDRH=reblockh;
104 1 //ISP_ADDRH=0x3c;
105 1 ISP_ADDRL=0x00;
106 1 ISP_CMD=ISP_IAP_SECTOR_ERASE;
107 1 ISP_CMD=ISP_IAP_SECTOR_ERASE;
108 1 ISP_disable();
109 1 }
110 //***********************//
111 //功能:任意写入EEPROM的数据
112 //入口:块block,初始位置startplace,数据长度len,写入数据wrturndata
113 //出口:无
114 //调用函数:ISP_512Byte_read_write(unsigned char block);ISP_Byte_Program (unsigned int DPTR1,unsigned char
- ONE_DATA1);
115 //***********************//
C51 COMPILER V8.02 MAIN 06/20/2008 14:30:59 PAGE 3
116 void ISP_writeByte(unsigned char block,unsigned int startplace,unsigned int len,unsigned char *wrturndata)
- // 正常
117 {
118 1 unsigned int i=0;
119 1 //long startplace1;
120 1 //startplace1=512*block+startplace;
121 1 //ISP_512Byte_read_write(block);
122 1 SCONF =0x02; //打开外部RAM
123 1 for(i=0;i<512;i++) // 读出任意EEPROM块的全部数据
124 1 {
125 2 returndata1[i]=*(g+512*block+i); //数据存在数组returndata1中
126 2 //uart_send(returndata1[i]);
127 2 }
128 1 for(i=0;i<len;i++) //更新数据
129 1 {
130 2 returndata1[i+startplace]=*wrturndata;
131 2 //uart_send(returndata1[i+startplace]); //
132 2 wrturndata++;
133 2 }
134 1 ISP_Sector_erase1(block); // 擦除任意EEPROM block块的数据
135 1 for(i=0;i<512;i++) //写入更新完的数据
136 1 {
137 2 ISP_Byte_Program(g+512*block+i,*(returndata1+i));
*** WARNING C214 IN LINE 137 OF MAIN.C: 'Argument': conversion: pointer to non-pointer
138 2 //uart_send(returndata1[i]); //
139 2 }
140 1 }
141 //***********************//
142 //功能:任意读出EEPROM的数据
143 //入口:块block,初始位置startplace,数据长度len
144 //出口:数据保存在数组returndata1中
145 //调用函数:无
146 //***********************//
147 void ISP_readByte(unsigned char block,unsigned int startplace,unsigned int len) // 正常
148 {
149 1 unsigned int i=0;
150 1 //startplace=512*block+startplace;
151 1 SCONF =0x02; //打开外部RAM
152 1 for(i=0;i<len;i++)
153 1 {
154 2 returndata3[i]=*(g+512*block+i+startplace); //数据存在数组returndata2中
155 2 //uart_send(returndata3[i]);
156 2
157 2 }
158 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 337 ----
CONSTANT SIZE = 8 ----
XDATA SIZE = 533 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 13
IDATA SIZE = 21 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -