FC2ブログ
2019 031234567891011121314151617181920212223242526272829302019 05

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--..-- スポンサー広告 comment(-) trackback(-)

サブルーチンをひとつ【BIN2BCD】きちんと版

先日のこれは様々なことを無視した書き方になっておりましたので、ATmega88できちんと書いてみました。
;
; ATmega88 16BIT HEX->5桁BCD
;
; 変換したい16bit HEXを下位8BitをBIN_Lに上位8BitをBIN_Hにいれておきます。

.include "m88def.inc"

.def BIN_L =R17
.def BIN_H =R18
.def BCD_00 =R19
.def BCD_01 =R20
.def BCD_02 =R21
.def BCD_03 =R22
.def BCD_04 =R23
.def TEMP_16BIT_L =R24
.def TEMP_16BIT_H =R25

.org 0x0000
rjmp RESET
rjmp EXT_INT0
rjmp EXT_INT1
rjmp PCINT0_
rjmp PCINT1_
rjmp PCINT2_
rjmp WDT
rjmp TIM2_COMPA
rjmp TIM2_COMPB
rjmp TIM2_OVF
rjmp TIM1_CAPT
rjmp TIM1_COMPA
rjmp TIM1_COMPB
rjmp TIM1_OVF
rjmp TIM0_COMPA
rjmp TIM0_COMPB
rjmp TIM0_OVF
rjmp SPI_STC
rjmp USART_RXC
rjmp USART_UDRE
rjmp USART_TXC
rjmp ADC_
rjmp EE_RDY
rjmp ANA_COMP
rjmp TWI
rjmp SPM_RDY
;
EXT_INT0:
EXT_INT1:
PCINT0_:
PCINT1_:
PCINT2_:
WDT:
TIM2_COMPA:
TIM2_COMPB:
TIM2_OVF:
TIM1_CAPT:
TIM1_COMPA:
TIM1_COMPB:
TIM1_OVF:
TIM0_COMPA:
TIM0_COMPB:
TIM0_OVF:
SPI_STC:
USART_RXC:
USART_UDRE:
USART_TXC:
ADC_:
EE_RDY:
ANA_COMP:
TWI:
SPM_RDY:
RETI
;

RESET:
LDI BIN_L,0xD2
LDI BIN_H,0x04;今回は0x04D2です。結果は1234

CH10000:
MOV TEMP_16BIT_L,BIN_L
MOV TEMP_16BIT_H,BIN_H

SUBI BIN_L,0x10
SBCI BIN_H,0x27 ;マイナス10000
BRMI PRE1000
INC BCD_04
RJMP CH10000

PRE1000:
MOV BIN_L,TEMP_16BIT_L
MOV BIN_H,TEMP_16BIT_H

CH1000:
MOV TEMP_16BIT_L,BIN_L
MOV TEMP_16BIT_H,BIN_H

SUBI BIN_L,0xE8
SBCI BIN_H,0x03 ;マイナス1000
BRMI PRE100
INC BCD_03
RJMP CH1000

PRE100:
MOV BIN_L,TEMP_16BIT_L
MOV BIN_H,TEMP_16BIT_H

CH100:
MOV TEMP_16BIT_L,BIN_L
MOV TEMP_16BIT_H,BIN_H

SUBI BIN_L,0x64
SBCI BIN_H,0x00 ;マイナス100
BRMI PRE10
INC BCD_02
RJMP CH100

PRE10:
MOV BIN_L,TEMP_16BIT_L

CH10:
MOV TEMP_16BIT_L,BIN_L

SUBI BIN_L,0x0A ;マイナス10
BRMI PRE1
INC BCD_01
RJMP CH10

PRE1:
MOV BIN_L,TEMP_16BIT_L

CH1:
MOV TEMP_16BIT_L,BIN_L

SUBI BIN_L,0x01 ;マイナス1
BRMI END_BCD
INC BCD_00
RJMP CH1

END_BCD:
ここでおしまい
スポンサーサイト
2009..08 電子工作 comment0 trackback0

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://trailrun.blog88.fc2.com/tb.php/158-0bebc3a9

プロフィール

<ひさ>

Author:<ひさ>
とりあえず予定はありません。

最近のトラックバック

FC2カウンター

FC2カウンター

現在の閲覧者数:

ブロとも申請フォーム

ブログ内検索

リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。