📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 09/30/2007 10:34:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg767.h>
2 #include "mydefine.h"
3
4 #define UP_RELAY P1_7
5 #define DOWN_RELAY P1_6
6 #define LIGHT_RELAY INT1
7 #define BUZZER X1
8 #define UP_LIMIT _CMP2
9 #define DOWN_LIMIT _CIN2B
10
11 extern unsigned char Command;
12 extern unsigned int Time;
13 extern unsigned char Current_ad;
14 extern unsigned char Light_Ray_ad;
15
16
17 unsigned char Work_Status=DOOR_STOP;
18 //***********************************************************************
19 // delay
20 //***********************************************************************
21 void delay(void)
22 {
23 1 unsigned int i;
24 1 for(i=0;i<10000;i++);
25 1
26 1 }
27 //**********************************************************************
28 // feed watchdog
29 //**********************************************************************
30 void Feed_Wwatchdog(void)
31 {
32 1 WDRST = 0x1e;
33 1 WDRST = 0xe1;
34 1 }
35 //**********************************************************************
36 // init
37 //**********************************************************************
38 void init(void)
39 {
40 1
41 1 SCON =0x50; /*设置串口发送模式1*/
42 1
43 1 PCON =0x00;
44 1 TMOD =0x21;
45 1
46 1 TH1 =0xf3; /*波特率为1250BIT/S*/
47 1 TL1 =0xf3;
48 1
49 1 TL0 =0xb0;
50 1 TH0 =0x3c;
51 1
52 1 TR1 =1; /*打开定时器1*/
53 1 TR0 =1;
54 1
55 1 IEN0 = 0x92;
C51 COMPILER V7.50 MAIN 09/30/2007 10:34:13 PAGE 2
56 1
57 1 PT0AD=0x18; //设置AD转换接口为输入方式
58 1
59 1 P0M1=0x8e; //1111 1110
60 1 P0M2=0x01; //0000 0001
61 1
62 1 P1M1 = 0x20;//0010 0000
63 1 P1M2 = 0xdc;//1101 1100
64 1
65 1 P2M1 = 0x00;//0000 0000
66 1 P2M2 = 0x03;//0000 0011
67 1
68 1
69 1
70 1 ENADC=1;
71 1 delay();
72 1 WDCON = 0x16;
73 1 }
74 //**********************************************************************
75 // Do_With_Command
76 //**********************************************************************
77 void Do_With_Command(void)
78 {
79 1 //_______________________Door_Contral________________________
80 1 switch(Work_Status)
81 1 {
82 2 case DOOR_STOP:
83 2 if(Command&&UP)
84 2 {
85 3 if(UP_LIMIT!=0)Work_Status=DOOR_UP;
86 3 Command=0;
87 3 };
88 2 if(Command&&DOWN)
89 2 {
90 3 if(DOWN_LIMIT!=0)Work_Status=DOOR_DOWN;
91 3 Command=0;
92 3 };
93 2 break;
94 2 case DOOR_UP:
95 2
96 2 if(Current_ad>CURRENT_LIMIT)Work_Status=DOOR_STOP;
97 2 if(UP_LIMIT==0)
98 2 {
99 3 Work_Status=DOOR_STOP;
100 3 if(Light_Ray_ad>LIGHT_LIMIT)
101 3 {
102 4 Time=0; //开灯
103 4 };
104 3 };
105 2 if(Command&&DOWN)
106 2 {
107 3 Work_Status=DOOR_STOP;
108 3 Command=0;
109 3 };
110 2 if(Command&&UP)
111 2 {
112 3 Command=0;
113 3 };
114 2 break;
115 2 case DOOR_DOWN:
116 2
117 2 if(Current_ad>CURRENT_LIMIT)Work_Status=DOOR_STOP;
C51 COMPILER V7.50 MAIN 09/30/2007 10:34:13 PAGE 3
118 2 if(DOWN_LIMIT==0)
119 2 {
120 3 Work_Status=DOOR_STOP;
121 3 if(Light_Ray_ad>LIGHT_LIMIT)
122 3 {
123 4 Time=0; //开灯
124 4 };
125 3 };
126 2 if(Command&&UP)
127 2 {
128 3 Work_Status=DOOR_STOP;
129 3 Command=0;
130 3 };
131 2 if(Command&&DOWN)
132 2 {
133 3 Command=0;
134 3 };
135 2 break;
136 2 default: Work_Status=DOOR_STOP;
137 2 };
138 1 //_______________________Door Command_out_____________________________
139 1 switch(Work_Status)
140 1 {
141 2 case DOOR_STOP:
142 2 UP_RELAY =1;
143 2 DOWN_RELAY=1;
144 2 break;
145 2 case DOOR_UP:
146 2 UP_RELAY =0;
147 2 DOWN_RELAY=1;
148 2 break;
149 2 case DOOR_DOWN:
150 2 UP_RELAY =1;
151 2 DOWN_RELAY=0;
152 2 break;
153 2 };
154 1 //_______________________Light_Contral________________________
155 1
156 1 if((Command&&LIGHT_ON))
157 1 {
158 2 Time=0;
159 2 Command=0;
160 2
161 2 };
162 1 if(Command&&LIGHT_OFF)
163 1 {
164 2 Time=LIGHT_DELAY;
165 2 Command=0;
166 2 };
167 1 //_______________________Light_Contral out________________________
168 1
169 1 if(Time<LIGHT_DELAY)
170 1 LIGHT_RELAY=0;
171 1 else
172 1 LIGHT_RELAY=1;
173 1 }
174 //***************************************************************************
175 // main
176 //***************************************************************************
177 main()
178 {
179 1 init();
C51 COMPILER V7.50 MAIN 09/30/2007 10:34:13 PAGE 4
180 1 for(;;)
181 1 {
182 2 Feed_Wwatchdog();
183 2 Do_With_Command();
184 2
185 2 };
186 1
187 1
188 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 288 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -