上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top

自分だけの勝手ですが、最近は毎週末ちょっとした何か作ってアップしようと思ってやっています。マルツのボードはその何かをちょっと動かすのに手軽なので先日から使っています。



(PICマイコン動かすための設定等が誰かの参考になれば幸いかな、程度の思いはあります。)



さて、今回は7セグメントLEDを動かしてみました。



LEDは秋月の↓のものです。10個150円とかなりお安くなっています。



http://akizukidenshi.com/catalog/g/gI-01492/



LEDはこれでなくても良いのですが、PICで動かすにはアノードコモンが良いです。



理由はアノードコモンはPICのIOでLレベルでの引き込みで制御することができること、そしてIOの電流がLレベルの方が大きくとれることからです。(PICに限らず、Lの方が大きな電流を引けるマイコンが多いと思います。)



回路図は下の通りです。電池はボタン電池をやめて単三電池2本としています。



Pic24fj









ソフトは、前回のLEDの物にちょっと手を加えただけです。



#include "P24FJ64GA004.h"



//config
_CONFIG2(0xF9FC);
_CONFIG1(0x3F7F);



//main loop
int main(void)
{



static unsigned char fontdata[] = {
0b00000011,  // 0
0b10011111,  // 1
0b00100101,  // 2
0b00001101,  // 3
0b10011001,  // 4
0b01001001,  // 5
0b01000001,  // 6
0b00011111,  // 7
0b00000001,  // 8
0b00001001,  // 9
0b01111111,  // 10
0b10111111,  // 11
0b11011111,  // 12
0b11101111,  // 13
0b11110111,  // 14
0b11111011,  // 15
0b11111110,  // 16
};



   unsigned int i,t;



   //Setup clock
   OSCCON = 0x11C0;  // FRCPLL
   CLKDIV =  0x0030;  // 1MIPS SETTING



   //IO PORT SETTING

AD1PCFG = 0xffff; // Analog input disable



TRISA = 0x0000; // All output
TRISB = 0x0000; // All output
TRISC = 0x0000; // All output



   //Loop
t=25;



   while(1){
for (i=0;i<=16;i++) {
  Set_Port(fontdata[i]);
  Wait_time(t);
}
t *=2;
   }
}



// IO PORT CONTROL



void Set_Port(unsigned char val) {
PORTCbits.RC1 = val & 0x0001;
PORTCbits.RC0 = (val & 0x0002)>>1;
PORTBbits.RB3 = (val & 0x0004)>>2;
PORTBbits.RB2 = (val & 0x0008)>>3;
PORTBbits.RB1 = (val & 0x0010)>>4;
PORTBbits.RB0 = (val & 0x0020)>>5;
PORTAbits.RA1 = (val & 0x0040)>>6;
PORTAbits.RA0 = (val & 0x0080)>>7;
}



// WAIT LOOP
void Wait_time(unsigned int t) {
int t0,t1;
for (t0=0;t0<t;t0++) {
  for (t1=0;t1<10000;t1++) {
  }
}
}



動作は下の動画でご確認ください。





次は複数LEDのダイナミック動作でもやってみようかな。



それではまたです。




2012.10.21 Sun l PICマイコン l コメント (0) トラックバック (0) l top

コメント

コメントの投稿












トラックバック

トラックバック URL
http://diyelec.blog.fc2.com/tb.php/265-5d2e21d6
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。