📄 copyer.lst
字号:
C51 COMPILER V7.50 COPYER 10/21/2008 00:32:54 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE COPYER
OBJECT MODULE PLACED IN copyer.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE copyer.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "STC5X.H"
2 #include <intrins.h>
3 #include <absacc.h>
4
5 sbit SFLS = P4^1; //FLASH选择
6 sbit CHIP = P3^2; //外接跳线芯片选择,置0为4MbitFLASH,置1为2MbitFLASH,可由程序自定义不同的FLASH
7 sbit BUZ = P1^7; //指示灯
8 sbit STAR = P1^3; //启动按钮
9
10 sbit A16 = P1^0; //FLASH高于bit15地址
11 sbit A17 = P1^2;
12 sbit A18 = P1^1;
13
14 #define S_HZK SFLS = 0
15 #define S_SAV SFLS = 1
16
17 #define PAGE0 A18=0; A17=0; A16=0;
18 #define PAGE1 A18=0; A17=0; A16=1;
19 #define PAGE2 A18=0; A17=1; A16=0;
20 #define PAGE3 A18=0; A17=1; A16=1;
21 #define PAGE4 A18=1; A17=0; A16=0;
22 #define PAGE5 A18=1; A17=0; A16=1;
23 #define PAGE6 A18=1; A17=1; A16=0;
24 #define PAGE7 A18=1; A17=1; A16=1;
25 #define PAGER A18=1; A17=1; A16=0;
26 #define PAGEM A18=1; A17=1; A16=1;
27
28 #define BAUT9600 0xf4 //9600@22.1184M/6T
29 #define FALSE 0
30 #define TRUE 1
31 #define false 0
32 #define true 1
33
34 //这里如果有字符串写起来会更简洁
35 unsigned char code EraseChip[18] = {0x0d,0x0a,'E','r','a','s','e',' ','c','h','i','p','.','.','.','.','.'
-,'.'};
36 unsigned char code StartProgrammer[21] = {0x0d,0x0a,'S', 't', 'a','r','t',' ','p','r','o','g','r','a','m'
-,'.','.','.','.','.','.'};
37 unsigned char code VerifyChip[19] = {0x0d,0x0a,'V','e','r','i','f','y',' ','c','h','i','p','.','.','.','.
-','.','.'};
38 unsigned char code ProSuc[22] = {0x0d,0x0a,'V','e','r','i','f','y',' ','s','u','c','c','e','s','s','f','u
-','l','l','y','.'};
39 unsigned char code ProFail[16] = {0x0d,0x0a,'V','e','r','i','f','y',' ','f','a','i','l','e','d','.'};
40 unsigned char code Dot[1] = '.';
41 unsigned char ledlen,ledfls,ledon;
42
43 /*================================================================
44 * 函 数 名: inichip
45 * 参 数: none
46 * 功能描述:
47 * 初始寄存器
48 * 返 回 值: none
49 * 作 者: uCore
50 * 修改日期: 2008-10-21 00:21
51 ===================================================================*/
C51 COMPILER V7.50 COPYER 10/21/2008 00:32:54 PAGE 2
52 void inichip(void)
53 {
54 1 SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr (REN=1)
55 1 TMOD = 0x21; //TMOD: timer 1, mode 2, 8-bit reload
56 1
57 1 TH1 = BAUT9600; //Baud:4800 fosc=11.0592MHz
58 1 IE = 0xA0; //EA - ET2 ES ET1 EX1 ET0 EX0
59 1 TCON = 0x54; //TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 //外部中断1为跳变触发
60 1
61 1 T2CON=0x04;
62 1 TH2 = 0x4b; // 定时器初值
63 1 TL2 = 0xfd;
64 1 TR2 = 1;
65 1
66 1 AUXR=0x03; //禁用内部扩展RAM
67 1 }
68
69 /*================================================================
70 * 函 数 名: timer2Int
71 * 参 数: none
72 * 功能描述:
73 * 定时器2中断处理
74 * 返 回 值: none
75 * 作 者: uCore
76 * 修改日期: 2008-10-21 00:21
77 ===================================================================*/
78 void timer2Int(void) interrupt 5
79 {
80 1 TF2 = 0; // 溢出标志必须由软件清零
81 1 EXF2 = 0; // 捕获标志必须由软件清零
82 1 TH2 = 0x4b; // 定时器初值50mS
83 1 TL2 = 0xfd;
84 1
85 1 if(ledlen) //这里由于不缺资源,这几句效率可能不高,呵呵
86 1 --ledlen;
87 1 else
88 1 {
89 2 if(ledon)
90 2 {
91 3 BUZ = !BUZ;
92 3 ledlen = ledfls;
93 3 }
94 2 }
95 1 }
96
97 /*================================================================
98 * 函 数 名: SendPackageToCom
99 * 参 数: dat: 要发送的数据指针; slen: 长度
100 * 功能描述:
101 * 查询方式发送数据串
102 * 返 回 值: none
103 * 作 者: uCore
104 * 修改日期: 2008-10-21 00:22
105 ===================================================================*/
106 void SendPackageToCom(unsigned char *dat, unsigned char slen)
107 {
108 1 unsigned char i;
109 1 TI=0;
110 1 i=0;
111 1 while(i<slen)
112 1 {
113 2 SBUF=dat[i];
C51 COMPILER V7.50 COPYER 10/21/2008 00:32:54 PAGE 3
114 2 while(!TI); //Sending.......
115 2 TI=0;
116 2 ++i;
117 2 }
118 1 }
119
120 /*================================================================
121 * 函 数 名: TurnChipAdr
122 * 参 数: cadr: FLASH高于A15地址
123 * 功能描述:
124 * 选择高地址
125 * 返 回 值: none
126 * 作 者: uCore
127 * 修改日期: 2008-10-21 00:22
128 ===================================================================*/
129 void TurnChipAdr(unsigned char cadr)
130 {
131 1 switch(cadr)
132 1 {
133 2 case 0:
134 2 PAGE0;
135 2 break;
136 2 case 1:
137 2 PAGE1;
138 2 break;
139 2 case 2:
140 2 PAGE2;
141 2 break;
142 2 case 3:
143 2 PAGE3;
144 2 break;
145 2 case 4:
146 2 PAGE4;
147 2 break;
148 2 case 5:
149 2 PAGE5;
150 2 break;
151 2 case 6:
152 2 PAGER;
153 2 break;
154 2 case 7:
155 2 PAGEM;
156 2 break;
157 2 }
158 1 }
159
160 /*================================================================
161 * 函 数 名: Delay_1_0Milli_Seconds
162 * 参 数: none
163 * 功能描述:
164 * 延时10mS
165 * 返 回 值: none
166 * 作 者: ucore
167 * 修改日期: 2006.11.29
168 ===================================================================*/
169 void Delay_10_Milli_Seconds()
170 {
171 1 unsigned int i;
172 1 // WDT_CONTR = 0x34;
173 1 i=4000;
174 1 while(i)--i; //10ts
175 1 }
C51 COMPILER V7.50 COPYER 10/21/2008 00:32:54 PAGE 4
176
177 /*================================================================
178 * 函 数 名: Check_Toggle_Ready
179 * 参 数: dst: 地址
180 * 功能描述:
181 * 查询FLASH忙状态
182 * 返 回 值: none
183 * 作 者: uCore
184 * 修改日期: 2008-10-21 00:22
185 ===================================================================*/
186 void Check_Toggle_Ready (unsigned int Dst)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -