?? tlv5618.lst
字號:
C51 COMPILER V7.50 TLV5618 08/07/2007 15:12:51 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TLV5618
OBJECT MODULE PLACED IN D:\VW\WORK\TLV5618\TLV5618.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE D:\VW\WORK\TLV5618\TLV5618.C DB SB OE
line level source
1 #include <reg52.h>
2
3
4 sbit SCLK=P1^3;
5 sbit SDAT=P1^7;
6 sbit CS =P1^0;
7
8 bit bdata mode_bit=0; //方波幅度高低電平標志變量,為0時輸出低電平,為1時輸出高電平
9 unsigned char data count=0; //方波的半周期計數器
10 unsigned int data vouta=0; //方波高低電平電壓值存儲變量,其幅度與三角波幅度相等
11 unsigned int data config; //送往DA轉換器的配置參數。以全局變量出現,即作為行參,又作為實參
12
13
14 void initial_5618_io(void);
15 void tlv5618_outa(void);
16 void da_tlv5618(unsigned int config);
17 void delay(unsigned int num);
18
19 /************************************************************************************************/
20 void main(void)
21 {
22 1 initial_5618_io(); //初始化CPU的IO口
23 1 while(1) //周期地進行轉換,形成三角波和方波的周期信號
24 1 {
25 2 tlv5618_outa(); //控制通道A輸出方波,該方波與上面的三角波幅度相等、周期相同
26 2 // delay(100);
27 2 }
28 1 }
29 /************************************************************************************************/
30 void initial_5618_io(void) //CPU的IO口初始化函數
31 {
32 1 SCLK=0;
33 1 SDAT=0;
34 1 CS =1;
35 1 }
36
37 //================================================================================================
38 void tlv5618_outa(void) //周期方波生成函數
39 {
40 1 config=vouta;
41 1 config=config&0x0fff;
42 1 config=config|0xc000;
43 1 da_tlv5618(config);
44 1 vouta=0x0f00;
45 1
46 1
47 1 count++;
48 1 if(count<0x1a) //判斷方波是否應該改變電平狀態
49 1 {
50 2 if(!mode_bit) //根據方波幅度高低電平標志變量決定是輸出高電平還是低電平
51 2 vouta=0;
52 2 else
53 2 vouta=0x0f00;
54 2 }
55 1 else
C51 COMPILER V7.50 TLV5618 08/07/2007 15:12:51 PAGE 2
56 1 {
57 2 count=0;
58 2 mode_bit=~mode_bit; //如果已經達到改變電平狀態的時刻則改變方波幅度標志變量
59 2 }
60 1 }
61
62 /*************************************************************************************************
63 ; 函數名稱: da_tlv5618
64 ; 功能描述: TI公司12位雙通DAC芯片TLV5618的控制時序
65 ; 形式參數: config(無符號整型變量)
66 **************************************************************************************************/
67 void da_tlv5618(unsigned int config)
68 {
69 1
70 1 unsigned int n;
71 1 unsigned char m=0;
72 1 CS=0;
73 1 for(;m<0x10;m++)
74 1 {
75 2 SCLK=1;
76 2 n=config;
77 2 n=n&0x8000;
78 2 SDAT=(bit)n;
79 2 SCLK=0;
80 2 config<<=1;
81 2 }
82 1 CS=1;
83 1 SCLK=0;
84 1 }
85
86 //=====================================================================================
87 //函數名稱: delay
88 //功能描述: 延時
89 //備注: 程序調試中延時一段時間,方便觀察各相關端口的電平信號是否符合時序要求
90 //====================================================================================
91 void delay(unsigned int num)
92 {
93 1 unsigned int i;
94 1 for(i=0;i<num;i++)
95 1 {
96 2
97 2 }
98 1 }
C51 COMPILER V7.50 TLV5618 08/07/2007 15:12:51 PAGE 3
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
CS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
count. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
SDAT . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1
SCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1
vouta. . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0001H 2
_da_tlv5618. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
config . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2
n. . . . . . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2
m. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
mode_bit . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
tlv5618_outa . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
initial_5618_io. . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
_delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
num. . . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2
i. . . . . . . . . . . . . . . . . . * REG * DATA U_INT 0004H 2
config . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0003H 2
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 125 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -