📄 copy of main.c
字号:
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#define b_da PTBD_PTBD3
#define b_dai PTBD_PTBD4
#define b_clk PTBD_PTBD2
#define b_cs PTBD_PTBD5
typedef union {
byte Byte;
struct {
byte B0 :1; /* Port B Data Register Bit 0 */
byte B1 :1; /* Port B Data Register Bit 1 */
byte B2 :1; /* Port B Data Register Bit 2 */
byte B3 :1; /* Port B Data Register Bit 3 */
byte B4 :1; /* Port B Data Register Bit 4 */
byte B5 :1; /* Port B Data Register Bit 5 */
byte B6 :1; /* Port B Data Register Bit 6 */
byte B7 :1; /* Port B Data Register Bit 7 */
} Bits;
} BUFFER;
BUFFER _buffer ;
#define buffer _buffer.Byte
#define buffer_b7 _buffer.Bits.B0
#define buffer_b6 _buffer.Bits.B1
#define buffer_b5 _buffer.Bits.B2
#define buffer_b4 _buffer.Bits.B3
#define buffer_b3 _buffer.Bits.B4
#define buffer_b2 _buffer.Bits.B5
#define buffer_b1 _buffer.Bits.B6
#define buffer_b0 _buffer.Bits.B7
BUFFER _buffer1 ;
#define buffer3 _buffer1.Byte
#define buffer3_b7 _buffer1.Bits.B0
#define buffer3_b6 _buffer1.Bits.B1
#define buffer3_b5 _buffer1.Bits.B2
#define buffer3_b4 _buffer1.Bits.B3
#define buffer3_b3 _buffer1.Bits.B4
#define buffer3_b2 _buffer1.Bits.B5
#define buffer3_b1 _buffer1.Bits.B6
#define buffer3_b0 _buffer1.Bits.B7
unsigned char dizhi,m;
unsigned char rebuff1=0xaa;
unsigned char rebuff2=0x22;
unsigned char rebuff3=0x00;
unsigned char rebuff4=0x00;
unsigned char rebuff5=0x22;
unsigned char rebuff6=0x22;
unsigned char rebuff7=0x22;
unsigned char rebuff8=0x22;
unsigned char rebuff9=0x22;
void yanshi(void);
void xieyunxu(void) ;
void WRITEDATA(void) ;
void WRITEEN(void) ;
void READDATA(void);
///////////////////////
void main(void) {
PTBDD_PTBDD5=1;
xieyunxu();
yanshi();
yanshi();
SPIC1=0X50;
SPIC2=0X00;
SPIBR=0X33;
EnableInterrupts;
m=0;
for(;m<0x03f;m++)
WRITEDATA();
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
// m=0;
// for(;m<0x03f;m++)
// WRITEDATA();
READDATA();
asm{
nop
};
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
/*
for(dizhi=0x3f;dizhi!=0;dizhi--) {
xiechengxu(dizhi);
asm{
nop
} EnableInterrupts;
yanshi();
yanshi();
yanshi();
yanshi();
}
duchengxu();
yanshi();
asm{
nop
}
yanshi();
*/
}
}
void WRITEDATA(void) {
SPIC1=0X50;
SPIC2=0X00;
SPIBR=0X33;
b_cs=0;
yanshi();
b_cs=1;
yanshi();
SPID=0X01;
while(!SPIS_SPTEF);
SPID=0X40+m;
while(!SPIS_SPTEF);
SPID=0Xde;
while(!SPIS_SPTEF);
SPID=0X39;
while(!SPIS_SPTEF);
SPID=0X00;
while(!SPIS_SPTEF);
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
b_cs=0;
yanshi();
yanshi();
}
void READDATA(void) {
SPIC1=0X50;
b_cs=0;
yanshi();
yanshi();
yanshi();
yanshi();
b_cs=1;
yanshi();
SPID=0X01;
while(!SPIS_SPTEF);
rebuff1=SPID;
SPID=0X80;
while(!SPIS_SPTEF);
SPID=0X00;
while(!SPIS_SPTEF);
rebuff1=SPID;
while(!SPIS_SPRF) ;
rebuff1=SPID;
SPID=0X00;
while(!SPIS_SPTEF);
rebuff1=SPID;
while(!SPIS_SPRF) ;
rebuff2=SPID;
///////////////////////////////
SPID=0X00;
while(!SPIS_SPTEF);
rebuff2=SPID;
while(!SPIS_SPRF);
rebuff3=SPID;
SPID=0X00;
while(!SPIS_SPTEF);
rebuff3=SPID;
//////////////////////////////
SPIC1=0X00;
/*
if(rebuff2&(1<<7))
rebuff1=(rebuff1<<1+1);
else rebuff1=(rebuff1<<1+0);
if(rebuff3&(1<<7))
rebuff2=(rebuff2<<1+1);
else rebuff2=(rebuff2<<1+0);
*/
yanshi();
yanshi();
yanshi();
yanshi();
yanshi();
b_cs=0;
yanshi();
}
void yanshi(void){
unsigned char i;
for(i=0;i<10;i++)__RESET_WATCHDOG();
}
void WRITEEN(void) {
b_cs=0;
yanshi();
b_cs=1;
yanshi();
SPID=0X01;
while(!SPIS_SPTEF);
SPID=0X30;
while(!SPIS_SPTEF);
yanshi();
yanshi();
b_cs=0;
yanshi();
}
//模拟写允许
void xieyunxu(void){
SPIC1=0;
buffer=0xaa;
PTBDD_PTBDD3=1;
PTBDD_PTBDD4=0;
PTBDD_PTBDD2=1;
PTBDD_PTBDD5=1;
b_da=0;
b_clk=0;
b_cs=0;
yanshi();
b_cs=1;
yanshi();
b_da=1;
yanshi();
b_clk=1;
yanshi(); //>1
yanshi();
b_clk=0;
yanshi();
b_da=0;
yanshi(); //>0
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=0;
yanshi(); //>0
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=1;
yanshi(); //>1 a5
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=1;
yanshi(); //>1 a4
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=0;
yanshi(); //>0 a3
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=0;
yanshi(); //>0 a2
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=0;
yanshi(); //>0 a1
b_clk=1;
yanshi();
yanshi();
b_clk=0;
yanshi();
b_da=0;
yanshi(); //>0 a0
b_clk=1;
yanshi();
yanshi();
b_clk=0;
b_cs=0;
yanshi();
yanshi();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -