PIC LEDのオンオフ
その後秋葉原で16F819を2個購入しました。16F84Aに比べ大幅な性能アップのようです、まだ早そうですが16F819を使ってLEDの「チカチカ・マーカー」の実験をしました。これって単なるLEDの点滅だけですが購入して動かなかったら困るのでここから始めることにしました。
機能があり過ぎて使いこなすには相当時間が掛かりそうです。始め20MHzの水晶で動かす気になったのですが、なぜかまったく動きません(理由不明、マニアルには20MHzUPのようにあったが・・・)。
その後、10MHzのセラロックと交換したら作動した。そして自己発振の8MHzから試し、現在は1MHz動作としてLEDを見ている。当然1/4の250KHz動作で、5Vでもかなり省エネ動作をしている。
レギュレータの方が大幅に電気を喰っている感じ! PICはなんと0.32mAと驚きの省エネでした。これって面白そう!ハードはRB0とアース間に「1KΩの抵抗を間に入れてLEDを付けた」だけ(写真、自己発振はセラロックの配線を外している)。5Vのレギュレータを付け7V以上で動作。
2007/JAN/18
----- プログラム -----
;******************************************** ;LED ON OFF ;2007/1/16 ; JA1HWO list P=PIC16F819 ; include "P16F819.inc" ; ;******************************************** cnt1 equ 0x20 ;for Wait cnt2 equ 0x21 ;for Wait org 0 goto begin begin BANKSEL PORTA ; select bank of PORTA CLRF PORTA ; Initialize PORTA by ; clearing output banksel ADCON1 ;Bank1 movlw 0x40 ;INTRC=1MHz(8MHz=0x70) movwf OSCCON ;set movlw 0x06 ;Configure all pins movwf ADCON1 ; as digital inputs clrf TRISA ;0=output 1=Input clrf TRISB ;all output banksel PORTB clrf PORTB ;LED OFF movlw D'03' ; movwf PORTA ;8LED on ;******************** from LED ON-OFF ****************** begin2 movlw D'01' ;ON movwf PORTB call wait ;0.2S be3 movlw D'0' ;OFF movwf PORTB call wait ;0.2S goto begin2 ;Loop wait ;20MHz step=0.2uS movlw d'250' ;0.398mS*250=99.5mS movwf cnt2 wloop1 movlw d'249' movwf cnt1 wloop2 nop ;1 8*249+1=1993(398.6uS) nop ;1 nop ;1 nop ;1 nop ;1 decfsz cnt1 ;1 goto wloop2 ;2 decfsz cnt2 ;1 goto wloop1 ;2 return end
もどる [MAIN MENU]