ランタンLED流用 [電子工作]
久しぶりの電子工作
まだ環境が十分でないので、簡単なところで、18ピン16F1827が秋月で110円と安価なので試してみる。書き込み器PICKit2のAP,デバイスファイルを更新して新デバイスが使える様になった。
MPLAB IDE(V8.30)
HI-TECH C Compiler for PIC10/12/16 MCUs Version 9.83
PICKIT2 2.61
Device 1.62.01
Firmware 2.32
100ショップダイソーにて4LEDランタン購入。16F1827にて、4個のLEDを順次on/offするようにする。ランタンを分解し、LEDパターンをカットし、PICと接続。ランタン組み込みはこれから。
/*******************************************************************************
* タイマー割込みを使って4個のLEDを順に点滅 *
* PIC 16F1827 *
* MPLAB IDE(V8.30) *
* HI-TECH C Compiler for PIC10/12/16 MCUs Version 9.83 in Lite mode *
*******************************************************************************/
#include
int Count ; //Int count
int LEDcnt; //LED count
// config 1
__CONFIG(CLKOUTEN_OFF & FOSC_INTOSC & FCMEN_OFF & IESO_OFF & BOREN_ON &
PWRTE_ON & WDTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF) ;
// config 2
// PLLEN_OFF
// STVREN_ON
// LVP_OFF
// WRT_OFF
// BORV_HI
__CONFIG(PLLEN_OFF & STVREN_ON & WRT_OFF & BORV_HI & LVP_OFF);
/*******************************************************************************
* INT timer *
*******************************************************************************/
void interrupt InterTimer( void )
{
if (TMR2IF == 1) { // Timer2?
Count++ ; //
TMR2IF = 0 ; // Timer2 INTFlag reset
if (Count >= 24) { // 200ms
Count = 0 ;
LEDcnt++;
}
}
}
/*******************************************************************************
* main *
*******************************************************************************/
void main(void)
{
int wk;
OSCCON = 0b01110010 ; // 内部クロックは8MHzとする
ANSELA = 0x00; // AN0-AN4 はデジタルI/Oとする
ANSELB = 0x00; // AN5-AN11はデジタルI/Oとする
TRISA = 0x00; // out port(RA5/MCLは入力)
TRISB = 0x00; // out port
PORTA = 0x00; //
PORTB = 0x00; //
T2CON = 0x07; // TMR2プリスケーラ値を16倍、ポストスケーラ値は1:1の設定
PR2 = 249 ; // タイマーの周期を設定(1000Hzで設定)
TMR2 = 0 ; // タイマー2の初期化
Count = 0 ; // 割込み発生の回数カウンターを0
TMR2IF = 0 ; // タイマー2割込フラグを0
TMR2IE = 1 ; // タイマー2割込みを許可
PEIE = 1 ; // 周辺装置割り込み有効
GIE = 1 ; // 全割込み処理を許可
while(1) {
wk=LEDcnt &0x03;
switch (wk){
case 0:
PORTB=0x10; //RB4
break;
case 1:
PORTB=0x20; //RB5
break;
case 2:
PORTB=0x40; //RB6
break;
case 3:
PORTB=0x80; //RB7
break;
default:
PORTB=0x00;
break;
} // switch
}
}
///////////////////////////////////////////////////////////////////////////////
:0400000080312A28F9
:10000800803120007F08F400911C0B280C2826283A
:100018000130F0070030F13D91107108803AFF007F
:1000280080307F02031D1A2818307002031C1D2817
:100038001E282628F001F1010130F2070030F33DB7
:100048002628262874082000FF000900880180312E
:10005800772872302100990023008C018D0121003E
:100068008C018D0120008C018D0107309C00F93036
:100078009B009A01F001F1019110210091140B17D6
:100088008B1703307205F50000307305F600602801
:10009800103020008D004528203020008D00452894
:1000A800403020008D004528803020008D004528F4
:1000B80020008D01452845287608003A031965284F
:1000C8005C287508003A03194C28013A031950288E
:1000D800033A03195428013A031958285C2845287B
:1000E800452880312A28F001F101F201F3012000AE
:0400F80080312D28FE
:020000040001F9
:04000E0084CFFFDAC2
:00000001FF
まだ環境が十分でないので、簡単なところで、18ピン16F1827が秋月で110円と安価なので試してみる。書き込み器PICKit2のAP,デバイスファイルを更新して新デバイスが使える様になった。
MPLAB IDE(V8.30)
HI-TECH C Compiler for PIC10/12/16 MCUs Version 9.83
PICKIT2 2.61
Device 1.62.01
Firmware 2.32
100ショップダイソーにて4LEDランタン購入。16F1827にて、4個のLEDを順次on/offするようにする。ランタンを分解し、LEDパターンをカットし、PICと接続。ランタン組み込みはこれから。
ダウンロードは🎥こちら
/*******************************************************************************
* タイマー割込みを使って4個のLEDを順に点滅 *
* PIC 16F1827 *
* MPLAB IDE(V8.30) *
* HI-TECH C Compiler for PIC10/12/16 MCUs Version 9.83 in Lite mode *
*******************************************************************************/
#include
コメント 0