📄 main.lst
字号:
151 1 ADC0_enable(1);
152 1
153 1 while (1)
154 1 {
155 2 Delay_ms(250);
156 2
157 2 for (i=0;i<9;i++)
158 2 {
159 3 Delay_ms(5);
160 3 EA = 0; // 关闭中断
161 3 voltage = result[i]; // 给全局变量赋ADC的值
162 3 EA = 1; // 重新开启中断
163 3 voltage = voltage * VREF0;
164 3 // calculate voltage in millivolts
165 3 EA = 0;
166 3 switch(i)
167 3 {
168 4 case 0:
169 4
170 4 voltage = voltage >> 16;
171 4 printf ("Channel '%d' voltage is %ldmV\n", i, voltage);
172 4 LCD_Disp_Word(0,48,WLib_tong_16x16,2,16);
173 4 LCD_Disp_Word(16,48,WLib_dao_16x16,2,16);
174 4 LCD_Disp_Word(32,48,&WLib_Num_8x16[i*32],2,8);
175 4 LCD_Disp_Word(40,48,WLib_maohao_8x16,2,8);
176 4 // LCD_Disp_Word(96,48,WLib_hao_16x16,2,16);
177 4 LCD_Disp_Word(112,48,WLib_fu_16x16,2,16);
178 4
179 4 LCD_Disp_Word(64,48,&WLib_Num_8x16[voltage/1000*16],2,8);
C51 COMPILER V7.02b MAIN 10/31/2005 16:30:55 PAGE 4
180 4 LCD_Disp_Word(72,48,WLib_dian_8x16,2,8);
181 4 LCD_Disp_Word(80,48,&WLib_Num_8x16[voltage%1000/100*16],2,8);
182 4 LCD_Disp_Word(88,48,&WLib_Num_8x16[voltage%100%100/10*16],2,8);
183 4 LCD_Disp_Word(96,48,&WLib_Num_8x16[voltage%100%100%10*16],2,8);
184 4 break;
185 4 case 1:
186 4 voltage = voltage >> 16;
187 4 printf ("Channel '%d' voltage is %ldmV\n", i, voltage);
188 4 LCD_Disp_Word(0,32,WLib_tong_16x16,2,16);
189 4 LCD_Disp_Word(16,32,WLib_dao_16x16,2,16);
190 4 LCD_Disp_Word(32,32,&WLib_Num_8x16[i*16],2,8);
191 4 LCD_Disp_Word(40,32,WLib_maohao_8x16,2,8);
192 4 // LCD_Disp_Word(96,32,WLib_hao_16x16,2,16);
193 4 LCD_Disp_Word(112,32,WLib_fu_16x16,2,16);
194 4
195 4 LCD_Disp_Word(64,32,&WLib_Num_8x16[voltage/1000*16],2,8);
196 4 LCD_Disp_Word(72,32,WLib_dian_8x16,2,8);
197 4 LCD_Disp_Word(80,32,&WLib_Num_8x16[voltage%1000/100*16],2,8);
198 4 LCD_Disp_Word(88,32,&WLib_Num_8x16[voltage%100%100/10*16],2,8);
199 4 LCD_Disp_Word(96,32,&WLib_Num_8x16[voltage%100%100%10*16],2,8);
200 4 break;
201 4 case 8:
202 4 //voltage = voltage - 0xa58c;
203 4 //voltage = voltage * 420;
204 4 //voltage = voltage >> 16;
205 4 //tp = voltage/1000;
206 4
207 4 voltage = result[8];
208 4
209 4 tp=(voltage/16-1324)*839/4096;
210 4
211 4 printf ("Channel '%d' degra is %ld degree\n", i, tp);
212 4
213 4 LCD_Disp_Word(0,16,WLib_wen_16x16,2,16);
214 4 LCD_Disp_Word(16,16,WLib_du_16x16,2,16);
215 4 LCD_Disp_Word(32,16,WLib_maohao_8x16,2,8);
216 4 LCD_Disp_Word(112,16,WLib_du_16x16,2,16);
217 4 LCD_Disp_Word(64,16,&WLib_Num_8x16[tp/10*16],2,8);
218 4 LCD_Disp_Word(80,16,&WLib_Num_8x16[tp%10*16],2,8);
219 4
220 4 break;
221 4 default:
222 4 voltage = voltage >> 16;
223 4 printf ("Channel '%d' voltage is %ldmV\n", i, voltage);
224 4 break;
225 4 }
226 3 EA = 1;
227 3 }
228 2 }
229 1 }
230
231 /************************************************************************************
232 // 系统初始化功能子程序
233 *************************************************************************************/
234
235 /***********************************************************************************
236 * 函数名称:SYSCLK_Init;
237 *
238 * 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
239 *
240 * 输入参数:none;
241 *
C51 COMPILER V7.02b MAIN 10/31/2005 16:30:55 PAGE 5
242 * 返回数据:none;
243 *
244 * 注意: none;
245 ************************************************************************************/
246
247 void SYSCLK_Init (void)
248 {
249 1 int i; // 延时计数器
250 1
251 1 OSCXCN = 0x67; // 使用外部22.1184MHz晶振
252 1
253 1 for(i=0; i<256; i++); // 等待1ms
254 1
255 1 while(!(OSCXCN & 0x80)); // 等待外部振荡器稳定
256 1
257 1 OSCICN = 0x88; // 切换到外部晶振
258 1 }
259
260 /***********************************************************************************
261 * 函数名称:PORT_Init;
262 *
263 * 函数功能描述:配置端口初始化,配置交叉开关和端口;
264 *
265 * 输入参数:none;
266 *
267 * 返回数据:none;
268 *
269 * 注意: none;
270 ************************************************************************************/
271
272 void PORT_Init (void)
273 {
274 1 XBR0 = 0x8f; //设置XBR0
275 1 XBR1 = 0x1e; //设置XBR1
276 1 XBR2 = 0x44; //打开交叉开关和弱上拉
277 1
278 1 P0MDOUT = 0x34; //设置P0口输出
279 1 P1MDOUT = 0xfc; //设置P1口输出
280 1 P1MDIN = 0xff; //设置P1口输入信号类型
281 1 P2MDOUT = 0xf0; //设置P2口输出
282 1 P3MDOUT = 0xff; //设置P3口全部推挽输出
283 1 P74OUT = 0xf7; //设置P4-P7口输出
284 1 P4 = 0xe0; //P4口置0,禁铃
285 1
286 1 EMI0CF=0x2d; //外部存储器接口配置
287 1 EMI0TC=0X9e; //外部存储器时序控制
288 1 }
289
290 /***********************************************************************************/
291 // 文件结束
292 /***********************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1639 ----
CONSTANT SIZE = 449 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 37 10
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V7.02b MAIN 10/31/2005 16:30:55 PAGE 6
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -