(57)【要約】【課題】  本発明の目的は、新たに外付けの回路を追加することなく、従来の回路構成のままでキーの多重押し（同時に３つ以上のキー押し）を認識することができるキーマトリクス回路制御方法を提供する。【解決手段】  ｍ本×ｎ本（ｍ、ｎはそれぞれ３以上）の行列状の配線及び各交点にキースイッチを有するキーマトリクス回路部と、行方向及び列方向の各配線とそれぞれ繋がるプルアップ抵抗６１６及び電源と、行方向の各配線にそれぞれ繋がるｍヶの入出力ポート及び列方向の各配線にそれぞれ繋がるｎヶの入力ポートを有するＣＰＵ６４０とからなり、ＣＰＵ６４０の入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路装置であって、ｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ以上のキー押しを認識する。【選択図】        図６
2006004052.tif 000002
【特許請求の範囲】
【請求項１】
ｍ本×ｎ本（ｍ、ｎはそれぞれ３以上）の行列状の配線及び該配線の各交点にキースイッチを有するキーマトリクス回路部と、該キーマトリクス回路部の行方向及び列方向の各配線とそれぞれ繋がるプルアップ抵抗及び電源と、前記キーマトリクス回路部の行方向の各配線にそれぞれ繋がるｍヶの入出力ポート及び列方向の各配線にそれぞれ繋がるｎヶの入力ポートを有するＣＰＵとからなり、該ＣＰＵの入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路装置であって、
前記キーマトリクス回路部のｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ又は４つのキー押しを認識することができることを特徴とするキーマトリクス回路装置。
【請求項２】
ｍ本×ｎ本（ｍ、ｎはそれぞれ４以上）の行列状の配線及び該配線の各交点にキースイッチを有するキーマトリクス回路部と、該キーマトリクス回路部の行方向及び列方向の各配線とそれぞれ繋がるプルアップ抵抗及び電源と、前記キーマトリクス回路部の行方向の各配線にそれぞれ繋がるｍヶの入出力ポートと、列方向の各配線にそれぞれ繋がるｎヶの入力ポートを有するＣＰＵとからなり、該ＣＰＵの入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路装置であって、
前記キーマトリクス回路部のｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本の内の２本×２本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ又は４つのキー押しを認識することができることを特徴とするキーマトリクス回路装置。
【請求項３】
請求項２記載のキーマトリクス回路装置において、
上記ＣＰＵは、第１及び第２の小キーマトリクス回路部を含む４本×４本で構成される中マトリクス回路における４ヶの入出力ポートの出力波形情報と４ヶの入力ポートの入力波形情報の組合せに対応する第１及び第２の小キーマトリクス回路部のキー押し情報のテーブル値として有することを特徴とするキーマトリクス回路装置。
【請求項４】
ｍ本×ｎ本（ｍ、ｎはそれぞれ４以上）の行列状の配線及び該配線の各交点にキースイッチを有し、行方向の各配線はそれぞれプルアップ抵抗、電源及びＣＰＵのｍヶの入出力ポートと繋がり、列方向の各配線はそれぞれプルアップ抵抗、電源及び前記ＣＰＵのｎヶの出力ポートに繋がり、前記ＣＰＵの入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路であって、
前記ｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本の内の２本×２本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ又は４つのキー押しが認識されることを特徴とするキーマトリクス回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーマトリクス回路装置及びキーマトリクス回路であって、キーマトリクス回路により構成されたキー押しに関し、特に複数のキーを同時に押された場合の認識方法に関する。
【背景技術】
【０００２】
ＣＰＵのポートに接続されたキーマトリクス回路をソフトウェアによりスキャンするキー制御方式が広く一般的に知られている。複数のキーを同時に押された場合の認識方法としては、ダイオードを用いたものあるいはオペアンプを用いたものがある。（例えば、特許文献１及び２参照）
【特許文献１】特開平６−３５５９１号公報
【特許文献２】特開平８−１７９８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術は、複数のキー押しの認識を可能とするためにはダイオード、オペアンプといった新たな回路を追加しなければならず、コストアップ、追加回路による基板占有面積増加、という問題があった。
【０００４】
本発明の目的は、新たに外付けの回路を追加することなく、従来の回路構成のままでキーの多重押し（同時に３つ以上のキー押し）を認識することができるキーマトリクス回路制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
前記キーマトリクス回路の対応するキーの組み合わせを条件付きで使用することにより達成できる。
【０００６】
すなわち、本発明は、ｍ本×ｎ本（ｍ、ｎはそれぞれ３以上）の行列状の配線及び該配線の各交点にキースイッチを有するキーマトリクス回路部と、該キーマトリクス回路部の行方向及び列方向の各配線とそれぞれ繋がるプルアップ抵抗及び電源と、前記キーマトリクス回路部の行方向の各配線にそれぞれ繋がるｍヶの入出力ポート及び列方向の各配線にそれぞれ繋がるｎヶの入力ポートを有するＣＰＵとからなり、該ＣＰＵの入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路装置であって、前記キーマトリクス回路部のｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ又は４つのキー押しを認識することができるキーマトリクス回路装置である。
【０００７】
また、本発明は、ｍ本×ｎ本（ｍ、ｎはそれぞれ４以上）の行列状の配線及び該配線の各交点にキースイッチを有するキーマトリクス回路部と、該キーマトリクス回路部の行方向及び列方向の各配線とそれぞれ繋がるプルアップ抵抗及び電源と、前記キーマトリクス回路部の行方向の各配線にそれぞれ繋がるｍヶの入出力ポートと、列方向の各配線にそれぞれ繋がるｎヶの入力ポートを有するＣＰＵとからなり、該ＣＰＵの入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路装置であって、前記キーマトリクス回路部のｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本の内の２本×２本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ又は４つのキー押しを認識することができるキーマトリクス回路装置である。
【０００８】
そして、本発明は、上記ＣＰＵが、第１及び第２の小キーマトリクス回路部を含む４本×４本で構成される中マトリクス回路における４ヶの入出力ポートの出力波形情報と４ヶの入力ポートの入力波形情報の組合せに対応する第１及び第２の小キーマトリクス回路部のキー押し情報のテーブル値として有するキーマトリクス回路装置である。
【０００９】
更に、本発明は、ｍ本×ｎ本（ｍ、ｎはそれぞれ４以上）の行列状の配線及び該配線の各交点にキースイッチを有し、行方向の各配線はそれぞれプルアップ抵抗、電源及びＣＰＵのｍヶの入出力ポートと繋がり、列方向の各配線はそれぞれプルアップ抵抗、電源及び前記ＣＰＵのｎヶの出力ポートに繋がり、前記ＣＰＵの入出力ポートの状態を変化させてキーの状態をスキャンし、キー押しを認識することが可能なキーマトリクス回路であって、前記ｍ本×ｎ本の内の２本×２本で構成される第１の小キーマトリクス回路における任意の２ヶのキー入力と、残りの（ｍ−２）本×（ｎ−２）本の内の２本×２本で構成される第２の小キーマトリクス回路における任意の１ヶもしくは２ヶのキー入力とからなる同時に３つ又は４つのキー押しが認識されるキーマトリクス回路である。
【発明の効果】
【００１０】
本発明によれば、キーマトリクス回路の対応するキーの組み合わせを条件付きで使用することにより新たに外付けの回路を追加することなく従来の回路構成のままでキーの多重押し（同時に３つ以上のキー押し）を認識することができるキーマトリクス回路制御方法を得ることができる。
【発明を実施するための最良の形態】
【００１１】
本発明を実施するための最良の形態を説明する。
本発明のキーマトリクス回路装置及びキーマトリクス回路の具体的な内容について、図面を用い、以下に説明する。
【実施例１】
【００１２】
実施例１を説明する。本実施例を従来技術と対比して説明する。まず、従来技術を説明する。図１は従来のキーマトリクス回路構成図であり、行方向２本×列方向２本の例である。１００はキースイッチ（ＳＷ１）、１０１はキースイッチ（ＳＷ２）、１０２はキースイッチ（ＳＷ３）、１０３はキースイッチ（ＳＷ４）、１０４〜１０７はプルアップ抵抗、１０８は出力ポートａ、１０９は出力ポートｂ、１１０は入力ポート（１）、１１１は入力ポート（２）、１１２は出力ポートａの出力波形、１１３は出力ポートｂの出力波形、１１４は入力ポート（１）の入力波形、１１５は入力ポート（２）の入力波形、１１６はＣＰＵである。
【００１３】
従来のキーマトリクス回路は、出力ポートａ１０８、出力ポートｂ１０９に繋がった横のラインと、入力ポート（１）１１０、入力ポート（２）１１１に繋がった縦のラインによるマトリクスになっており、それらの交点がキースイッチ１〜４となっている。キースイッチ１〜４はユーザが操作するキースイッチであり、従来例では通常ｏｆｆ、キー押下でｏｎである。プルアップ抵抗１０４、プルアップ抵抗１０５はそれぞれ入力ポート（１）１１０、入力ポート（２）１１１のラインに接続されており、反対側は電源に接続されている。プルアップ抵抗１０６、プルアップ抵抗１０７は、ポートａ１０８、ポートｂ１０９の内部をあらわしたものである。ポートａ１０８、ポートｂ１０９は、ＣＰＵ１１６の入出力ポートであり、出力のＨｉｇｈレベル「１」、Ｌｏｗレベル「０」が切り替え可能である。ポート（１）１１０、ポート（２）１１１は、ＣＰＵ１１６の入力ポートであり、このレベルを読み出すことにより押下されているキースイッチの判別を行う。判別方法については後述する。出力ポートａの出力波形１１２、出力ポートｂの出力波形１１３は、キースキャンをする場合の出力波形であり、入力ポート（１）の入力波形１１４、入力ポート（２）の入力波形１１５は、キースイッチ１（１００）、キースイッチ２（１０１）が同時に押下されている場合の入力波形である。
【００１４】
図２は従来例の出力ポートの詳細図であり、図１のポートａ、ｂの詳細である。２００は出力端子部、２０１はプルアップイネーブル信号、２０２は出力イネーブル信号、２０３は出力データ、２０４はトランジスタ、２０５はプルアップ抵抗、２０６は出力バッファである。
【００１５】
従来例の出力端子部２００は、図１のポートａ、ｂのキースイッチ回路への接続部を示す。プルアップイネーブル信号２０１は、トランジスタ２０４をｏｎ／ｏｆｆすることによりプルアップ抵抗２０５を有効／無効（電源への接続／未接続）にすることが可能であり、図２の例では、プルアップイネーブル信号２０１をＬｏｗレベルにすると、トランジスタ２０４がｏｎになり、プルアップ抵抗２０５が電源に接続される。プルアップイネーブル信号２０１をＨｉｇｈレベルにすると、トランジスタ２０４がｏｆｆになり、プルアップ抵抗２０５は電源に接続されなくなる。出力イネーブル信号２０２は、出力バッファ２０６を制御する。図の例では出力イネーブル信号２０２をＬｏｗレベルにすると出力バッファ２０６が開き出力データ２０３が出力される。出力イネーブル信号２０２をＨｉｇｈレベルにすると出力バッファ２０６が閉じ出力データ２０３は出力されなくなる。
【００１６】
従来例における出力端子部２００にＨｉｇｈレベル、Ｌｏｗレベルを出力する方法を以下に説明する。まず、Ｈｉｇｈレベルを出力する場合を説明する。プルアップイネーブル信号２０１をＬｏｗレベルにしてトランジスタ２０４をｏｎにする。このとき出力イネーブル信号２０２をＨｉｇｈレベルにして出力バッファを閉じる。これにより電源〜トランジスタ２０４〜プルアップ抵抗を介してＨｉｇｈレベルの信号が出力端子部２００に出力される。
【００１７】
次に、従来例におけるＬｏｗレベルを出力する場合を説明する。プルアップイネーブル信号２０１をＨｉｇｈレベルにしてトランジスタ２０４をｏｆｆにする。このとき出力データをＬｏｗレベルにし、出力イネーブル信号２０２をＬｏｗレベルにして出力バッファ２０６を開く。これによりＬｏｗレベルの出力データが、出力バッファ２０６を介してＬｏｗレベルの信号が出力端子部２００に出力される。
【００１８】
従来例におけるキーのスキャン方法について説明する。キースイッチは、図１に示すようにキースイッチ１（１００）、キースイッチ２（１０１）が同時に押下されているものとして説明する。図３はキースキャンのフローチャートの一例である。図４は１つ若しくは同時に２つのキースイッチＳＷが押された場合の入力ポートの状態を示した図である。ＣＰＵは本内容をテーブル値としてメモリ内に格納しているものとする。図５は同時に３つ若しくは４つのキースイッチが押された場合の入力ポートの状態を示した図である。
【００１９】
従来例において、先ず出力ポートａ１０８に「０」（Ｌｏｗレベル）、出力ポートｂ１０９に「１」（Ｈｉｇｈレベル）を出力する。すなわち、出力ポートａの出力波形１１２の「０」、出力ポートｂの出力波形１１３の「１」の箇所となる。図３の３００の動作である。出力ポートａ、ｂの状態が上記図３の３００の状態にあるときに、ＣＰＵ１１６は入力ポート（１）１１０、入力ポート（２）１１１の状態を読み込む。今キースイッチ１（１００）、キースイッチ２（１０１）が押下されているため、ＣＰＵ１１６が読み出した入力ポート（１）１１０の値は「０」、入力ポート（２）１１１の値は「０」、すなわち、入力ポート（１）の入力波形１１４の「０」、入力ポート（２）の入力波形１１５の「０」の箇所となる。この値をＣＰＵ１１６はメモリに格納する。図３の３０１の動作である。
【００２０】
次に、従来例における出力ポートａ１０８に「１」（Ｈｉｇｈレベル）、出力ポートｂ１０９に「０」（Ｌｏｗレベル）を出力する。図３の３０２の動作である。出力ポートａ、ｂの状態が上記図３の３０２の状態にあるときに、入力ポート（１）１１０、入力ポート（２）１１１の状態を読み込む。読み出したデータは、入力ポート（１）１１０の値は「１」、入力ポート（２）１１１の値は「１」となる。この値をＣＰＵ１１６はメモリに格納する。図３の３０３の動作である。
【００２１】
従来例におけるＣＰＵ１１６は、上記３０１、３０３にてメモリに格納した値（入力ポート（１）１１０から読み出して格納した値は図３の３０１により「０」、図３の３０３により「１」のため「０１」となり、入力ポート（２）１１１から読み出して格納した値は図３の３０１により「０」、図３の３０３により「１」のため「０１」となる）と、図４に示すテーブルの内容とを照合する。入力ポート（１）１１０から読み出した値（出力）が「０１」、入力ポート（２）１１１から読み出した値（入力）が「０１」のため押下されたキースイッチはキースイッチ１（１００）、キースイッチ２（１０１）であることがわかる。図３の３０４の動作である。押下されたキースイッチが判明したため、それに応じた処理を実行する。図３の３０５の動作である。以下これを繰り返す。
【００２２】
しかしながら上記従来例では、同時に３ヶ以上のキースイッチが押下された場合、入力結果（図３のフローチャートに従い、入力ポート（１）１１０、入力ポート（２）１１１から読み出した値）が全て同じになるため、どのキースイッチが押されているか判別することができなかった。（同時に３ヶ以上のキースイッチが押された場合の入力ポートの値については、図５を参照。）
【００２３】
以下、実施例１を説明する。図６は本実施例を適用したキーマトリクス回路装置の構成図であり、行方向４本×列方向４本の例である。６００〜６１５はキースイッチ１〜１６、６１６〜１１９はプルアップ抵抗、６２０〜６２３は出力ポートａ〜ｄ、６２４〜６２７は入力ポート（１）〜（４）、６２８〜６３１は出力ポートａ〜ｄの出力波形、６３２〜６３５は入力ポート（１）〜（４）の入力波形、６３６〜６３９はキースイッチ１〜４、５〜８、９〜１２、１３〜１６の集合であって、キースイッチの集合６３６、６３９が第１の及び第２の小マトリクス回路であり、キースイッチの集合６３６〜６３９の全体が中マトリクス回路である。
【００２４】
実施例１におけるキーマトリクス回路は、出力ポートａ６２０、出力ポートｂ６２１、出力ポートｃ６２２、出力ポートｄ６２３に繋がった横のラインと、入力ポート（１）６２４、入力ポート（２）６２５、入力ポート（３）６２６、入力ポート（４）６２７に繋がった縦のラインによるマトリクスになっており、それらの交点がキースイッチ１〜１６となっている。プルアップ抵抗６１６〜６１９は、それぞれ入力ポート（１）６２４〜（４）６２７に接続されており、反対側は電源に接続されている。出力ポートａ６２０〜ｄ６２３は、ＣＰＵ６４０の出力ポートであり、内部は図１の出力ポートａ１０８、出力ポートｂ１０９と同じ構成である。入力ポート（１）６２４〜（４）６２７はＣＰＵの入力ポートであり、このレベルを読み出すことにより、押下されているキースイッチの判別を行う。出力ポートａの出力波形６２８〜出力ポートｄの出力波形６３１は、キースキャンをする場合の出力波形であり、入力ポート（１）の入力波形６３２〜入力ポート（４）の入力波形６３５はキースイッチ１（６００）、キースイッチ２（６０１）、キースイッチ１３（６１２）、キースイッチ１４（６１３）が同時に押下されている場合の波形である。基本構成は図１と同様であり、図１のキースイッチ１（１００）、キースイッチ２（１０１）、キースイッチ３（１０２）、キースイッチ４（１０３）が、キースイッチ１〜４の集合６３６に相当するキースイッチであり、これを行、列方向にそれぞれ２倍に配置したものがキースイッチ５〜８の集合６３７、キースイッチ９〜１２の集合６３８、キースイッチ１３〜１６の集合６３９である。実施例１における出力ポートの詳細は、図２に示す従来例と同様であり、その説明は省略する。
【００２５】
本実施例におけるキースキャンの方法の一例について説明する。キースイッチは、図６に示すようにキースイッチ１（６００）、キースイッチ２（６０１）、キースイッチ１３（６１２）、キースイッチ１４（６１３）の４ヶが同時に押下されているものとして説明する。図７は、本実施例におけるキースキャンのフローチャートの一例である。図８は、キースイッチ１〜４において同時に２つのキーが押された場合の入力ポートの状態を示した図である。ＣＰＵ６４０は、本内容をテーブル値としてメモリ内に格納しているものとする。図９は、キースイッチ１３〜１６において同時に２つのキーが押された場合の入力ポートの状態を示した図である。ＣＰＵ６４０は、本内容をテーブル値としてメモリ内に格納しているものとする。
【００２６】
先ず出力ポートａ６２０に「０」（Ｌｏｗレベル）、出力ポートｂ６２１に「１」（Ｈｉｇｈレベル）、出力ポートｃ６２２に「１」（Ｈｉｇｈレベル）、出力ポートｄ６２３に「１」（Ｈｉｇｈレベル）を出力する（出力ポートａの出力波形６２８の左端の「０」の箇所、出力ポートｂの出力波形６２９の左端の「１」の箇所、出力ポートｃの出力波形６３０の左端の「１」の箇所、出力ポートｄの出力波形６３１の左端の「１」の箇所）。図７の７００の動作である。
【００２７】
出力ポートａ６２０〜ｄ６２３の状態が上記図７の７００の状態にあるときに、ＣＰＵ６４０は、入力ポート（１）６２４〜（４）６２７の値を読み込む。今キースイッチ１（６００）、キースイッチ２（６０１）、キースイッチ１３（６１２）、キースイッチ１４（６１３）が押下されているため、ＣＰＵ６４０が読み出した入力ポート（１）６２４の値は「０」、入力ポート（２）６２５の値は「０」、入力ポート（３）６２６の値は「１」、入力ポート（３）６２７の値は「１」（入力ポート（１）の入力波形６３２の左端の「０」の箇所、入力ポート（２）の入力波形６３３の左端の「０」の箇所、入力ポート（３）の入力波形６３４の左端の「１」の箇所、入力ポート（４）の入力波形６３５の左端の「１」の箇所）となる。この値をＣＰＵ６４０はメモリに格納する。図７の７０１の動作である。
【００２８】
次に出力ポートａ６２０に「１」（Ｈｉｇｈレベル）、出力ポートｂ６２１に「０」（Ｌｏｗレベル）、出力ポートｃ６２２に「１」（Ｈｉｇｈレベル）、出力ポートｄ６２３に「１」（Ｈｉｇｈレベル）を出力する（出力ポートａの出力波形６２８の左から２番目の「１」の箇所、出力ポートｂの出力波形６２９の左から２番目の「０」の箇所、出力ポートｃの出力波形６３０の左から２番目の「１」の箇所、出力ポートｄの出力波形６３１の左から２番目の「１」の箇所）。図７の７０２の動作である。
【００２９】
同様に出力ポートａ６２０〜ｄ６２３の状態が上記図７の７０２の状態にあるときにＣＰＵ６４０は入力ポート（１）６２４〜（４）６２７の値を読み込む。読み出した入力ポート（１）６２４の値は「１」、入力ポート（２）６２５の値は「１」、入力ポート（３）６２６の値は「１」、入力ポート（３）６２７の値は「１」（入力ポート（１）の入力波形６３２の左から２番目の「１」の箇所、入力ポート（２）の入力波形６３３の左から２番目の「１」の箇所、入力ポート（３）の入力波形６３４の左から２番目の「１」の箇所、入力ポート（４）の入力波形６３５の左から２番目の「１」の箇所）となる。図７の７０３の動作である。
【００３０】
次に出力ポートａ６２０に「１」（Ｈｉｇｈレベル）、出力ポートｂ６２１に「１」（Ｈｉｇｈレベル）、出力ポートｃ６２２に「０」（Ｌｏｗレベル）、出力ポートｄ６２３に「１」（Ｈｉｇｈレベル）を出力する（出力ポートａの出力波形６２８の左から３番目の「１」の箇所、出力ポートｂの出力波形６２９の左から３番目の「１」の箇所、出力ポートｃの出力波形６３０の左から３番目の「０」の箇所、出力ポートｄの出力波形６３１の左から３番目の「１」の箇所）。図７の７０４の動作である。
【００３１】
同様に出力ポートａ６２０〜ｄ６２３の状態が上記図７の７０４の状態にあるときにＣＰＵ６４０は入力ポート（１）６２４〜（４）６２７の値を読み込む。読み出した入力ポート（１）６２４の値は「１」、入力ポート（２）６２５の値は「１」、入力ポート（３）６２６の値は「０」、入力ポート（３）６２７の値は「０」（入力ポート（１）の入力波形６３２の左から３番目の「１」の箇所、入力ポート（２）の入力波形６３３の左から３番目の「１」の箇所、入力ポート（３）の入力波形６３４の左から３番目の「０」の箇所、入力ポート（４）の入力波形６３５の左から３番目の「０」の箇所）となる。図７の７０５の動作である。
【００３２】
次に出力ポートａ６２０に「１」（Ｈｉｇｈレベル）、出力ポートｂ６２１に「１」（Ｈｉｇｈレベル）、出力ポートｃ６２２に「１」（Ｈｉｇｈレベル）、出力ポートｄ６２３に「０」（Ｌｏｗレベル）を出力する（出力ポートａの出力波形６２８の右端の「１」の箇所、出力ポートｂの出力波形６２９の右端の「１」の箇所、出力ポートｃの出力波形６３０の右端の「１」の箇所、出力ポートｄの出力波形６３１の右端の「０」の箇所）。図７の７０６の動作である。
【００３３】
同様に出力ポートａ６２０〜ｄ６２３の状態が上記図７の７０６の状態にあるときにＣＰＵ６４０は入力ポート（１）６２４〜（４）６２７の値を読み込む。読み出した入力ポート（１）６２４の値は「１」、入力ポート（２）６２５の値は「１」、入力ポート（３）６２６の値は「１」、入力ポート（３）６２７の値は「１」（入力ポート（１）の入力波形６３２の右端の「１」の箇所、入力ポート（２）の入力波形６３３の右端の「１」の箇所、入力ポート（３）の入力波形６３４の右端の「１」の箇所、入力ポート（４）の入力波形６３５の右端の「０」の箇所）となる。図７の７０７の動作である。
【００３４】
ＣＰＵ６４０は、上記７０１、７０３、７０５、７０７にてメモリに格納した値（入力ポート（１）６２４から読み出した値「０１１１」、入力ポート（２）６２５から読み出した値「０１１１」、入力ポート（３）６２６から読み出した値「１１０１」、入力ポート（４）６２７から読み出した値「１１０１」）とテーブル値の内容（図８、図９）と照合する。これにより押下されたキースイッチが、キースイッチ１（６００）、キースイッチ２（６０１）、キースイッチ１３（６１２）、キースイッチ１４（６１３）であることが判別できる。図７の７０８の動作である。押下されたキースイッチが判明したためそれに応じた処理を実行する。図７の７０９の動作である。以上のことにより、同時に４ヶのキースイッチが押下されてもその押下箇所を認識することができる。
【００３５】
図６におけるキースイッチ１〜４（６３６）の押下認識は、これらのキースイッチに接続されている出力ポートａ６２０、出力ポートｂ６２１と入力ポート（１）６２４、入力ポート（２）６２５の関係だけで決まり、同様にキースイッチ１３〜１６（６３９）の押下認識は、これらのキースイッチに接続されている出力ポートｃ６２２、出力ポートｄ６２３と入力ポート（３）６２６、入力ポート（４）６２７の関係だけで決まる。キースイッチ１〜４（６３６）を押下してもしなくても入力ポート（３）６２６、入力ポート（４）６２７へは何ら影響をも及ぼさない、またキースイッチ１３〜１６（６３９）を押下してもしなくても入力ポート（１）６２４、入力ポート（２）６２５へは何ら影響をも及ぼさない回路となっている。これによりキースイッチ１〜４（６３６）のうち任意の２ヶのキースイッチ押下、キースイッチ１３〜１６（６３９）のうち任意の２ヶのキースイッチ押下の組み合わせによる同時に合計４ヶのキースイッチの押下認識ができる。同様にキースイッチ５〜８（６３７）のうち任意の２ヶのキースイッチ押下と、キースイッチ９〜１２（６３８）のうち任意の２ヶのキースイッチ押下の組み合わせによる同時に合計４ヶのキースイッチの押下認識も可能である。
【００３６】
本発明を用いたキー検出処理の一例のフローチャートについて、図１０を用いて説明する。まずキーの割り込みを検知する（図１０の１００１の動作）。
【００３７】
次にキーのスキャンを行う。図１０の１００２の動作であり、キーのスキャン１００２は図７の７０１〜７０７の動作である。そして、キースキャンにより検出した結果を参照し（図１０の１００３の動作）、同時に押されたキーが３ヶ以上かどうかを判定する（図１０の１００４の動作）。
【００３８】
２ヶ以下であれば同時に押されたキーが２ヶ以下に対するキー検出処理を行う（図１０の１００５の動作）。同時に押されたキーが３ヶ以上であれば、押されたキーが指定した領域内かどうか判定する（図１０の１００６の動作）。
【００３９】
押されたキーが指定した領域内でなければキーの検出を無効にする（図１０の１００７の動作）。押されたキーが指定した領域内であれば、押されたキーが指定した１つの領域内で２ヶ以下であるかどうかを判定する（図１０の１００８の動作）。
【００４０】
押されたキーが指定した１つの領域内で２ヶ以下でなければキーの検出を無効にする（図１０の１００９の動作）。押されたキーが指定した１つの領域内で２ヶ以下であれば、同時に押されたキーが３ヶ以上に対するキー検出処理を行う（図１０の１０１０の動作）。
【００４１】
従来の同時に２ヶ以下のキー押しに対応するソフトウェアの場合は参照するテーブル値（押されたキーの組み合わせ）の数が少なかったため１００３の検出結果を参照する段階で全てのテーブル値と比較してそれに応じたキー検出処理を行えば良かったが、同時に押されるキーの数が増えると当然のことながらテーブル値の数も増加することになる。このため従来のように最初に全てのテーブル値と比較しているとソフトウェアの負荷が大きくなり処理時間がかかることになる。このため図１０の如く押されたキーによってソフトウェアの処理の場合分けを行い効率よく処理できるように工夫を行っている。
【００４２】
以上実施例において、キースイッチの同時押しは方向キーにおいて上下左右の４箇所にキースイッチを配置し右キーと上キーの同時押しによる斜め（右上）選択を行いながらの決定・解除や、携帯電話のようにパソコン等に比べキー総数の少ない製品でのキースイッチ複数押しによるキーの拡張性、キースイッチのロック（鍵）機能等が考えられる。
【図面の簡単な説明】
【００４３】
【図１】従来のキーマトリクス回路構成図。
【図２】出力ポートの詳細図。
【図３】従来のキースキャンのフローチャート。
【図４】従来における１つ若しくは同時に２つのキースイッチＳＷが押された場合の入力ポートの状態を示した図。
【図５】従来における同時に３つ若しくは４つのキースイッチが押された場合の入力ポートの状態を示した図。
【図６】実施例１のキーマトリクス回路装置の構成図。
【図７】実施例１におけるキースキャンのフローチャートの説明図。
【図８】実施例１においてキースイッチ１〜４において同時に２つのキーが押された場合の入力ポートの状態を示した図。
【図９】実施例１においてキースイッチ１３〜１６において同時に２つのキーが押された場合の入力ポートの状態を示した図。
【図１０】実施例１におけるキー検出処理の一例のフローチャートの説明図。
【符号の説明】
【００４４】
１００：キースイッチ１
１０１：キースイッチ２
１０２：キースイッチ３、
１０３：キースイッチ４
１０４〜１０７：プルアップ抵抗
１０８：出力ポートａ
１０９：出力ポートｂ
１１０：入力ポート（１）
１１１：入力ポート（２）
１１２：出力ポートａの出力波形
１１３：出力ポートｂの出力波形
１１４：入力ポート（１）の入力波形
１１５：入力ポート（２）の入力波形
１１６：ＣＰＵ
２００：出力端子部
２０１：プルアップイネーブル信号
２０２：出力イネーブル信号
２０３：出力データ
２０４：トランジスタ
２０５：プルアップ抵抗
２０６：出力バッファ
６００〜６１５：キースイッチ１〜１６
６１６〜１１９：プルアップ抵抗
６２０〜６２３：出力ポートａ〜ｄ
６２４〜６２７：入力ポート（１）〜（４）
６２８〜６３１：出力ポートａ〜ｄの出力波形
６３２〜６３５：入力ポート（１）〜（４）の入力波形
６３６〜６３９：キースイッチの集合
６４０：ＣＰＵ
【図１】
2006004052.tif 000003
【図２】
2006004052.tif 000004
【図３】
2006004052.tif 000005
【図４】
2006004052.tif 000006
【図５】
2006004052.tif 000007
【図６】
2006004052.tif 000008
【図７】
2006004052.tif 000009
【図８】
2006004052.tif 000010
【図９】
2006004052.tif 000011
【図１０】
2006004052.tif 000012