/****************************************************
程序功能 : 使用TLC5615进行DA转换
单位 : 桂林电子科技大学 电信 EDA工作室
程序说明 : 本程序适应于绝大多数没有四线制SPI口的8051
单片机,模拟一个接口,可根据实际情况修改四个
接口的地址即可实现移植,使用编译器为keil c2
***************************************************/
#ifndef __DAC1615_H_
#define __DAC1615_H_ //定义开始
//***************************//
//*************************************//
#ifndef uchar
#define uchar unsigned char
#endif
//***************************//
#ifndef uint
#define uint unsigned int
#endif
#ifndef uint
#define uint unsigned int
#endif
//****************************//
sbit cs = P3^2; //片选
sbit clk = P3^3; //时钟
sbit din = P3^4; //数据入口
sbit dout = P3^5; //数据出口
//****************************//
void delay(); //延时函数
void DA_Conver(unsigned int DA_Value);
//***********************************//
//*************************************//
void delay()
{
int i = 5;
while(i--);
}
/*------------------------------------------------------------- */
void DA_Conver(unsigned int DAValue)
{
unsigned char i;
DAValue <<= 6;
cs = 0; // 片选DA芯片
clk = 0; // 在以下12个时钟周期内,每当在上升沿的
// 数据被锁存,形成DA输出。在前10个时钟
for(i = 0; i < 12; i++) // 内输入的是10位DA数据,后两个时钟周期
{ // 为填充字节。
din = (bit)(DAValue & 0x8000); //
clk = 1; //
DAValue <<= 1; //
clk = 0;
}
cs = 1; // CS的上升沿和下降沿只有在clk为低的时候
clk = 0; // 才有效
}
#endif //结束定义
|