k164.c

来自「一个通过8051来控制8019上网的程序 该程序已经通过并成功用于键盘」· C语言 代码 · 共 78 行

C
78
字号
#include <string.h>
#include <stdlib.h>
#include <reg89C58.h>
#include <stdio.h>
#include <intrins.h>
#include "k164.h"

#define UCHAR unsigned char
#define UINT  unsigned int











void display(UCHAR x)
{	UCHAR idata i;
	bit_dat=x;
	for(i=0;i<8;i++){
		kdat=bt7;lapck=0;bit_dat=_crol_(bit_dat,1);
		_nop_();
		_nop_();
		lapck=1;
		}
}






////////////////////////////////////////key-164//////////////////
bit k164_hit(void)			//8bit-send
{	UCHAR i;
	bit_dat=0;
	for(i=0;i<8;i++){
		kdat=bt7;ck=0;bit_dat=_crol_(bit_dat,1);
		_nop_();_nop_();ck=1;
		}
	if((as1&as2&as3&as4)==0)return(1);
	else return(0);	
}

UCHAR k164(void)			//8bit-send
{	UCHAR i,j,key_num;
	UCHAR kk;
  if(k164_hit())Delay1ms(10);
  	else 
	return(0xff);
  if(k164_hit()){		
	
	kk=0x7f;
	for(j=0;j<8;j++){bit_dat=kk;
	  for(i=0;i<8;i++){
		kdat=bt7;ck=0;bit_dat=_crol_(bit_dat,1);
		_nop_();_nop_();ck=1;
				}
		if((as1&as2&as3)==0)goto find;		
		kk=_cror_(kk,1);
			   }
	find:	if(as1==0)key_num=j;
		if(as2==0)key_num=j+8;
		if(as3==0)key_num=j+16;
		if(as4==0)key_num=j+24;
		//WR=0;
		//while(k164_hit());WR=0;
		return(key_num);
		}
  else return(0xff);
}


⌨️ 快捷键说明

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