📄 main.lst
字号:
C51 COMPILER V7.02b MAIN 01/10/2008 11:39:26 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 ////////////////////////////////////*/
2 /* */
3 /* Hot_Box */
4 /* Version_2 */
5 /* AHTL_2007_11 */
6 /* */
7 /* */
8 /* MAIN.C */
9 /* */
10 ////////////////////////////////////*/
11 #include <reg52.h>
12 #include <absacc.h>
13 #include <intrins.h>
14 #include "lcd.h"
15 #include "key.h"
16 #include "ad.h"
17 #include "main.h"
18 #include "eep.h"
19
20 /*variable definition*/
21 unsigned char press_l, press_h;
22 //unsigned int
23
24
25 /*functions*/
26 void init_system(void);
27 void operat_mode(void);
28 void window_operat(void);
29 unsigned int sample(void);
30 unsigned int ad2temp(unsigned int);
31 void t_set(void);
32 void t_run(void);
33 /*-------------------------------------------------------------------------*/
34 void init_system(void)
35 {
36 1 ctrl_da=0;
37 1 // TMOD|=0x11; //T0:16bits Timer
38 1 // TH0=TH0_20MS;
39 1 // TL0=TL0_20MS;
40 1 ET0=1;
41 1 EA=1;
42 1 run=1;
43 1 stop=0;
44 1
45 1 ctrl_da=1;
46 1 _nop_();
47 1 _nop_();
48 1 _nop_();
49 1 ctrl_da=0;
50 1 ctrl_da=1;
51 1 s_clk=0;
52 1
53 1 _init_display ();
54 1 _disp_msge(0,0,"Temp. Controller");
55 1 _disp_msge(1,0," AHTL 2006.11 ");
C51 COMPILER V7.02b MAIN 01/10/2008 11:39:26 PAGE 2
56 1 _delay500us(200);
57 1 _delay500us(200);
58 1 _delay500us(200);
59 1 _delay500us(200);
60 1 _delay500us(200);
61 1 _delay500us(200);
62 1 _delay500us(200);
63 1 _delay500us(200);
64 1 _disp_msge(0,0," System Initial ");
65 1 _disp_msge(1,0," AHTL 2006.11 ");
66 1 _delay500us(200);
67 1 _delay500us(200);
68 1 _delay500us(200);
69 1 _delay500us(200);
70 1 _delay500us(200);
71 1 _delay500us(200);
72 1 _delay500us(200);
73 1 _delay500us(200);
74 1 _delay500us(200);
75 1 _clear_display();
76 1 if(_read_eep_byte(eep_ready)==0x25)
77 1 {
78 2 press_l=_read_eep_byte(eep_press_l );
79 2 press_h=_read_eep_byte(eep_press_h );
80 2 }
81 1 else
82 1 {
83 2 press_l=40;
84 2 press_h=50;
85 2 _write_eep_byte(eep_press_l,40);
86 2 _write_eep_byte(eep_press_h,50);
87 2 _write_eep_byte(eep_ready,0x25);
88 2 }
89 1 }
90 /*--------------------------------------------------------*/
91 void window_operat()
92 {
93 1 _clear_display();
94 1 _disp_msge(0,0," Hot Box ");
95 1 _disp_msge(1,0,"1:SET 2:RUN");
96 1 _cursor_pos(1,0);
97 1 }
98 /*--------------------------------------------------------*/
99 void operat_mode(void)
100 {
101 1 bit exit_flag=0;
102 1 unsigned char r,c,old_r,old_c;
103 1 c=0;
104 1 r=1;
105 1 while(!exit_flag)
106 1 {
107 2 switch(_scan_key())
108 2 {
109 3 case KP_LEFT:
110 3 switch (c)
111 3 {
112 4 case 0:
113 4 c=11;
114 4 break;
115 4 case 11:
116 4 c=0;
117 4 break;
C51 COMPILER V7.02b MAIN 01/10/2008 11:39:26 PAGE 3
118 4 default:
119 4 break;
120 4 }
121 3 _cursor_pos(r,c);
122 3 break;
123 3 case KP_RIGHT:
124 3 switch (c)
125 3 {
126 4 case 0:
127 4 c=11;
128 4 break;
129 4 case 11:
130 4 c=0;
131 4 break;
132 4 default:
133 4 break;
134 4 }
135 3 _cursor_pos(r,c);
136 3 break;
137 3 case KP_ENTER:
138 3 switch (c)
139 3 {
140 4 case 0:
141 4 t_set();
142 4 old_c=c;
143 4 old_r=r;
144 4 _clear_display();
145 4 _disp_msge(0,0," Hot Box ");
146 4 _disp_msge(1,0,"1:SET 2:RUN");
147 4 c=old_c;
148 4 r=old_r;
149 4 _cursor_pos(r,c);
150 4 _cursor_sw(1);
151 4 break;
152 4 case 11:
153 4 t_run();
154 4 old_c=c;
155 4 old_r=r;
156 4 _clear_display();
157 4 _disp_msge(0,0," Hot Box ");
158 4 _disp_msge(1,0,"1:SET 2:RUN");
159 4 c=old_c;
160 4 r=old_r;
161 4 _cursor_pos(r,c);
162 4 _cursor_sw(1);
163 4 break;
164 4 default:
165 4 break;
166 4 }
167 3 break;
168 3 default:
169 3 break;
170 3 }
171 2 }
172 1 }
173 /*--------------------------------------------------------*/
174 void main (void)
175 {
176 1 init_system(); /*初始化系统*/
177 1 while(1)
178 1 {
179 2 window_operat();
C51 COMPILER V7.02b MAIN 01/10/2008 11:39:26 PAGE 4
180 2 operat_mode();
181 2 }
182 1 }
183 /*--------------------------------------------------------*/
184 unsigned int ad2temp(unsigned int val) //linear simulink in 4 parts
185 {
186 1 unsigned char temp;
187 1 unsigned long val_long;
188 1
189 1 val_long=val;
190 1 val_long=val_long * 5000 / 1023;
191 1 val=(unsigned int) val_long;
192 1 if(val>1835)
193 1 temp=0;
194 1 if(val<255)
195 1 temp=99;
196 1 if((val<=1835)&&(val>=1025))
197 1 temp=(1835-val)/35+20;
198 1 else if((val<1025)&&(val>=605))
199 1 temp=(1025-val)/25+43;
200 1 else if((val<605)&&(val>=395))
201 1 temp=(605-val)/15+60;
202 1 else if((val<395)&&(val>=255))
203 1 temp=(395-val)/10+74;
204 1 return temp;
205 1 }
206 /*--------------------------------------------------------*/
207 void save_data()
208 {
209 1 _clear_display();
210 1 _disp_msge(1,0," Save Paramater ");
211 1 _delay500us(200);
212 1 _delay500us(200);
213 1 _delay500us(200);
214 1 _clear_display();
215 1 }
216 /*--------------------------------------------------------*/
217 void t_set(void)
218 {
219 1 unsigned char old_r,old_c,r,c;
220 1 unsigned char num_l,num_h;
221 1 bit exit_flag=0;
222 1
223 1 _clear_display();
224 1 _disp_msge(0,0,"SET ");
225 1 _disp_msge(1,0,"Low:xxC-High:xxC");
226 1 _cursor_pos(1,4);
227 1 num_l=press_l;
228 1 num_h=press_h;
229 1 _display_bit8(1,4,num_l);
230 1 _display_bit8(1,13,num_h);
231 1 r=1;
232 1 c=4;
233 1 _cursor_pos(r,c);
234 1 _cursor_sw(1);
235 1
236 1 while(!exit_flag)
237 1 {
238 2 switch(_scan_key())
239 2 {
240 3 case KP_EXIT:
241 3 exit_flag=1;
C51 COMPILER V7.02b MAIN 01/10/2008 11:39:26 PAGE 5
242 3 break;
243 3 case KP_MENU:
244 3 exit_flag=1;
245 3 break;
246 3 case KP_SAVE:
247 3 old_r=r;
248 3 old_c=c;
249 3 press_h=num_h;
250 3 press_l=num_l;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -