⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 89keyc.c

📁 单片机开发资料光盘-双龙-686M.zip
💻 C
字号:
#include<reg51.h>


sbit     key =   P2^1;
sbit     dat =   P2^2;
sbit     clk =   P2^3;
sbit     cs  =   P2^4;


 	
void delay(unsigned char mst)       //延时子程序
 {  unsigned char i;
     for (i=0; i<mst; i++)
			;
 }

 void send(unsigned char temp)      //发送子程序
{
	unsigned char i;
	cs=0;
	delay(7);
	for(i=0;i<8;i++)
	{
      dat=(temp&0x80)?1:0;
      clk=1;
      delay(1);
      clk=0;
      delay(1);
      temp=temp<<1;
    }  
    dat=1;

}

 
 receive()                      //接收子程序
{
 unsigned char i,rec_buf;
 dat=1;
 delay(7); 
 for(i=8;i>0;i--)
 { 
  rec_buf=rec_buf<<1;
  clk=1;
  delay(1);
  rec_buf=(dat==0)?rec_buf&0xfe:rec_buf|0x01;
  clk=0;
  delay(1);
 } 
 dat=0;
 return rec_buf;
}

void write279(unsigned char cmd1, unsigned char cmd2)
{
	send(cmd1);
	send(cmd2);                              
	cs=1;
}

keyscan(void)                //键扫子程序
{
 static bit keypress=0;
 static signed char keycode;
 if(key==0)
 {
  if(keypress==0)
  {
   send(0x15);
   keycode=receive();
   cs=1;
   keypress=1;
  } 
   return 0xff;
 }

 if(keypress==1)
 {
  keypress=0;
  return   keycode; 
 }
 return 0xff;
}

		

void main()
{
	unsigned char c;
	key=1;
	clk=0;
	cs =1;
	send(0xa4);
	cs=1;
	while(1)
	{
	 if((c=keyscan())!=0xff)
         write279(0xc8,c);
	}
} 
	


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -