📄 dac.lst
字号:
C51 COMPILER V7.09 DAC 08/24/2007 09:37:09 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE DAC
OBJECT MODULE PLACED IN DAC.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE DAC.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include"Config.h"
3 #include"IOCfg.c"
4 #include"TimeDLY.h"
5 #include"DAC.h"
6
7 //向SPI写16bits数据函数:SPIWrite()
8 void SPIWrite(INT16 temp)
9 {
10 1 INT16U i;
11 1 DACSetCS(0);
12 1 for(i=0;i<16;i++)
13 1 {
14 2 DACDIN = (bit) (temp & 0x8000);
15 2 DACSetSCLK(1);
16 2 temp <<= 1;
17 2 nNop(1);
18 2 DACSetSCLK(0);
19 2 nNop(1);
20 2 }
21 1 DACSetCS(1);
22 1 }
23
24 //将电压值转换为对应的12bits数字量函数:VoltToData()
25 INT16 VoltToData(INT16U ref, FP32 ex_ref, FP32 out_volt)
26 {
27 1 int temp;
28 1 switch(ref)
29 1 {
30 2 case EXTERNAL : temp = (INT16)((out_volt*4096) / (2*ex_ref));break;
31 2 case IN_1024 : temp = (INT16)((out_volt*4096) / (2*1.024)); break;
32 2 case IN_2048 : temp = (INT16)((out_volt*4096) / (2*2.048)); break;
33 2 default : break;
34 2 }
35 1 return(temp & 0xfff);
36 1 }
37
38 //设置DAC B(即B 通道)输出函数:SetDAC_B()
39 void SetDAC_B(INT16U speed, INT16U ref, FP32 ex_ref, FP32 temp)
40 {
41 1 INT16 ModCMD;
42 1 INT16 Data;
43 1 ModCMD = 0x9000 | (speed<<14) | (ref);
44 1 Data = VoltToData(ref,ex_ref,temp);
45 1 Data = Data | 0x0000 | (speed<<14);
46 1 SPIWrite(ModCMD);
47 1 nNop(10);
48 1 SPIWrite(Data);
49 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 286 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V7.09 DAC 08/24/2007 09:37:09 PAGE 2
PDATA SIZE = ---- ----
DATA SIZE = ---- 32
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 + -