//实验目的:熟悉D/A转换芯片的使用
//把待转换的数据送D/A芯片TLC5615,开启D/A转换
//用万用表或者示波器观察输出口(CON36)的电压
//硬件要求:拨码开关S8全部置ON
// 其他拨码开关全部置OFF
#include<pic.h> //包含单片机内部资源预定义
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
#define value1 0xf5; //待转换数据的高4位(高半字节为无效数据)
#define value2 0xfc; //待转换数据的低6位(最低2位为无效数据)
//------------------------------------------------
//主函数
void main()
{
int temp; //定义一个临时寄存器
PORTC=0XF4; //拉低时钟信号,片选禁止
TRISC=0X10; //设置RC4(SDI)输入,其他输出
SSPSTAT=0X40; //CKE=1下降沿发送数据(TCL5615要求)
SSPCON=0X20; //SSPEN=1,CKE=0,SPI主控模式Fosc/4
PORTC=0X00; //拉低时钟信号,片选使能
SSPBUF=value1; //发送待转换的数据高4位
while(!SSPIF); //等待发送完成
SSPIF=0X0; //清除中断标志位
temp=SSPBUF; //清空接收寄存器
SSPBUF=value2; //发送待转换数据低6位
while(!SSPIF); //等待发送完成
SSPIF=0x0; //中断标志位清0
PORTC=0X04; //片选信号禁止
while(1);
}