bạn làm thế này đảm bảo chạy .
#include <16F877.H>
#fuses HS, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 20000000)
#byte SSPBUF = 0x13
#byte SSPCON = 0x14
#bit BF = SSPSTAT.0
#bit SMP = SSPSTAT.7
#bit CKE = SSPSTAT.6
#bit CKP = SSPCON.4
#bit SSPM1 = SSPCON.1
#bit SSPEN = SSPCON.5
//------------------------------------------
char SPI(char d)
{
SSPBUF=d;
while (!BF);
return SSPBUF;
}
//------------------------------------------
void spi_init()
{
set_tris_c(0b11010011); // sck rc3-0, sdo rc5-0, CS rc2-0.
SMP=0;
CKE=0;
CKP=1;
SSPM1=1;
//SSPM0=1;
SSPEN=1;
}
|