📄 isp.lst
字号:
C51 COMPILER V7.04 ISP 04/05/2006 15:17:54 PAGE 1
C51 COMPILER V7.04, COMPILATION OF MODULE ISP
OBJECT MODULE PLACED IN isp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE isp.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "main.h"
2 #include "isp.h"
3 #include <intrins.h>
4
5 #define NOP _nop_()
6
7 void ChipErase();
8 void PageErase(unsigned char pageNo);
9 void SetChipProtect();
10 void ChipWrite(unsigned int addr,unsigned char chValue);
11 unsigned char ChipRead(unsigned int addr);
12
13 /////////////////////////////////////////////////////////
14 void ChipErase()
15 {
16 1
17 1 WatchDog();
18 1
19 1 #ifdef MY_DEBUG
20 1 SCONF =VALUE_SCONF;//允许IPSE OME
21 1 ISPFD =0x55;
22 1 ISPFD =0xaa;
23 1 ISPFD =0x55;
24 1 #endif
25 1
26 1
27 1 ISPC =0x83;
28 1
29 1 WatchDog();
30 1
31 1 }
32
33 //页擦除512字节
34 void PageErase(unsigned char pageNo)
35 {
36 1
37 1 unsigned char temp;
38 1 unsigned int addr;
39 1
40 1 //$XY00 to $X(Y+1)FF (Y:even number), or
41 1 //$X(Y-1) 00 to $XYFF (Y:odd number)
42 1
43 1 WatchDog();
44 1
45 1 #ifdef MY_DEBUG
46 1 SCONF =VALUE_SCONF;//允许IPSE OME
47 1 ISPFD =0x55;
48 1 ISPFD =0xaa;
49 1 ISPFD =0x55;
50 1 #endif
51 1
52 1
53 1 addr=pageNo;
54 1 addr*=512;
55 1
C51 COMPILER V7.04 ISP 04/05/2006 15:17:54 PAGE 2
56 1
57 1 temp=((addr>>8)&0xff);
58 1 ISPFAH =temp;
59 1 temp=(addr & 0xff);
60 1 ISPFAL =addr & 0xff;
61 1
62 1
63 1 ISPC =0x82;
64 1
65 1 WatchDog();
66 1
67 1
68 1 }
69
70 void SetChipProtect()
71 {
72 1
73 1 #ifdef MY_DEBUG
74 1 SCONF =VALUE_SCONF;//允许IPSE OME
75 1 ISPFD =0x55;
76 1 ISPFD =0xaa;
77 1 ISPFD =0x55;
78 1 #endif
79 1
80 1 ISPC =0x81;
81 1
82 1 }
83
84
85
86
87 /*
88 **************************************************************
89 MOV SCONF,#04H ; enable SM5964 ISP function
90 MOV ISPFAH,#10H ; set flash address-high, 10H
91 MOV ISPFAL,#05H ; set flash address-low, 05H
92 MOV ISPFD,#22H ; set flash data to be programmed, data = 22H
93 MOV ISPC,#80H ; start to program #22H to the flash address $1005H
94 ; after byte program finished, START bit of ISPC will be reset to 0 automatically
95 ; program counter then point to the next instruction
96 **************************************************************
97 */
98 void ChipWrite(unsigned int addr,unsigned char chValue)
99 {
100 1
101 1 unsigned char temp;
102 1
103 1 #ifdef MY_DEBUG
104 1 SCONF =VALUE_SCONF;//允许IPSE OME
105 1 ISPFD =0x55;
106 1 ISPFD =0xaa;
107 1 ISPFD =0x55;
108 1 #endif
109 1
110 1
111 1
112 1
113 1 temp=((addr>>8)&0xff);
114 1 ISPFAH =temp;
115 1
116 1 temp=(addr & 0xff);
117 1 ISPFAL =temp;
C51 COMPILER V7.04 ISP 04/05/2006 15:17:54 PAGE 3
118 1
119 1
120 1 temp=chValue;
121 1 ISPFD =temp;
122 1
123 1 ISPC =0x80;
124 1
125 1
126 1 }
127
128 unsigned char ChipRead(unsigned int addr)
129 {
130 1 unsigned char temp;
131 1
132 1 unsigned char code *pt;
133 1
134 1
135 1 pt=addr;
136 1
137 1 temp=*pt;
138 1
139 1
140 1 return temp;
141 1 }
142
143
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 96 ----
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 + -