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

📄 89pc-mcu.c

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

sbit     bee=	 P2^0;
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(20);
	for(i=0;i<8;i++)
	{
      dat=(temp&0x80)?1:0;
      clk=1;
      delay(4);
      clk=0;
      delay(4);
      temp=temp<<1;
    }  
    dat=1;

}

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

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

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;
  } 
   return 0xff;
 }

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


void uarinit()
{
 TMOD=0x20;
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;
 ET1=0;
 PCON=0x80;
 SCON=0x50;
 EA=1;
 ES=1;
}


void uart_rec() interrupt 4   
{
 unsigned char i;
 ES=0;
 RI=0;
 i=SBUF;
 write279(0xc9,i/16);
 write279(0xc8,i%16);
 ES=1;
}


	
main()
{
	unsigned char c=0;
    key=1;
	clk=0;
	cs =1;
	send(0xa4);
	cs=1;
	uarinit();
  waitkey:
    c=keyscan();
	if(c!=0xff)
	{
     write279(0xcf,c);
	 TI=0;
	 SBUF=c;
	 while(!TI);
	 TI=0;
	}
	goto waitkey;

}

⌨️ 快捷键说明

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