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.

ps2 interfacing keyboard using 8051microcontroller

Status
Not open for further replies.

swetasivani

Newbie level 1
Joined
Aug 28, 2008
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,287
detailed description on how to do interfacing between ps2 & keyboard using 8051 microcontroller
 

Is that a question, or are you posting some good information for everyone and the post is incomplete ?

In case its a question, any context/background information on what you have done so far, so that we can start from there ?
 

i have found this code from some website dont remember which one but if u know asembly might be helpful for u


.pagewidth !160

; Port A

nreset equ 5 ; Reset Output (Open Drain)
clk equ 6 ; Clock I/O
data equ 7 ; Data I/O

; Port B

TXD equ 5 ; Transmit Data

; Equates for LED Byte

pscrlck equ 4 ; If true, Scroll Lock Pressed
pnumlck equ 3 ; If true, Num Lock Pressed
caplock equ 2 ; If true, Caps Lock is On (Active)
numlock equ 1 ; If true, Num Lock is On (Active)
scrlock equ 0 ; If true, Scroll Lock is On (Active)

; Equates for Status Flag, Byte

rctrl equ 7 ; If true, Right Ctrl Pressed
lctrl equ 6 ; If true, Left Ctrl Pressed
ralt equ 5 ; If true, Right Alt Pressed
lalt equ 4 ; If true, Left Alt Pressed

caploc equ 2 ; If true, Caps Lock Pressed
rshift equ 1 ; If true, Right Shift Key Pressed
lshift equ 0 ; If true, Left Shift Key Pressed

org ram

byte rmb 1 ; Used to hold byte, during Trans & Rec
status rmb 1 ; Status Flags
LED rmb 1 ; LED Flags
asc rmb 3 ; Used for altdec & ctrlhex
PAR rmb 1 ; Used during receive for Parity Tracking

org $7F8

dw start ; Timer Interrupt Vector
dw start ; IRQ Vector
dw start ; Software Interrupt Vector
dw start ; Reset Vector

org $7F1 ; Mask Option Register (MOR)
db $20 ; Osc Internal Res Enabled

org rom

start lda #%00000000 ;PORTA - Inputs
sta ddra ;Set Data Direction Register
sta pdra ;Enable Pull Downs
sta PORTA ;Set nReset, Clk & Data low

lda #%00100111 ;PORTB - I/O
sta ddrb ;Set Data Direction Register
sta pdrb ;Dis/enable Pull Downs
lda #%00100000 ;Transmit Idle
sta PORTB

jmp rstflag ;No Attempt to Reset Keyboard made
;as keyboard would still be in POST
;or BAT Tests, if power applied at
;the same time than the HC705.

*****************************************************
* *
* reset - Sends a Reset Command to the Keyboard. *
* Not a very good effort to reset keyboard, *
* as it doesn't check for ACK or BAT *
* Completion Code. I.e. Reset may not of *
* even Worked! *
* *
*****************************************************

reset lda #$FF ;Reset Keyboard
sta byte
jsr transmit

*****************************************************
* *
* rstflag - Resets Status and LED Flags. Used when *
* a successful Bat Completion code is *
* sent to sync keyboard's LED's to 705's *
* status register *
* *
*****************************************************

rstflag clr status
clr LED

*****************************************************
* *
* main - Main Keyboard Decoding Routine. Once key *
* been decoded, program should return here *
* *
*****************************************************

main jsr Receive ;Get's a Single Byte from the Keyboard.
lda byte

cmp #$F0 ;A Key has been Released
bne main1
jmp release

main1 cmp #$AA ;Successful Completion of BAT
bne main2
jmp rstflag

main2 cmp #$E0 ;Extended Keys
bne main3
jmp extend

main3 cmp #$12 ;Left Shift Key Pressed
bne main4
bset lshift,status

main4 cmp #$59 ;Right Shift Key Pressed
bne main5
bset rshift,status

main5 cmp #$14 ;Left Ctrl
bne main6
bset lctrl,status
jmp clrasc

main6 cmp #$11 ;Left Alt
bne main7
bset lalt,status
jmp clrasc

main7 cmp #$58 ;Caps Lock Pressed
bne main8
brclr caploc,status,caps
bset caploc,status

main8 cmp #$7E ;Scroll Lock Pressed
bne main9
brclr pscrlck,status,scrl
bset pscrlck,status

