📄 90keyc.c
字号:
/* Pc.4--cs
Pc.3--clk
Pc.2--data
Pc.1--key */
#include<io8515.h>
#pragma ctask receive()
/*delay()send() */
#define clrcs PORTC&=~0x10;
#define setcs PORTC|=0x10;
#define clrclk PORTC&=~0x08;
#define setclk PORTC|=0x08;
#define clrdata PORTC&=~0x04;
#define setdata PORTC|=0x04;
#define datainput {DDRC&=~0x04;PORTC&=~0x04;}
#define dataoutput{DDRC|=0x04; PORTC&=~0x04;}
unsigned char send_buff,rec_buff,ms;
void delay(unsigned char mst) //延时子程序
{ unsigned char i;
for (i = 1; i<mst; i++)
;
}
void send(unsigned char temp) //发送子程序
{
unsigned char i;
clrcs
delay(20);
clrclk
for(i=8;i>0;i--)
{
if((temp&0x80)==0)
{
clrdata
}
else
{
setdata
}
setclk
delay(4);
clrclk
delay(4);
temp=temp<<1;
}
clrdata
}
void receive() //接收子程序
{
unsigned char i;
datainput
delay(20);
for(i=8;i>0;i--)
{
rec_buff=rec_buff<<1;
setclk
delay(4);
if((PINC&0x04)==0)
{
rec_buff=rec_buff&0xfe;
}
else
{
rec_buff|=rec_buff|0x01;
}
clrclk
delay(4);
}
dataoutput
}
void main()
{
DDRC=0xfd;
PORTC=0xf7;
send(0xa4);
setcs
wait:
if((PINC&0x02)==2) //是否有按键
{
goto wait; //否,等待按键
}
send(0x15);
receive();
setcs
send(0xc8);
send(rec_buff);
setcs
wait1:
if((PINC&0x02)==0) //是否有松键
{
goto wait1; //否,等待松键
}
goto wait; //返回
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -