- 追加された行はこの色です。
- 削除された行はこの色です。
閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)
【目次】(項目をクリックすると、そこに飛べます)
#contents
~
*発光ダイオード(LED)の点滅 [#x4aa3fb2]
16F886の「Device Flags(CONFIG)」「Configレジスタ」の概要理解と、
実際の稼働確認を目的とし、発光ダイオード(LED)の点滅プログラムを作った。
・内蔵発振器(8MHz)を利用する。
・MCLRはPIC内部プルアップで利用する。
CONFIG1, CONFIG2に関する詳細情報はデータシートの208/288ページ
http://ww1.microchip.com/downloads/jp/DeviceDoc/jp027084.pdf
【結果】無事発光ダイオード(LED)が点滅した。
また、点滅間隔を1秒であり、発振器とプログラムが連動している事を確認した。
08/06/12
※HI-TECH C PRO(Lite mode)のプログラムを追記 08/08/14
|&attachref(P1010641.JPG,zoom,150x150,button){新しい写真添付};|&attachref(16F886.JPG,zoom,150x150,button){新しい写真添付};|
**MikroCのプログラム [#s4191fe0]
/**
* 16F886の稼働テスト 発光ダイオード(LED)の点滅
*
* LED: RC2
* Clock: 8.0MHz 内蔵発振器使用
* Device Flags:
* _INTRC_OSC_NOCLKOUT _WDT_OFF _PWRTE_ON _MCLRE_OFF
* _CP_OFF _CPD_OFF _BOR_OFF _IESO_ON _FCMEN_ON
* _LVP_OFF _DEBUG_OFF _BOR21V _WRT_OFF
*
* MikroC v8.1.0
*/
void main()
{
//PICの初期化
PORTC = 0b00000000; //PortCの中身をきれいにする
OSCCON = 0b01110000; //内蔵発信機 8MHz使用に設定
TRISC = 0b00000000; //PortC 8個全て0:出力設定
//初期化終わり
while (1)
{
PORTC = 0b11111111; //PortC全てをON
Delay_ms(500); //0.5秒待つ
PORTC = 0b00000000; //PortC全てをOFF
Delay_ms(500); //0.5秒待つ
}
}
★この情報は役に立ちましたか?
#vote(はい[14],普通[7],いいえ[7])
#comment_nospam
**HI-TECH C PRO(Lite mode)のプログラム [#x366a049]
/**
* 16F886の稼働テスト 発光ダイオード(LED)の点滅
*
* LED: RC2
*
* HI-TECH C PRO PIC10/12/16 MCU Family(Lite) v9.60
* MPLAB v8.14
*/
#include <htc.h>
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT
& DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS & DEBUGEN);
__CONFIG(BORV21);
//__delay_us(), __delay_ms()へのクロック情報の設定
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 8000000 //PICのクロックをHzで設定
#endif
//関数のプロトタイプ宣言
extern void my_delay_ms(unsigned int x);
void
main(void)
{
unsigned int wait = 500; //待ち時間(ミリ秒)
//PICの初期化
TRISC = 0b00000000; //PORTC全てを0:出力に設定
OSCCON = 0b01110000; //内蔵発振器 8MHz使用に設定
// A/D利用PORTの設定 // ANALOG=1, DIGITAL=0 //
ANSEL = 0b00000000; //AN4-0ピンはデジタルで使用
ANSELH = 0b00000000; //AN13-8ピンはデジタルで使用
PORTC = 0b00000000; //PORTCの中身をきれいにする
//PICの初期化終わり
while (1)
{
//PORTC = 0b11111111; //PortC全てをON
RC2 = 1; //LED(RC2)をON
my_delay_ms(wait); //所定時間待つ
//PORTC = 0b00000000; //PortC全てをOFF
RC2 = 0; //LED(RC2)をOff
my_delay_ms(wait); //所定時間待つ
}
}
void
my_delay_ms(unsigned int x)
{
while (x)
{
__delay_ms(1);
x--;
}
}
★この情報は役に立ちましたか?
#vote(はい[15],普通[1],いいえ[8])
#vote(はい[16],はい[2],はい[41])
- 音を出す(警報等)連続や断続など出すプログラム教えてください。 -- [[PIC入門年金族]] &new{2009-12-01 (火) 12:33:50};
- ある回数点滅したら終わりにする方法教えてください。 -- [[PIC入門年金族]] &new{2009-12-10 (木) 21:49:07};
- 課題研究やってください -- &new{2013-12-27 (金) 14:15:57};
- ある回数点滅したら終わりにする方法教えてください。 -- [[入門年金受給者]] &new{2009-12-10 (木) 21:49:07};
- 課題研究やってください -- &new{2016-12-27 (金) 14:15:57};
- 2015 -- &new{2015-01-13 (火) 18:24:49};
#comment_nospam