main9 cmp #$77 ;Num Lock Pressed
bne main10
brclr pnumlck,status,nums
bset pnumlck,status

main10 cmp #$8F ;Last Value in Look-Up Table
blo main11
jmp main ;Out of Bounds

main11 tax
brset caplock,LED,caps_on
brset rshift,status,shifton
brset lshift,status,shifton

cancel lda noshift,x ;Load Lower Case Values
jmp main12

caps_on brset rshift,status,cancel ;If ShiftLock & Shift, Cancel
brset lshift,status,cancel

shifton lda shift,x ;Load Upper Case Values

main12 beq return ;Scan Code not in Lookup Table.

tax
lda status
and #$30 ;Either Alt Key Pressed
beq main13
txa
jmp altdec

main13 lda status
and #$C0 ;Either CTRL Key Pressed
beq main14
txa
jmp ctrlhex

main14 txa
sta byte
jsr RS232T ;Send to RS232

return jmp main

*****************************************************
* *
* caps - Toggle Status of Caps lock and Echo to *
* Keyboard *
* *
*****************************************************

caps bset caploc,status ; Set caploc flag to prevent routine being
; called again
lda LED
eor #$04 ; Toggle Shift Lock Flag
sta LED
jmp LEDshow

*****************************************************
* *
* nums - Toggle Status of Nums lock and Echo to *
* Keyboard *
* *
*****************************************************

nums bset pnumlck,status

lda LED
eor #$02
sta LED
jmp LEDshow

*****************************************************
* *
* scrl - Toggle Status of Scroll lock and Echo to *
* Keyboard *
* *
*****************************************************

scrl bset pscrlck,status

lda LED
eor #$01
sta LED
jmp LEDshow

*****************************************************
* *
* extend - An Extended Key has been Pressed *
* *
*****************************************************

extend jsr Receive ;Get Next byte
lda byte

cmp #$F0 ;An Extended Key Has been Released
bne extend1
jmp rel_ext

extend1 cmp #$11 ;Right Alt Pressed
bne extend2
bset ralt,status
jmp clrasc

extend2 cmp #$14 ;Right Ctrl Pressed
bne extend3
bset rctrl,status
jmp clrasc

extend3 cmp #$71 ;Delete
bne extend4
lda status
and #$C0 ;Either Alt Key Pressed?
beq extend4
lda status
and #$30 ;Either Ctrl Key Pressed?
beq extend4
bset nreset,DDRA
lda #$FF
jsr delay
bclr nreset,DDRA
jmp reset

extend4 cmp #$5A ;Enter Key on Num Keypad
bne extend5
lda #$0D
sta byte
jsr RS232T

extend5 cmp #$4A ; '/' Key on Num Keypad
bne extend6
lda #'/'
sta byte
jsr RS232T

extend6 jmp main ;Return to main

*****************************************************
* *
* release - A Key has been Released *
* *
*****************************************************

release jsr Receive ;Release - Next Byte Garbage in many cases
lda byte

releas3 cmp #$12 ;Left Shift Key Released
bne releas4
bclr lshift,status

releas4 cmp #$59 ;Right Shift Key Released
bne releas5
bclr rshift,status

releas5 cmp #$14 ;Left Ctrl Released
bne releas6
bclr lctrl,status
jmp ctrl_re

releas6 cmp #$11 ;Left Alt Released
bne releas7
bclr lalt,status
jmp alt_rel

releas7 cmp #$58 ;Caps Lock Released
bne releas8
bclr caploc,status

releas8 cmp #$7E ;Scroll Lock Released
bne releas9
bclr pscrlck,status

releas9 cmp #$77 ;Num Lock Released
bne relea10
bclr pnumlck,status

relea10 jmp main ;Return to Main

*****************************************************
* *
* rel_ext - An Extended Key has been Released *
* *
*****************************************************

rel_ext jsr Receive ;Get Next byte
lda byte

cmp #$11 ;Right Alt Released
bne rel_ex2
bclr ralt,status
jmp alt_rel

rel_ex2 cmp #$14 ;Right Ctrl Released
bne rel_ex3
bclr rctrl,status
jmp ctrl_re

rel_ex3 jmp main ;Return to main

