これ↑
七つの数字の表示部とドットの表示部から構成される。
本来は7セグメントデコーダを用いてどの数字でどの表示部を光らせるかを決めるが、
マイコン(制御回路)の場合、表示部一つ一つをポートに割り当てることで楽に表示を制御できる。
今回はp1の8ビットを表示部に割り当てることとします
イメージは次の画像
↓

プログラム内で
const char seg[] = {63,6,91,79,102,109,125,39,127,111}
p1 = seg[(0~9までの数)]とすると、任意の数字を表示できる。(なぜcharなのか?)
↑文字として扱いたいわけではない
一つのセグメントLEDを使ってボタンが押された回数をカウントする
int i=0;
p1 = seg[i];
while(1){
if(SW1 == 1){ //ボタンが押されたら(ポーリングでチェック)
i++;
p1 = seg[i]; //表示を(現在の数字)+1にする。
while(SW1 == 1); //ボタンが離されるまで待つ
}
}
しかしこれだと が発生してよくない。
(ノイズなどで信号が揺れてON,OFFが意図せず高速に切り替わること)
そこでハードウェアでチャタリングを回避しよう!
方法は
で信号を訛らせ、 でそれを綺麗なディジタル信号に変換

または を用いる