📄 dac.c
字号:
/*********************************************
example program for PIC download board
16F877A @3.6864MHz
test DAC(TLC5615)
www.mcufan.com
*********************************************/
#include <pic.h>
#include <pic1687x.h>
/*volatile unsigned char data; */
#define PORTCIT(adr,bit) ((unsigned)(&adr)*8+(bit)) /*绝对寻址位操作指令*/
static bit PORTC_0 @ PORTCIT(PORTC,0);
__CONFIG(WDTDIS & HS & LVPDIS & DEBUGDIS);
/*spi初始化子程序*/
void SPIINIT()
{
PIR1=0;
SSPCON=0x32; /* SSPEN=1;CKP=0 , FOSC/64 */
SSPSTAT=0xC0;
TRISC=0x00; /*SDO引脚为输出,SCK引脚为输出*/
}
/*系统各输入输出口初始化子程序*/
void initial()
{
TRISC=0x00; /*A口设置为输出*/
INTCON=0x00; /*关闭所有中断*/
PORTC_0=1; /*CS送高电平,*/
}
/*SPI发送子程序*/
void SPIDAC(unsigned char byte)
{
SSPBUF=byte; /*启动发送*/
do
{
;
}while(SSPIF==0); /*等待发送完毕*/
SSPIF=0; /*清除SSPIF标志*/
byte=SSPBUF;
}
main()
{
unsigned int data=512;
unsigned char data_h,data_l;
initial();
SPIINIT();
PORTC_0=0; // clear RC0
data=data<<2;
data_l = data & 0xFF;
data_h = (data & 0xFF00)>>8;
SPIDAC(data_h);
SPIDAC(data_l);
PORTC_0=1; // set RC0
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -