📄 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 + -