7セグメントLED2

nikemaru オーナー 公式アカウント

多桁表示をしようの巻
ログインすると、チェック機能を利用できるようになります。
多桁表示をするにはすべてのセグメントLEDのすべての表示部にポートを割り当てる と、表示するセグメントLEDを一つに固定し、
それを高速に切り替える がある。


今回の場合 (上図のやつ)を用いる
※time_datは表示する数字を格納するグローバル変数。
dig何とかは上の図で言うところのCOM1 , COM2 …です。
接続したセグメントLEDに電流を流すか(表示するか)を決める

このプログラムの場合、ボタンが押されるたびにtime_datが増える。
main(void){
while(1){
if(SW1 == SW_ON){ //ボタンが押されたら
time_dat++;
timer(5); //簡易的なチャタリング対策
while(SW1 == SW_ON); //ボタンが離されるまで
}
}
}
void intTRB(void){ //タイマRB割り込み関数
static keta = 0; //どの桁を表示するか
disp_seg(keta , time_dat);
keta++;
if(keta > 3) keta = 0; //3という数字は何桁表示するかによって決まる
}
void dis_seg(int keta , int num){
dig0=dig1=dig2=dig3=OFF; //いったんすべてのLEDを消す
switch(keta){
case 0:
dig0 = ON;
p1 = seg[num%10];
break;
case 1:
dig1 = ON;
p1 = seg[(num/10)%10];
break;
case 2:
dig2 = ON;
p1 = seg[(num/100)%10];
break;
case 3:
dig3 = ON;
p1 = seg[(num/1000)%10];
break;
}
}

ハードウェア技術 - 2年2学期中間
割り込みとポーリング
割り込みの作り方①
割り込みの作り方②
割り込みの作り方③
割り込みの作り方④
7セグメントLED1
7セグメントLED2
A/Dコンバータ①
A/Dコンバータ②
[ハード]重要そうな単語集(付録)
[英CⅡ]キクタン Day23~Day28