📄 zuo.c
字号:
#include "SPCE061A.h"
unsigned int data_out1;
unsigned int key_in[16]={4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31};
unsigned int key_out[17]={"1234567890abcdef"}; // {"159C260D37AE48BF"};
//cs7279:IOA0
//CLK7279:IOA1
//dat7279:IOA2
//key7279:IOA3
unsigned int keyfind1(void);
unsigned int keyfind(void);
void send7279(unsigned int read);
unsigned int read7279(void);
void delay (unsigned long int us);
//******************************************************************************************
// JIAN PAN
//******************************************************************************************
unsigned int keyfind1(void)
{
unsigned int i,key;
for(i=0;i<16;i++)
{
if(key_in[i]==key)
break;
else continue;
}
return(key_out[i]);
}
void send7279(unsigned int read)
{
unsigned int out,i,number;
number=*P_IOA_Dir|0x0004;
*P_IOA_Dir=number;
number=*P_IOA_Attrib|0x0004;
*P_IOA_Attrib=number;
out=read;
number=*P_IOA_Data&0xfffe;
*P_IOA_Data=number; //cs set to low // cs7279=0; //选中7279
delay(1);
for(i=0;i<8;i++)
{
if(out&0x0080)
{
data_out1=*P_IOA_Data|0x0004; //data set to high
*P_IOA_Data=data_out1; //data7279=1;
}
else
{
data_out1=*P_IOA_Data&0xfffb;
*P_IOA_Data=data_out1; //data7279=0;
}
data_out1=*P_IOA_Data|0x0002; //clk set to high
*P_IOA_Data=data_out1; //clk7279=1; //产生同步时钟上升沿
delay(1);
data_out1=*P_IOA_Data&0xfffd;
*P_IOA_Data=data_out1; //clk7279=0;
delay(1);
out<<=1;
*P_Watchdog_Clear=1;
}
// data_out1=*P_IOA_Data&0xfffb;
// *P_IOA_Data=data_out1; //data7279=0;
}
unsigned int read7279(void)
{ unsigned int in,i,data;
data_out1=*P_IOA_Data&0xfffe;
*P_IOA_Data=data_out1; //cs7279=0;
delay(2);
send7279(0x0015);
*P_IOA_Dir=*P_IOA_Dir&0xfffb;
*P_IOA_Attrib=*P_IOA_Attrib&0xfffb;
in=0;
data_out1=*P_IOA_Data|0x0004; //data set to high
*P_IOA_Data=data_out1; //data7279=1;
delay(2);
for(i=0;i<8;i++)
{
data_out1=*P_IOA_Data|0x0002; //clk set to high
*P_IOA_Data=data_out1; //clk7279=1;
delay(2);
in<<=1;
data=*P_IOA_Data&0x0004;
if(data) //if (data7279)
{
in=in|0x0001;
}
data_out1=*P_IOA_Data&0xfffd;
*P_IOA_Data=data_out1; // clk7279=0;
delay(2);
*P_Watchdog_Clear=1;
}
data_out1=*P_IOA_Data&0xfffb;
*P_IOA_Data=data_out1; // data7279=0;
return(in);
}
void delay (unsigned long int us)
{
while(us--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -