以上説明した本発明の構成および作用を一層明らかにするために、以下本発明を適用した遊技機について説明する。
A.パチンコ機10の構成:
本発明の実施例の一つであるパチンコ機10の構成について説明する。図1は、パチンコ機10の全体構成を示す正面図である。パチンコ機10は、パチンコ店のいわゆる島設備に固定される外枠20と、外枠20に嵌め込まれる内枠30と、内枠30の中央上寄りに嵌め込まれ遊技球による遊技が行われる遊技パネル40と、遊技パネル40の前面を覆うガラス板を有し内枠30に開閉可能に軸着されるガラス枠50と、プリペイドカードによる遊技球の貸し出しを受け付けるカードユニット80とを備える。
パチンコ機10の遊技パネル40は、遊技球の入賞を受け付ける入賞口44と、遊技の演出として映像の表示を行うLCDユニット42と、遊技の演出として発光する発光ダイオード(LED)462を複数内蔵する電飾部46と、遊技の演出としてキャラクタ人形を動かす演出駆動部45と、遊技者に遊技の演出態様を選定させるために遊技者がかざした手の赤外線を感知する演出センサ47とを備える。入賞口44は、入賞口44に入賞した遊技球を検知する遊技球センサ442と、入賞口44への遊技球の導入経路を拡縮する入賞口駆動部444とを備える。なお、本実施例では、遊技球センサ442は、渦電流方式のセンサを含み、入賞口駆動部444は、ソレノイド(図示しない)を動力源として駆動する機構を含み、演出駆動部45は、ステップモータ(図示しない)を動力源として駆動する機構を含む。なお、本実施例では、LCDユニット42は、液晶ディスプレイ(LCD)を備え、更に、そのLCDに映像信号を出力してLCDにおける画像表示を制御する電子回路を有する液晶制御基板を備える。
パチンコ機10のガラス枠50は、遊技の演出として高音域の音声を出力するスピーカ55と、遊技の演出として発光する発光ダイオード(LED)562を複数内蔵する電飾部56とを備える。パチンコ機10の内枠30は、遊技パネル40に遊技球を発射するための遊技者による操作を受け付けるハンドル32と、遊技の演出として低音域の音声を出力するスピーカ34と、遊技者に遊技の演出態様を選定させるために遊技者からのボタン入力を検知する演出センサ36とを備える。
図2は、パチンコ機10の電気的な概略構成を示すブロック図である。パチンコ機10は、遊技球センサ442からの入力に基づいて遊技の進行を制御する主制御基板410と、主制御基板410からの指示である主コマンドに基づいて遊技の進行に応じた各部の演出を制御する周辺制御基板420と、周辺制御基板420からの指示である階調コマンドに基づいてLED462の輝度階調を制御するパネル電飾基板430と、周辺制御基板420からの各種信号をパチンコ機10の各部に分配する周辺分配基板440と、周辺分配基板440を介した周辺制御基板420からの指示に基づいてLED562の輝度階調を制御する枠電飾基板450と、主制御基板410からの指示である払出コマンドに基づいて遊技球の払い出しを制御する払出制御基板310とを備える。主制御基板410、周辺制御基板420、パネル電飾基板430、周辺分配基板440、枠電飾基板450、払出制御基板310の各回路基板は、図1に示した内枠30の裏面(図示しない)に備えられる。
本実施例では、主制御基板410,周辺制御基板420,払出制御基板310は、種々の演算処理を実行するCPUと、CPUの演算処理を規定したプログラムを予め記憶するリードオンリメモリ(Read Only Memory、以下、「ROM」という)と、CPUが取り扱うデータを一時的に記憶するランダムアクセスメモリ(Random Access Memory、以下、「RAM」という)などの各回路基板の機能に応じた電子部品が実装された電子回路を備える。本実施例では、パネル電飾基板430,周辺分配基板440,枠電飾基板450は、各回路基板の機能に応じた大規模集積回路(Large Scale Integration、以下、「LSI」という)などの各回路基板の機能に応じた電子部品が実装された電子回路を備える。
主制御基板410から周辺制御基板420に送信される主コマンドは、いわゆる「大当たり」や「はずれ」などの遊技に関する基本的な演出を指示する情報を含む。主制御基板410から主コマンドを受信した周辺制御基板420は、主コマンドに基づいてLCDユニット42,LED462,LED562,スピーカ34,スピーカ55,演出駆動部45などの演出実行部でそれぞれ実施される演出を決定し、各演出実行部に応じた種々の信号を出力する。周辺制御基板420からLCDユニット42に対する信号は、表示すべき映像の内容をLCDユニット42に指示する液晶コマンドを含む。周辺制御基板420からパネル電飾基板430に対する信号は、LED462の発光態様を指定する階調コマンドを含む。本実施例では、周辺制御基板420からLCDユニット42に対する液晶コマンドの転送は、LCDユニット42の画面更新タイミングである16msに合わせて実行される。本実施例では、液晶コマンドを含む周辺制御基板420からパネル電飾基板430に対する信号は、250キロビーピーエス(bits per second、以下、「bps」という)の転送速度で、周辺制御基板420からパネル電飾基板430にシリアル転送される。
A−1.パチンコ機10における周辺制御基板420の詳細構成:
図3は、パチンコ機10における周辺制御基板420の電気的構成を主に示すブロック図である。周辺制御基板420は、遊技の進行に応じた演出を制御するための演算処理を実行する周辺制御CPU4210と、周辺制御CPU4210の動作状態を監視するウォッチドッグタイマ(Watchdog Timer、以下、「WDT」という)4211と、周辺制御CPU4210の演算処理を規定したプログラムを予め記憶するROM4212と、周辺制御CPU4210が取り扱うデータを一時的に記憶するRAM4214と、周辺制御CPU4210を周辺制御基板420内の各回路部とデータをやり取り可能に接続するバス4216とを備える。
周辺制御基板420は、パチンコ機10における他の回路基板とのインタフェースとして、主制御基板410からデータを受け取る主制御インタフェース4222と、LCDユニット42とのデータのやり取りを行う液晶インタフェース4224と、パネル電飾基板430とのデータのやり取りを行う電飾インタフェース4226と、周辺分配基板440とのデータのやり取りを行う分配インタフェース4228とを備える。本実施例では、主制御インタフェース4222,液晶インタフェース4224,分配インタフェース4228は、パラレル転送方式で信号をやり取りするパラレルインタフェースであり、電飾インタフェース4226は、シリアル転送方式で信号をやり取りするシリアルインタフェースである。電飾インタフェース4226は、シリアル転送すべきデータを記憶するシリアル転送バッファ4227を備える。電飾インタフェース4226は、周辺制御CPU4210によってシリアル転送バッファ4227にデータが格納されると、その格納されたデータをパネル電飾基板430にシリアル転送する。
周辺制御基板420は、他の回路基板との間でやり取りされるデータを蓄える緩衝用メモリとして、主制御基板410から受信した主コマンドを一時的に記憶する主コマンド受信バッファ4230と、LCDユニット42に送信する前の液晶コマンドを一時的に記憶する液晶コマンド送信バッファ4250と、パネル電飾基板430および周辺分配基板440から受信したセンサ入力データを一時的に記憶するセンサ入力受信バッファ4240と、階調コマンドなどの階調制御に関する調光データをパネル電飾基板430に送信する前に一時的に記憶する電飾送信バッファ4262,4264と、枠電飾基板450や演出駆動部45,スピーカ34,スピーカ55などを駆動する種々のデータを周辺分配基板440に送信する前に一時的に記憶する分配送信バッファ4270とを備える。本実施例では、主コマンド受信バッファ4230,液晶コマンド送信バッファ4250,センサ入力受信バッファ4240,電飾送信バッファ4262,電飾送信バッファ4264,分配送信バッファ4270の各バッファは、リングバッファ構成を採用する。本実施例では、周辺制御基板420からパネル電飾基板430に対する調光データの転送は、二つの電飾送信バッファ4262,4264を交互に用いたダブルバッファ方式を採用する。なお、周辺制御基板420の動作の詳細については後述する。
A−2.パチンコ機10におけるパネル電飾基板430の詳細構成:
図4は、パチンコ機10におけるパネル電飾基板430に実装された階調制御LSI4300の電気的構成を主に示すブロック図である。パネル電飾基板430の階調制御LSI4300は、LED462の発光輝度を複数の階調値に変化させて制御する階調制御機能と、演出センサ47からの入力を受け付けるセンサ入力機能とを、パネル電飾基板430の主な機能として実現する集積回路であり、他の電子部品と共にパネル電飾基板430に実装される。
階調制御LSI4300は、周辺制御基板420とのインタフェースとして、シリアル転送で周辺制御基板420とのデータのやり取りを行うシリアル転送回路4310と、シリアル転送回路4310を介した周辺制御基板420からのアクセスを管理するアクセス管理回路4320とを備える。階調制御LSI4300のアクセス管理回路4320は、周辺制御基板420からシリアル転送回路4310を介して階調コマンドを受け取るコマンド受取部として動作する。階調制御LSI4300は、周辺制御基板420からシリアル転送回路4310に入力される入力信号のノイズを除去するノイズ除去回路4312を更に備える。本実施例では、ノイズ除去回路4312は、周辺制御基板420からの入力信号を50ナノセカンド(以下、「ns」と表記)のサンプリングレートで4回サンプリングを行い、連続してサンプリングされた四つの値の全てが「0」の場合に「0」の値をシリアル転送回路4310に出力し、連続してサンプリングされた四つの値の全てが「1」の場合に「1」の値をシリアル転送回路4310に出力する。本実施例では、ノイズ除去回路4312は、連続してサンプリングされた四つの値が一致しない場合には、前回、4回連続して一致した値をシリアル転送回路4310に出力する。
階調制御LSI4300は、LED462や演出センサ47に接続される接続ポートとして、LED462に対して駆動電流を出力する出力端子4360および入出力端子4370を備える。入出力端子4370は、LEDに対する駆動電流を出力する出力ポートとしての機能に加え、各種センサからのセンサ入力を受け付ける入力ポートとしての機能も兼ね備える。本実施例では、入出力端子4370は、LED462に接続される場合には、LED462に対して駆動電流を出力する出力ポートとして機能し、演出センサ47に接続される場合には、演出センサ47からのセンサ入力を受け付ける入力ポートとして機能する。
階調制御LSI4300は、周辺制御基板420から受け取った階調コマンドを含むコマンドデータ520を記憶するコマンド記憶部4332と、階調制御LSI4300で制御可能な階調値のいくつかを指定した階調値テーブル540を記憶する階調値記憶部4334と、階調値記憶部4334に指定された階調値を並べる配列が規定された配列テーブル560を記憶する配列記憶部4336とを備える。本実施例では、周辺制御基板420から受け取った階調コマンドには、コマンド記憶部4332の記憶領域に割り当てられたメモリアドレスを示すデータと、そのメモリアドレスに格納すべきデータとが含まれ、アクセス管理回路4320が階調コマンドに基づいてコマンド記憶部4332にデータの書き込みを実行することによって、コマンド記憶部4332にコマンドデータ520が構成される。本実施例では、階調値テーブル540および配列テーブル560に格納されるデータは、パチンコ機10の電源投入時に周辺制御基板420から受け取ったコマンドに基づいて初期データが格納され、遊技の進行に応じて周辺制御基板420からのコマンドに基づいて適宜更新される。他の実施形態として、階調値テーブル540および配列テーブル560に格納されるデータは、階調制御LSI4300内に予め記憶されたデータであっても良い。なお、コマンドデータ520,階調値テーブル540,配列テーブル560の詳細については後述する。
階調制御LSI4300は、LED462の階調値を変化させる態様を示す階調パターンデータ580を生成するパターン生成回路4330と、パターン生成回路4330によって生成された階調パターンデータ580を記憶する階調パターン記憶部4350と、階調パターン記憶部4350に格納された階調パターンデータ580に従ってパルス幅を切り替えたLED駆動電流をLED462に供給するパルス制御回路4355とを備える。パターン生成回路4330は、コマンドデータ520に指定された階調値テーブル540,配列テーブル560を用いて、コマンドデータ520に指定された態様で階調パターンデータ580を生成する。本実施例では、パターン生成回路4330およびパルス制御回路4355は、複数のアップダウンカウンタおよび複数のレジスタを組み合わせて構成された論理回路である。階調パターンデータ580の詳細については後述する。
本実施例では、パルス制御回路4355は、4000マイクロセカンド(以下、「μs」と表記する)すなわち4msあたりのLED駆動電流のパルス幅を、「0μs」から「4000μs」まで「1μs」単位で制御可能である。本実施例では、LED462の発光輝度は、LED駆動電流のパルス幅の値が増加するに従って明るくなる。例えば、パルス幅が「0μs」の場合には、LED462の発光輝度は最も暗い消灯状態となり、パルス幅が「4000μs」の場合には、LED462の発光輝度は最も明るい発光状態となる。
本実施例では、階調パターン記憶部4350に記憶される階調パターンデータ580は、出力端子4360および入出力端子4370の個々の端子毎に設定される。具体的には、本実施例の階調制御LSI4300は、56個の出力端子4360と、8個の入出力端子4370とから成る合計64個のポートを有することから、コマンド記憶部4332のコマンドデータ520には、64個のポートの各々に対応する64個の階調コマンドを格納することが可能であり、階調パターン記憶部4350には、64個の端子の各々に対応する64個の階調パターンデータ580が記憶される。
図5は、階調制御LSI4300の階調値記憶部4334に記憶された複数の階調値テーブル540を模式的に示す説明図である。階調値記憶部4334の階調値テーブル540の各々は、階調値テーブル540の各々を特定する階調値テーブル番号5410と、階調値テーブル540に指定された階調値の各々を特定する階調番号5420と、パルス制御回路4355によって制御可能なパルス幅で発光輝度を指定した階調値5430とを備える。本実施例では、階調値記憶部4334の階調値テーブル番号5410には、「0」から「7」までの整数が割り当てられており、合計八個の階調値テーブル540が階調値記憶部4334に記憶される。本実施例では、階調値記憶部4334の階調番号5420には、階調値テーブル540毎に「0」から「31」までの整数が割り当てられており、一個の階調値テーブル540あたり合計32個の階調値が設定される。本実施例では、階調値記憶部4334の階調値5430には、パルス制御回路4355によって制御可能な「0μs」から「4000μs」までの「1μs」単位のパルス幅のいずれかが設定される。
図6は、階調制御LSI4300の配列記憶部4336に記憶された複数の配列テーブル560を模式的に示す説明図である。配列記憶部4336の配列テーブル560の各々は、配列テーブル560の各々を特定する配列テーブル番号5610と、階調値テーブル540に指定された階調値5430を並べる順序を示す配列番号5620と、配列番号5620に対応付けられた階調値テーブル540の階調番号5420を示す対応階調番号5630とを備える。本実施例では、配列記憶部4336の配列テーブル番号5610には、「0」から「2」までの整数が割り当てられており、合計三個の配列テーブル560が配列記憶部4336に記憶される。本実施例では、配列記憶部4336の配列番号5620には、配列テーブル560毎に「0」から「89」までの整数が割り当てられており、一個の配列テーブル560あたり合計90の階調値5430で構成された配列が設定される。本実施例では、配列記憶部4336の対応階調番号5630には、階調値テーブル540の階調番号5420を示す「0」から「31」までの整数のいずれかが設定される。
図7は、階調制御LSI4300のコマンド記憶部4332に記憶されたコマンドデータ520を示す説明図である。コマンド記憶部4332のコマンドデータ520は、周辺制御基板420から受け取った階調コマンドに含まれるデータを格納したデータである。図7のコマンドデータ520は、出力端子4360および入出力端子4370の各端子を特定するポート番号5210と、ポート番号5210に対応付けられた階調値テーブル540を特定する階調値テーブル番号5220と、ポート番号5210に対応付けられた配列テーブル560を特定する配列テーブル番号5230とを備える。これによって、階調値テーブル540および配列テーブル560の組み合わせが、出力端子4360および入出力端子4370の端子毎に特定される。
本実施例では、コマンドデータ520のポート番号5210には、出力端子4360および入出力端子4370の総数である64個に対応して、「0」から「63」までの整数が割り当てられている。本実施例では、コマンドデータ520の階調値テーブル番号5220には、階調値テーブル540の階調値テーブル番号5410に対応する「0」から「7」までの整数のいずれかが設定される。本実施例では、コマンドデータ520の配列テーブル番号5230には、配列テーブル560の配列テーブル番号5610に対応する「0」から「2」までの整数のいずれかが設定される。図7に示す例では、「0」のポート番号5210に対応する端子の階調パターンは、「0」の階調値テーブル番号5410で特定される階調値テーブル540に指定された階調値5430を、「0」の配列テーブル番号5610で特定される配列テーブル560に従って並べたパターンを示す。図7に示す例では、「1」のポート番号5210に対応する端子の階調パターンは、「0」の階調値テーブル番号5410で特定される階調値テーブル540に指定された階調値5430を、「1」の配列テーブル番号5610で特定される配列テーブル560に従って並べたパターンを示す。図7に示す例では、「62」のポート番号5210に対応する端子の階調パターンは、「1」の階調値テーブル番号5410で特定される階調値テーブル540に指定された階調値5430を、「0」の配列テーブル番号5610で特定される配列テーブル560に従って並べたパターンを示す。
図7のコマンドデータ520は、パターン生成回路4330によって作成される階調パターンの詳細を指定するデータとして、配列テーブル560の配列番号5620のうち階調パターンの起点を特定する開始配列番号5240と、配列テーブル560の配列番号5620のうち階調パターンの終点を特定する終了配列番号5250とを備える。本実施例では、コマンドデータ520の開始配列番号5240および終了配列番号5250には、配列テーブル560の配列番号5620に対応する「0」から「89」までの整数のいずれかが設定される。図7に示す例では、「0」のポート番号5210に対応する端子の階調パターンは、配列テーブル560に指定された「0」から「3」までの配列番号5620の順に対応階調番号5630を並べたパターンを示す。図7に示す例では、「1」のポート番号5210に対応する端子の階調パターンは、配列テーブル560に指定された「29」から「74」までの配列番号5620の順に対応階調番号5630を並べたパターンを示す。図7に示す例では、「3」のポート番号5210に対応する端子の階調パターンは、配列テーブル560に指定された配列番号5620において「87」から「89」に至った後に「0」から「6」に至る順に、対応階調番号5630を並べたパターンを示す。
図7のコマンドデータ520は、パターン生成回路4330によって作成される階調パターンの詳細を指定するデータとして、階調パターンを再生する際に階調パターンにおける階調値を次の階調値に移行させる再生速度の度合、すなわち同じ階調値を繰り返す回数を規定する階調歩進値5260を更に備える。本実施例では、コマンドデータ520の階調歩進値5260には、「0」から「63」までの整数のいずれかが設定され、階調歩進値5260に設定された値を「n」とすると、一つの階調値あたり「(n+1)×4」ms間の再生、すなわち一つの階調値あたり「(n+1)」回の再生が実施された後、次の階調値の再生が実施される。図7に示す例では、「0」のポート番号5210に対応する端子の階調パターンは、一つの階調値あたり「2(=1+1)」回の再生が実施されるパターンを示し、「1」のポート番号5210に対応する端子の階調パターンは、一つの階調値あたり「57(=56+1)」回の再生が実施されるパターンを示す。
図7のコマンドデータ520は、パルス制御回路4355で再生される階調パターンの再生態様を特定するモード番号5270と、モード番号5270が「0」の場合における階調値テーブル540の階調番号5420を指定したモード0階調番号5280とを備える。本実施例では、コマンドデータ520のモード番号5270には、「0」から「2」までの整数のいずれかが設定される。本実施例では、コマンドデータ520のモード0階調番号5280には、階調値テーブル540の階調番号5420を示す「0」から「31」までの整数のいずれかが設定される。
本実施例では、モード番号5270が「0」の場合には、モード0階調番号5280に指定された階調値テーブル540の階調番号5420に対応する階調値5430を持続する階調パターンがパルス制御回路4355によって再生される。図7に示す例では、「2」のポート番号5210に対応する端子の階調パターンは、「7」の階調値テーブル番号5410で特定される階調値テーブル540において「31」の階調番号5420に対応する階調値5430を維持する階調パターンを示す。本実施例では、モード番号5270が「1」の場合には、パターン生成回路4330で作成された階調パターンを繰り返し再生する再生態様が、パルス制御回路4355によって実行される。本実施例では、モード番号5270が「2」の場合には、パターン生成回路4330で作成された階調パターンを単発的に再生した後に、その階調パターンにおける最後の階調値を持続する再生態様が、パルス制御回路4355によって実行される。
図4の説明に戻り、階調制御LSI4300は、センサ入力を受け付けるセンサ入力部として、入出力端子4370からのセンサ入力を管理する入力管理回路4340と、入出力端子4370における入出力の状態を指定するフラグを記憶するディレクションレジスタ4342と、入出力端子4370に入力されたデータを記憶する入力レジスタ4344とを備える。入力管理回路4340は、ディレクションレジスタ4342に記憶されているフラグに基づいて入出力端子4370の入出力状態を切り替え、入力状態にある入出力端子4370に入力されたデータを入力レジスタ4344に格納する。ディレクションレジスタ4342のフラグは、周辺制御基板420からのコマンドに従って、アクセス管理回路4320によって格納される。入力レジスタ4344のセンサ入力データは、周辺制御基板420からのコマンドに従って、シリアル転送回路4310およびアクセス管理回路4320を介して周辺制御基板420に転送される。
B.パチンコ機10の動作:
B−1.パネル電飾基板430の動作:
図8は、階調制御LSI4300のパターン生成回路4330によって実行される定常処理を示すフローチャートである。図8の定常処理は、階調制御LSI4300のパターン生成回路4330における複数のアップダウンカウンタおよび複数のレジスタを組み合わせたハードウェア構成に基づき実現される処理である。パチンコ機10に電源が投入された後、周辺制御基板420からのコマンドに基づいて、階調値テーブル540,配列テーブル560,コマンドデータ520の各テーブルに各種データが格納された場合に、階調制御LSI4300のパターン生成回路4330は、図8の定常処理を開始する。
階調制御LSI4300のパターン生成回路4330は、図8の定常処理を開始すると、コマンドデータ520に更新されたデータが存在するか否かを、「0」のポート番号5210から順にポート番号5210毎に繰り返し検索する(ステップS110,S120,S150,S160)。コマンドデータ520に更新されたデータが存在する場合には(ステップS120)、パターン生成回路4330は、階調値テーブル540および配列テーブル560を用いて階調パターンを生成するパターン生成処理(ステップS130)を実行する。本実施例では、パチンコ機10に電源が投入された直後には、パターン生成回路4330は、ポート番号5210の全てについてパターン生成処理(ステップS130)を実施する。
図9は、階調制御LSI4300のパターン生成回路4330によって実行されるパターン生成処理(ステップS130)の詳細を示すフローチャートである。図9のパターン生成処理は、階調制御LSI4300のパターン生成回路4330における複数のアップダウンカウンタおよび複数のレジスタを組み合わせたハードウェア構成に基づき実現される処理である。パターン生成回路4330は、図9のパターン生成処理(ステップS130)を開始すると、対象のポート番号5210に対応するコマンドデータ520のモード番号5270を参照して、そのモード番号5270が「0」であるか否かを判断する(ステップS1310)。
モード番号5270が「0」でない場合、すなわち、モード番号5270が「1」または「2」である場合には、パターン生成回路4330は、コマンドデータ520の階調値テーブル番号5220および配列テーブル番号5230を参照して、対象のポート番号5210に対応する階調値テーブル540および配列テーブル560を特定する(ステップS1322,S1324)。その後、パターン生成回路4330は、コマンドデータ520を参照して、対象のポート番号5210に対応する開始配列番号5240,終了配列番号5250,階調歩進値5260を特定する(ステップS1332,S1334,S1342,)。その後、パターン生成回路4330は、開始配列番号5240から終了配列番号5250までに対応する配列テーブル560の配列番号5620の順に従って、階調値テーブル540の階調値5430を並べた階調パターンデータ580を生成し(ステップS1344)、生成した階調パターンデータ580を階調パターン記憶部4350に格納する(ステップS1370)。本実施例では、階調パターン記憶部4350に格納される階調パターンデータ580は、モード番号5820を含む。
図10は、階調パターンデータ580のモード番号5270が「1」または「2」である場合に、パターン生成処理(ステップS130)によって階調パターンデータ580に階調パターンが格納される様子の一例を示す説明図である。図10に示すように、階調パターン記憶部4350の階調パターンデータ580は、出力端子4360および入出力端子4370の各端子を特定するポート番号5810と、コマンドデータ520を参照して特定されたモード番号5820と、階調パターンを構成する階調値を再生する順序を示す再生順序5830と、階調パターンを構成する階調値をパルス幅で示す再生階調値5840とを備える。
図10の例は、図7に示したコマンドデータ520に格納された「0」のポート番号5210に対応する階調コマンドに基づいて、階調パターンデータ580に階調パターンが格納される様子を示す。図7に示す例では、「0」のポート番号5210に対応する階調コマンドは、階調値テーブル番号5220が「0」のデータと、配列テーブル番号5230が「0」のデータと、開始配列番号5240が「0」のデータと、終了配列番号5250が「3」のデータと、階調歩進値5260が「1」のデータと、モード番号5270が「1」のデータとを含む。
図10の説明に戻り、パターン生成回路4330は、モード番号5270が「1」であることを判断した後(ステップS1310)、「0」の階調値テーブル番号5410で特定される階調値テーブル540を特定すると共に(ステップS1322)、「0」の配列テーブル番号5610で特定される配列テーブル560を特定する(ステップS1324)。その後、パターン生成回路4330は、開始配列番号5240である「0」の配列番号5620に対応する対応階調番号5630が「0」であることから、「0」の階調番号5420に対応する階調値5430に格納された「0」を再生階調値5840に格納する(ステップS1344)。その際に、パターン生成回路4330は、階調歩進値5260を「n」とした場合に「n+1」回、階調値5430を再生階調値5840に格納する(ステップS1344)。図10の例では、階調歩進値5260が「1」であることから、パターン生成回路4330は、「2」回、階調値5430を再生階調値5840に格納することによって、階調パターンデータ580の再生順序「0」および「1」に対応する再生階調値5840には、階調値5430に指定された「0」がそれぞれ格納される。その後、パターン生成回路4330は、終了配列番号5250である「3」までの後続の配列番号5620について同様に処理を行うことによって、階調パターンデータ580に階調パターンが格納される(ステップS1344)。
図9の説明に戻り、一方、モード番号5270が「0」である場合には(ステップS1310)、パターン生成回路4330は、コマンドデータ520における階調値テーブル番号5220を参照して、対象のポート番号5210に対応する階調値テーブル540を特定する(ステップS1362)。その後、パターン生成回路4330は、コマンドデータ520を参照して、対象のポート番号5210に対応するモード0階調番号5280を特定する(ステップS1364)。その後、パターン生成回路4330は、モード0階調番号5280に対応する階調値テーブル540の階調値5430を含む階調パターンデータ580を生成し(ステップS1366)、生成した階調パターンデータ580を階調パターン記憶部4350に格納する(ステップS1370)。本実施例では、階調パターン記憶部4350に格納される階調パターンデータ580は、モード番号5820を含む。
図11は、階調パターンデータ580のモード番号5270が「0」である場合に、パターン生成処理(S130)によって階調パターンデータ580に階調パターンが格納される様子の一例を示す説明図である。図11の例は、図7に示したコマンドデータ520に格納された「2」のポート番号5210に対応する階調コマンドに基づいて、階調パターンデータ580に階調パターンが格納される様子を示す。図7に示す例では、「2」のポート番号5210に対応する階調コマンドは、階調値テーブル番号5220が「7」のデータと、モード番号5270が「0」のデータと、モード0階調番号5280が「31」のデータとを含む。
図9の説明に戻り、パターン生成回路4330は、モード番号5270が「0」であることを判断した後(ステップS1310)、「7」の階調値テーブル番号5410で特定される階調値テーブル540を特定する(ステップS1362)。その後、パターン生成回路4330は、モード0階調番号5280が「31」であることを特定する(ステップS1364)。その後、パターン生成回路4330は、モード0階調番号5280と同じ「31」を示す階調番号5420に対応する階調値5430に指定された「2500」を再生階調値5840に格納する(ステップS1366)。
図12は、階調パターンデータ580のモード番号5820が「0」の場合に、階調制御LSI4300のパルス制御回路4355によって出力されるLED駆動電流の一例を示す説明図である。図12の例に示す階調パターンデータ580は、ポート番号5810に「30」を示すデータと、モード番号5820に「0」を示すデータと、「0」を示す再生順序5830に対応付けられた再生階調値5840に「1500」を示すデータとを含む。
階調制御LSI4300のパルス制御回路4355は、図12の例に示す階調パターンデータ580に基づいて、ポート番号5810に示された「30」に対応する出力端子4360または入出力端子4370にLED駆動電流を出力する。パルス制御回路4355は、図12の例に示す階調パターンデータ580がパターン生成回路4330によって更新されると、その階調パターンデータ580が次に更新されるまで、再生階調値5840に示された「1500」μsのパルス幅のLED駆動電流を4ms毎に繰り返し出力する(タイミングt100,t110,...)。
図13は、階調パターンデータ580のモード番号5820が「1」の場合に、階調制御LSI4300のパルス制御回路4355によって出力されるLED駆動電流の一例を示す説明図である。図13の例に示す階調パターンデータ580は、ポート番号5810に「31」を示すデータと、モード番号5820に「1」を示すデータと、「0」を示す再生順序5830に対応付けられた再生階調値5840に「500」を示すデータと、「1」を示す再生順序5830に対応付けられた再生階調値5840に「1500」を示すデータと、「2」を示す再生順序5830に対応付けられた再生階調値5840に「2500」を示すデータと、「3」を示す再生順序5830に対応付けられた再生階調値5840に「3500」を示すデータとを含む。
階調制御LSI4300のパルス制御回路4355は、図13の例に示す階調パターンデータ580に基づいて、ポート番号5810に示された「31」に対応する出力端子4360または入出力端子4370にLED駆動電流を出力する。パルス制御回路4355は、図13の例に示す階調パターンデータ580がパターン生成回路4330によって更新されると、「0」を示す再生順序5830に対応付けて再生階調値5840に示された「500」μsのパルス幅のLED駆動電流を出力する(タイミングt200)。その後、パルス制御回路4355は、再生順序5830の値が小さい順に、「1500」μs,「2500」μs,「3500」μsのパルス幅のLED駆動電流を4ms毎に出力する(タイミングt210,t220,t230)。再生順序5830の全てに対応するパルス幅のLED駆動電流が出力された後、パルス制御回路4355は、階調パターンデータ580が次に更新されるまで、再生順序5830の値が小さい順に、「500」μs,「1500」μs,「2500」μs,「3500」μsのパルス幅のLED駆動電流を4ms毎に繰り返し出力する(タイミングt240,t250,t260,t270,t280,t290,...)。
図14は、階調パターンデータ580のモード番号5820が「2」の場合に、階調制御LSI4300のパルス制御回路4355によって出力されるLED駆動電流の一例を示す説明図である。図14の例に示す階調パターンデータ580は、ポート番号5810に「32」を示すデータと、モード番号5820に「2」を示すデータと、「0」を示す再生順序5830に対応付けられた再生階調値5840に「500」を示すデータと、「1」を示す再生順序5830に対応付けられた再生階調値5840に「1500」を示すデータと、「2」を示す再生順序5830に対応付けられた再生階調値5840に「2500」を示すデータと、「3」を示す再生順序5830に対応付けられた再生階調値5840に「3500」を示すデータとを含む。
階調制御LSI4300のパルス制御回路4355は、図14の例に示す階調パターンデータ580に基づいて、ポート番号5810に示された「32」に対応する出力端子4360または入出力端子4370にLED駆動電流を出力する。パルス制御回路4355は、図14の例に示す階調パターンデータ580がパターン生成回路4330によって更新されると、「0」を示す再生順序5830に対応付けて再生階調値5840に示された「500」μsのパルス幅のLED駆動電流を出力する(タイミングt300)。その後、パルス制御回路4355は、再生順序5830の値が小さい順に、「1500」μs,「2500」μs,「3500」μsのパルス幅のLED駆動電流を4ms毎に出力する(タイミングt310,t320,t330)。再生順序5830の全てに対応するパルス幅のLED駆動電流が出力された後、パルス制御回路4355は、階調パターンデータ580が次に更新されるまで、再生順序5830のうち最も大きな値であり最後に出力した「3」の再生順序5830に対応する「3500」μsのパルス幅のLED駆動電流を4ms毎に繰り返し出力する(タイミングt340,t350,t360,t370,t380,t390,...)。
B−2.周辺制御基板420の動作:
図15は、周辺制御基板420の周辺制御CPU4210によって実行される周辺制御処理を示すフローチャートである。周辺制御基板420の周辺制御CPU4210は、周辺制御基板420に電源が投入されると図15の周辺制御処理を開始する。
周辺制御基板420の周辺制御CPU4210は、図15の周辺制御処理を開始すると、初期設定を行った後(ステップS410)、周辺制御処理の進行状況を示す16msフラグが「1」にセットされているか否かを判断する(ステップS420)。本実施例では、16msフラグは、初期設定時に(ステップS410)、「1」にセットされる。
16msフラグが「1」にセットされている場合には(ステップS420)、周辺制御CPU4210は、16msフラグを「0」にセットした後(ステップS430)、周辺制御処理の進行状況を示す定常処理中フラグを「1」にセットする(ステップS440)。本実施例では、定常処理中フラグは、初期設定時に(ステップS410)、「0」にセットされる。定常処理中フラグが「1」にセットされた後(ステップS440)、周辺制御CPU4210は、16ms間隔で実施される16ms定常処理(ステップS460)を実行する。16ms定常処理(ステップS460)が実行された後、周辺制御CPU4210は、定常処理中フラグを「0」にセットして、16msフラグが「1」にセットされているか否かの判断(ステップS420)からの処理を繰り返し実行する。
図16および図17は、周辺制御処理(図15)における16ms定常処理(ステップS640)の詳細を示すフローチャートである。周辺制御基板420の周辺制御CPU4210は、16ms定常処理(ステップS640)を開始すると、16ms定常処理の実行回数を示すプロセスカウンタをインクリメントする(ステップS4601)。本実施例では、プロセスカウンタは、初期設定時に(ステップS410)、「0」にセットされる。プロセスカウンタがインクリメントされた後(ステップS4601)、周辺制御CPU4210は、16ms定常処理(ステップS640)の経過時間を計る処理時間タイマをスタートし(ステップS4602)、WDT4211による周辺制御CPU4210の監視を有効にする(ステップS4604)。その後、周辺制御CPU4210は、パチンコ機10が出荷検査を受けている状態であると判断すると(ステップS4606)、出荷検査に応じたテスト処理を実行する(ステップS4608)。
一方、出荷検査の状態ではないと判断した場合には(ステップS4606)、周辺制御CPU4210は、パネル電飾基板430における階調制御LSI4300の入力レジスタ4344に格納されているセンサ入力データを、電飾インタフェース4226を介して取得し、取得したセンサ入力データをセンサ入力受信バッファ4240に格納する(ステップS4610)。その後、周辺制御CPU4210は、電飾送信バッファ4262,4264に格納されているデータをパネル電飾基板430に転送するデータ転送の開始を電飾インタフェース4226に指示する(ステップS4620)。
その後、周辺制御CPU4210は、スピーカ34,55で出力される音声を規定した音源データを、分配インタフェース4228を介してスピーカ34,55に対して転送する(ステップS4632)。本実施例では、16ms定常処理(ステップS640)を実行する毎に、スピーカ34,55に対する音源データの転送が実施されることによって、スピーカ34,55における音源データは絶えず上書きされる。これによって、電気的ノイズによって音源データが破壊された場合であっても、音源データを早急に復旧することができる。
音源データが上書きされた後(ステップS4632)、周辺制御CPU4210は、液晶インタフェース4224を介してLCDユニット42から受信した信号に基づいてLCDユニット42の動作状態を検査し(ステップS4634)、LCDユニット42の動作状態が異常である場合には、LCDユニット42に内蔵され映像データを格納するRAM(図示しない)をクリアする(ステップS4636)。
LCDユニット42の動作状態が検査された後(ステップS4634,S4636)、周辺制御CPU4210は、主制御基板410から受け取り主コマンド受信バッファ4230に格納されている主コマンドを解析するコマンド解析処理(ステップS4640)を実行する。その後、周辺制御CPU4210は、遊技球の払い出し状態をLCDユニット42やLED562に反映させるために払出制御基板310から主制御基板410を介して受け取ったデータを解析する払出状態判定処理(ステップS4645)を実行する。その後、周辺制御CPU4210は、センサ入力受信バッファ4240に格納されている磁気センサ(図示しない)などによるセンサ入力データを解析するセンサ解析処理(ステップS4650)を実行する。その後、周辺制御CPU4210は、センサ入力受信バッファ4240に格納されている演出センサ36,47のセンサ入力データを解析する演出ボタン解析処理(ステップS4655)を実行する。その後、周辺制御CPU4210は、パネル電飾基板430や周辺分配基板440に転送するデータを、電飾送信バッファ4262,4264や分配送信バッファ4270に格納する転送データ準備処理(ステップS4660)を実行する。本実施例では、転送データ準備処理(ステップS4660)において、パネル電飾基板430に転送されるデータは、プロセスカウンタが奇数の場合には電飾送信バッファ4262に格納され、プロセスカウンタが偶数の場合には電飾送信バッファ4264に格納される。
転送データ準備処理(ステップS4660)を終えた後、周辺制御CPU4210は、WDT4211による周辺制御CPU4210の監視を無効にする(ステップS4670)。その後、周辺制御CPU4210は、電飾インタフェース4226によるパネル電飾基板430に対するデータ転送が完了した場合に(ステップS4680)、処理時間タイマの値に基づく残り処理時間に応じたデータ量で、パネル電飾基板430に対する上書きデータの転送を電飾インタフェース4226に指示して(ステップS4690)、図16および図17の16ms定常処理(ステップS640)を終了する。本実施例では、残り処理時間に応じて転送される上書きデータは、パネル電飾基板430におけるコマンドデータ520,階調値テーブル540,配列テーブル560に格納されるデータを含む。
図18は、周辺制御基板420の周辺制御CPU4210によって実行される主コマンド割り込み処理を示すフローチャートである。周辺制御基板420の周辺制御CPU4210は、主制御基板410から割り込み信号を受信すると(ステップS510)、実行中の処理を一時中断して、図18の主コマンド割り込み処理を開始する。その後、周辺制御CPU4210は、主制御インタフェース4222を介して主制御基板410からの主コマンドを主コマンド受信バッファ4230に格納した後(ステップS520)、図18の主コマンド割り込み処理を終了する。その後、周辺制御CPU4210は、図18の主コマンド割り込み処理を開始する際に中断した処理の実行を再開する。
図19は、周辺制御基板420の周辺制御CPU4210によって実行される転送バッファ空き割り込み処理を示すフローチャートである。周辺制御基板420の周辺制御CPU4210は、シリアル転送バッファ4227に格納されたデータのシリアル転送が完了したことを示すバッファ空き信号を受け取ると(ステップS610)、実行中の処理を一時中断して、図19の転送バッファ空き割り込み処理を開始する。本実施例では、周辺制御CPU4210は、図19の転送バッファ空き割り込み処理よりも、図18の主コマンド割り込み処理を優先的に実行する。
周辺制御CPU4210は、バッファ空き信号を受け取った後(ステップS610)、16ms定常処理(図16,図17,ステップS4601)でインクルメントされるプロセスカウンタの値に応じて(ステップS620)、プロセスカウンタが偶数の場合には電飾送信バッファ4262を選択し(ステップS624)、プロセスカウンタが奇数の場合には電飾送信バッファ4264を選択する(ステップS622)。これによって、先回終了した16ms定常処理(ステップS640)における転送データ準備処理(ステップS4660)によってデータが格納された方の電飾送信バッファが選択される。
図20は、周辺制御基板420が備える電飾送信バッファ4262,4264の記憶領域を模式的に示す説明図である。電飾送信バッファ4262,4264は、電飾インタフェース4226のシリアル転送バッファ4227へのデータの受け渡しを管理するカウンタを記憶する転送カウンタ領域Acと、転送データ準備処理(図16,ステップS4660)によって書き込まれた調光データを記憶する転送データ領域Adとを備える。転送カウンタ領域Acには、転送データ準備処理(ステップS4660)によって転送データ領域Adに書き込まれた調光データの総数を示すライトカウンタCwと、電飾インタフェース4226のシリアル転送バッファ4227に引き渡された調光データの数を示すリードカウンタCrとが記憶される。図20に示す電飾送信バッファ4262,4264は、転送データ準備処理(ステップS4660)によって調光データが書き込まれた状態を示す。図20の例では、転送データ領域Adには、k個(kは自然数)の調光データD0〜Dkが記憶され、転送カウンタ領域AcのライトカウンタCwは、調光データD0〜Dkの総数を示す「k」の値を有し、転送カウンタ領域AcのリードカウンタCrは、調光データをシリアル転送バッファ4227に引き渡す前であることを示す「0」の値を有する。本実施例では、調光データD0〜Dkの各々は、8バイトのデータである。
図19の説明に戻り、周辺制御CPU4210は、電飾送信バッファを選択した後(ステップS622,S624)、選択した電飾送信バッファにおいてリードカウンタCrの値がライトカウンタCwの値より大きいか否か、すなわち、転送データ領域Adに記憶された調光データの全てがシリアル転送バッファ4227に引き渡されたか否かを判断する(ステップS630)。リードカウンタCrの値がライトカウンタCwの値より大きい場合には、周辺制御CPU4210は、図19の転送バッファ空き割り込み処理を終了する。その後、周辺制御CPU4210は、図19の転送バッファ空き割り込み処理を開始する際に中断した処理の実行を再開する。
一方、リードカウンタCrの値がライトカウンタCwの値より小さい場合には、周辺制御CPU4210は、リードカウンタCrの値が示す調光データを読み出す(ステップS640)。図20の例では、リードカウンタCrの値が「0」の場合には、転送データ領域Adの調光データD0が読み出され、リードカウンタCrの値が「1」の場合には、転送データ領域Adの調光データD1が読み出され、リードカウンタCrの値が「k」の場合には、転送データ領域Adの調光データDkが読み出される。
図19の説明に戻り、周辺制御CPU4210は、調光データを読み出した後(ステップS640)、電飾インタフェース4226のシリアル転送バッファ4227が空いていることを確認する(ステップS650)。周辺制御CPU4210は、シリアル転送バッファ4227の空きを確認した後(ステップS650)、読み出した調光データをシリアル転送バッファ4227に格納する(ステップS660)。その後、周辺制御CPU4210は、リードカウンタCrの値をインクリメントした後(ステップS670)、図19の転送バッファ空き割り込み処理を終了する。その後、周辺制御CPU4210は、図19の転送バッファ空き割り込み処理を開始する際に中断した処理の実行を再開する。
図21は、周辺制御基板420の周辺制御CPU4210によって実行される2msタイマ割り込み処理を示すフローチャートである。周辺制御基板420の周辺制御CPU4210は、2msタイマ割り込み処理(図21)の開始タイミングを計る2msタイマが2msの経過を示すと、実行中の処理を一時中断して、図21の2msタイマ割り込み処理を開始する。本実施例では、周辺制御CPU4210は、図21の2msタイマ割り込み処理よりも、転送バッファ空き割り込み処理(図19)、および主コマンド割り込み処理(図18)を優先的に実行する。
周辺制御CPU4210は、2msタイマ割り込み処理(図21)を開始すると、モータ出力処理(ステップS710),センサ入力処理(ステップS720),液晶コマンド送信処理(ステップS730)を実行する。本実施例では、周辺制御CPU4210は、パチンコ機10が出荷検査を受けている状態であると判断すると(ステップS706)、モータ出力処理(ステップS710),センサ入力処理(ステップS720),液晶コマンド送信処理(ステップS730)の実行をキャンセルする。
モータ出力処理(ステップS710)は、転送データ準備処理(図16のステップS4660)で分配送信バッファ4270に格納したデータのうち、演出駆動部45を駆動するモータ出力データを、分配インタフェース4228を介して演出駆動部45に送信する処理を含む。センサ入力処理(ステップS720)は、センサ入力受信バッファ4240に記憶された種々のセンサ入力データをRAM4214に読み込む処理を含む。液晶コマンド送信処理(ステップS730)は、液晶コマンド送信バッファ4250に格納したデータを、液晶インタフェース4224を介してLCDユニット42に送信する処理を含む。液晶コマンド送信処理(ステップS730)の詳細については後述する。
周辺制御CPU4210は、モータ出力処理(ステップS710),センサ入力処理(ステップS720),液晶コマンド送信処理(ステップS730)の後、2msタイマをリセットする(ステップS740)。その後、周辺制御CPU4210は、先回実行した16ms定常処理(図15のステップS460、図16および図17)の開始から16msを経過したか否かを判断する(ステップS750)。16msを経過している場合には(ステップS750)、周辺制御CPU4210は、16msフラグを「1」にセットする(ステップS755)。その後、周辺制御CPU4210は、定常処理中フラグが「0」にセットされている場合、すなわち16ms定常処理(図15のステップS460、図16および図17)が実行途中でない場合には(ステップS760)、バックアップ処理(S765)を実行する。本実施例では、バックアップ処理(S765)において、周辺制御CPU4210の作業領域が、バックアップ電源を備えた記憶装置(図示しない)に保存される。一方、16msを経過していない場合(ステップS750)、定常処理中フラグが「1」にセットされている場合(ステップS760)、バックアップ処理(S765)を終えた場合には、周辺制御CPU4210は、2msタイマ割り込み処理(図21)を終了した後、2msタイマ割り込み処理(図21)を開始する際に中断した処理の実行を再開する。
図22は、2msタイマ割り込み処理(図21)における液晶コマンド送信処理(ステップS730)の詳細を示すフローチャートである。周辺制御CPU4210は、液晶コマンド送信処理(図22、ステップS730)を開始すると、LCDユニット42が液晶コマンドを受け取った際に出力する液晶ACK信号がタイムアウトした場合には(ステップS7310)、LCDユニット42に先回送信した液晶コマンドを再送する液晶コマンド再送処理(ステップS7320)を実行する。その後、周辺制御CPU4210は、液晶インタフェース4224が液晶コマンドを送信中ではない場合であって(ステップS7340)、液晶コマンド送信バッファ4250が更新されている場合には(ステップS7350)、LCDユニット42に対する液晶コマンドの送信開始を液晶インタフェース4224に指示する送信開示処理(ステップS7360)を実行する。液晶インタフェース4224が液晶コマンドを送信中である場合(ステップS7340)、液晶コマンド送信バッファ4250が更新されていない場合(ステップS7350)、送信開始処理(ステップS7360)を終えた場合には、周辺制御CPU4210は、液晶コマンド送信処理(図22、ステップS730)を終了する。
以上説明したパチンコ機10によれば、周辺制御CPU4210の定時割り込みの周期に依存することなく、周辺制御CPU4210からの階調コマンドに基づいてLED462の階調パターンを示す階調パターンデータ580を設定することができるため、パチンコ機10におけるLED462の階調表現の滑らかさを向上させることができる。また、複数の階調値テーブル540と複数の配列テーブル560との組み合わせによって複数の階調パターンを生成することができるため、限られた記憶容量でより多くの階調パターンを階調制御LSI4300に記憶することができる。また、階調値テーブル540および配列テーブル560を遊技の進行に応じて更新することができるため、遊技の進行に応じたLED462による多彩な階調表現を実現することができる。また、階調コマンドに含まれるモード番号5270に基づいてパルス制御回路4355による階調パターンの再生態様を変化させることができるため、階調パターンを用いた多彩な階調表現を実現することができる。
C.その他の実施形態:
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。例えば、本発明の適用は、LEDを備えた遊技機であれば良く、パチンコ機に限らず、アレンジボールやスロットマシンなどの遊技機にも適用することもできる。また、本実施例では、階調制御LSI4300をパネル電飾基板430に搭載する例を示したが、パネル電飾基板430と同様にして、階調制御LSI4300を枠電飾基板450に搭載しても良い。また、階調値テーブル540および配列テーブル560の数量は、一個以上であれば良く、本実施例の数量に限るものではない。
また、階調値テーブル540の各々には、種々のパターンで階調値5430を設定することが可能である。例えば、二つの階調値テーブル540に、階調値「0」から階調値「4000」までの範囲で階調値5430を設定し、一方の階調値テーブル540は、前半部分の階調を密、後半部分の階調を粗くすると共に、他方の階調値テーブル540は、前半部分の階調を粗く、後半部分の階調を密にすることによって、それぞれの階調値テーブル540に同じ配列テーブル560を用いて階調変化の粗密態様の異なった階調パターンデータ580を実現しても良い。また、一方の階調値テーブル540を、他方の階調値テーブル540における階調値5430の並びを逆にしたものとすることによって、それぞれの階調値テーブル540に同じ配列テーブル560を用いて階調変化が正反対の階調パターンデータ580を実現しても良い。
また、本実施例では、パターン生成回路4330は、階調パターンデータ580の全体を一括して生成し(ステップS1344,1366)、一連の階調値から成る階調パターンデータ580を階調パターン記憶部4350に格納することとしたが(ステップS1370)、他の実施形態として、パターン生成回路4330は、パルス制御回路4355におけるLED駆動電流の出力毎に、各出力端子で出力すべき階調値を一つずつ生成し、生成した各出力端子の階調値を一つずつ階調パターン記憶部4350に格納しても良い。これによって、階調パターン記憶部4350の記憶容量を抑制することができる。
また、本実施例では、パターン生成回路4330は、複数のアップダウンカウンタおよび複数のレジスタによって階調制御LSI4300に構成された回路としたが、他の実施形態として、パターン生成回路4330の機能を、ソフトウェアに基づいて動作するCPUで実現しても良い。