TLC5615芯片带10位DAC 双极性板资料V2017
TLC5615的原理图:
TLC5615大量参考资料:
示范例程包含51单片机 stm32和avr单片机的源程序
TLC5615 Sine 1024 51单片机源程序如下:
- /************************************************************************************
- 【中文名】水星电子科技
- 【英文名】Mercury Electronics Technology
- 【店铺网址】选购您喜爱的宝贝,欢迎。
- 【服务承诺】如实描述,真实可信,拒绝一切虚标。专业开发,优质服务,提供高品质各类电子模块。
- 【版权声明】原创程序,仅限学习交流,禁止商业应用。引用请注明版权和作者信息!
- 【作者】leaf
- 【修改日期】09.13
- 感谢支持原创设计!!!
- ************************************************************************************/
- /************************************************************************************
- 【配套产品】
- 1.TLC5615 DA模块
- 2.TLC5615 正弦波模块
- 【程序功能】TLC5615输出1024点正弦波
- 【适应芯片】
- STC89C52RC
- STC89LE52RC
- STC12C5A60S2
- STC12LE5A60S2均兼容。
- 对于其他型号的芯片,修改IO配置即可。
- 【晶振频率】
- 4-24M任意频率(不得超过对应的MCU型号最高频率均可),仅仅是运行速度不同。
- 【操作说明】
- 主芯片:STC89C52RC,11.0592M,约30HZ.
- 主芯片:STC12C5A60S2,22.1184M晶振,约160HZ。
- 其他频率可自行更换晶振和调节参数实现!
- 【注意事项】
- 1.LED连接时,不能使用P1口的ADC功能(STC12)。如通过排针引出其他功能,也请注意LED可能造成的干扰。
- 2.TLC5615 DA模块本身必须使用5V电源,控制信号可以接受3.3V或者5V。
- 3.请注意极性!
- 【IO配置】
- DIN ---> P1.0
- SCLK ---> P1.1
- CS ---> P1.2
- Dout ---> 空,未定义
- ************************************************************************************/
- #include<reg52.h> //包含51单片机寄存器定义的头文件
- #include<intrins.h> //包含nop函数的头文件
- #define uchar unsigned char //宏定义
- #define uint unsigned int //宏定义
- sbit DIN =P1^0; //IO定义
- sbit SCLK =P1^1;
- sbit CS =P1^2;
- uint code sin1[1024]= //1024点12位数据的正弦波表
- {
- 0x1FF,0x202,0x205,0x208,0x20C,0x20F,0x212,0x215,0x218,0x21B,0x21E,0x221,0x225,0x228,0x22B,0x22E
- ,0x231,0x234,0x237,0x23A,0x23E,0x241,0x244,0x247,0x24A,0x24D,0x250,0x253,0x256,0x25A,0x25D,0x260
- …………限于本文篇幅 余下代码请从51黑下载附件…………
- ,0x16B,0x16E,0x171,0x174,0x177,0x17A,0x17D,0x180,0x183,0x186,0x189,0x18C,0x18F,0x192,0x195,0x198
- ,0x19B,0x19E,0x1A1,0x1A4,0x1A8,0x1AB,0x1AE,0x1B1,0x1B4,0x1B7,0x1BA,0x1BD,0x1C0,0x1C4,0x1C7,0x1CA
- ,0x1CD,0x1D0,0x1D3,0x1D6,0x1D9,0x1DD,0x1E0,0x1E3,0x1E6,0x1E9,0x1EC,0x1EF,0x1F2,0x1F6,0x1F9,0x1FC};
- void delay_us(unsigned char n) //us级延时函数
- {
- unsigned char i;
- for(i=0;i<n;i++);
- }
- /******************************************************************
- 1.sclk的上升沿数据进入输入寄存器
- 2.在sclk为低的时候,CS的上升沿数据开始DA转化
- 3.连续输入12位数据,高位在前,其中前10位有效,后两位补0
- ***************************************************************/
- void output(uint DA_Value) //TLC5615驱动函数
- {
- unsigned char i;
- DA_Value=DA_Value<<6; //将DA_Value左移6位,即nnnn nnnn nnnn变为nnnn nnnn nn00 0000
-
- SCLK=0; //为低,准备输入数据
- CS=0; //片选
- for(i=12;i>0;i--) //从高位开始,连续取出12位数据,
- {
- if(DA_Value&0x8000) //和1000 0000 0000 0000 求与,获取最高位的值。
- DIN=1;
- else
- DIN=0;
- SCLK=1; //上升沿,进入输入寄存器
- SCLK=0; //准备下一次输入
- DA_Value=DA_Value<<1; //左移1位,准备输入下一位数据
- }
- CS=1; //在sclk为低的时候,CS上升沿,数据开始DA转化
- }
- void main()
- {
- uint i;
- while(1)
- {
- i=0;
- for(i=0;i<1023;i++) //连续取出1024点正弦数据
- output(sin1[i]); //输出正弦波
-
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载(stm32和avr代码都有完整版):
TLC5615 10位DAC 双极性板资料V2017.03.17.rar
(6.56 MB, 下载次数: 217)
|