?? main.lst
字號:
190 2 if(i<128)
191 2 {
192 3 y=32*i;
193 3 }
194 2 else if(i==128)
195 2 {
196 3 y=4095;
197 3 }
198 2 else
199 2 {
200 3 y=4096-(i-128)*32;
201 3 }
202 2 TABLE[i]=y;
203 2 }
204 1 }
205
206 /***********************************************************************************
207 * 函數名稱:square;
208 *
209 * 函數功能描述:計算方波;
210 *
211 * 輸入參數:none;
212 *
213 * 返回數據:none;
214 *
215 * 注意: none;
216 ************************************************************************************/
217
218 void square(void)
219 {
220 1 unsigned int data y;
221 1 unsigned int data i;
222 1 for(i=0;i<256;i++)
223 1 {
224 2 if(i<128)
225 2 y=0x0000;
226 2 else
227 2 y=0x0fff;
228 2 TABLE[i]=y;
229 2 }
230 1 }
231
232 /***********************************************************************************
233 * 函數名稱:none;
234 *
235 * 函數功能描述:輸出為0;
236 *
237 * 輸入參數:none;
238 *
239 * 返回數據:none;
240 *
241 * 注意: none;
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 5
242 ************************************************************************************/
243
244 void none(void)
245 {
246 1 unsigned int data i;
247 1 for(i=0;i<256;i++)
248 1 {
249 2 TABLE[i]=0;
250 2 }
251 1 }
252
253 /***********************************************************************************
254 * 函數名稱:Timer4_ISR;
255 *
256 * 函數功能描述:定時器4中斷響應;
257 *
258 * 輸入參數:none;
259 *
260 * 返回數據:none;
261 *
262 * 注意: none;
263 ************************************************************************************/
264
265 void Timer4_ISR (void) interrupt 16 using 3
266 {
267 1 unsigned int xdata temp;
268 1 // unsigned char key0;
269 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
270 1 SFRPAGE = SFR_PAGE_2; // set SFR page
271 1
272 1
273 1 TMR4CN &= ~0x80; // 清除T4溢出標志
274 1
275 1
276 1 SFRPAGE = SFR_PAGE_0; // set SFR page
277 1 temp=TABLE[sf];
278 1 DAC0L=temp&0x00ff;
279 1 temp>>=8;
280 1 DAC0H=temp;
281 1
282 1 SFRPAGE = SFR_PAGE_1; // set SFR page
283 1 temp=TABLE[sf];
284 1 DAC1L=temp&0x00ff;
285 1 temp>>=8;
286 1 DAC1H=temp;
287 1 if(sf==255)
288 1 {
289 2 sf=0;
290 2 }
291 1 else
292 1 sf++;
293 1
294 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
295 1 }
296
297
298 /************************************************************************************
299 // 主循環程序
300 *************************************************************************************/
301
302 void main (void) {
303 1
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 6
304 1 unsigned char key;
305 1
306 1 WDTCN = 0xde;
307 1 WDTCN = 0xad;
308 1
309 1
310 1 PORT_Init();
311 1
312 1 lcd_init();
313 1 dis_full();
314 1 dis_clr();
315 1 dis_start0();
316 1
317 1 SYSCLK_Init();
318 1 Uart0_Init(57600);
319 1 Uart0_SendString("DAC test program running!\r\n");
320 1
321 1 Key_Init();
322 1 DAC0_Init();
323 1 DAC1_Init();
324 1
325 1 while(1)
326 1 {
327 2 key=GetKey(); //調用鍵盤掃描函數,返回的鍵值送變量key
328 2
329 2 if(key!=0xFF)
330 2 {
331 3 EA=0;
332 3 Alarm(1); //響鈴
333 3 Delay_ms(50);
334 3 Alarm(0); //關閉鈴聲
335 3
336 3 switch (key)
337 3 {
338 4 case 0x0a://a
339 4 Uart0_SendString("Wave-form:square; Freq = 250Hz; \r\n");
340 4 square();
341 4 break;
342 4 case 0x0b://b
343 4 Uart0_SendString("Wave-form:sine; Freq = 250Hz; \r\n");
344 4 sine();
345 4 break;
346 4 case 0x0c://c
347 4 Uart0_SendString("Wave-form:triangle; Freq = 250Hz; \r\n");
348 4 triangle();
349 4 break;
350 4 case 0x0d://d
351 4 Uart0_SendString("Wave-form:saw; Freq = 250Hz; \r\n");
352 4 saw();
353 4 break;
354 4 default:
355 4 //none();
356 4 break;
357 4 }
358 3 Delay_ms(5);
359 3 Timer4_Init(64000);// 初始化T4產生DAC0
360 3 EA = 1; // 打開全局中斷
361 3
362 3 }
363 2
364 2 }
365 1 }
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 7
366
367 /***********************************************************************************/
368 // 文件結束
369 /***********************************************************************************/
370
371
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 804 ----
CONSTANT SIZE = 165 ----
XDATA SIZE = 512 1
PDATA SIZE = ---- ----
DATA SIZE = 1 23
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 + -