*****************************************************
* *
* LEDshow - Copies the 3 LSB of the LED register to *
* keyboard for the keyboards Status LED's *
* E.g. Num Lock, Caps Lock, Scroll Lock *
* Also makes their status present on *
* PORTB *
* *
*****************************************************

LEDshow lda LED
ora #$20 ;Set TXD High
and #$27
sta PORTB ;Made Status Avalible at PORTB
lda #$ED
sta byte
jsr transmit
jsr Receive
lda LED
and #$07
sta byte
jsr transmit
jmp main

*****************************************************
* *
* Transmit - Send Data stored at Byte to the *
* Keyboard. Result *
* *
*****************************************************

transmit
ldx #$08 ;8 Data Bits
bset clk,DDRA ;Set Clock Low
lda #$13 ;Delay 64uS
jsr delay
clra ;Clear Parity Register
bset data,DDRA ;Set Data Low
bclr clk,DDRA ;Release Clock Line
jsr highlow

loop ror byte
bcs mark

space bset data,DDRA ;Clear Bit
jmp next

mark bclr data,DDRA ;Clear Bit
inca ;Parity Calculation

next jsr highlow ;Wait for high to low transition

decx
bne loop

and #$01
bne clr_par
set_par bclr data,DDRA
jmp tr_ackn
clr_par bset data,DDRA
tr_ackn jsr highlow

bclr data,DDRA ;Release Data Line
jsr highlow
brset data,PORTA,error ;Check for Ack
brclr clk,PORTA,* ;Wait for idle line

bset clk,DDRA ;Prevent Keyboard from sending data
;(Clear to Send)
rts

error lda #$FF ;Reset
sta byte
jsr transmit
rts

*****************************************************
* *
* Receive - Get a Byte from the Keyboard. Result *
* stored in byte. *
* *
*****************************************************

Receive ldx #08 ;Number of Bits
clr PAR ;Clear Parity Register
bclr clk,DDRA ;Clear to Send

brset clk,PORTA,* ;wait for idle Clock
brset data,PORTA,Receive ;False Start Bit, Restart

Recdata ror byte
jsr highlow ;Wait for high to low Transision
brset data,PORTA,Recset

bclr 7,byte
jmp Recnext

Recset bset 7,byte
inc PAR

Recnext decx
bne Recdata ;Loop until 8 bits been received

jsr highlow

lda PORTA ;Read Parity Bit
rola ;Place in LSbit
rola
eor PAR ;Parity Bit Detection
and #$01
beq r_error

jsr highlow
brclr data,PORTA,r_error ;Stop Bit Detection

bset clk,DDRA ;Prevent Keyboard from sending data
;(Clear to Send)
rts

r_error lda #$FE ;Resend
sta byte
jsr Transmit
jmp Receive ;Try again

*****************************************************
* *
* highlow - Waits for next High to Low Transistion *
* on the Clock Line *
* *
*****************************************************


highlow brclr clk,PORTA,* ;Loop until Clk High
brset clk,PORTA,* ;Loop until Clk Low
rts

*****************************************************
* *
* ctrlhex & althex - Make sure keys pressed are *
* valid. If not, don't store them. Also converts *
* ASCII to binary and stores them in the ASCII *
* Storage Location *
* *
*****************************************************

ctrlhex cmp #'a' ;Convert 'a' - 'f' to binary
blo he1_ran
cmp #'f'
bhi outrang
sub #$57
jmp store

he1_ran cmp #'A' ;Convert 'A' - 'F' to binary
blo altdec
cmp #'F'
bhi outrang
sub #$37
jmp store

altdec cmp #'0' ;Convert '0' - '9' to binary
blo outrang
cmp #'9'
bhi outrang
sub #$30

store ldx asc+1 ;Shift Bytes Left
stx asc+0
ldx asc+2
stx asc+1
sta asc+2 ;Store as Binary
outrang jmp main

*****************************************************
* *
* alt_rel Alt Released. (Decimal Enter Routine) *
* Once both the ALT keys have been released *
* a calculation must be made to convert the *
* bytes found in ASCII Storage to binary *
* for transmission. *
* *
*****************************************************

alt_rel lda status ;Decimal Calculation
and #$30
bne complet ;One of the Alt Keys Still Pressed

lda asc
ldx #$64 ;x 100
mul
sta byte

lda asc+1
ldx #$0A ;x 10
mul
add asc+2 ;Add Units
add byte ;Add hundreds
sta byte

jsr RS232T ;Transmit number

jmp main ;Return to Main.

*****************************************************
* *
* ctrl_re Ctrl Released.(Hexadecimal Enter Routine) *
* Once both the CTRL keys have been released*
* a calculation must be made to convert the *
* bytes found in ASCII Storage to binary *
* for transmission. *
* *
*****************************************************

ctrl_re lda status
and #$C0
bne complet ;One of the Ctrl Keys Still Pressed

lda asc+1
lsla
lsla
lsla
lsla
add asc+2
sta byte

jsr RS232T ;Transmit Number

complet jmp main ;Return to Main

*****************************************************
* *
* clrasc - Clear ASCII Storage Locations (3 Bytes) *
* - These storage bytes are used for the *
* ALTDEC & CTRLHEX Routines. *
* *
*****************************************************

clrasc clr asc+0
clr asc+1
clr asc+2
jmp main

*****************************************************
* *
* RS-232 NRZ 8N1 Transmit Routine. *
* *
* Uses a 4.00 Mhz Crystal (2 Mhz Bus Speed) *
* to obtain a transmission speed of 9600 BPS *
* *
*****************************************************

RS232T ldx #8 ; Number of Bits (8)
bclr TXD,PORTB ; Start Bit (0)
lda #$1D ; 29 Cycles 6[29] + 6
jsr delay
brn *
nop
nop
nextbit ror byte
bcs rsmark
bclr TXD,PORTB ; Space (Logic 0)
jmp rsnext
rsmark bset TXD,PORTB ; Mark (Logic 1)
brn *
rsnext lda #$1C ; 28 Cycles 6[28] + 6
jsr delay
nop
nop
decx
bne nextbit
brn *
brn *
nop
bset TXD,PORTB ; Stop Bit (Logic 1)
lda #$1F ; 31 Cycles 6[31] + 6
jsr delay
rts

delay deca ; Delay = 6[A] + 6
bne delay
rts

*****************************************************
* *
* No-Shift - Lookup Table when Shift not Pressed *
* *
*****************************************************

