PS/2- need a Source Code that implements the PS2 Keyboard

Status
Not open for further replies.

volkancc

Newbie level 2
Joined
Mar 26, 2009
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,399
PS/2 Help me

Hi

İ Ps/2 write Code the 8051 Help me Please

need a Source Code that implements the PS2 Keyboard
functions to a 8051 Microcontroller.
 

PS/2 Help me

well, volkancc
Do you mean you want the microcontroller to make a test for the Keyboard? if you meant that then i can help you.
 

    volkancc

    Points: 2
    Helpful Answer Positive Rating
Re: PS/2 Help me

*125kHZ Uretiyor
//Tam calisiyor
// Esson Clock u bitisde high yaptim oldu \\Ama Her PC de Calismiyor//
// Delaylar degistii !!
// guzel calisiyor
// Kirmizi + Gri - DAta mavi clock yesil

yazan : Volkan Ugur
Hardware: Volkan ugur


*/
#include <At89x52.h>
//#include <At898252.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// PS/2 Baglantisi
#define key_clk P1_1
#define key_data P1_2
// Speaker
#define buton P0_4
#define led P0_2
#define spk P0_7

/*
#define dataout P2_3
#define clock P2_2 // NORMAL KABLO BAGLANTISI
#define select P2_1
*/
//#define buton P2_5
//#define anten P2_4
//#define role P2_3
//#define readerstandby P2_0
//#define readeroe P2_1
//#define readercfe P2_2
#define STX '$'
#define ETX '*'
void Delay(unsigned long T)
{
while (T!=0)
T--;
}
//void fullwrite_prox(char *wrst);
void init(void);
//void write_prox(unsigned char opcode,unsigned char blockadres);
void seribas(char *sbas);
void cheksumbul(char *wrst);

//unsigned int highsayac;
//unsigned int lowsayac;
//unsigned int sayac1;
//unsigned char proxdata[4];
//idata char rxdata[50];
//unsigned char rxptr;
//static bit proxlock;
unsigned char baskod;
unsigned char hamalkod;
unsigned char readsayac;
unsigned char bassayac;
unsigned int cs1;
unsigned int cs2;
unsigned int cs3;
unsigned int okusay,readsay;
unsigned char recptr,recflag,sinyal,lastrx,sum,temp,rxsum;
//idata char recbuf[50];
idata char kartdurum;
unsigned char idata facality;
unsigned int idata kodl;
static bit koddurum;
static bit readdurum;
static bit polarity;
unsigned char yazdurum;
//unsigned long timeout;
//unsigned char xdata kart[2000];
//unsigned char xdata rolesuresi;

//int count,int_rate;
//int count,tone;

//Volkan ugur
void snk(){
//11 clk bas
//5 clk low kadar data low kalacak
key_data=1;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(1);key_data=0;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;
Delay(3);
}

void key1(){
snk();Delay(50); //senkronizasyon
key_data=1;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(1);key_data=0;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(1);key_data=1;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(1);key_data=0;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(1);key_data=1;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(3);
key_clk=1;Delay(3);key_clk=0;Delay(1);key_data=0;Delay(1);
key_clk=1;Delay(3);key_clk=0;Delay(3);key_clk=1;
Delay(1);
}

/*
void key2(){
//snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(1);
key_clk=1;
Delay(3);
}

void key3(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=1;
Delay(3);
}


void key4(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=1;
Delay(3);
}



void key5(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=1;
Delay(3);
}


void key6(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=1;
Delay(3);
}

void key7(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);
key_clk=1;
Delay(3);
}
*/

void key8(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);key_clk=1;
Delay(1);
}
/*

void key9(){
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=1;
Delay(3);
}

void key0(){
snk();Delay(20); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_data=0;
Delay(3);
}



void keyEnt(){ //enter
snk();Delay(50); //senkronizasyon
key_data=0;Delay(1);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=0;Delay(4);key_clk=1;Delay(1);key_data=0;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);key_data=1;Delay(3);
key_clk=0;Delay(4);key_clk=1;Delay(4);
key_clk=1;
Delay(3);
}
*/

void ac(){
P0_3=0;
Delay(550);
P0_3=1;
Delay(550);

}

//void int_timer()
//{

//ET1=1;
//TMOD=0x10;
//TH1=0x5;
//EA=1;
//TR1=1;
//led=0;
//}

//void keytest(){
//snk();Delay(20);
//key_clk=1;Delay(6);key_clk=0;Delay(1);key_data=0;Delay(3);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;Delay(4);key_clk=0;Delay(4);
//key_clk=1;
//}
void init(void){
unsigned char X;
IE=0;
IP=0;
SCON=0;
TMOD=0x01;
TH0=0;TL0=1; /* 3600 HZ TIMER */
TCON=0x10;
EA=1;EX1=1;PX1=1;IT1=1;
// EX0=0;PX0=1;IT0=1;//end opentick
X=PCON & 0x7F;
PCON=X;
TH1=0xFD;
SCON=0x52;
TMOD=(TMOD & 0x0F) | 0x20;
TR1=1;
TF1=0;
RI=0;
TI=1;
ES=1;
// lowsayac=0;
// highsayac=0;
// koddurum=0;
// baskod=0;
//polarity=0;
//readdurum=0;
//readsayac=0;
//bassayac=0;
//yazdurum=0;
//readsay=0;
//koddurum=0;
//kartdurum=0;
// EX0=0;EX1=0;
}



void serint(void) interrupt 4
{
}

//void write_prox(unsigned char opcode,unsigned char blockadres){
//}
/*
void MSDelay(unsigned char delay)
{
unsigned char i;
for(i=0;i<delay;i++)
{
}
}
*/
//void seribas(char *sbas){
//}

/*__________________________________________________________________________

Menu
__________________________________________________________________________*/


void main(void){

/*
while(1){
//int_timer();
led=1;
//125 khz Tam cikiyor
led=0;
int_rate=100;
led=0;
int_rate=10;
led=1;
led=0;
count++;
led=0;
led=1;
led=0;
*/

/*-------------------------------------------

Eeprom Yazma Okuma

---------------------------------------------*/
//----------//#
//WR= 0xb6;
//RD= 0xb7;
//----------//#

key_clk=1;
key_data=1;
ac();
buton=0;
while(buton==1){
EA=0;
key1();
Delay(100);
snk();
Delay(100);
key8();
EA=1;
}




//}

//}

//}

/*
led++;
// if (led==5000){yled=0;Delay(250);yled=1;led=0;}
timeout++;
// if (timeout==5000){yled=0;Delay(250);yled=1;timeout=0;}

// if(buton==0){role=0;yled=0;Delay(3000);yled=1;role=1;okusay=0;}

readsay++;
if (readsay==readsure){
//readercfe=0;Delay(500);readercfe=1; //5000
readsay=0;
}
if (okusay<okusaysayac)okusay++;
if ((yazdurum>0)&&(timeout<30000))timeout++;

if (timeout==30000){
readdurum=0;
readsayac=0;
polarity=0;
koddurum=0;
EA=1;EX1=1;
timeout=0;
}
if (rxptr==12){cheksumbul(rxdata);
if ((cs1==(rxdata[8]-48)*10+(rxdata[9]-48))
&&(cs2==(rxdata[10]-48)*10+(rxdata[11]-48))){
EX1=0;
timeout=0;
if ((okusay<okusaysayac)&&(yazdurum==0))okusay=0;
if (okusay==okusaysayac){
okusay=0;
// magneticsprite();

key_bas();

facality=(rxdata[0]-48)*100+(rxdata[1]-48)*10+(rxdata[2]-48);

if ((facality>100)&&(facality<199)){
magneticsprite();
}


// if ((facality>100)&&(facality<131)){magneticsprite();}
}
}
kled=0;
rxptr=0;
bassayac=0;
baskod=0;
hamalkod=0;
readdurum=0;
readsayac=0;
polarity=0;
koddurum=0;
EA=1;EX1=1;
}
}
}
}
*/

}
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…