JPH05134792A - キー入力処理方法 - Google Patents

キー入力処理方法

Info

Publication number
JPH05134792A
JPH05134792A JP3295695A JP29569591A JPH05134792A JP H05134792 A JPH05134792 A JP H05134792A JP 3295695 A JP3295695 A JP 3295695A JP 29569591 A JP29569591 A JP 29569591A JP H05134792 A JPH05134792 A JP H05134792A
Authority
JP
Japan
Prior art keywords
key
keyboard
state
pressed
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3295695A
Other languages
English (en)
Other versions
JP3126445B2 (ja
Inventor
Yoichi Sakamoto
陽一 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP03295695A priority Critical patent/JP3126445B2/ja
Publication of JPH05134792A publication Critical patent/JPH05134792A/ja
Application granted granted Critical
Publication of JP3126445B2 publication Critical patent/JP3126445B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Input From Keyboards Or The Like (AREA)

Abstract

(57)【要約】 【目的】 CPU側によるキーリピートにおける、キー
押下終了が検出できなかった場合のエラー対策。 【構成】 キーボードを備えた情報処理装置において、
キーボードがキーボード上の全てのキーが無押下状態で
あることを検出した時、当該状態を示す情報を装置本体
に送出する。 【効果】 CPUがキー押下終了が検出できなかった場
合にも、前記情報を受信することで、キー押下終了を知
ることができ、不要なキーのリピートが防止できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キーの押下開始および
押下終了検出時にキーコードを送信するキーボードに関
する。
【0002】
【従来の技術】従来、キーボードは、キーを押下し続け
ると所定のリピート時間経過毎にキーコードを、パーソ
ナルコンピュータやワードプロセッサ等のCPUに送信
していた。
【0003】
【発明が解決しようとしている課題】しかしながら、上
記従来例では、リピート時間をキーボードが管理するた
め、リピート時間を変更するためにはキーボードにリピ
ート時間設定用のハードウエアを設けるか、CPUから
キーボードにリピート時間の指定を行うための受信回路
を設ける必要があり、コストが上昇するという欠点があ
った。
【0004】この問題を解決するため、キーボードはリ
ピートを行わず、CPUがリピートを行う方法が考えら
れるが、この場合、キー押下終了検出のためのコード
が、ノイズ等の原因により正しく受信できなかった場
合、CPUはキー押下終了を知ることができず、無限に
キーをリピートしてしまうという問題がある。
【0005】
【課題を解決するための手段】上記課題を解決するため
に、本発明では、キーボードを備えた情報処理装置にお
いて、キーボードがキーボード上の全てのキーが無押下
状態であることを検出した時、当該状態を示す情報を装
置本体に送出する。
【0006】
【作用】キーボードがキーボード上の全てのキーが無押
下状態であることを検出した時、当該状態を示す情報を
装置本体に送出することにより、CPUがキー押下終了
が検出できなかった場合にも、前記情報を受信すること
で、キー押下終了を知ることができ、不要なキーのリピ
ートが防止できる。
【0007】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0008】図1は本発明の実施例の基本構成を示す。
Aはキーであり、キーボードの操作者が押下する。Bは
キー押下検出手段であり、キーAの押下開始および押下
終了を検出してキーコードを出力するとともに、全ての
キーが押下されていない場合にはその旨を示す信号を出
力する。Cはキー無押下検出手段であり、キー押下検出
手段が全てのキーが押下されていないことを示す信号を
出力した場合にはキー無押下コードを出力する。Dは送
信手段であり、キー押下検出手段Bが出力したキーコー
ド、およびキー無押下検出手段Cが出力したキー無押下
コードを送信する。
【0009】図2は本発明の1実施例のキーボードの全
体の構成を示す。同図において、1はキーマトリクスで
あり、図3に示される如く、16行8列で構成される。
2はデコーダであり、キーマトリクス1の行のうちの一
つを選択する。3は1チップCPUであり、内部に入力
ポート4、出力ポート5、RAM6、ROM7、CPU
コア8、シリアルポート9、タイマユニット12とを備
える。
【0010】5は出力ポートであり、4ビットの行選択
信号をデコーダ2で出力する。6は入力ポートであり、
デコーダ2によって選択されたキーマトリクス1の1つ
の行の、キー押下情報を入力する。6はRAMであり、
キーボードの処理に必要な情報を記憶する。7はROM
であり、図5〜図8に示す制御手順を記憶する。8はC
PUコアであり、本キーボードの制御を行う。
【0011】9はシリアルポートであり、TXD信号1
1を経て、調歩同期式シリアル転送にてキーコードを送
信する。RDY信号10がオフの場合はCPUの受信準
備が整っていないため、送信は行わない。送信可能でか
つ送信データが設定されていない場合には、CPUコア
8に割込信号を出力するように構成されている。
【0012】10はCPUが出力するRDY信号であ
り、CPUの受信準備が整っていることを伝える。11
は本キーボードが出力するTXD信号であり、CPUに
対してキーコードを伝える。
【0013】12はタイマであり、本キーボードの制御
に必要なタイミングをとるために使用される。
【0014】図3はキーマトリクス1の詳細な説明図で
ある。出力ポート5から出力された信号をデコーダ2が
デコードし、16の出力信号のうち一つだけが低電位、
残りの出力信号は全て高インピーダンス状態となる。低
電位となった行のキー接点3が押下されていれば、入力
ポート4の対応するビットには低電位が入力される。キ
ー接点13が押下されていなければ、抵抗15によって
プルアップされているので、入力ポート4に対応するビ
ットには高電位が入力される。したがって、入力ポート
4に入力されたデータを反転することにより、選択され
た行のキーが押下されたビットは1、押下されていない
ビットは0のデータが得られる。
【0015】図4はRAM6の詳細な説明図である。O
NKEY16は押下されているキーの数を記憶する。S
TIME17は全てのキーが押下されていないときに送
信するコードを送信するまでの時間を10mS単位で記
憶するソフトウエアタイマである。
【0016】BUF18は送信データを記憶するバッフ
ァで、BUF(0)〜BUF(15)からなる16バイ
トの配列である。BUF18はファーストインファース
トアウト(FIFO)のリングメモリとして使用され、
データ数はCTR19に、格納位置はI20に、取出し
位置はJ21にそれぞれ記憶される。
【0017】LL22およびCL23は各々LL(0)
〜LL(15)、CL(0)〜CL(15)からなる1
6バイトの配列で、1ビットが1つのキーの状態に対応
する。LL22は以前のキー押下状態を記憶し、CL2
3は現在のキー押下状態を記憶する。
【0018】L24、B25、X26は図8に示すキー
読取処理の過程でワークとして使用される。L24は行
番号を、B25はビット番号を、X26はキー押下状態
の変化をそれぞれ記憶する。
【0019】これらのRAM領域の初期値は全て0であ
る。
【0020】図5は本キーボードの処理の全体を示すフ
ローチャートである。
【0021】電源投入後、ステップS1においてタイマ
12を10mSに設定後、ステップS2にてキー読取処
理を行う。この処理の詳細は図8に示す。次にステップ
S3に進み、ステップS2にて設定された押下キー数O
NKEY16の内容を調べる。0でなければ、押下され
ているキーがあるので、ステップS12にてSTIME
17をクリアする。0であれば、押下されているキーが
ないのでステップS4にてSTIME17の内容を調べ
る。STIME17は、最初は0なのでステップS9に
てSTIME17に10、即ち100mSが設定され
る。2回目以降は0でなく、ステップS5に進みSTI
ME17から1を引く。次にステップS6にてその結果
を判定し、STIME17が0であれば100mS経過
したので、コード送信を行う。
【0022】まずステップS7にて、送信データ数CT
R19をチェックする。これが16でなければ、送信バ
ッファBUF18に空きがあるのでステップS8にて、
全てのキーが押下されていないことを示す特殊なコード
FFHを送信し、ステップS9にてSTIME17に1
0、即ち100mSを設定する。この状態はステップS
9に最初に10を設定したときの状態と同じであるた
め、全てのキーが押下されていない間繰り返され、結果
として100mS毎にFFHが送信される。
【0023】ステップS7において、CTR19が16
だった場合、送信バッファBUF18に空きがないた
め、送信することができない。この場合はステップS1
1にてSTIME17に1が加えられる。この状態はス
テップS5にてSTIME17から1を引く前の状態と
同じであるため、次回に再び同じ処理が行われ、送信バ
ッファBUF18に空きができていればFFHが送信さ
れる。
【0024】いずれの場合も最終的にステップS10に
進み、タイマ12のタイムアウト発生、即ちタイマ設定
後10mS経過するまで待ち、ステップS1に戻る。し
たがって10mS毎にこれらの処理が繰り返される。
【0025】図6は、図5ステップS9、および図8ス
テップS43の送信処理の詳細を示すフローチャートで
ある。送信処理では、送信データを送信バッファに格納
するだけで、実際のシリアル送信は図7に示す送信割込
処理が行う。
【0026】まずステップS13にて送信バッファBU
F18の、I20が示す位置に格納する。次にステップ
S14にてI20に1を加える。その結果が16になっ
た場合はステップS15からステップS16に進み、B
UF18の先頭を示すようにI20に0を設定する。い
ずれの場合もステップS17に進み、送信データ数CT
R19に1を加え、ステップS18にてシリアル送信を
許可した後、処理を終了する。
【0027】図7は、図5、図6、図8に示す処理と非
同期に動作する送信割込処理を示すフローチャートであ
る。図6ステップS18にて送信が許可されると、送信
データがシリアルポート9に設定されていないため、送
信割込が発生する。
【0028】まずステップS19にて送信データ数CT
R19をチェックする。0でなければ送信データが存在
するので、ステップS20にて、送信バッファBUF2
0の、J21が示す位置から送信データを取り出し、シ
リアルポート9に設定することによりシリアル送信を開
始する。次にステップS21にてJ21に1を加える。
その結果が16になった場合はステップS22からステ
ップS23に進み、BUF18の先頭を示すようにJ2
1に0を設定する。いずれの場合もステップS24に進
み、迷信データ数CTR19から1を引いた後、処理を
終了する。
【0029】シリアル送信終了時、再び送信割込が発生
する。このとき、迷信データが存在すれば上述の処理が
行われるが、存在しない場合はステップS19からステ
ップS25に進み、シリアル送信を禁止した後に処理を
終了する。
【0030】図8は図5のステップS2のキー読取処理
の詳細を示すフローチャートである。まず、ステップS
26にて行番号L24に0を設定する。次に、ステップ
S27にてL24の内容を出力ポート5に出力すること
により行を選択する。次に、ステップS28にて入力ポ
ート4からキーデータを入力し、論理状態を合わせるた
めに反転した後に、CL23の、L24が示す位置に格
納する。次にステップS29にてL24に1を加える。
以上の処理を16回繰り返し、全ての行の入力が終了す
るとステップS30からステップS31に進み、L24
に0を再度設定する。
【0031】次に、ステップS32にて、LL22とC
L23の、各々L24が示す行の排他論理和を計算し、
X26に格納する。LL22には以前のキー押下状態が
格納されており、CL23には現在のキー押下状態が格
納されているので、それらの排他論理和X26にはキー
押下状態の変化が格納される。これが0であれば、キー
押下状態の変化がないので、ステップS33からステッ
プS34に進む。X26が0でなければステップS33
からステップS36に進み、ビット番号B25を0に設
定する。次にステップS37にて、CTR19をチェッ
クする。CTR19が16でなければ、送信バッファB
UF18には空きがあるので、ステップS38に進む。
X26の、B25が示すビットがオフならば、そのビッ
トに対応するキーの状態は変化していないので、ステッ
プS44に進む。オンならば、ステップS39にて、行
番号L24とビット番号B25を送信するキーコードに
変換する。ここで、キーコードは0〜7EHの範囲であ
る。CL23の、L24が示す行の、B25が示すビッ
トがオンであれば、キーが新たに押下された場合なの
で、ステップS40からステップS41に進み、LL2
3の、L24が示す行の、B25が示すビットをセット
することにより、以前のキー押下状態を更新し、現在の
キー押下状態と一致させる。次にステップS42にて、
押下キー数ONKEY16に1を加える。
【0032】CL23の、L24が示す行の、B25で
示されるビットがオフであれば、キーの押下が解除され
た場合なので、ステップS40からステップS46へ進
み、LL23の、L24が示す行の、B25が示すビッ
トをリセットすることにより、以前のキー押下状態を更
新し、現在のキー押下状態と一致させる。次にステップ
S47にて、押下キー数ONKEY16から1を引く。
次に、ステップS48にて、キーオフを示すために、ス
テップS39にて得られたキーコードのビット7をセッ
トする。
【0033】いずれの場合もステップS43に進み、キ
ーコードの送信を行い、ステップS44にてB25に1
を加える。次にステップS45に進み、B25が8でな
ければ全てのビットの処理が終了していないので、ステ
ップS37に戻り、上述の処理を繰り返す。全てのビッ
トの処理が終了するとステップS34に進む。
【0034】ステップS34にて、L24に1を加え
る。次にステップS35に進み、L24が16でなけれ
ば全ての行の処理が終了していないので、ステップS3
2に戻り、上述の処理を繰り返す。全ての行の処理が終
了するとキー読取処理を終了する。
【0035】ステップS37にて、CTR19が16で
あった場合、送信バッファBUF18には空きがなく、
キーコードを送信することができないので、キー読取処
理を終了する。この場合、以前のキー押下状態LL22
が更新されないため、10mS後に再度キー読取処理が
行われるまでキーコードの送信は延期される。
【0036】(他の実施例)なお、上述の実施例では、
キー押下検出処理の過程において、押下キー数ONKE
Y16を増減し、ONKEY16が0であることをもっ
て全てのキーが押下されていないことを検出している
が、これに代えて、下記の如き手段により検出してもよ
い。
【0037】(1)前回のキー押下状態LL22、現在
のキー押下状態CL23、または入力ポート4から入力
されたキーデータのいずれかを参照して全てのキーが押
下されていないことを検出する。
【0038】(2)キー押下検出処理の過程においては
全てのキーが押下されていないことの検出に関する処理
は行わず、キー無押下検出処理の過程において、前回の
キー押下状態LL22、または現在のキー押下状態CL
23のいずれかを参照して全てのキーが押下されていな
いことを検出する。
【0039】
【発明の効果】以上説明したように、キー押下終了検出
のコードがノイズ等の原因により正しく受信できなかっ
た場合でも、全てのキーが押下されていないことを示す
コードが送信されるので、CPUはキーのリピートを停
止することができ、無限にキーがリピートするという重
大な障害を避けることができる。
【図面の簡単な説明】
【図1】本実施例の基本構成を示すブロック図である。
【図2】本実施例の全体の回路構成を示すブロック図で
ある。
【図3】キーマトリクス1の詳細な説明図である。
【図4】RAM6の詳細な説明図である。
【図5】本実施例の全体の処理を示すフローチャートで
ある。
【図6】送信処理の詳細を示すフローチャートである。
【図7】送信割込処理の詳細を示すフローチャートであ
る。
【図8】キー読取処理の詳細を示すフローチャートであ
る。
【符号の説明】
1 キーマトリクス 2 デコーダ 3 1チップマイクロプロセッサ 4 入力ポート 5 出力ポート 6 書込可能メモリ(RAM) 7 読取専用メモリ(ROM) 8 CPUコア 9 シリアルポート 10 レディ信号(RDY) 11 送信信号(TXD) 12 タイマ 13 キー接点 14 抵抗器 16 押下キー数(ONKEY) 17 ソフトウェアタイマ(STIME) 18 送信バッファ(BUF) 19 送信データ数(CTR) 20 送信バッファ格納位置(I) 21 送信バッファ取出し位置(J) 22 以前のキー押下状態(LL) 23 現在のキー押下状態(CL) 24 行番号(L) 25 ビット番号(B) 26 キー押下状態の変化(X)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 キーボードを備えた情報処理装置におい
    て、キーボードがキーボード上の全てのキーが無押下状
    態であることを検出した時、当該状態を示す情報を装置
    本体に送出することを特徴とするキー入力処理方法。
JP03295695A 1991-11-12 1991-11-12 キーボード Expired - Fee Related JP3126445B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03295695A JP3126445B2 (ja) 1991-11-12 1991-11-12 キーボード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03295695A JP3126445B2 (ja) 1991-11-12 1991-11-12 キーボード

Publications (2)

Publication Number Publication Date
JPH05134792A true JPH05134792A (ja) 1993-06-01
JP3126445B2 JP3126445B2 (ja) 2001-01-22

Family

ID=17823973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03295695A Expired - Fee Related JP3126445B2 (ja) 1991-11-12 1991-11-12 キーボード

Country Status (1)

Country Link
JP (1) JP3126445B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6509845B1 (en) 1999-03-08 2003-01-21 Sharp Kabushiki Kaisha Wireless input apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6814728B2 (en) 2001-02-26 2004-11-09 Pentax Corporation Endoscope having an operation wire

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6509845B1 (en) 1999-03-08 2003-01-21 Sharp Kabushiki Kaisha Wireless input apparatus

Also Published As

Publication number Publication date
JP3126445B2 (ja) 2001-01-22

Similar Documents

Publication Publication Date Title
US4396995A (en) Adapter for interfacing between two buses
JPH0681058B2 (ja) デ−タ送受信方式
US5220323A (en) Keyboard apparatus having ghost key sensing function
JPS5822782B2 (ja) パタ−ン類似度計算装置
JPH05134792A (ja) キー入力処理方法
US4804278A (en) Key input apparatus provided with a key input buffer
JPH0234038A (ja) データ圧縮装置
US5748887A (en) Inter-processor asynchronous serial communication transmission/reception apparatus using each other's memories
US4460974A (en) Electronic computer with access to keyboard status information
US4447889A (en) Method for controlling display of output of a programmable device
US4458325A (en) Calculator capable of calculating with additional externally instructed units
JPS59140561A (ja) 電子機器
JPH0618023B2 (ja) タイパマチツクキ−ボ−ド入力制御方式
JPS5922318B2 (ja) 多重制御記憶装置
JP2778109B2 (ja) 電子機器
JP2024065094A5 (ja)
JPH0425573B2 (ja)
SU690472A1 (ru) Селекторный канал
KR100586598B1 (ko) 유한 필드상의 모듈러 연산 장치 및 그 방법
JP3171253B2 (ja) ハンディ型icカードシステム
US20020110200A1 (en) Method for quadrature phase decoding allowing for skipped states
JP2755410B2 (ja) 複数電文の送受信方法及び送受信装置
JPS5617442A (en) Parity error processing system
JPH0732409B2 (ja) ビデオテツクス装置
JPS59184938A (ja) 通報装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001017

LAPS Cancellation because of no payment of annual fees