?? led1.lst
字號(hào):
C51 COMPILER V6.02 LED1 01/15/2009 11:59:30 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE LED1
OBJECT MODULE PLACED IN C:\DOCUME~1\ADMINI~1\桌面\LED\LED1.OBJ
COMPILER INVOKED BY: D:\WAVE6000\COMP51\C51.EXE C:\DOCUME~1\ADMINI~1\桌面\LED\LED1.C DB SB OE
stmt level source
1 #include<NI51REG.H>
2 #define FLASH_HZ 500
3 #define DELAY_BASE 100
4 #define LIGHTS 125
5 #define MS 4
6 #define TPS 411
7 //#define THISADDR 0x25
8 #define UARTBD 0xfa
9
10 #define ISP_WAIT 0x03
11 #define ISP_READ 1
12 #define ISP_WRITE 2
13 #define ISP_ERASE 3
14
15 sbit clk = P1^5;
16 sbit dat = P1^4;
17 sbit gate1 = P1^2;
18 sbit gate2 = P1^3;
19 unsigned int cnt;
20 unsigned char rg;
21 unsigned int Now_P = 0;
22 unsigned int Aim_P = 0;
23 unsigned int Dis_P = 0;
24 unsigned long Time_D = 0;
25 unsigned long Time = 1;
26 int timecnt = 0;
27 unsigned int T = 1;
28 unsigned int T_tmp= 0;
29 unsigned long Delay_num;
30 unsigned long num;
31 int De = 0;
32 unsigned int F=0;
33 unsigned int N=0;
34
35 bit TrStar_sign = 0;//transport start
36 bit NewCmd_sign = 0;
37 bit run_sign = 1;
38
39 unsigned char TrCounter = 0;
40 unsigned char TrData[5] = 0;
41 unsigned char AimData[5] = 0;
42 unsigned char mode = 0;
43 unsigned char THISADDR = 0x2A;
44 Move(int x);
45 void delay_1ms() interrupt 1
46 {
47 1 if(num > 0)
48 1 {
49 2 num--;
50 2 TH0 = 0xFc;
51 2 TL0 = 0x6e;
52 2 }
53 1 }
54 void delay(unsigned long x)
55 {
C51 COMPILER V6.02 LED1 01/15/2009 11:59:30 PAGE 2
56 1 TR0 = 1;
57 1 num = x;
58 1 while(num>0)
59 1 {}
60 1 TR0 = 0;
61 1 }
62 void serial() interrupt 4
63 {
64 1 //unsigned char i;
65 1 EA = 0;
66 1 if(RI)
67 1 {
68 2 RI = 0;
69 2 //run_sign = ~run_sign;
70 2 /*test*/
71 2 /*if(SBUF == 0x0c)
72 2 {
73 2 run_sign = 0;
74 2 }
75 2 else if(SBUF == 0xbb)
76 2 {
77 2 run_sign = 1;
78 2 }
79 2 /*test end*/
80 2
81 2 if((!TrStar_sign)&&(SBUF == 0x0c))
82 2 {
83 3 TrStar_sign = 1;
84 3 TrCounter = 0;
85 3 //run_sign = ~run_sign;
86 3 }
87 2
88 2 else if(TrStar_sign)
89 2 {
90 3 if(TrCounter < 5)
91 3 {
92 4
93 4 TrData[TrCounter] = SBUF;
94 4 TrCounter++;
95 4 }
96 3 else if(SBUF == 0xbb)
97 3 {
98 4 if(TrData[0] == THISADDR)
99 4 {
100 5 AimData[0] = TrData[0];
101 5 AimData[1] = TrData[1];
102 5 AimData[2] = TrData[2];
103 5 AimData[3] = TrData[3];
104 5 AimData[4] = TrData[4];
105 5 NewCmd_sign = 1;
106 5 TrCounter++;
107 5 }
108 4 TrCounter = 0;
109 4 TrStar_sign = 0;
110 4 }
111 3 }
112 2 }
113 1 EA = 1;
114 1 }
115 /*void serial() interrupt 4
116 {
117 unsigned char i;
C51 COMPILER V6.02 LED1 01/15/2009 11:59:30 PAGE 3
118 EA = 0;
119 if(RI)
120 {
121 RI = 0;
122
123 run_sign = ~run_sign;
124 }
125 EA = 1;
126 }*/
127 unsigned char isp_read(unsigned int addr)
128 {
129 1 unsigned char nop;
130 1 ISP_ADDRH = (addr >> 8);
131 1 ISP_ADDRL = (addr & 0x00ff);
132 1 EA = 0;
133 1 ISP_CONTR = ISP_WAIT;
134 1 ISP_CONTR |= 0x80;
135 1 ISP_CMD = ISP_READ;
136 1 ISP_TRIG = 0x46;
137 1 ISP_TRIG = 0xb9;
138 1 nop = 1;
139 1 ISP_CONTR = 0x00;
140 1 ISP_CMD = 0x0;
141 1 ISP_TRIG = 0x0;
142 1 ISP_ADDRH = 0x0;
143 1 ISP_ADDRL = 0x0;
144 1 EA = 1;
145 1 return ISP_DATA;
146 1 }
147
148 void isp_erase(unsigned int addr)
149 {
150 1 unsigned char nop;
151 1 ISP_ADDRH = (addr >> 8);
152 1 ISP_ADDRL = (addr & 0x00ff);
153 1 EA = 0;
154 1 ISP_CONTR = ISP_WAIT;
155 1 ISP_CONTR |= 0x80;
156 1 ISP_CMD = ISP_ERASE;
157 1 ISP_TRIG = 0x46;
158 1 ISP_TRIG = 0xb9;
159 1 nop = 1;
160 1 ISP_CONTR = 0x00;
161 1 ISP_CMD = 0x0;
162 1 ISP_TRIG = 0x0;
163 1 ISP_ADDRH = 0x0;
164 1 ISP_ADDRL = 0x0;
165 1 EA = 1;
166 1 }
167
168 void isp_write(unsigned int addr,unsigned char dat)
169 {
170 1 unsigned char nop;
171 1 ISP_DATA = dat;
172 1 ISP_ADDRH = (addr >> 8);
173 1 ISP_ADDRL = (addr & 0x00ff);
174 1 EA = 0;
175 1 ISP_CONTR = ISP_WAIT;
176 1 ISP_CONTR |= 0x80;
177 1 ISP_CMD = ISP_WRITE;
178 1 ISP_TRIG = 0x46;
179 1 ISP_TRIG = 0xb9;
C51 COMPILER V6.02 LED1 01/15/2009 11:59:30 PAGE 4
180 1 nop = 1;//無(wú)意義 延時(shí)操作
181 1 ISP_CONTR = 0x00;
182 1 ISP_CMD = 0x0;
183 1 ISP_TRIG = 0x0;
184 1 ISP_ADDRH = 0x0;
185 1 ISP_ADDRL = 0x0;
186 1 EA = 1;
187 1 }
188
189 /*void delay(unsigned int kk)
190 {
191 unsigned int t1,t2;
192 for (t1 = 0;t1<60;t1++)
193 {
194 for(t2 = 0;t2 < kk;t2++);
195 }
196 }*/
197
198 Move(int x)
199 {
200 1 unsigned int i,NUM1,NUM2;
201 1 x = (x > LIGHTS)?LIGHTS:x;
202 1 x = (x < 1)?0:x;
203 1
204 1 gate1 = 0;
205 1 gate2 = 1;
206 1 NUM1 = (LIGHTS-x) + (LIGHTS-x)/7;
207 1 NUM2 = (x+x/7);
208 1 if(!NewCmd_sign)
209 1 {
210 2 for(i = 0;i < NUM1;i++)
211 2 {
212 3
213 3 clk = 0;
214 3
215 3 dat = 1;
216 3
217 3 clk = 1;
218 3
219 3 }
220 2 for(i = 0;i < NUM2;i++)
221 2 {
222 3
223 3 clk = 0;
224 3
225 3 dat = 0;
226 3
227 3 clk = 1;
228 3 }
229 2
230 2 gate1 = 1;
231 2 gate2 = 0;
232 2 }
233 1 else
234 1 return(0);
235 1 }
236
237 test_mode()
238 { Delay_num = AimData[2];
239 1 while(1)
240 1 {
241 2 if(!NewCmd_sign)
C51 COMPILER V6.02 LED1 01/15/2009 11:59:30 PAGE 5
242 2 {
243 3
244 3 Aim_P = (Aim_P == 124)?0:Aim_P+1;
245 3 Move(Aim_P);
246 3 delay(Delay_num);
247 3 }
248 2 else
249 2 {
250 3 Now_P = Aim_P;
251 3 return(0);
252 3 }
253 2 }
254 1 }
255
256 shake_mode()
257 {
258 1 N = AimData[3];
259 1 F=AimData[2];
260 1 while(1)
261 1 {
262 2 if(!NewCmd_sign)
263 2 { De = ~De;
264 3 Aim_P = (De)?(Aim_P+F):(Aim_P-F);
265 3 Now_P = (De)?(Aim_P-F):(Aim_P+F);
266 3 Aim_P = (Aim_P<0)?(0):(Aim_P);
267 3 Now_P = (Now_P<0)?(0):(Now_P);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -