📄 main.lst
字号:
C51 COMPILER V8.09 MAIN 04/21/2010 21:14:14 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN E:\项目\制袋机\程序\制袋机~1\MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\项目\制袋机\程序\制袋机~1\MAIN.C DB SB OE
line level source
1 /*****************************************************
2 * 制袋机程序
3 *
4 * 描述:
5 * 版本:
6 *
7 * 创建者:wzq、lcg
8 * 最后修改时间: 2010-4-6
9 *
10 ******************************************************/
11
12 #include "INCLUDES.H"
13
14 void UpdateState();//当状态发生改变时,才会有更新
15 void ShowTable(uchar page);//更新所有状态
16 void UpdateMode(void);//当状态发生改变时,才会有更新
17 void ShowMode(void);//更新所有状态
18 void ButtonAction();//按键动作
19
20
21 //全局变量
22 struct G_STATUS xdata g_Status;
23
24 void main(void)
25 {
26 1 //定义一些变量
27 1 uchar i;
28 1 uchar xdata *px;
29 1 uint j,len;
30 1
31 1 //g_Status初始化
32 1 len = sizeof(struct G_STATUS);
33 1 px = &g_Status;
*** WARNING C182 IN LINE 33 OF E:\项目\制袋机\程序\制袋机~1\MAIN.C: pointer to different objects
34 1 for(j = 0; j < len; j++)
35 1 {
36 2 *px++ = 0;
37 2 }
38 1 g_Status.Mode = MODE_RUNABLE;
39 1 g_Status.bTouchPressed = false;
40 1 g_Status.bButtonPressed = false;
41 1 g_Status.Password = 0;
42 1 g_Status.PasswordCount = 0;
43 1 g_Status.nPage = 1;
44 1 g_Status.Modify_Index = 0;
45 1 g_Status.Modify_Position = 0;
46 1 g_Status.LED_Modify_Position = 0xff;
47 1 g_Status.Relay_Status1 = 0xff;
48 1 g_Status.Relay_Status2 = 0xff;
49 1
50 1
51 1 //g_Status.bPasswordDialog = false;
52 1 //g_Status.Password = 0x00;
53 1 //g_Status.bParaModifyPermitted = false;
54 1 //g_Status.PasswordCount = 0;
C51 COMPILER V8.09 MAIN 04/21/2010 21:14:14 PAGE 2
55 1
56 1
57 1 //系统初始化
58 1 //关总中断
59 1 INTR_ALL_DISABLE;
60 1 //IO初始化
61 1 P0 = 0xff;
62 1 P1 = 0xff;
63 1 P2 = 0xff;
64 1 P3 = 0xff;
65 1 RELAYOUT1 = 0xff;
66 1 RELAYOUT2 = 0xff;
67 1 KEY_INIT();
68 1 TOUCH_INIT();
69 1 INTR_INT0_DISABLE;//关触摸屏中断
70 1 LEDSTATUS_INIT();
71 1 LCD_INIT();
72 1 LCD_WelcomeInterface();
73 1 LCD_MainInterface();
74 1 //开总中断
75 1 INTR_ALL_ENABLE;
76 1
77 1 //RESET
78 1 KEYK_DOWN();
79 1 delay_ms(10);
80 1 KEYK_UP();
81 1 delay_ms(50);
82 1
83 1
84 1 //更新状态
85 1 Update_LEDSTATUS();
86 1 UpdateState();
87 1 LCD_ShowStatusOrParameter(5, 1, GetRealyStatus(1), ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK_BK_COLOR);
88 1 LCD_ShowStatusOrParameter(6, 1, GetRealyStatus(2), ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK_BK_COLOR);
89 1 LCD_ShowStatusOrParameter(7, 1, GetRealyStatus(3), ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK_BK_COLOR);
90 1 LCD_ShowStatusOrParameter(8, 1, GetRealyStatus(4), ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK_BK_COLOR);
91 1 ShowMode();
92 1
93 1 //初始化结束
94 1
95 1
96 1 while(1)
97 1 {
98 2 Label1:
99 2 INTR_INT0_ENABLE;//开触摸屏中断
100 2
101 2 Update_LEDSTATUS();
102 2 UpdateState();
103 2 UpdateMode();
104 2
105 2 //等待触摸屏按下事件
106 2 if(g_Status.bTouchPressed)
107 2 {
108 3 INTR_INT0_DISABLE;//关触摸屏中断
109 3 Update_TouchPoint();
110 3 g_Status.bTouchPressed = false;
111 3
112 3 //判断按键有效性
113 3 g_Status.Button_id = LCD_WhichButton(800 - g_Status.x, 600 - g_Status.y);
114 3 if(g_Status.Button_id > 0 && g_Status.Button_id <= 14)
115 3 {
116 4 g_Status.bButtonPressed = true;
C51 COMPILER V8.09 MAIN 04/21/2010 21:14:14 PAGE 3
117 4 }
118 3 else
119 3 {
120 4 g_Status.bButtonPressed = false;
121 4 }
122 3
123 3 Label2:
124 3 //如果按键按下,处理
125 3 if(g_Status.bButtonPressed)
126 3 {
127 4 //显示按键按下效果
128 4 if((g_Status.Button_id == BUTTON_DIANZHENG) || (g_Status.Button_id == BUTTON_DIANFAN) || (g_Status
-.Button_id == BUTTON_TRACK) || (g_Status.Button_id == BUTTON_RUN) || (g_Status.Button_id == BUTTON_STOP))
129 4 {}
130 4 else if((g_Status.Button_id == BUTTON_UP) || (g_Status.Button_id == BUTTON_DOWN) || (g_Status.Butt
-on_id == BUTTON_LEFT) || (g_Status.Button_id == BUTTON_RIGHT))
131 4 {
132 5 //if(g_Status.Mode = MODE_PARAMODIFY)
133 5 LCD_ShowButton(g_Status.Button_id, BTN_DOWN_TEXT_COLOR, BTN_DOWN_BK_COLOR, BTN_DOWN_BORDER_COL
-OR);
134 5 }
135 4 else
136 4 {
137 5 LCD_ShowButton(g_Status.Button_id, BTN_DOWN_TEXT_COLOR, BTN_DOWN_BK_COLOR, BTN_DOWN_BORDER_COLOR
-);
138 5 }
139 4 //执行按键功能
140 4 ButtonAction();
141 4
142 4 //更新状态显示
143 4 Update_LEDSTATUS();
144 4 UpdateState();
145 4 UpdateMode();
146 4
147 4 //判断按键是否释放
148 4 if(TOUCH_IsReleased())
149 4 {
150 5 g_Status.bButtonPressed = false;
151 5 //显示按键释放效果
152 5 if((g_Status.Button_id == BUTTON_DIANZHENG) || (g_Status.Button_id == BUTTON_DIANFAN) || (g_Stat
-us.Button_id == BUTTON_TRACK) || (g_Status.Button_id == BUTTON_RUN) || (g_Status.Button_id == BUTTON_STOP))
153 5 {}
154 5 else if((g_Status.Button_id == BUTTON_UP || g_Status.Button_id == BUTTON_DOWN) || (g_Status.Butt
-on_id == BUTTON_LEFT) || (g_Status.Button_id == BUTTON_RIGHT))
155 5 {
156 6 //if(g_Status.Mode = MODE_PARAMODIFY)
157 6 LCD_ShowButton(g_Status.Button_id, BTN_UP_TEXT_COLOR, BTN_UP_BK_COLOR, BTN_UP_BORDER_COLOR);
158 6 }
159 5 else
160 5 {
161 6 LCD_ShowButton(g_Status.Button_id, BTN_UP_TEXT_COLOR, BTN_UP_BK_COLOR, BTN_UP_BORDER_COLOR);
162 6 }
163 5 goto Label1;
164 5 }
165 4 else
166 4 {
167 5 //do nothing
168 5 goto Label2;
169 5 }
170 4
171 4 }
172 3 else
C51 COMPILER V8.09 MAIN 04/21/2010 21:14:14 PAGE 4
173 3 {
174 4 //do nothing
175 4 goto Label1;
176 4 }
177 3 }//等待触摸屏按下事件 end
178 2 }//while
179 1 }
*** WARNING C280 IN LINE 27 OF E:\项目\制袋机\程序\制袋机~1\MAIN.C: 'i': unreferenced local variable
180 /////////////////////////////////////////////////////////////////////////////////////
181 ////////////////////////////////////////////////////////////////////////////////////////
182
183
184 void UpdateState()
185 {
186 1 uchar i;
187 1 switch(g_Status.nPage)
188 1 {
189 2 case 1://第一页
190 2 {
191 3 //计数:00000
192 3 for(i = 0; i < 5; i++)
193 3 {
194 4 if(g_Status.bUpdated_ItemState[i])
195 4 LCD_ShowStatusOrParameter(1, i+1, g_Status.ItemState[i], ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK_B
-K_COLOR);
196 4 }
197 3 //长度:0000
198 3 for(i = 5; i < 9; i++)
199 3 {
200 4 if(g_Status.bUpdated_ItemState[i])
201 4 {
202 5 if(g_Status.Modify_Index == 2)
203 5 {
204 6 if(g_Status.Modify_Position == (i-4))
205 6 LCD_ShowStatusOrParameter(2, i-4, g_Status.ItemState[i], ITEM_CHECK_TEXT_COLOR, ITEM_CHECK_B
-K_COLOR);
206 6 else
207 6 LCD_ShowStatusOrParameter(2, i-4, g_Status.ItemState[i], ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHE
-CK_BK_COLOR);
208 6 }
209 5 else
210 5 {
211 6 LCD_ShowStatusOrParameter(2, i-4, g_Status.ItemState[i], ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK
-_BK_COLOR);
212 6 }
213 5 }
214 4 }
215 3 //曲线: 0
216 3 if(g_Status.bUpdated_ItemState[10])
217 3 {
218 4 if(g_Status.Modify_Index == 3 && g_Status.Modify_Position == 1)
219 4 LCD_ShowStatusOrParameter(3, 1, g_Status.ItemState[10], ITEM_CHECK_TEXT_COLOR, ITEM_CHECK_BK_COL
-OR);
220 4 else
221 4 LCD_ShowStatusOrParameter(3, 1, g_Status.ItemState[10], ITEM_UNCHECK_TEXT_COLOR, ITEM_UNCHECK_BK
-_COLOR);
222 4 }
223 3
224 3 //个/批: 00
225 3 if(g_Status.bUpdated_ItemState[15])
226 3 {
227 4 if(g_Status.Modify_Index == 4 && g_Status.Modify_Position == 1)
C51 COMPILER V8.09 MAIN 04/21/2010 21:14:14 PAGE 5
228 4 LCD_ShowStatusOrParameter(4, 1, g_Status.ItemState[15], ITEM_CHECK_TEXT_COLOR, ITEM_CHECK_BK_COL
-OR);
229 4 else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -