キッチンタイマー
ちょっとしたPICの演習,公開講座,体験学習用にPIC12F629 を使ったキッチンタイマーを
作りました.パーツは,
ブレッドボード,電池・電池ボックス・電池スナップ,
PIC12F629,LED,圧電ブザー,スイッチ,抵抗1kと10kΩ
です.
出来上がりはこんな感じ.

動作は,
スイッチを押した回数で秒数設定.
スイッチを1回押すと10秒.(2回で20秒,・・・)
秒数設定後,2秒以上待つとLEDが早く点滅してスタート準備完了.
スイッチを押すとカウントを開始.
指定秒数経ったらブザーがなる.
スイッチでブザー停止,初期状態に戻る.
手書き回路図↓

プログラムリスト
#include "pic.h"
#include "delay.h"
#define TRIM 80 						// trimming for delay time to 100us
__CONFIG(INTIO & WDTDIS & BORDIS & MCLRDIS);
main(){
	// initialize
	unsigned long cnt, i;				// cnt: counter, i: etc
	unsigned char f;					// flag for the end of set process 
	TRIS0=0;							// LED: GPIO0 for digital output 
	TRIS1=0;							// BUZZ: GPIO1 for digital output 
	TRIS2=1;							// SW: GPIO2 for digital input 
	CMCON=0x07;
	while (1){
		// reset LED, BUZZ and counter
		GPIO0=1; 						// LED OFF
		GPIO1=0; 						// BUZZ OFF
		cnt=0;							// reset counter
		
		// set process
		f=0;							// count start flag
		while (!f){
			while (GPIO2);				// wait for SW-ON
			GPIO0=0;					// LED ON			
			cnt+=10;					// 10 sec plus
			DelayUs(TRIM);				// chattering off
			while (!GPIO2);				// wait for SW-OFF
			GPIO0=1;					// LED OFF
			DelayUs(TRIM);
			
			i=0; 
			while (GPIO2){				// count interval while SW-OFF
				DelayUs(TRIM);
				i++;
				if (i>20000){
					f=1;
					break;
				}
			}	
		}
		// wait for start-SW			
		while (GPIO2){					// wait for SW-ON
			GPIO0=0;					// LED ON
			for (i=0;i<500;i++) DelayUs(TRIM);						
			GPIO0=1;					// LED ON
			for (i=0;i<500;i++) DelayUs(TRIM);	
		}
		// count down process
		while (cnt>0){					// count down cnt
			GPIO0=1;					// LED OFF
			for (i=0;i<5000;i++) {
				DelayUs(TRIM);
			}
			GPIO0=0;					// LED OFF
			for (i=0;i<5000;i++) {
				DelayUs(TRIM);
			}
			cnt--;	
		}
		// Timeout, BUZZ and LED ON	
		while (GPIO2){					// wait for stop
			GPIO0=0;					// LED ON
			GPIO1=1;					// BUZZ ON
			for (i=0;i<10;i++) DelayUs(TRIM);						
			GPIO1=0;					// BUZZ OFF
			for (i=0;i<10;i++) DelayUs(TRIM);	
		}
		DelayUs(TRIM);				// chattering off
		while (!GPIO2);				// wait for SW-OFF		
	}
}
プログラムリストほか,MPLABプロジェクトファイルのダウンロード.
これを1クラス分,42個書込んで準備.

![]()
C言語ではじめるPICマイコン
![]()
やさしいPICマイコン電子工作パソコンとつないで遊ぼう
| 
 ESP32 Wifi Bluetooth開発ボード  | 
| 
 Arduino Nano Every  | 
| 
 Raspberry Pi pico  | 
| 
 FPGA XILINX Artix-7  | 
