?? tlc5620.lst
字號:
C51 COMPILER V7.50 TLC5620 08/07/2007 12:11:47 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TLC5620
OBJECT MODULE PLACED IN D:\VW\WORK\TLV5618\TLC5620.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE D:\VW\WORK\TLV5618\TLC5620.C DB SB OE
line level source
1 /*************************************************************************************************
2 ; TLC5620 DAC轉換實驗程序
3 ; 2004.10.28,Ver 1.0
4 ;-------------------------------------------------------------------------------------------------
5 ; 輸出電壓計算公式: VOUT(DACA|B|C|D)=REF*CODE/256*(1+RNG bit value)
6 ;-------------------------------------------------------------------------------------------------
7 ; 該實驗程序使用TLC5620中A、B、C、D四個通道中的前兩個通道分別輸出周期相等、幅度
8 ; 均為3.3V的三角波和方波,5620的輸出經過LM358雙運方的反相跟隨后增強了帶負載能力
9 ; 并且使得輸出的信號電壓位于-3.3V~0V之間,起到了模擬反相的作用。在程序中,RNG位
10 ; 的置位使得輸出幅度增加一倍。
11 *************************************************************************************************/
12
13 #include <reg52.h>
14
15 typedef unsigned char byte;
16 typedef unsigned int word;
17
18 sbit SCLA=P1^6;
19 sbit SDAA=P1^7;
20 sbit LOAD=P3^5;
21 sbit LDAC=P3^4;
22
23 bit bdata mode_bit1=0; //三角波幅度遞增或遞減標志變量,為0時上坡,為1下坡
24 bit bdata mode_bit2=0; //方波幅度高低電平標志變量,為0時輸出低電平,為1時輸出高電平
25 byte data count1=0; //三角波的半周期計數器
26 byte data count2=0; //方波的半周期計數器
27 byte data vouta=0; //三角波瞬態電壓值存儲變量
28 byte data voutb=0; //方波高低電平電壓值存儲變量,其幅度與三角波幅度相等
29 word data config; //送往DA轉換器的配置參數。以全局變量出現,即作為行參,又作為實參
30
31 void ini_cpuio(void);
32 void dachang1(void);
33 void dachang2(void);
34 void dac5620(word config);
35
36 /************************************************************************************************/
37 void main(void)
38 {
39 1 ini_cpuio(); //初始化CPU的IO口
40 1 while(1) //周期地進行轉換,形成三角波和方波的周期信號
41 1 {
42 2 dachang1(); //控制通道A輸出三角波
43 2 dachang2(); //控制通道B輸出方波,該方波與上面的三角波幅度相等、周期相同
44 2 }
45 1 }
46 /************************************************************************************************/
47 void ini_cpuio(void) //CPU的IO口初始化函數
48 {
49 1 SCLA=0;
50 1 SDAA=0;
51 1 LOAD=1;
52 1 LDAC=1;
53 1 }
54 //================================================================================================
55 void dachang1(void) //周期三角波生成函數
C51 COMPILER V7.50 TLC5620 08/07/2007 12:11:47 PAGE 2
56 {
57 1 config=(word)vouta;
58 1 config<<=5;
59 1 config=config&0x1fff;
60 1 config=config|0x2000;
61 1 dac5620(config);
62 1 count1++;
63 1 if(count1<0xa2) //判斷三角波是否上升(或下降)到峰點(或谷點)
64 1 {
65 2 if(!mode_bit1) //判斷處于上坡還是下坡狀態以決定是繼續上升還是繼續下降
66 2 vouta++;
67 2 else
68 2 vouta--;
69 2 }
70 1 else
71 1 {
72 2 count1=0;
73 2 mode_bit1=~mode_bit1; //如果已經達到峰點(或谷點)則改變幅度遞增或遞減標志
74 2 }
75 1 }
76 //================================================================================================
77 void dachang2(void) //周期方波生成函數
78 {
79 1 config=(word)voutb;
80 1 config<<=5;
81 1 config=config&0x1fff;
82 1 config=config|0x6000;
83 1 dac5620(config);
84 1 voutb=0xa2;
85 1
86 1
87 1 /* count2++;
88 1 if(count2<0xa2) //判斷方波是否應該改變電平狀態
89 1 {
90 1 if(!mode_bit2) //根據方波幅度高低電平標志變量決定是輸出高電平還是低電平
91 1 voutb=0;
92 1 else
93 1 voutb=0xa2;
94 1 }
95 1 else
96 1 {
97 1 count2=0;
98 1 mode_bit2=~mode_bit2; //如果已經達到改變電平狀態的時刻則改變方波幅度標志變量
99 1 } */
100 1 }
101
102 /*************************************************************************************************
103 ; 函數名稱: dac5620
104 ; 功能描述: TI公司8位4通DAC芯片TLC5620的控制時序
105 ; 形式參數: config(無符號整型變量)
106 ; 返回參數: 無
107 ; 局部變量: m、n
108 ; 調用模塊: SENDBYTE
109 ; 日 期: 2004-10-28
110 ; 備 注: 使用11位連續傳輸控制模式,使用LDAC下降沿鎖存數據輸入
111 **************************************************************************************************/
112 void dac5620(word config)
113 {
114 1 byte m=0;
115 1 word n;
116 1 for(;m<0x0b;m++)
117 1 {
C51 COMPILER V7.50 TLC5620 08/07/2007 12:11:47 PAGE 3
118 2 SCLA=1;
119 2 n=config;
120 2 n=n&0x8000;
121 2 SDAA=(bit)n;
122 2 SCLA=0;
123 2 config<<=1;
124 2 }
125 1 LOAD=0;
126 1 LOAD=1;
127 1 LDAC=0;
128 1 LDAC=1;
129 1 }
130
131
132
133
134
135
136
137
138
C51 COMPILER V7.50 TLC5620 08/07/2007 12:11:47 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
LDAC . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
SDAA . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1
LOAD . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
SCLA . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
vouta. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
voutb. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0001H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
byte . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
word . . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
ini_cpuio. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_dac5620 . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
config . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2
m. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
n. . . . . . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2
count1 . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
count2 . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0003H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
config . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0004H 2
mode_bit1. . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
mode_bit2. . . . . . . . . . . . . . . PUBLIC DATA BIT 0001H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
dachang1 . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dachang2 . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 156 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -