| ■STEP4 解答例 |
以下に示す内容のプログラムを作成し,その「フローチャート」と「ソースコード」を示しなさい.
| プロジェクト名 |
step04 |
| 内容 |
変数 sum と midsum を定義し,sum には 1 から 10 までの総和をループ処理により求める.
midsum には,7を加算した時点の sum の内容(途中結果)を格納する. |
| ◆解答例 |
後判定アルゴリズムを採用した例.
| フローチャート例 |
ソースコード例 |
 |
;***********************************************************
; step04 for PIC16F84A
; step04.asm, H. OSADA, Nov. 2025
;***********************************************************
;
;=================================================
; definitions
;=================================================
;- hardware -----------------------------------
LIST P=PIC16F84A
#INCLUDE "P16F84A.INC"
; __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
;
;- constant label -----------------------------
MAX EQU 00AH
MIN EQU 001H
MID EQU 007H
;
;- file register ------------------------------
CBLOCK 0CH
sum
midsum
counter
ENDC
;
;=================================================
; run start
;=================================================
;- reset start --------------------------------
ORG 0
GOTO INIT
;
;- interrupt start ----------------------------
ORG 4
GOTO ISR
;
;- initialize ---------------------------------
INIT
CLRF sum
CLRF midsum
CLRF counter
;
;=================================================
; main routine
;=================================================
MAIN
INCF counter,F
MOVF counter,W
ADDWF sum,F
XORLW MAX
BTFSC STATUS,Z
GOTO LOOP_END
MOVF counter,W
XORLW MID
BTFSS STATUS,Z
GOTO MAIN
MOVF sum,W
MOVWF midsum
GOTO MAIN
LOOP_END
GOTO LOOP_END
;
;=================================================
; interrupt service routine
;=================================================
ISR
;** procedure
;
;=================================================
; subroutine
;=================================================
;** procedure
;
;***********************************************************
END |
|
|
|
|
|