?? keil.lst
字號:
C51 COMPILER V7.10 KEIL 09/13/2007 22:01:37 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE KEIL
OBJECT MODULE PLACED IN keil.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE keil.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************測試控制器程序 *************************
2 ** 編號 中斷源 入口地址 **
3 ** 0 外部中斷0 0003H **
4 ** 1 定時計數0 000BH **
5 ** 2 外部中斷1 0013H **
6 ** 3 定時記數1 001BH **
7 ** 4 串口中斷 0023H **
8 *******************************************************
9 ***倉控制板硬件定義
10 P35--出牌電機 P11--出牌計數 P12--傳感器電源開關
11 P15--傳動電機 P10--有無牌檢測 P13--傳感器電源開關
12 P27--開始按鍵 P25--蜂鳴器 P0---LEDdata
13 P14--DIP撥碼 P16--選擇傳動電機轉動方式
14 P26--個 P2.2--十 P2.4--百 P2.0--千
15 ******************************************************
16 計數傳感器有牌時為H、無牌時為L
17 有無牌檢測傳感器有牌時為L、無牌時為H
18 NUMLAB: ;共陽
19 db 0A0H ;NUM_0
20 db 0BBH ;NUM_1
21 db 62H ;NUM_2
22 db 2AH ;NUM_3
23 db 39H ;NUM_4
24 db 2CH ;NUM_5
25 db 24H ;NUM_6
26 db 0BAH ;NUM_7
27 db 20H ;NUM_8
28 db 28H ;NUM_9
29 *********************************************************/
30 #include <stdio.h>
31 #include <AT89x52.h>
32 #include <absacc.h>
33 #include <intrins.h>
34
35 #define Front_motor1 P2_3 //電機一控制
36 #define Front_motor2 P2_1 //電機二控制
37 #define Back_motor P1_5 //后電機控制
38 #define Count_OPTO P1_1 //計數傳感器OPTO
39 #define Back_OPTO P1_0 //有無感器OPTO
40 #define Key P2_7
41 #define Speak P2_5
42 #define OPTOV1 P1_2 /*有無牌檢測傳感器電源開關*/
43 #define OPTOV2 P1_3 /*出牌計數傳感器電源開關*/
44 #define LED_CS1 P2_6 /*LED個位*/
45 #define LED_CS2 P2_2 /*LED十位*/
46 #define LED_CS3 P2_4 /*LED百位*/
47 #define LED_CS4 P2_0 /*LED千位*/
48
49 void Start(void); /*初始化*/
50 void Delay50ms(void);
51 void Delay(void);
52 void OutCard(void); /*發牌*/
53 void LEDdisplay(void);
54 void TimeINT(void);
55
C51 COMPILER V7.10 KEIL 09/13/2007 22:01:37 PAGE 2
56 unsigned char TAB[10]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};
57 unsigned char LEDdata1,LEDdata2,LEDdata3,LEDdata4;
58 unsigned char Tdata,Card_data;
59 unsigned char Ydata;
60
61 bit RXbit,OutCardBit,CLRbit;
62
63 void main(void)
64 {
65 1 TMOD=0x01; /*設定時器0,工作方式1 */
66 1 TH0=0x3c; /*定時器0初值*/
67 1 TL0=0xb0; /*定時器0初值*/
68 1 //TR0=0;
69 1 ET0=1; /* 中斷0邊沿觸發方式 */
70 1 EA=1;
71 1 Front_motor1=0; /*不轉*/
72 1 Front_motor2=1; /*不轉*/
73 1 LEDdata1=0; /*初始化LED所有位清零*/
74 1 LEDdata2=0;
75 1 LEDdata3=0;
76 1 LEDdata4=0;
77 1 Tdata=0;
78 1 Ydata=0;
79 1 Speak=0; /*響聲50ms*/
80 1 Delay50ms();
81 1 Speak=1;
82 1
83 1 while(P1_6)
84 1 {
85 2 Delay50ms();
86 2 Delay50ms();
87 2 Delay50ms();
88 2 Delay50ms();
89 2 Delay50ms();
90 2 Back_motor=0; /*傳牌電機轉*/
91 2 Front_motor1=1; /*正轉*/
92 2 Front_motor2=1; /*正轉*/
93 2 Delay50ms();
94 2 Delay50ms();
95 2 Delay50ms();
96 2 Delay50ms();
97 2 Delay50ms();
98 2 Delay50ms();
99 2 Back_motor=1; /*傳牌電機停*/
100 2 Front_motor1=0; /*出牌電機停*/
101 2 Front_motor2=1; /*出牌電機停*/
102 2 }
103 1
104 1 if(P1_6) /*讀撥碼判斷傳牌電機是否為間歇運轉*/
105 1 TR0=1; /*間歇運轉*/
106 1 else
107 1 TR0=0; /*連續運轉*/
108 1
109 1 while(1)
110 1 {
111 2 OPTOV1=0; /*開傳感器電源*/
112 2 OPTOV2=0; /*開傳感器電源*/
113 2 while(Back_OPTO) /*檢測牌盒是否無牌?*/
114 2 {
115 3 if(Ydata==20) /*檢測20次*/
116 3 {
117 4 while(Back_OPTO)
C51 COMPILER V7.10 KEIL 09/13/2007 22:01:37 PAGE 3
118 4 {
119 5 Ydata=0;
120 5 TR0=0;
121 5 Back_motor=1; /*傳牌電機停*/
122 5 Delay50ms();
123 5 Front_motor1=0; /*出牌電機停*/
124 5 Front_motor2=1; /*出牌電機停*/
125 5 }
126 4 }
127 3 Ydata++;
128 3 break;
129 3 }
130 2 if(Card_data==5)
131 2 {
132 3 TR0=0;
133 3 Front_motor1=0; /*出牌電機停*/
134 3 Front_motor2=1; /*出牌電機停*/
135 3 Back_motor=1; /*傳牌電機停*/
136 3 Card_data=0; /*發牌計數清零*/
137 3 Delay50ms();
138 3 Delay50ms();
139 3 if((Count_OPTO)) /*檢測計數傳感器是否有牌*/
140 3 {
141 4 while(Count_OPTO)
142 4 {
143 5 Front_motor1=0; /*有牌出牌電機反轉*/
144 5 Front_motor2=1;
145 5 }
146 4 Delay50ms();
147 4 Delay50ms();
148 4 Front_motor1=0; /*出牌電機停*/
149 4 Front_motor2=1; /*出牌電機停*/
150 4 }
151 3 Delay50ms();
152 3 Delay50ms();
153 3 }
154 2
155 2 if(P1_6) /*讀撥碼判斷傳牌電機是否為間歇運轉*/
156 2 TR0=1; /*間歇運轉*/
157 2 else
158 2 {
159 3 TR0=0; /*連續運轉*/
160 3 Back_motor=0;
161 3 }
162 2
163 2 Front_motor1=1; /*正轉*/
164 2 Front_motor2=1; /*正轉*/
165 2 //Front_motor=0;
166 2 LEDdisplay();
167 2 if(Count_OPTO)
168 2 {
169 3 do{
170 4 Back_motor=1;
171 4 TR0=1;
172 4 LEDdisplay();
173 4 }
174 3 while(Count_OPTO);
175 3 {
176 4 Card_data++;
177 4 LEDdata1++;
178 4 if(LEDdata1>9) /*計數進位*/
179 4 {
C51 COMPILER V7.10 KEIL 09/13/2007 22:01:37 PAGE 4
180 5 LEDdata1=0;
181 5 LEDdata2++;
182 5 if(LEDdata2>9)
183 5 {
184 6 LEDdata2=0;
185 6 LEDdata3++;
186 6 if(LEDdata3>9)
187 6 {
188 7 LEDdata3=0;
189 7 LEDdata4++;
190 7 if(LEDdata4>9)
191 7 {
192 8 LEDdata1=0;
193 8 LEDdata2=0;
194 8 LEDdata3=0;
195 8 LEDdata4=0;
196 8 Speak=0;
197 8 Delay50ms();
198 8 Speak=1;
199 8 }
200 7 }
201 6 }
202 5 }
203 4 }
204 3 }
205 2 }
206 1 }
207
208 /************************************/
209 void LEDdisplay(void) /*數碼顯示*/
210 {
211 1 LED_CS4=1;
212 1 P0=TAB[LEDdata1];
213 1 LED_CS1=0;
214 1 Delay();
215 1 LED_CS1=1;
216 1 P0=TAB[LEDdata2];
217 1 LED_CS2=0;
218 1 Delay();
219 1 LED_CS2=1;
220 1 P0=TAB[LEDdata3];
221 1 LED_CS3=0;
222 1 Delay();
223 1 LED_CS3=1;
224 1 P0=TAB[LEDdata4];
225 1 LED_CS4=0;
226 1 Delay();
227 1 }
228 /**********************************/
229 void TimeINT(void) interrupt 1 using 0
230 {
231 1 Tdata++;
232 1 if(P1_4==1)
233 1 {
234 2 if(Tdata==5)
235 2 {
236 3 Tdata=0;
237 3 Back_motor=!Back_motor;
238 3 }
239 2 }
240 1 else
241 1 {
C51 COMPILER V7.10 KEIL 09/13/2007 22:01:37 PAGE 5
242 2 if(Tdata==10)
243 2 {
244 3 Tdata=0;
245 3 Back_motor=!Back_motor;
246 3 }
247 2 }
248 1 TH0=0x3c; /*定時器0初值*/
249 1 TL0=0xb0; /*定時器0初值*/
250 1 TR0=1;
251 1 }
252 /**********************************/
253 void Delay50ms(void)
254 {
255 1 unsigned char i;
256 1 for(i=0;i<0x20;i++)
257 1 {
258 2 LEDdisplay();
259 2 }
260 1 }
261 /**********************************/
262 void Delay(void)
263 {
264 1 unsigned char i,Count0;
265 1 for(i=0;i<0x2;i++)
266 1 {
267 2 for(Count0=0;Count0<0xff;Count0++)
268 2 {
269 3 _nop_();
270 3 }
271 2 }
272 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 414 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 1
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -