📄 max532.lst
字号:
C51 COMPILER V7.06 MAX532 05/10/2005 17:28:30 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAX532
OBJECT MODULE PLACED IN MAX532.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE MAX532.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函数声明--------------------------------------------------------
2 #include "reg51.h"
3 #include "intrins.h"
4 //-----------------------管脚声明--------------------------------------------------------
5 sbit CS_max532=P1^0;
6 sbit CLK_max532=P1^1;
7 sbit DI_max532=P1^2;
8 sbit DO_max532=P1^3;
9 sbit LDAC=P1^4; //异步加载DAC输入,作为同步信号
10 //--------------------------------------------------------------------------------------------------
11 // 函数名称: delay
12 // 入口参数: N
13 // 函数功能:延时子程序,实现(16*N+24)us的延时
14 // 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
15 //--------------------------------------------------------------------------------------------------
16 void delay(unsigned int N)
17 {
18 1 int i;
19 1 for(i=0;i<N;i++);
20 1 }
21 //--------------------------------------------------------------------------------------------------
22 // 函数名称: SEND_1
23 // 函数功能: 送1位数据"1"
24 //--------------------------------------------------------------------------------------------------
25 void SEND_1(void)
26 {
27 1 DI_max532=1;
28 1 CLK_max532=1;
29 1 _nop_();
30 1 CLK_max532=0;
31 1 _nop_();
32 1 }
33 //--------------------------------------------------------------------------------------------------
34 // 函数名称: SEND_0
35 // 函数功能: 送1位数据"0"
36 //--------------------------------------------------------------------------------------------------
37 void SEND_0(void)
38 {
39 1 DI_max532=0;
40 1 CLK_max532=1;
41 1 _nop_();
42 1 CLK_max532=0;
43 1 _nop_();
44 1 }
45 //--------------------------------------------------------------------------------------------------
46 // 函数名称: SEND_BYTE
47 // 入口参数: dd,待发送的数据
48 // 函数功能: 送1BYTE数据
49 //--------------------------------------------------------------------------------------------------
50 void SEND_BYTE(unsigned char dd)
51 {
52 1 unsigned char i;
53 1 for (i=0;i<8;i++)
54 1 {
55 2 if (dd>=0x80) SEND_1();
C51 COMPILER V7.06 MAX532 05/10/2005 17:28:30 PAGE 2
56 2 else SEND_0();
57 2 dd=dd<<1;
58 2 }
59 1 }
60 //--------------------------------------------------------------------------------------------------
61 // 函数名称: SEND_4bit
62 // 入口参数: dd,待发送的数据
63 // 函数功能: 送1BYTE数据
64 //--------------------------------------------------------------------------------------------------
65 void SEND_4bit(unsigned char dd)
66 {
67 1 unsigned char i;
68 1 dd=dd<<4;
69 1 for (i=0;i<4;i++)
70 1 {
71 2 if (dd>=0x80) SEND_1();
72 2 else SEND_0();
73 2 dd=dd<<1;
74 2 }
75 1 }
76 //--------------------------------------------------------------------------------------------------
77 // 函数名称: B_only
78 // 入口参数: Bdata_H,Bdata_L 12位数据
79 // 函数功能: B通道单独转换,A通道输出任意数
80 //--------------------------------------------------------------------------------------------------
81 void B_only(unsigned char Bdata_H,unsigned char Bdata_L) //B通道数据发送
82 {
83 1 //Bdata_H为DA通道B数据高4位
84 1 //Bdata_L为DA通道B数据低8位
85 1 LDAC=1;
86 1 SEND_4bit(Bdata_H);
87 1 SEND_BYTE(Bdata_L);
88 1 LDAC=0;
89 1 }
90 //--------------------------------------------------------------------------------------------------
91 // 函数名称: A_only
92 // 入口参数: Adata_H,Adata_L 12位数据
93 // 函数功能: B通道输出零,A通道单独转换
94 //--------------------------------------------------------------------------------------------------
95 void A_only(unsigned char Adata_H,unsigned char Adata_L) //B通道数据发送
96 {
97 1 //Adata_H为DA通道B数据高4位
98 1 //Adata_L为DA通道B数据低8位
99 1 LDAC=1;
100 1 SEND_4bit(0);
101 1 SEND_BYTE(0); //高12位写零
102 1 SEND_4bit(Adata_H);
103 1 SEND_BYTE(Adata_L);
104 1 LDAC=0;
105 1 }
106 //--------------------------------------------------------------------------------------------------
107 // 函数名称: A_only
108 // 入口参数: Bdata_H,Bdata_L 12位数据
109 // Adata_H,Adata_L 12位数据
110 // 函数功能: A\B通道同时转换
111 //--------------------------------------------------------------------------------------------------
112 void AB_both(unsigned char Bdata_H,unsigned char Bdata_L,
113 unsigned char Adata_H,unsigned char Adata_L) //B通道数据发送
114 {
115 1 //Bdata_H为DA通道B数据高4位
116 1 //Bdata_L为DA通道B数据低8位
117 1 //Adata_H为DA通道B数据高4位
C51 COMPILER V7.06 MAX532 05/10/2005 17:28:30 PAGE 3
118 1 //Adata_L为DA通道B数据低8位
119 1 LDAC=1;
120 1 SEND_4bit(Bdata_H);
121 1 SEND_BYTE(Bdata_L); //写高12位
122 1 SEND_4bit(Adata_H);
123 1 SEND_BYTE(Adata_L); //写低12位
124 1 LDAC=0;
125 1 }
126
127
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
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 + -