?? wdac3.lst
字號:
C51 COMPILER V7.05 WDAC3 02/14/2006 08:41:46 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE WDAC3
OBJECT MODULE PLACED IN WDAC3.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe WDAC3.c DB OE
stmt level source
1 //參考程序 F:文件名:WDAC3.c 此程序通過DAC的輸出方波,DAC輸出更新發生在定時器T3溢時.
2 #include <c8051f020.h> /*SFR定義*/
3 sfr16 TMR3RL = 0x92; /*定時器T3重載值*/
4 sfr16 TMR3 = 0x94; /*定時器T3計數器*/
5 sfr16 DAC0 = 0xd2; /*DAC0數據*/
6 #define SYSCLK 2000000 /*系統時鐘頻率*/
7 void PORT_Init (void);
8 void Timer3_Init (int counts);
9 void Timer3_ISR (void);
10 void DAC_Init(void);
11 void main (void) {
12 1 unsigned int i;
13 1 WDTCN = 0xde; /*關看門狗*/
14 1 WDTCN = 0xad;
15 1 PORT_Init (); /*初始化I/O口*/
16 1 Timer3_Init (SYSCLK / 12 /5 ); /*初始化定時器T3*/
17 1 DAC_Init(); /*D/A初始化*/
18 1 EA = 1; /*使能總中斷標志*/
19 1 while (1)
20 1 {
21 2 DAC0L=0xf0; /*設置待轉換的值為0FF0H*/
22 2 DAC0H=0x0f;
23 2 for(i=0;i<=100;i++);
24 2 DAC0L=0x0; /*設置待轉換的值為0000H*/
25 2 DAC0H=0x0;
26 2 for(i=0;i<=200;i++);
27 2 }
28 1 }
29 void PORT_Init (void)
30 {
31 1 XBR2 = 0x40; /*時能交叉開關和弱上拉*/
32 1 P74OUT |= 0x0ff; /*使能P1.6 (LED)作為推完輸出*/
33 1 }
34 void DAC_Init(void)
35 {
36 1 REF0CN =0x03; /*內部偏壓發生器和電壓基準緩沖器工作,基準從VREF引腳輸出*/
37 1 DAC0CN |=0x88; /*DAC0允許,DAC輸出更新發生在定時器T3溢時*/
38 1 }
39 void Timer3_Init (int counts)
40 {
41 1 TMR3CN = 0x00; /*停止定時器3,清定時器中斷標志,用SYSCLK/12作為時基*/
42 1
43 1 TMR3RL = -counts; /*裝載重裝載值*/
44 1 TMR3 = 0xffff; /*設置重載值*/
45 1 EIE2 |= 0x01; /*使能定時器T3中斷*/
46 1 TMR3CN |= 0x04; /*使能定時器T3*/
47 1 }
48 void Timer3_ISR (void) interrupt 14
49 {
50 1 TMR3CN &= ~(0x80); /*清定時器T3中斷標志*/
51 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 107 ----
C51 COMPILER V7.05 WDAC3 02/14/2006 08:41:46 PAGE 2
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -