初心者のソフト作成                             
 
1.PIC12Fソフトウェアの作成  
 ソフトウェアを開発するためには、C言語などの言語設計を行いコンパイラにより行う方法と、アッセンブラで記述しコンパイルする方法の2通りがありますが、簡単なソフトを作るのであればアッセンブラでMICROCHIPのMPLAB_IDEを使用するだけでソフトを作ることができます。
これまでに勉強する為にいくつかのソフトを作って見ましたので参考に掲載して行こうと思います。
LEDランプの点滅動作 
   PIC12F675を使用してLEDランプを点滅させたり点灯させたりSWにより切り換えます。
下に回路図と基板写真を載せておきます。(LEDは基板上には載せていません。)
sw1により点灯/点滅を切り換え,sw2にてLEDのon/offの切り替えを行います。
アッセンブラによるプログラム例
; <LEDランプコントロール>

;PIC12F675のピン配
;
;Pin1 Vdd      ;電源;5V
;Pin2 GP5     ;out
;Pin3 GP4     ;out
;Pin4 GP3     ;未使用
;Pin5 GP2     ;out
;Pin6 GP1     ;LED ON/OFF
;Pin7 GP0     ;点灯/点滅  
;Pin8 Vss      ;GND

list p=12f675         ; 翻訳時にリストファイルを作ります
#include <p12f675.inc>  ; 12F675用定義ファイルを読み込みます
errorlevel -302       ; 翻訳時に302エラーが出ないようにします

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

__CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
ORG 000H
GOTO INIT

FLAG    EQU 20H
TIMER    EQU 21H
KEISAN1  EQU 22H
KEISAN2  EQU 23H

; 初期化ルーチン

INIT:
BCF STATUS,RP0     ;BANK 0
CLRF GPIO
MOVLW B'00000111'   ;コンパレータは使用しません
MOVWF CMCON ;
BSF STATUS,RP0     ;BANK 1
MOVLW B'00000011'   ;INPUT GP0 GP1 / OUTPUT GP2 GP4 GP5
MOVWF TRISIO       ;入出力の設定
MOVLW B'10000111'   ;T0CSは'0'、GP2は出力ピン
MOVWF OPTION_REG   ;OPTIONレジスタに書き込みます
CLRF ANSEL        ;アナログ入力不使用
BCF STATUS,RP0     ;BANK 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CLRF FLAG         ;フラグ初期化

;FLAG
LEDON EQU 0       ;ONフラグ
GOTO MAIN1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN1            ;初期設定
CLRF GPIO         ;LEDを消灯します
BCF STATUS,C      ;Cフラグを0にします
MOVLW B'11111111'
MOVWF TIMER

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN2
BTFSC GPIO,0     ;点灯/点滅_SW
GOTO MAIN3
BTFSC GPIO,1     ;ON/OFF_SW
GOTO MAIN2_5
CLRF GPIO       ;LED消灯
NOP
MOVF TIMER,W
MOVWF KEISAN1
MAIN2_1
CALL TIM
GOTO MAIN2

MAIN2_5
BSF GPIO,4      ;LED点灯
BSF GPIO,5      ;LED点灯
BCF STATUS,C    ;Cフラグを0にする
MAIN2_6
CALL TIM
GOTO MAIN2

MAIN3         ;点滅動作
BTFSC FLAG,LEDON
GOTO MAIN3_ON
GOTO MAIN3_OFF ;


MAIN3_ON
BSF GPIO,4     ;LED点灯
BSF GPIO,5     ;LED点灯
CALL TIM
BCF FLAG,LEDON
GOTO MAIN2

MAIN3_OFF
BCF GPIO,4     ;LED消灯
BCF GPIO,5     ;LED消灯
CALL TIM
BSF FLAG,LEDON
GOTO MAIN2
TIM
MOVF TIMER,W
MOVWF KEISAN1
TIM1
MOVF TIMER,W
MOVWF KEISAN2
TIM2
NOP
NOP
NOP
DECFSZ KEISAN2,F
GOTO TIM2
DECFSZ KEISAN1,F
GOTO TIM1
RETURN

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END
  このプログラムをMPLABによりコンパイルし、マイコンに書き込むためのHEXファイルを作ります。
 後は、ライターで書き込めば完成です。
   LEDC1.hex を一応アップしておきます。
 まだ素人なのでこんな程度です!
2.PIC10Fソフトの制作  
PIC10F222を使用してデジタル入力デジタル出力で使用する場合のソフトの頭の部分です。
GPIOの設定(入力・出力)のしかたがPIC12Fとは異なります。(上の記述ではコンパイルできない)
222はA/D付なのでデジタル入力にするためには12F675と同様にアナログ入力を使用しない設定が必要です。
 2014/12/31 UP
  list p=10F222
  #include <p10F222.inc>
  __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IOFSCS_4MHZ

  org 00h

aaa  EQU  0x10
bbb  EQU  0x11
ccc  EQU  0x12
ddd  EQU  0x13

  movwf   OSCCAL
  movlw   b'10001000'
  OPTION
  movlw   b'1010'
  tris     GPIO
  movlw   b'00000000'
  movwf   ADCON0
   

M.I.の趣味の部屋