?? dasine.lst
字號:
C51 COMPILER V7.06 DASINE 05/31/2008 12:52:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DASINE
OBJECT MODULE PLACED IN dasine.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dasine.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //參考程序 E :正弦波發生器程序:WDAC2.c DAC輸出正弦波,DAC輸出更新發生在寫DAC0H時
2 #include <c8051f020.h> /*SFR定義*/
3 #include<math.h>
4 sfr16 DAC0 = 0xd2; /*DAC0數據*/
5 void DAC_Init(void);
6 void SYSCLK_Init()
7 {
8 1 unsigned int i;
9 1 OSCXCN=0X67; //0X67=0110,0111
10 1 for(i=0;i<256;i++); //等待>1ms
11 1 while(!(OSCXCN&0X80)); //等待XTLVLD變為1
12 1 OSCICN=0X88; //時鐘失效監測器,選擇外部時鐘源作為系統時鐘
13 1 }
14 void main (void) {
15 1 unsigned int i;
16 1 float y,x;
17 1 WDTCN = 0xde; /*關看門狗*/
18 1 WDTCN = 0xad;
19 1 SYSCLK_Init();
20 1 DAC_Init(); /*D/A初始化*/
21 1 while (1)
22 1 {
23 2 for(x=0;x<(2*3.14159);x+=0.1)
24 2 {y=2048*(sin(x)+1); /*12位ADC的數字容量為4K(0--0FFFH)y的最大值為4096*/
25 3 DAC0=y; /*設置待轉換的值并啟動D/A轉換*/
26 3
27 3 for(i=0;i<=1;i++); //延時可改變正弦波周期
28 3 }
29 2 }
30 1 }
31 void DAC_Init(void)
32 {
33 1 REF0CN =0x03;/*內部偏壓發生器和電壓基準緩沖器工作,基準從VREF引腳輸出*/
34 1 DAC0CN |=0x80;/*DAC0允許,DAC輸出更新發生在寫DAC0H時*/
35 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 157 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -