?? main.lst
字號:
C51 COMPILER V8.02 MAIN 09/21/2008 12:29:52 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE main.c LARGE DEBUG OBJECTEXTEND
line level source
1 #include <includes.h>
2 #include <ctype.h>
3 #include <aultdef.h>
4 #include <i2c.h>
5 #include <hhh16.h>
6 #include <chatfont.h>
7 #include <sed1330.h>
8 #include <8253.h>
9 #define KCREETRANT reentrant
10
11 void sys_init(void *lcnpdata) reentrant;
12 void mysecondtask(void *lcndata) reentrant;
13 void main1test(void *lcnpdata) KCREETRANT;
14 void gettesttype(void *lcnpdata) KCREETRANT;
15 void lcngetkey(void *lcnpdata) reentrant;
16 void getcurvault() reentrant;
17 void getstr8255() reentrant;
18
19 OS_STK sys_init_Stk[MaxStkSize];
20 OS_STK mysecondtask_Stk[MaxStkSize];
21 OS_STK lcngetkey_Stk[MaxStkSize];
22 OS_STK main1test_Stk[MaxStkSize];
23 OS_STK gettesttype_Stk[MaxStkSize];
24
25
26 void init_serial() reentrant
27 {
28 1 PCON &= 0x7F;
29 1 TH1 = 0xFD;
30 1 TMOD |= 0X20; //定時器1方式2
31 1 SCON = 0X50; //允許接收
32 1 TR1 = 1; //啟動定時器1
33 1 ES = 1; //串行口中斷允許
34 1 }
35
36 //串口中斷處理
37 void serial() reentrant
38 {
39 1 if(RI)
40 1 {
41 2 RI = 0;
42 2 rs485in = SBUF;
43 2 }
44 1 else
45 1 {
46 2 TI = 0;
47 2 if(bout485 > 0)
48 2 {
49 3 SBUF = rs485out;
50 3 bout485 = 0;
51 3 }
52 2 else
53 2 {
54 3 RS485 = 1;
55 3 }
C51 COMPILER V8.02 MAIN 09/21/2008 12:29:52 PAGE 2
56 2 }
57 1 }
58
59 unsigned int advaut; //AD574采樣中間數值
60 void getad() reentrant
61 {
62 1 unsigned char i,tempcl;
63 1 unsigned int tempch;
64 1 advaut=0;
65 1 for(i=0;i<16;i++)
66 1 {
67 2 ADCOM=0; //啟動AD轉換
68 2 adbusy=1;
69 2 tempcl=200;
70 2 while(tempcl&&adbusy)
71 2 {
72 3 tempcl++;
73 3 }
74 2 tempch=(unsigned int)ADHI;
75 2 tempcl=ADLO;
76 2 advaut+=(tempch*16+(unsigned int)(tempcl/16));
77 2 }
78 1 advaut/=16;
79 1 }
80 unsigned char gettimestr(unsigned int x,unsigned char y,unsigned char nu,unsigned char bdate) reentrant
81 {
82 1 unsigned char tem;
83 1 keystaut=0;
84 1 rectangle(SAD2,x-1,y,x+nu*8,y+16,1);
85 1 tem=0;
86 1 OSSemPend(KeySem,0,&lcnerr);
87 1 if(key==ESC||key==ENTER)
88 1 {
89 2 rectangle(SAD2,x-1,y,x+nu*8,y+16,0);
90 2 return(0);
91 2 }
92 1 for(tem=0;tem<nu;tem++)
93 1 disstr[tem]=' ';
94 1 if(bdate)
95 1 {
96 2 disstr[2]='.';
97 2 disstr[5]='.';
98 2 }
99 1 else
100 1 {
101 2 disstr[2]=':';
102 2 disstr[5]=':';
103 2 }
104 1 disstr[tem]=0;
105 1 tem=0;
106 1 while(tem<nu)
107 1 {
108 2 if(isdigit(key))
109 2 {
110 3 disstr[tem]=key;
111 3 myprintf(SAD1,TA_LEFT,x,y,disstr);
112 3 tem++;
113 3 if(tem==2||tem==5)
114 3 tem++;
115 3 }
116 2 else
117 2 {
C51 COMPILER V8.02 MAIN 09/21/2008 12:29:52 PAGE 3
118 3 switch(key)
119 3 {
120 4 case ENTER:
121 4 keystaut=0;
122 4 rectangle(SAD2,x-1,y,x+nu*8,y+16,0);
123 4 return(1);
124 4 default:
125 4 break;
126 4 }
127 3 }
128 2 if(tem<nu)
129 2 OSSemPend(KeySem,0,&lcnerr);
130 2 }
131 1 rectangle(SAD2,x-1,y,x+nu*8,y+16,0);
132 1 keystaut=0;
133 1 return(1);
134 1 }
135 unsigned char getstrnumber(unsigned int x,unsigned char y,unsigned char nu) reentrant
136 {
137 1 unsigned char tem;
138 1 keystaut=0;
139 1 linex(SAD1,y+16,x-1,x+nu*8);
140 1 tem=0;
141 1 OSSemPend(KeySem,0,&lcnerr);
142 1 if(key==ESC||key==ENTER)
143 1 {
144 2 rectangle(SAD1,x-1,y+15,x+nu*8,y+16,0);
145 2 return(0);
146 2 }
147 1 for(tem=0;tem<nu;tem++)
148 1 disstr[tem]=' ';
149 1 disstr[tem]=0;
150 1 tem=0;
151 1 while(tem<nu)
152 1 {
153 2 if(isdigit(key))
154 2 {
155 3 disstr[tem]=key;
156 3 myprintf(SAD1,TA_LEFT,x,y,disstr);
157 3 tem++;
158 3 }
159 2 else
160 2 {
161 3 switch(key)
162 3 {
163 4 case ENTER:
164 4 keystaut=0;
165 4 rectangle(SAD1,x-1,y,x+nu*8,y+16,0);
166 4 myprintf(SAD1,TA_LEFT,x,y,disstr);
167 4 return(1);
168 4 case ESC:
169 4 if(tem>0)
170 4 tem--;
171 4 disstr[tem]=' ';
172 4 myprintf(SAD1,TA_LEFT,x,y,disstr);
173 4 disstr[tem]=0;
174 4 break;
175 4 default:
176 4 break;
177 4 }
178 3 }
179 2 if(tem<nu)
C51 COMPILER V8.02 MAIN 09/21/2008 12:29:52 PAGE 4
180 2 OSSemPend(KeySem,0,&lcnerr);
181 2 }
182 1 keystaut=0;
183 1 rectangle(SAD1,x-1,y,x+nu*8,y+16,0);
184 1 myprintf(SAD1,TA_LEFT,x,y,disstr);
185 1 return(1);
186 1 }
187
188 unsigned char getstr(unsigned int x,unsigned char y,unsigned char nu) reentrant
189 {
190 1 unsigned char tem;
191 1 keystaut=0;
192 1 rectangle(SAD2,x-1,y,x+nu*8+8,y+16,1);
193 1 myprintf(SAD1,TA_LEFT,x+nu*8,y,"v");
194 1 tem=0;
195 1 OSSemPend(KeySem,0,&lcnerr);
196 1 if(key==ESC||key==ENTER)
197 1 {
198 2 myprintf(SAD1,TA_LEFT,x+nu*8,y," ");
199 2 rectangle(SAD2,x-1,y,x+nu*8+8,y+16,0);
200 2 return(0);
201 2 }
202 1 for(tem=0;tem<nu;tem++)
203 1 disstr[tem]=' ';
204 1 disstr[tem]=0;
205 1 tem=0;
206 1 myprintf(SAD1,TA_LEFT,x+nu*8,y,"v");
207 1 while(tem<nu)
208 1 {
209 2 if(isprint(key))
210 2 {
211 3 disstr[tem]=key;
212 3 myprintf(SAD1,TA_LEFT,x,y,disstr);
213 3 tem++;
214 3 }
215 2 else
216 2 {
217 3 switch(key)
218 3 {
219 4 case ENTER:
220 4 keystaut=0;
221 4 rectangle(SAD2,x-1,y,x+nu*8+8,y+16,0);
222 4 myprintf(SAD1,TA_LEFT,x+nu*8,y," ");
223 4 return(1);
224 4 case LEFT:
225 4 keystaut=24;
226 4 myprintf(SAD1,TA_LEFT,x+nu*8,y,"<");
227 4 break;
228 4 case UP:
229 4 keystaut=48;
230 4 myprintf(SAD1,TA_LEFT,x+nu*8,y,"^");
231 4 break;
232 4 case RIGHT:
233 4 keystaut=72;
234 4 myprintf(SAD1,TA_LEFT,x+nu*8,y,">");
235 4 break;
236 4 case DOWN:
237 4 keystaut=0;
238 4 myprintf(SAD1,TA_LEFT,x+nu*8,y,"v");
239 4 break;
240 4 case ESC:
241 4 if(tem>0)
C51 COMPILER V8.02 MAIN 09/21/2008 12:29:52 PAGE 5
242 4 tem--;
243 4 disstr[tem]=' ';
244 4 myprintf(SAD1,TA_LEFT,x,y,disstr);
245 4 disstr[tem]=0;
246 4 break;
247 4 default:
248 4 break;
249 4 }
250 3 }
251 2 if(tem<nu)
252 2 OSSemPend(KeySem,0,&lcnerr);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -