📄 ad5302.c
字号:
#include<pic.h>
__CONFIG (HS & WDTDIS & PWRTEN & BORDIS &LVPDIS & DUNPROT & WRTEN & DEBUGEN &UNPROTECT);
unsigned int ad_value=0x1234;
#define DIN RB5
#define CLK RB4
#define SYNC RB1
#define LDAC RB0
void initial()
{
INTCON=0x00;
ADCON1=0X07;
PIE1=0;
PIE2=0;
}
void init_7683(void)
{
TRISB5=0;
TRISB4=0;
TRISB1=0;
TRISB0=0;
CLK =1;
SYNC =1;
DIN =1;
LDAC =0;
}
void delay5us(void)
{
asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
}
void delay(time)
unsigned int time;
{
unsigned int delay1,delay2;
for(delay1=0;delay1<=time;delay1++)
{
for(delay2=0;delay2<=50;delay2++) //1ms delay
{
;
}
}
}
void DAC5032(unsigned int out)
{
unsigned char i;
unsigned int dump=0;
init_7683();
delay5us();
SYNC=1;
CLK=1;
delay5us();
CLK=0;
delay5us();
CLK=1;
delay5us();
CLK=0;
asm("nop"); asm("nop"); asm("nop");
SYNC=0;
delay5us();
//---------------------------------
for(i=0;i<16;i++)
{
dump=(out) & 0x8000;
if(dump==0x8000) DIN=1;
else DIN=0;
CLK=1;
delay5us();
CLK=0;
out=(out<<1);
delay5us();
}
delay5us();
//---------------------------------
SYNC=1;
CLK=1;
delay5us();
CLK=0;
delay5us();
CLK=1;
delay5us();
CLK=0;
delay5us();
CLK=1;
delay5us();
CLK=0;
LDAC =0;//--\__
delay5us();
CLK=1;
delay5us();
CLK=0;
delay5us();
CLK=1;
LDAC =0;//___/
}
main()
{
TRISC3=0;
TRISB5=0;
initial();
init_7683();
INTCON=INTCON|0xc0;
while(1)
{
DAC5032(0x0fff);
delay(5000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -