- UID
- 1029342
- 性别
- 男
|
芯片封装和引脚如图:
代码如下:
[cpp] view plaincopy
- #include <reg51.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- void tlv5616_da(uint da);
- sbit tlv5616_clk=P1^1;
- sbit tlv5616_data=P1^0;
- sbit tlv5616_cs=P1^3;
- sbit tlv5616_fs=P1^2;
- void tlv5616_da(uint da){
- uchar i;
- tlv5616_cs=0;
- tlv5616_clk=1;
- tlv5616_fs=0;
- for(i=0;i<16;i++){
- _nop_(); _nop_();
- tlv5616_data=(bit)(da&0x8000);
- tlv5616_clk=0;
- _nop_();_nop_();
- da<<=1;
- tlv5616_clk=1;
- _nop_(); _nop_();
- }
- tlv5616_cs=1;
- tlv5616_fs=1;
- tlv5616_clk=0;
- for(i=0;i<16;i++);
- }
- void main(void){
- while(1){
- tlv5616_da(1000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(2000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(3000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(4000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(3000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(2000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(1000);
- _nop_();_nop_();_nop_();_nop_();
- tlv5616_da(0);
- }
- }
经D/A芯片转换后产生的波形如下所示:
(------------完-------------) |
|