?? tlc5620.lst
字號:
C51 COMPILER V8.02 TLC5620 05/06/2007 18:53:09 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TLC5620
OBJECT MODULE PLACED IN TLC5620.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TLC5620.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //本文件為TLC5620 8位串行DA轉換的程序模塊,實現DA轉換,調節聲音的大小輸出
2 //提供 TLC5620(vol) 聲音轉換接口
3
4 /*
5 存在問題:
6 1、程序中_nop_()會不會少點???,程序中沒有LDAC的操作,
7 根據電路圖,第一次的轉換能進行嗎?
8 2、這個函數要在程序中不斷的運行
9
10 3.查看PCB圖,看原理圖跟PCB圖是不是一樣的!!!????????????
11 */
12
13 #include<reg51.h>
14 #include<intrins.h>
15 #define uchar unsigned char
16
17 sbit DATA=P1^2; //數據串行輸入端
18 sbit CLK=P1^1; //串行輸入時鐘
19 sbit LOAD=P1^0; //數據進入第一級鎖存控制位
20
21 void TLC5620(float vol) //vol數值范圍:0----99
22 {
23 1 float volval;
24 1 uchar i;
25 1 uchar vollast; //定義此變量以取0---255的百分比
26 1 LOAD=1;
27 1
28 1 CLK=1;
29 1 DATA=0;
30 1 _nop_();
31 1 CLK=0; //下降沿送入第一個數A1
32 1 _nop_(); //
33 1
34 1
35 1 CLK=1;
36 1 DATA=0;
37 1 _nop_();
38 1 CLK=0; //下降沿送入第二個數A0
39 1 _nop_(); //
40 1
41 1
42 1 CLK=1;
43 1 DATA=0; //RNG=1使輸出位兩倍參考輸入的輸出
44 1 _nop_();
45 1 CLK=0; //下降沿送入第三個數RNG
46 1 _nop_(); //
47 1
48 1 volval=vol; //
49 1 vollast=(volval/100)*255; //
50 1
51 1
52 1 for(i=0;i<8;i++) //循環送入8位數字碼,從高位開始送入
53 1 {
54 2 CLK=1;
55 2 DATA=vollast&0x80;
C51 COMPILER V8.02 TLC5620 05/06/2007 18:53:09 PAGE 2
56 2 vollast=vollast<<1;
57 2 _nop_(); //加嗎????????????
58 2 CLK=0;
59 2 _nop_(); //
60 2
61 2 }
62 1 _nop_(); //
63 1
64 1 LOAD=0; //開始轉換。
65 1 _nop_();
66 1 _nop_();
67 1 LOAD=1; //
68 1
69 1
70 1 }
71
72
73
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 77 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -