⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 font.s

📁 AVR控制12864液晶画圆弧,在AVR单片机的控制下完成圆弧的绘制。
💻 S
📖 第 1 页 / 共 3 页
字号:
	ldd R31,y+33
	lpm R14,Z
	xjmp L57
L56:
	.dbline 178
; 	
;    while(glyph != 0x00) // while(*str != 0x00)
;     { /* check to make sure the symbol is a legal one */
	.dbline 180
;       /* if not then just replace it with the default character */
;       if((glyph < glyph_beg) || (glyph > glyph_end))
	ldd R0,y+15
	cp R14,R0
	brlo L61
	cp R20,R14
	brsh L59
L61:
	.dbline 181
;          glyph = (fonts[font].glyph_def);//pgm_read_byte( &(fonts[font].glyph_def) ) ;
	ldi R24,10
	ldd R0,y+30
	mul R24,R0
	movw R30,R0
	ldi R24,<_fonts+9
	ldi R25,>_fonts+9
	add R30,R24
	adc R31,R25
	lpm R14,Z
L59:
	.dbline 184
; 
;       /* make zero based index into the font data arrays */
;       glyph -= glyph_beg;
	ldd R0,y+15
	sub R14,R0
	.dbline 185
;       if(fixedwidth == 0)
	tst R12
	brne L63
	.dbline 187
;          // width=fonts[font].width_table[glyph];	/* get the variable width instead */
;          width=pgm_read_byte(width_table_ptr+glyph);
	ldd R2,y+11
	ldd R3,y+12
	mov R16,R14
	clr R17
	add R16,R2
	adc R17,R3
	xcall _pgm_read_byte
	mov R10,R16
	xjmp L64
L63:
	.dbline 189
;       else 
;          width = fixedwidth;
	mov R10,R12
L64:
	.dbline 191
; 		
;       height = defaultheight;
	ldd R22,y+17
	.dbline 193
;       //glyph_ptr = fonts[font].glyph_table + ((unsigned int)glyph * (unsigned int)store_width * (unsigned int)height);
;       glyph_ptr = glyph_table_ptr + ((unsigned int)glyph * (unsigned int)store_width * (unsigned int)height) ;
	ldd R0,y+14
	mul R14,R0
	mul R0,R22
	movw R2,R0
	ldd R4,y+9
	ldd R5,y+10
	add R2,R4
	adc R3,R5
	std y+8,R3
	std y+7,R2
	.dbline 196
; 
;       /* range check / limit things here */
;       if(x > SCRN_RIGHT)
	ldi R24,127
	ldd R0,y+13
	cp R24,R0
	brsh L65
	.dbline 197
;          x = SCRN_RIGHT;
	std y+13,R24
L65:
	.dbline 199
;        
;       if((x + width) > SCRN_RIGHT+1)
	ldd R2,y+13
	add R2,R10
	ldi R24,128
	cp R24,R2
	brsh L67
	.dbline 200
;          width = SCRN_RIGHT - x + 1;
	ldi R24,127
	ldd R0,y+13
	sub R24,R0
	subi R24,255    ; addi 1
	mov R10,R24
L67:
	.dbline 202
;        
;       if(top > SCRN_BOTTOM)
	ldi R24,63
	ldd R0,y+28
	cp R24,R0
	brsh L69
	.dbline 203
;          top = SCRN_BOTTOM;
	std y+28,R24
L69:
	.dbline 205
;        
;       if((top + height) > SCRN_BOTTOM+1)
	ldd R2,y+28
	add R2,R22
	ldi R24,64
	cp R24,R2
	brsh L71
	.dbline 206
;          height = SCRN_BOTTOM - top + 1;
	ldi R22,63
	ldd R0,y+28
	sub R22,R0
	subi R22,255    ; addi 1
L71:
	.dbline 208
;        
;       lcd_glyph(x,top,width,height,glyph_ptr,store_width);  /* plug symbol into buffer */
	ldd R0,y+14
	std y+6,R0
	ldd R2,y+7
	ldd R3,y+8
	std y+5,R3
	std y+4,R2
	std y+2,R22
	std y+0,R10
	ldd R18,y+28
	ldd R16,y+13
	xcall _lcd_glyph
	.dbline 210
; 
;       x += width;		/* move right for next character */
	ldd R0,y+13
	add R0,R10
	std y+13,R0
	.dbline 211
;       str++;			/* point to next character in string */
	ldd R24,y+32
	ldd R25,y+33
	adiw R24,1
	std y+33,R25
	std y+32,R24
	.dbline 212
;       if (inprogmem) 
	ldd R0,y+16
	tst R0
	breq L73
	.dbline 213
;          glyph = pgm_read_byte(str);
	movw R16,R24
	xcall _pgm_read_byte
	mov R14,R16
	xjmp L74
L73:
	.dbline 215
;       else 
;          glyph = (uint8_t)*str;
	ldd R30,y+32
	ldd R31,y+33
	lpm R14,Z
L74:
	.dbline 217
L57:
	.dbline 177
	tst R14
	breq X3
	xjmp L56
X3:
	.dbline -2
L47:
	adiw R28,18
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym l width_table_ptr 11 pc
	.dbsym r glyph_end 20 c
	.dbsym l glyph_table_ptr 9 pc
	.dbsym l defaultheight 17 c
	.dbsym l inprogmem 16 c
	.dbsym r fixedwidth 12 c
	.dbsym l glyph_ptr 7 pc
	.dbsym l glyph_beg 15 c
	.dbsym l store_width 14 c
	.dbsym r height 22 c
	.dbsym r width 10 c
	.dbsym l x 13 c
	.dbsym r glyph 14 c
	.dbsym l str 32 pkc
	.dbsym l font 30 c
	.dbsym l top 28 c
	.dbsym r left 20 c
	.dbend
	.area lit(rom, con, rel)
_fonts::
	.byte 2
	.byte 8
	.word _six_dot_glyph_table
	.byte 0
	.word _six_dot_width_table
	.byte 32
	.byte 126
	.byte 46
	.byte 1
	.byte 12
	.word _nine_dot_glyph_table
	.byte 8
	.word 0
	.byte 32
	.byte 126
	.byte 46
	.dbstruct 0 10 FONT_DEF
	.dbfield 0 store_width kc
	.dbfield 1 glyph_height kc
	.dbfield 2 glyph_table pkc
	.dbfield 4 fixed_width kc
	.dbfield 5 width_table pkc
	.dbfield 7 glyph_beg kc
	.dbfield 8 glyph_end kc
	.dbfield 9 glyph_def kc
	.dbend
	.dbsym e fonts _fonts A[20:2]kS[FONT_DEF]
_six_dot_glyph_table::
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 160,0
	.byte 160,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 20,0
	.byte 126,0
	.byte 40,0
	.byte 252,0
	.byte 'P,0
	.byte 0,0
	.byte 0,0
	.byte 32,0
	.byte 'p,0
	.byte 128,0
	.byte 96,0
	.byte 16,0
	.byte 224,0
	.byte 32,0
	.byte 0,0
	.byte 'd,0
	.byte 168,0
	.byte 208,0
	.byte 44,0
	.byte 'T,0
	.byte 152,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 64,0
	.byte 152,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 32,0
	.byte 64,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 64,0
	.byte 32,0
	.byte 128,0
	.byte 64,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 64,0
	.byte 128,0
	.byte 'P,0
	.byte 32,0
	.byte 248,0
	.byte 32,0
	.byte 'P,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 32,0
	.byte 32,0
	.byte 248,0
	.byte 32,0
	.byte 32,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 64,0
	.byte 64,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 248,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 32,0
	.byte 32,0
	.byte 64,0
	.byte 64,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 64,0
	.byte 192,0
	.byte 64,0
	.byte 64,0
	.byte 64,0
	.byte 64,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 16,0
	.byte 32,0
	.byte 64,0
	.byte 240,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 32,0
	.byte 16,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 32,0
	.byte 96,0
	.byte 160,0
	.byte 240,0
	.byte 32,0
	.byte 32,0
	.byte 0,0
	.byte 0,0
	.byte 240,0
	.byte 128,0
	.byte 224,0
	.byte 16,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 32,0
	.byte 64,0
	.byte 224,0
	.byte 144,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 240,0
	.byte 16,0
	.byte 32,0
	.byte 64,0
	.byte 64,0
	.byte 64,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 96,0
	.byte 144,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 144,0
	.byte 'p,0
	.byte 32,0
	.byte 64,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 64,0
	.byte 0,0
	.byte 0,0
	.byte 64,0
	.byte 64,0
	.byte 128,0
	.byte 0,0
	.byte 32,0
	.byte 64,0
	.byte 128,0
	.byte 64,0
	.byte 32,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 240,0
	.byte 0,0
	.byte 0,0
	.byte 240,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 64,0
	.byte 32,0
	.byte 64,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 192,0
	.byte 32,0
	.byte 64,0
	.byte 64,0
	.byte 0,0
	.byte 64,0
	.byte 0,0
	.byte 0,0
	.byte 60,0
	.byte 'B,0
	.byte 154,0
	.byte 170,0
	.byte 180,0
	.byte 64,0
	.byte 56,0
	.byte 0,0
	.byte 32,0
	.byte 32,0
	.byte 'P,0
	.byte 'p,0
	.byte 136,0
	.byte 136,0
	.byte 0,0
	.byte 0,0
	.byte 224,0
	.byte 144,0
	.byte 224,0
	.byte 144,0
	.byte 144,0
	.byte 224,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 128,0
	.byte 128,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 224,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 224,0
	.byte 0,0
	.byte 0,0
	.byte 224,0
	.byte 128,0
	.byte 224,0
	.byte 128,0
	.byte 128,0
	.byte 224,0
	.byte 0,0
	.byte 0,0
	.byte 224,0
	.byte 128,0
	.byte 224,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 128,0
	.byte 176,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 144,0
	.byte 144,0
	.byte 240,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 16,0
	.byte 16,0
	.byte 16,0
	.byte 16,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 144,0
	.byte 160,0
	.byte 192,0
	.byte 192,0
	.byte 160,0
	.byte 144,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 224,0
	.byte 0,0
	.byte 0,0
	.byte 136,0
	.byte 216,0
	.byte 168,0
	.byte 136,0
	.byte 136,0
	.byte 136,0
	.byte 0,0
	.byte 0,0
	.byte 144,0
	.byte 208,0
	.byte 208,0
	.byte 176,0
	.byte 176,0
	.byte 144,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 224,0
	.byte 144,0
	.byte 144,0
	.byte 224,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 96,0
	.byte 16,0
	.byte 0,0
	.byte 224,0
	.byte 144,0
	.byte 144,0
	.byte 224,0
	.byte 160,0
	.byte 144,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 144,0
	.byte 64,0
	.byte 32,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 248,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 0,0
	.byte 0,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 144,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 136,0
	.byte 136,0
	.byte 'P,0
	.byte 'P,0
	.byte 32,0
	.byte 32,0
	.byte 0,0
	.byte 0,0
	.byte 136,128
	.byte 136,128
	.byte 'U,0
	.byte 'U,0
	.byte 34,0
	.byte 34,0
	.byte 0,0
	.byte 0,0
	.byte 136,0
	.byte 'P,0
	.byte 32,0
	.byte 32,0
	.byte 'P,0
	.byte 136,0
	.byte 0,0
	.byte 0,0
	.byte 136,0
	.byte 'P,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 32,0
	.byte 0,0
	.byte 0,0
	.byte 240,0
	.byte 16,0
	.byte 32,0
	.byte 64,0
	.byte 128,0
	.byte 240,0
	.byte 0,0
	.byte 0,0
	.byte 192,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 192,0
	.byte 0,0
	.byte 128,0
	.byte 128,0
	.byte 64,0
	.byte 64,0
	.byte 32,0
	.byte 32,0
	.byte 16,0
	.byte 16,0
	.byte 192,0
	.byte 64,0
	.byte 64,0
	.byte 64,0
	.byte 64,0
	.byte 64,0
	.byte 192,0
	.byte 0,0
	.byte 64,0
	.byte 160,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 252,0
	.byte 0,0
	.byte 128,0
	.byte 64,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 'p,0
	.byte 144,0
	.byte 144,0
	.byte 'p,0
	.byte 0,0
	.byte 0,0
	.byte 128,0
	.byte 128,0
	.byte 224,0
	.byte 144,0
	.byte 144,0
	.byte 224,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 128,0
	.byte 128,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 16,0
	.byte 16,0
	.byte 'p,0
	.byte 144,0
	.byte 144,0
	.byte 'p,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 176,0
	.byte 128,0
	.byte 96,0
	.byte 0,0
	.byte 0,0
	.byte 96,0
	.byte 128,0
	.byte 192,0
	.byte 128,0
	.byte 128,0
	.byte 128,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 'p,0
	.byte 144,0
	.byte 144,0
	.byte 'p,0
	.byte 16,0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -