Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top