📄 bc7281._h
字号:
#define uchar unsigned char
#define clk1 PORTA|=BIT(7)
#define clk0 PORTA&=~BIT(7)
#define clkout DDRA|=BIT(7)
#define clkin DDRA&=~BIT(7)
#define data1 PORTA|=BIT(6)
#define data0 PORTA&=~BIT(6)
#define dataout DDRA|=BIT(6)
#define datain DDRA&=~BIT(6)
unsigned char key_number;
////**********************延时*************************//////
void delay(unsigned int time)
{
while(time--)
asm("nop");
}
////*********************初始化************************//////
void chushihua_bc7281()
{
delay(1000);
xie_bc7281(0x12,0x80); //164模式不反相
}
////********************写bc7281*********************//////
void xie_bc7281(uchar add ,uchar data)
{
chuangsong_bc7281(add);
chuangsong_bc7281(data);
}
////********************读bc7281********************//////
uchar du_bc7281(uchar add)
{
chuangsong_bc7281(add|0x80); ///////????
return(jieshou_bc7281());
}
////********************传送***********************//////
void chuangsong_bc7281(uchar temp)
{
unsigned char i;
data1;
datain;
do
{
clk0;
clk1;
}while((PINA&0x40)==0x40); //直到低电平
clk0;
clk1;
while(!((PINA&0x40)==0x40)); //直到高电平
delay(1000);
dataout;
for(i=0;i<8;i++)
{
if((temp&0x80)==0)
data0;
else
data1;
temp=temp*2;
clk0;
delay(5);
clk1;
}
data1;
delay(10);
}
uchar jieshou_bc7281()
{
uchar i,j;
datain;
clk0;
clk1;
while((PINA&0X40)==0X40);
clk0;
clk1;
for(i=0;i<8;i++)
{
delay(10);
j=j*2;
if((PINA&0x40)==0x40)
{
j=j|0x01;
}
clk0;
clk1;
}
clk0;
clk1;
return(j);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -