|
|
今月は16F627,628のアセンブラと書き込みについてです。
9月号で紹介した、Hファイルを使用して
16F84ファイルを16F628に移植します。
秋月PA用ヘッターファイル 16f6xx.hを作成
ターゲットは16C62でPAでアセンブルできます。
ーーーーーー追加 変更 個所ーーーーー
setb rp0
;clrb oscf ;osc int の設定時 37kHz
setb oscf ;osc int の設定時 4MHz
clrb por ;pow on reset
clrb bor ;boden on
clrb rp0
clr ra
mov cmcon,#7 ;ra I/O not use compareter
mov !ra,#11110001b ;8バイト設定
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
; ロジックチエッカー用
; PIC16F628/16文字×2行対応
; キャラクタ液晶表示プログラム;
; 2003年5月6日 山原
; 使用環境
; PIC PIC16F628(それ以外にも応用可能)
; 液晶 M1632,M1672,SC1602B等
; クロック 10.0MHz
; ◆PIC16F84用を16F628に移植します。、
; 一部改造すればそれ以外のデバイスでも使用可能です。
; ◆20文字や4行の液晶にも応用できます。
; ◆クロックは10MHzを想定してあります。それ以外のクロックでは
; ウェイト数を多少変更してください。
;
include 16f6xx.h ; ここでは16F828を選択
.osc hs ; オシレータXT
.wdt off ; ウォッチドッグOFF
.pwrt on ; パワーアップタイマON
.protect off ; プロテクトOFF
id 1505h
;btime equ 33 ; 9600bps @4.19MHz
btime equ 83 ; 9600bps @10MHz
txd equ ra.0 ;rs232c ch1
rxd equ ra.1
E equ ra.3
RS equ ra.2
;org 0ch
;---------------------------------
org 20h;16F62Xは20Hに
;---------------------------------
ch ds 1 ; 送信受信データ(8ビット)
rs ds 1 ; ウェイト時間調整用
cn ds 1 ; ビット数
wait_cn ds 1
wait_cn2 ds 1
rxdt ds 1
dd ds 4
org 0
goto start
org 4
retfie
start clr dd[0]
clr dd[1]
mov dd[2],#3
start1 nop
nop
djnz dd[0],start1
djnz dd[1],start1
djnz dd[2],start1
;------ 16F62X設定
setb rp0
;clrb oscf ;osc int の設定時 37kHz
;setb oscf ;osc int の設定時 4MHz 今回は HS
clrb por ;pow on reset
clrb bor ;boden on
clrb rp0
clr ra
mov cmcon,#7 ;ra I/O not use compareter
mov !ra,#11110010b ;16F628は8バイト設定
;mov !ra,#00010b ; txd,E,RSピンをOUTに,rxd in
http://homepage2.nifty.com/JG1FJC/
|
|