noshift fcb $00 ; 00
fcb $00 ; 01 F9
fcb $00 ; 02
fcb $00 ; 03 F5
fcb $00 ; 04 F3
fcb $00 ; 05 F1
fcb $00 ; 06 F2
fcb $00 ; 07 F12
fcb $00 ; 08
fcb $00 ; 09 F10
fcb $00 ; 0A F8
fcb $00 ; 0B F6
fcb $00 ; 0C F4
fcb $09 ; 0D TAB
fcb '`' ; 0E ` or ~
fcb $00 ; 0F

fcb $00 ; 10
fcb $00 ; 11 Left ALT
fcb $00 ; 12 Left SHIFT
fcb $00 ; 13
fcb $00 ; 14 Left Ctrl
fcb 'q' ; 15 Q
fcb '1' ; 16 1 or !
fcb $00 ; 17
fcb $00 ; 18
fcb $00 ; 19
fcb 'z' ; 1A Z
fcb 's' ; 1B S
fcb 'a' ; 1C A
fcb 'w' ; 1D W
fcb '2' ; 1E 2 or @
fcb $00 ; 1F

fcb $00 ; 20
fcb 'c' ; 21 C
fcb 'x' ; 22 X
fcb 'd' ; 23 D
fcb 'e' ; 24 E
fcb '4' ; 25 4 or $
fcb '3' ; 26 3 or #
fcb $00 ; 27
fcb $00 ; 28
fcb ' ' ; 29 Space
fcb 'v' ; 2A V
fcb 'f' ; 2B F
fcb 't' ; 2C T
fcb 'r' ; 2D R
fcb '5' ; 2E 5 or %
fcb $00 ; 2F

fcb $00 ; 30
fcb 'n' ; 31 N
fcb 'b' ; 32 B
fcb 'h' ; 33 H
fcb 'g' ; 34 G
fcb 'y' ; 35 Y
fcb '6' ; 36 6 or ^
fcb $00 ; 37
fcb $00 ; 38
fcb $00 ; 39
fcb 'm' ; 3A M
fcb 'j' ; 3B J
fcb 'u' ; 3C U
fcb '7' ; 3D 7 or &
fcb '8' ; 3E 8 or *
fcb $00 ; 3F

fcb $00 ; 40
fcb ',' ; 41 , or <
fcb 'k' ; 42 K
fcb 'i' ; 43 I
fcb 'o' ; 44 O
fcb '0' ; 45 0 or )
fcb '9' ; 46 9 or (
fcb $00 ; 47
fcb $00 ; 48
fcb '.' ; 49 . or >
fcb '/' ; 4A / or ?
fcb 'l' ; 4B L
fcb ';' ; 4C ; or :
fcb 'p' ; 4D P
fcb '-' ; 4E - or _
fcb $00 ; 4F

fcb $00 ; 50
fcb $00 ; 51
fcb $27 ; 52 ' or "
fcb $00 ; 53
fcb '[' ; 54 [ or {
fcb '=' ; 55 = OR +
fcb $00 ; 56
fcb $00 ; 57
fcb $00 ; 58 Caps Lock
fcb $00 ; 59 Right Shift
fcb $0D ; 5A Enter
fcb ']' ; 5B ] or }
fcb $00 ; 5C
fcb '\' ; 5D \ or |
fcb $00 ; 5E
fcb $00 ; 5F

fcb $00 ; 60
fcb $00 ; 61
fcb $00 ; 62
fcb $00 ; 63
fcb $00 ; 64
fcb $00 ; 65
fcb $08 ; 66 Backspace
fcb $00 ; 67
fcb $00 ; 68
fcb '1' ; 69 NUM - 1 or END
fcb $00 ; 6A
fcb '4' ; 6B NUM - 4 or LEFT
fcb '7' ; 6C NUM - 7 or HOME
fcb $00 ; 6D
fcb $00 ; 6E
fcb $00 ; 6F

fcb '0' ; 70 NUM - 0 or INS
fcb '.' ; 71 NUM - . or DEL
fcb '2' ; 72 NUM - 2 or DOWN
fcb '5' ; 73 NUM - 5
fcb '6' ; 74 NUM - 6 or RIGHT
fcb '8' ; 75 NUM - 8 or UP
fcb $1B ; 76 ESC
fcb $00 ; 77 NUM LOCK
fcb $00 ; 78 F11
fcb '+' ; 79 NUM - + (Plus)
fcb '3' ; 7A NUM 3 or PAGE DOWN
fcb '-' ; 7B NUM - - (Minus)
fcb '*' ; 7C NUM - *
fcb '9' ; 7D NUM - 9 or PAGE UP
fcb $00 ; 7E SCROLL LOCK
fcb $00 ; 7F

fcb $00 ; 80
fcb $00 ; 81
fcb $00 ; 82
fcb $00 ; 83 F7
fcb $00 ; 84
fcb $00 ; 85
fcb $00 ; 86
fcb $00 ; 87
fcb $00 ; 88
fcb $00 ; 89
fcb $00 ; 8A
fcb $00 ; 8B
fcb $00 ; 8C
fcb $00 ; 8D
fcb $00 ; 8E
fcb $00 ; 8F

*****************************************************
* *
* Shift - Lookup Table Used when Shift Pressed *
* *
*****************************************************

shift fcb $00 ; 00
fcb $00 ; 01 F9
fcb $00 ; 02
fcb $00 ; 03 F5
fcb $00 ; 04 F3
fcb $00 ; 05 F1
fcb $00 ; 06 F2
fcb $00 ; 07 F12
fcb $00 ; 08
fcb $00 ; 09 F10
fcb $00 ; 0A F8
fcb $00 ; 0B F6
fcb $00 ; 0C F4
fcb $09 ; 0D TAB
fcb '~' ; 0E ` or ~
fcb $00 ; 0F

fcb $00 ; 10
fcb $00 ; 11 Left ALT
fcb $00 ; 12 Left SHIFT
fcb $00 ; 13
fcb $00 ; 14 Left Ctrl
fcb 'Q' ; 15 Q
fcb '!' ; 16 1 or !
fcb $00 ; 17
fcb $00 ; 18
fcb $00 ; 19
fcb 'Z' ; 1A Z
fcb 'S' ; 1B S
fcb 'A' ; 1C A
fcb 'W' ; 1D W
fcb '@' ; 1E 2 or @
fcb $00 ; 1F

fcb $00 ; 20
fcb 'C' ; 21 C
fcb 'X' ; 22 X
fcb 'D' ; 23 D
fcb 'E' ; 24 E
fcb '$' ; 25 4 or $
fcb '#' ; 26 3 or #
fcb $00 ; 27
fcb $00 ; 28
fcb ' ' ; 29 Space
fcb 'V' ; 2A V
fcb 'F' ; 2B F
fcb 'T' ; 2C T
fcb 'R' ; 2D R
fcb '%' ; 2E 5 or %
fcb $00 ; 2F

fcb $00 ; 30
fcb 'N' ; 31 N
fcb 'B' ; 32 B
fcb 'H' ; 33 H
fcb 'G' ; 34 G
fcb 'Y' ; 35 Y
fcb '^' ; 36 6 or ^
fcb $00 ; 37
fcb $00 ; 38
fcb $00 ; 39
fcb 'M' ; 3A M
fcb 'J' ; 3B J
fcb 'U' ; 3C U
fcb '&' ; 3D 7 or &
fcb '*' ; 3E 8 or *
fcb $00 ; 3F

fcb $00 ; 40
fcb '<' ; 41 , or <
fcb 'K' ; 42 K
fcb 'I' ; 43 I
fcb 'O' ; 44 O
fcb ')' ; 45 0 or )
fcb '(' ; 46 9 or (
fcb $00 ; 47
fcb $00 ; 48
fcb '>' ; 49 > or .
fcb '?' ; 4A / or ?
fcb 'L' ; 4B L
fcb ':' ; 4C ; or :
fcb 'P' ; 4D P
fcb '_' ; 4E - or _
fcb $00 ; 4F

fcb $00 ; 50
fcb $00 ; 51
fcb $22 ; 52 ' or "
fcb $00 ; 53
fcb '{' ; 54 [ or {
fcb '+' ; 55 = OR +
fcb $00 ; 56
fcb $00 ; 57
fcb $00 ; 58 Caps Lock
fcb $00 ; 59 Right Shift
fcb $0D ; 5A Enter
fcb '}' ; 5B ] or }
fcb $00 ; 5C
fcb '|' ; 5D \ or |
fcb $00 ; 5E
fcb $00 ; 5F

fcb $00 ; 60
fcb $00 ; 61
fcb $00 ; 62
fcb $00 ; 63
fcb $00 ; 64
fcb $00 ; 65
fcb $08 ; 66 Backspace
fcb $00 ; 67
fcb $00 ; 68
fcb '1' ; 69 NUM - 1 or END
fcb $00 ; 6A
fcb '4' ; 6B NUM - 4 or LEFT
fcb '7' ; 6C NUM - 7 or HOME
fcb $00 ; 6D
fcb $00 ; 6E
fcb $00 ; 6F

fcb '0' ; 70 NUM - 0 or INS
fcb '.' ; 71 NUM - . or DEL
fcb '2' ; 72 NUM - 2 or DOWN
fcb '5' ; 73 NUM - 5
fcb '6' ; 74 NUM - 6 or RIGHT
fcb '8' ; 75 NUM - 8 or UP
fcb $1B ; 76 ESC
fcb $00 ; 77 NUM LOCK
fcb $00 ; 78 F11
fcb '+' ; 79 NUM - + (Plus)
fcb '3' ; 7A NUM 3 or PAGE DOWN
fcb '-' ; 7B NUM - - (Minus)
fcb '*' ; 7C NUM - *
fcb '9' ; 7D NUM - 9 or PAGE UP
fcb $00 ; 7E SCROLL LOCK
fcb $00 ; 7F

fcb $00 ; 80
fcb $00 ; 81
fcb $00 ; 82
fcb $00 ; 83 F7
fcb $00 ; 84
fcb $00 ; 85
fcb $00 ; 86
fcb $00 ; 87
fcb $00 ; 88
fcb $00 ; 89
fcb $00 ; 8A
fcb $00 ; 8B
fcb $00 ; 8C
fcb $00 ; 8D
fcb $00 ; 8E
fcb $00 ; 8F

end
 

here are assembly code for interfacing ps2 keyboard and mose both with 8051 controller, i have wrote this code few years ago. compiller was KIEL IDE.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top