PICSYS18では、ドットマトリックスLEDを簡単に制御することができます。
ドットマトリックスLEDの表示に必要な継続的なリフレッシュ処理は、PICSYS18が自動的に行います。
exdml1.c: ドットマトリックスLEDの利用
#include "picsys18.h"
void setup()
{
DML_init(SR_DAT, SR_CLK, SEG1, SEG2, SEG3, SEG4) ;
pinMode(SW1, INPUT) ;
pinMode(SW2, INPUT) ;
pinMode(SW3, INPUT) ;
pinMode(SW4, INPUT) ;
pinMode(SW5, INPUT) ;
pinMode(SW6, INPUT) ;
}
int xpos = 0 ;
int ypos = 0 ;
byte color = DML_DOT_ORANGE ;
void loop()
{
delayMilliseconds(100) ;
/* 表示ドットの上下移動 */
if (digitalRead(SW1) == LOW)
ypos += 1 ;
if (digitalRead(SW2) == LOW)
ypos -= 1 ;
/* 表示ドットの左右移動 */
if (digitalRead(SW3) == LOW)
xpos -= 1 ;
if (digitalRead(SW4) == LOW)
xpos += 1 ;
/* 表示ドットの色変更 */
if (digitalRead(SW5) == LOW)
color = DML_DOT_RED ;
if (digitalRead(SW6) == LOW)
color = DML_DOT_GREEN ;
/* 値は0から7 */
if (xpos > 7)
xpos = 7 ;
if (xpos < 0)
xpos = 0 ;
if (ypos > 7)
ypos = 7 ;
if (ypos < 0)
ypos = 0 ;
DML_clear() ; // 一度消して
DML_plot(xpos, ypos, color) ; // 書き直し
}
左の十字ボタンSW1-SW4でドットを上下左右に移動させ、右側のSW5,SW6でドットの色を変更するプログラムです。