📄 avr8100bluetooth.asm
字号:
;==================================================================================================
EEPROM_WRITE:
cli
sbic eecr,eewe
rjmp EEPROM_WRITE
ldi r16,0x00
out eearh,r16
ldi r16,0x00
out eearl,r16
lds r16,i2cda_h
out eedr,r16
sbi eecr,eemwe
sbi eecr,eewe
EEPROM_WRITE_1:
sbic eecr,eewe
rjmp EEPROM_WRITE_1
ldi r16,0x00
out eearh,r16
ldi r16,0x01
out eearl,r16
lds r16,i2cda_l
out eedr,r16
sbi eecr,eemwe
sbi eecr,eewe
;SEI
ret
;---------------------------------------------------
EEPROM_read:
cli
sbic eecr,eewe
rjmp EEPROM_read
ldi r16,0x00
out eearh,r16
ldi r16,0x00
out eearl,r16
sbi eecr,eere
in r16,eedr
sts i2cda_h,r16
EEPROM_read_1:
sbic eecr,eewe
rjmp EEPROM_read_1
ldi r16,0x00
out eearh,r16
ldi r16,0x01
out eearl,r16
sbi eecr,eere
in r16,eedr
sts i2cda_l,r16
;SEI
ret
;-----------------------------------------------------------
;==================================================================================================
; ;(17) 标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数
;
;;入口条件:待转换的双字节十六进制整数在R16、R17中。
;;出口信息:转换后的三字节BCD码整数在r16,r17,r18,r19,r20中。
;;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
;使用 R16,R17,r18,r19,r20
hextobcd:
lds r17,i2cda_h
lds r16,i2cda_l
ser r20
hextobcd_1:
;inc r20
;subi r16,low(10000)
;sbci r17,high(10000)
;brcc hextobcd_1
;subi r16,low(-10000)
;sbci r17,high(-10000)
ser r19
hextobcd_2:
inc r19
subi r16,low(1000)
sbci r17,high(1000)
brcc hextobcd_2
subi r16,low(-1000)
sbci r17,high(-1000)
ser r18
hextobcd_3:
inc r18
subi r16,low(100)
sbci r17,high(100)
brcc hextobcd_3
subi r16,low(-100)
sbci r17,high(-100)
ser r17
hextobcd_4:
inc r17
subi r16,10
brcc hextobcd_4
subi r16,(-10)
sts bcdda1000,r19
sts bcdda100,r18
sts bcdda10,r17
sts bcdda1,r16
ret
;========================================
;********************************************************************* INITIALIZE
;****************************************************************************
INITIALIZE:
CLI
CLR R0
out MCUCSR,R0 ;LOW LEVEL INI
out sfior,r0
; ldi r16,(1<<int0) ;INT0 INI
; out GICR,R16
;INITIALIZE
Init_Reg: ;INITIALIZE RESISTER
Init_IO: ;INITIAL I/O
SBI PORTB,1 ;增强,减弱
SBI PORTb,BTPIO ;phonejt
SBI PORTc,upkey ; upkey
SBI PORTc,downkey ;downkey
;----------------------------------------------------------------------------
SBI PORTD,POWERCL
sbi portd,rem
sbi portd,5
sbi portd,6
sbi portd,7
SBI PORTD,0 ;SET PORTD0 TO INPUT, PULL-HIGH(RXD)
SBI PORTD,1 ;SET PORTD1 TO OUTPUT,PULL-HIGH(TXD)
;---------------------------------------------------------------- INPUT
cbi ddrb,BTPIO
cbi ddrc,upkey
cbi ddrc,downkey
cbi ddrd,rem
;------------------------------------------------------------- OUTPUT
SBI DDRD,POWERCL
sbi ddrd,5
sbi ddrd,6
sbi ddrd,7
cbi ddrd,0
SBI DDRD,1
Init_Uart:
LDI R16,$07
OUT UBRRL,R16 ;SET BAUD-RATE 57600, USING CRYSTAL 7.3728MHZ
LDI R16,(1<<URSEL)|(3<<UCSZ0) ;SET 8-N-1 PROTOCOL
OUT UCSRC,R16
LDI R16,(1<<RXEN)|(1<<TXEN)
OUT UCSRB,R16 ;RX, TX ENABLE
;ldi r16,0
;mov r10,r16 ; clr status
RCALL DELAY1s
ret
;************************************************************************** tab
;----------------------------------------------------------------------
exitexmodeltab: ; exit remote mode
.dw 0xff55,0x0200,0x06f8,0x8888;
;-----------------------------------------------------------------------------------
playresumetab:
.dw 0xFFff, 0x5504, 0x0200, 0x0001, 0xF999
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x8888
pausetab:
.dw 0xFFff, 0x5504, 0x0200, 0x0002, 0xF899
.dw 0xFFff, 0x5504, 0x0200, 0x0002, 0xF899
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x8888
;------------------------------------------------------------------------------
exttab:
.dw 0xFF55, 0x0600, 0x0105, 0x0002, 0x01F1,0x9999
.dw 0xFF55, 0x0302, 0x0001, 0xFA99
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x9999
.dw 0xFF55, 0x0600, 0x0105, 0x0002, 0x01F1,0x9999
.dw 0xFF55, 0x0302, 0x0001, 0xFA99
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x9999
.dw 0xFF55, 0x0402, 0x0000, 0x01F9,0x9999
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x9999
.dw 0xFF55, 0x0E00, 0x1300, 0x0000, 0x3500,0x0000,0x0400,0x0000, 0x00A6,0x99ff
.dw 0xFF55, 0x0200, 0x05F9,0x99ff
.dw 0xFF55, 0x0302, 0x0001, 0xFA99
.dw 0xFF55, 0x0602, 0x0000, 0x0000,0x00F8,0x99ff
.dw 0xFF55, 0x0402, 0x0000, 0x01F9,0x99ff
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x8888
exttab1:
.dw 0xFF55, 0x0200, 0x05F9,0x9999
.dw 0xFF55, 0x0302, 0x0001, 0xFA99
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x99ff
.dw 0xFF55, 0x0402, 0x0000, 0x01F9,0x99ff
.dw 0xFF55, 0x0602, 0x0000, 0x0000, 0x00F8,0x8888
;-----------------------------------------------------------------
phonelinktab:
.dw 0xFF55, 0x0200, 0x05F9,0x9988
;--------------------------------------------------------------------------------------------------------------
Instruction_SetDisplay_Descriptor:
.DW $FFFF,$5500,$012e,$0400,$3200,$0001,$0060,$0018,$0000,$0018
displayphonefirsttab:
.DW $FFFF,$5500,$018e,$0400,$3200, $0001,$0080,$0030,$0000,$0020
displayphonesecondtab:
.dw 0xFF55,0x0001,0x8504,0x0032,0x0001
displayphonethirdtab:
.dw 0xFF55,0x0001,0x8504,0x0032,0x0002
displayphonefourtab:
.dw 0xFF55,0x0001,0x8504,0x0032,0x0003
figurtab:
.dw 0xFF55, 0x0001,0x2504, 0x0032, 0x0001
FONT_TAB:
.DW FONT_0,FONT_1,FONT_2,FONT_3,FONT_4,FONT_5,FONT_6,FONT_7,FONT_8,FONT_9
;;-------------------------------------------------------------------------------------------
FONT_0:
.dw 0x03FF,0xFC00
.dw 0x0FFF,0xFF00
.dw 0x3FFF,0xFFC0
.dw 0x3FC0,0x3FC0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFF00,0x03F0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x0FF0
.dw 0x3FC0,0x3FC0
.dw 0x3FFF,0xFFC0
.dw 0x0FFF,0xFF00
.dw 0x03FF,0xFC00
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_1:
.dw 0x000F,0xC000
.dw 0x003F,0xC000
.dw 0x00FF,0xC000
.dw 0x03FF,0xC000
.dw 0x3FFF,0xC000
.dw 0xFFFF,0xC000
.dw 0xFF3F,0xC000
.dw 0xF03F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_2:
.dw 0x00FF,0xFF00
.dw 0x0FFF,0xFFC0
.dw 0x3FFF,0xFFF0
.dw 0x3FC0,0x0FFC
.dw 0xFF00,0x03FC
.dw 0xFF00,0x03FC
.dw 0xFF00,0x03FC
.dw 0x0000,0x03FC
.dw 0x0000,0x03FC
.dw 0x0000,0x0FF0
.dw 0x0000,0x3FF0
.dw 0x0000,0xFFC0
.dw 0x0003,0xFF00
.dw 0x000F,0xFC00
.dw 0x00FF,0xF000
.dw 0x03FF,0x0000
.dw 0x0FFC,0x0000
.dw 0x3FF0,0x0000
.dw 0x3FC0,0x0000
.dw 0xFFFF,0xFFFC
.dw 0xFFFF,0xFFFC
.dw 0xFFFF,0xFFFC
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_3:
.dw 0x03FF,0xFC00
.dw 0x0FFF,0xFF00
.dw 0x3FFF,0xFFC0
.dw 0xFF00,0x3FC0
.dw 0xFF00,0x0FC0
.dw 0xFF00,0x0FF0
.dw 0x0C00,0x0FC0
.dw 0x0000,0x3FC0
.dw 0x0003,0xFFC0
.dw 0x003F,0xFF00
.dw 0x003F,0xFF00
.dw 0x003F,0xFFC0
.dw 0x0000,0x0FF0
.dw 0x0000,0x0FF0
.dw 0x0000,0x03FC
.dw 0xFC00,0x03FC
.dw 0xFC00,0x03FC
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x3FF0
.dw 0x3FFF,0xFFC0
.dw 0x0FFF,0xFF00
.dw 0x03FF,0xFC00
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_4:
.dw 0x0000,0x3FC0
.dw 0x0000,0x3FC0
.dw 0x0000,0xFFC0
.dw 0x0003,0xFFC0
.dw 0x000F,0xFFC0
.dw 0x000F,0xFFC0
.dw 0x003F,0xFFC0
.dw 0x00FF,0x3FC0
.dw 0x00FC,0x3FC0
.dw 0x03FC,0x3FC0
.dw 0x0FF0,0x3FC0
.dw 0x3FC0,0x3FC0
.dw 0x3F00,0x3FC0
.dw 0xFF00,0x3FC0
.dw 0xFFFF,0xFFFF
.dw 0xFFFF,0xFFFF
.dw 0xFFFF,0xFFFF
.dw 0x0000,0x3FC0
.dw 0x0000,0x3FC0
.dw 0x0000,0x3FC0
.dw 0x0000,0x3FC0
.dw 0x0000,0x3FC0
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_5:
.dw 0x0FFF,0xFFF0
.dw 0x0FFF,0xFFF0
.dw 0x0FFF,0xFFF0
.dw 0x3FC0,0x0000
.dw 0x3FC0,0x0000
.dw 0x3FC0,0x0000
.dw 0x3FC0,0x0000
.dw 0x3FFF,0xFC00
.dw 0x3FFF,0xFFC0
.dw 0xFFFF,0xFFF0
.dw 0xFFC0,0x3FF0
.dw 0xFF00,0x03FC
.dw 0x0000,0x03FC
.dw 0x0000,0x03FC
.dw 0x0000,0x03FC
.dw 0xFC00,0x03FC
.dw 0xFF00,0x03FC
.dw 0xFF00,0x03FC
.dw 0xFFC0,0x0FF0
.dw 0x3FFF,0xFFC0
.dw 0x0FFF,0xFF00
.dw 0x03FF,0xFC00
.dw 0x0003,0x0000
.dw 0x0000,0x0000
FONT_6:
.dw 0x00FF,0xFC00
.dw 0x03FF,0xFFC0
.dw 0x0FFF,0xFFC0
.dw 0x3FC0,0x0FF0
.dw 0x3F00,0x0FF0
.dw 0xFF00,0x03F0
.dw 0xFF00,0x0000
.dw 0xFC0F,0xF000
.dw 0xFCFF,0xFF00
.dw 0xFFFF,0xFFC0
.dw 0xFFFC,0xFFF0
.dw 0xFFC0,0x0FF0
.dw 0xFF00,0x03F0
.dw 0xFF00,0x03FC
.dw 0xFF00,0x03FC
.dw 0xFF00,0x03FC
.dw 0xFF00,0x03FC
.dw 0xFF00,0x0FF0
.dw 0x3FC0,0x0FF0
.dw 0x0FFF,0xFFC0
.dw 0x0FFF,0xFF00
.dw 0x00FF,0xFC00
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_7:
.dw 0xFFFF,0xFFFC
.dw 0xFFFF,0xFFFC
.dw 0xFFFF,0xFFFC
.dw 0x0000,0x0FF0
.dw 0x0000,0x3FC0
.dw 0x0000,0xFFC0
.dw 0x0000,0xFF00
.dw 0x0003,0xFC00
.dw 0x0003,0xFC00
.dw 0x000F,0xF000
.dw 0x000F,0xF000
.dw 0x003F,0xC000
.dw 0x003F,0xC000
.dw 0x00FF,0x0000
.dw 0x00FF,0x0000
.dw 0x00FF,0x0000
.dw 0x00FC,0x0000
.dw 0x03FC,0x0000
.dw 0x03FC,0x0000
.dw 0x03FC,0x0000
.dw 0x03FC,0x0000
.dw 0x03FC,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_8:
.dw 0x03FF,0xFC00
.dw 0x0FFF,0xFF00
.dw 0x3FFF,0xFFC0
.dw 0x3FC0,0x3FC0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x0FF0
.dw 0x3FC0,0x0FF0
.dw 0x3FFF,0xFFC0
.dw 0x0FFF,0xFF00
.dw 0x0FFF,0xFF00
.dw 0x3FFF,0xFFC0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x03F0
.dw 0xFC00,0x03FC
.dw 0xFC00,0x03FC
.dw 0xFC00,0x03FC
.dw 0xFF00,0x03F0
.dw 0xFF00,0x0FF0
.dw 0x3FFF,0xFFC0
.dw 0x0FFF,0xFF00
.dw 0x03FF,0xFC00
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_9:
.dw 0x03FF,0xF000
.dw 0x0FFF,0xFF00
.dw 0x3FFF,0xFFC0
.dw 0xFFC0,0x3FC0
.dw 0xFF00,0x0FF0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03F0
.dw 0xFC00,0x03FC
.dw 0xFC00,0x03FC
.dw 0xFF00,0x0FFC
.dw 0xFF00,0x0FFC
.dw 0x3FFF,0xFFFC
.dw 0x3FFF,0xFFFC
.dw 0x0FFF,0xF3FC
.dw 0x00FF,0x03F0
.dw 0x0000,0x03F0
.dw 0xFC00,0x0FF0
.dw 0xFF00,0x0FF0
.dw 0xFF00,0x3FC0
.dw 0x3FFF,0xFF00
.dw 0x0FFF,0xFF00
.dw 0x03FF,0xF000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
FONT_DOT:
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x000F,0x0000
.dw 0x00FF,0xF000
.dw 0x00FF,0xF000
.dw 0x03FF,0xFC00
.dw 0x03FF,0xFC00
.dw 0x00FF,0xF000
.dw 0x00FF,0xF000
.dw 0x000F,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.dw 0x0000,0x0000
.EXIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -