📄 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 + -