📄 7289a.c
字号:
#include<reg52.h>
#define uchar unsigned char
sbit CS=P1^0;
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit KEY=P1^3;
uchar rebuf,sebuf;
bdata uchar com_data;
sbit mos_bit=com_data^7;
sbit low_bit=com_data^0;
void delay_50us()
{
uchar i;
for(i=0;i<6;i++){;}
}
void delay_8us()
{
uchar i;
for(i=0;i<1;i++){;}
}
void delay_50ms()
{
uchar i,j;
for(i=0;i<50;i++)
for(j=0;j<125;j++){;}
}
void send(uchar sebuf)
{
uchar i;
com_data=sebuf;
CLK=0;
CS=0;
delay_50us();
for(i=0;i<8;i++)
{
delay_8us();
DIO=mos_bit;
CLK=1;
delay_8us();
com_data=com_data<<1;
CLK=0;
}
DIO=0;
}
void receive()
{
uchar i;
CLK=1;
delay_50us();
for(i=0;i<8;i++)
{
com_data=com_data<<1;
low_bit=DIO;
CLK=1;
delay_8us();
CLK=0;
delay_8us();
}
rebuf=com_data;
DIO=1;
CS=1;
}
void reset()
{
KEY=1;
DIO=1;
delay_50ms();
send(0xa4);
CS=1;
}
main()
{
reset();
sebuf=0x84;
send(0x83);
delay_50us();
send(sebuf);
CS=1;
while(1)
{
while(KEY);
send(0x15);
delay_50us();
receive();
delay_50us();
switch(rebuf)
{
case 0x00:{send(0xa3);CS=1;}break;
case 0x01:{send(0xa2);CS=1;}break;
case 0x0b:
{
send(0x88);
delay_50us();
send(0x00);CS=1;
} break;
case 0x03:
{
send(0x88);
delay_50us();
send(0xff);
CS=1;
} break;
default: break;
}
while(!KEY);
KEY=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -