線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3170
推到 Plurk!
推到 Facebook!

用MCU讀ps/2介面,鍵盤送出的脈波

答題得分者是:avr
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-17 15:07:37 IP:60.250.xxx.xxx 訂閱
我的用途要用MCU經由PS/2偵測到桌上電腦鍵盤按下什麼鍵.已查過PS/2介面,為5pin,由電腦提供Clk,鍵盤送出Data脈波,但我用示波器測量Data送出資料,很難判別他送出的1bytes信號?也看不太出來1個脈衝頻寬為多少?代表的是那個按鍵?請問有那位高手做過類似題目,可供參考嗎?感謝...
------
Shih Chieh
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-17 16:24:34 IP:218.171.xxx.xxx 訂閱
您好
可以到義隆網站下載ps/2 鍵盤IC資料來研究
基本上PS/2 鍵盤送出的鍵盤掃描碼不只是1 byte
是由好幾個byte組成且byte數不固定
avr
初階會員


發表:7
回覆:21
積分:45
註冊:2007-04-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-17 20:34:11 IP:221.169.xxx.xxx 訂閱
很久很久以前,寫過接收紅外線遙控器,轉換成pc鍵盤訊號輸入的界面
xtal是11.0592mhz,以下是摩擬鍵盤訊號輸入pc的程式
知道如何發出訊號,應該就知道如何接收了 !
暫存器a輸入21h,等於發出 c 的鍵盤碼,
輸入3dh,等於發出 7 的鍵盤碼


K_DATA REG P1.4
K_CLK REG P1.2
;-----------------------------------------------------------------------------
KEYOUT:
MOV R1,A
CPL A

SETB K_DATA
CALL K_DELAY
SETB K_CLK
CALL K_DELAY
CLR K_CLK

MOV R7,#08
OTB1:
RRC A
MOV K_DATA,C
CALL K_DELAY
SETB K_CLK
CALL K_DELAY
CLR K_CLK
DJNZ R7,OTB1
MOV A,R1
MOV C,PSW.0
MOV K_DATA,C
CALL K_DELAY
SETB K_CLK
CALL K_DELAY
CLR K_CLK

CLR K_DATA
CALL K_DELAY
SETB K_CLK
CALL K_DELAY
CLR K_CLK
RET

;-----------------------------------------------------------------------------
K_DELAY:
MOV R4,#10H
DJNZ R4,$
RET
;------------------------------------------------------------------------------;
;-----------------------------------------------------------------------------
KEYCODE:
DB 21H ;c
DB 4BH ;l
DB 32H ;b
DB 16H ;1
DB 1EH ;2
DB 26H ;3
DB 25H ;4
DB 2EH ;5
DB 36H ;6
DB 3DH ;7
DB 3EH ;8
DB 46H ;9
DB 76H ;ESC
DB 45H ;0
DB 5AH ;ENTER
DB 1CH ;a
DB 24H ;e
DB 31H ;n
DB 2BH ;f
DB 23H ;d
DB 3AH ;m
DB 33H ;h
DB 44H ;o
DB 42H ;k
DB 43H ;i
DB 4DH ;p
DB 3BH ;j
DB 34H ;g
編輯記錄
avr 重新編輯於 2007-12-17 21:37:23, 註解 無‧
avr 重新編輯於 2007-12-17 21:38:27, 註解 無‧
david69
一般會員


發表:1
回覆:19
積分:19
註冊:2003-06-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-01 17:30:55 IP:76.89.xxx.xxx 訂閱
你得先了瞭解ps/2的protocol及keyboard的scan code。ps/2的protocol可參閱http://www.computer-engineering.org/ps2protocol/ 。而keyboard的scan code可參閱microsoft的specification http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc。看完這些資料你就知道該怎麼做了!
grandfa
一般會員


發表:2
回覆:7
積分:11
註冊:2008-01-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-21 19:09:00 IP:202.154.xxx.xxx 訂閱

PS/2上的data 雖然會一次發好幾筆

不過byte 跟byte之間 會間隔比一個bit 還長幾倍的間隔

應該很容易分辦才對
系統時間:2024-04-28 16:48:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!