📄 pic_sciand_ad7683.c
字号:
#include<pic.h>
__CONFIG (HS & WDTDIS & PWRTEN & BORDIS &LVPDIS & DUNPROT & WRTEN & DEBUGEN &UNPROTECT);
unsigned int ad_value=0x1234;
#define DAT RB2
#define CLK RB1
#define CS RB0
void initial()
{
INTCON=0x00;
ADCON1=0X07;
PIE1=0;
PIE2=0;
}
void init_7683(void)
{
TRISB0=0;
TRISB1=0;
TRISB2=1;
CS=1;
CLK=1;
}
void sciint()
{
SPBRG=0X19;
TXSTA=0X04;
RCSTA=0X80;
TRISC6=1;
TRISC7=1;
TXEN=1;
}
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
{
;
}
}
}
unsigned int ad7683(void)
{
unsigned int dump=0;
unsigned char i;
init_7683();
CS=0;
for(i=0;i<=5;i++) //output 0 at 5th failing clock
{
CLK=1;
delay5us();
CLK=0;
}
for(i=0;i<16;i++)
{
CLK=1;
dump=(dump<<1);
dump|=DAT;
CLK=0;
asm("nop"); asm("nop"); asm("nop");
}
CLK=1;
asm("nop"); asm("nop");
CS=1;
asm("nop");asm("nop");
CLK=0;
return dump;
}
main()
{
TRISC3=0;
TRISB5=0;
initial();
sciint();
INTCON=INTCON|0xc0;
while(1)
{
ad_value=ad7683();
delay(10);
TXREG=(ad_value&0xff00)>>8;
delay(10);
TXREG=ad_value&0xff;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -