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

📄 lcd6610.s

📁 你熟悉QT吗?Linux系统上领先的GUI
💻 S
📖 第 1 页 / 共 3 页
字号:
; 	  LCD_write(LCD_CMD_RAMWR,0);
	clr R18
	ldi R16,44
	xcall _LCD_write
	.dbline 272
; 	  for (count=0;count<14;count++)
	clr R20
	clr R21
	xjmp L34
L31:
	.dbline 273
	.dbline 274
	ldi R18,1
	clr R16
	xcall _LCD_write
	.dbline 275
L32:
	.dbline 272
	subi R20,255  ; offset = 1
	sbci R21,255
L34:
	.dbline 272
	cpi R20,14
	ldi R30,0
	cpc R21,R30
	brlo L31
	.dbline 276
; 	  	  {
; 		   LCD_write(0,1);
; 		  }
; 	  for (count=0;count<val*14;count++)
	clr R20
	clr R21
	xjmp L38
L35:
	.dbline 277
	.dbline 278
	ldi R18,1
	mov R16,R22
	xcall _LCD_write
	.dbline 279
L36:
	.dbline 276
	subi R20,255  ; offset = 1
	sbci R21,255
L38:
	.dbline 276
	ldi R24,14
	mul R24,R12
	cp R20,R0
	cpc R21,R1
	brlo L35
	.dbline 280
; 	  	  {
; 		   LCD_write(fillcol,1);
; 		  }
; 	  for (count=0;count<(len-val)*14;count++)
	clr R20
	clr R21
	xjmp L42
L39:
	.dbline 281
	.dbline 282
	ldi R18,1
	mov R16,R10
	xcall _LCD_write
	.dbline 283
L40:
	.dbline 280
	subi R20,255  ; offset = 1
	sbci R21,255
L42:
	.dbline 280
	mov R2,R14
	sub R2,R12
	ldi R24,14
	mul R24,R2
	cp R20,R0
	cpc R21,R1
	brlo L39
	.dbline 284
; 	  	  {
; 		   LCD_write(bkgcol,1);
; 		  }		  
; 	  for (count=0;count<14;count++)
	clr R20
	clr R21
	xjmp L46
L43:
	.dbline 285
	.dbline 286
	ldi R18,1
	clr R16
	xcall _LCD_write
	.dbline 287
L44:
	.dbline 284
	subi R20,255  ; offset = 1
	sbci R21,255
L46:
	.dbline 284
	cpi R20,14
	ldi R30,0
	cpc R21,R30
	brlo L43
	.dbline 288
; 	  	  {
; 		   LCD_write(0,1);
; 		  }	  
;       LCD_write(LCD_CMD_MADCTL,0);
	clr R18
	ldi R16,54
	xcall _LCD_write
	.dbline 289
; 	  LCD_write(MADCTL_HORIZ,1);	  
	ldi R18,1
	ldi R16,72
	xcall _LCD_write
	.dbline 290
; 	 set_lcd_cs;          //disable lcd		  
	sbi 0x18,3
	.dbline -2
	.dbline 291
; 	 }
L30:
	adiw R28,3
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r count 20 i
	.dbsym r fillcol 22 c
	.dbsym r bkgcol 10 c
	.dbsym r val 12 c
	.dbsym r len 14 c
	.dbend
	.dbfunc e lcd_ascii _lcd_ascii fV
;          count -> R20,R21
;            len -> R22
;              s -> R10,R11
	.even
_lcd_ascii::
	xcall push_gset3
	mov R22,R18
	movw R10,R16
	sbiw R28,3
	.dbline -1
	.dbline 294
; /**********显示一个8x8点ascii***********/
; void lcd_ascii(char *s,unsigned char len)
; 	 {
	.dbline 296
; 	  unsigned int count;	 
; 	  lcd_window(lcd_x,lcd_y,lcd_x+len*16-1,lcd_y+15);
	lds R24,_lcd_y
	subi R24,241    ; addi 15
	std y+2,R24
	ldi R24,16
	mul R24,R22
	lds R24,_lcd_x
	add R24,R0
	subi R24,1
	std y+0,R24
	lds R18,_lcd_y
	lds R16,_lcd_x
	xcall _lcd_window
	.dbline 297
; 	  LCD_write(LCD_CMD_RAMWR,0);
	clr R18
	ldi R16,44
	xcall _LCD_write
	.dbline 298
; 	  for (count=0;count<len*32;count++)	
	clr R20
	clr R21
	xjmp L51
L48:
	.dbline 299
; 	  	  {
	.dbline 300
; 		   if (s[count]&0x1)  LCD_write(lcd_text_color,1); //high 8 bit
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,0
	rjmp L52
	.dbline 300
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L53
L52:
	.dbline 301
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L53:
	.dbline 302
; 		   if (s[count]&0x2)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,1
	rjmp L54
	.dbline 302
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L55
L54:
	.dbline 303
; 		   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L55:
	.dbline 304
; 	  	   if (s[count]&0x4)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,2
	rjmp L56
	.dbline 304
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L57
L56:
	.dbline 305
; 		   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L57:
	.dbline 306
; 	 	   if (s[count]&0x8)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,3
	rjmp L58
	.dbline 306
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L59
L58:
	.dbline 307
; 		   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L59:
	.dbline 308
; 	  	   if (s[count]&0x10)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,4
	rjmp L60
	.dbline 308
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L61
L60:
	.dbline 309
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L61:
	.dbline 310
; 	  	   if (s[count]&0x20)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,5
	rjmp L62
	.dbline 310
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L63
L62:
	.dbline 311
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L63:
	.dbline 312
; 	  	   if (s[count]&0x40)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,6
	rjmp L64
	.dbline 312
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L65
L64:
	.dbline 313
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L65:
	.dbline 314
; 	  	   if (s[count]&0x80)  LCD_write(lcd_text_color,1); 
	movw R30,R20
	add R30,R10
	adc R31,R11
	ldd R2,z+0
	sbrs R2,7
	rjmp L66
	.dbline 314
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L67
L66:
	.dbline 315
; 	  	   else LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L67:
	.dbline 316
L49:
	.dbline 298
	subi R20,255  ; offset = 1
	sbci R21,255
L51:
	.dbline 298
	ldi R24,32
	mul R24,R22
	cp R20,R0
	cpc R21,R1
	brsh X0
	xjmp L48
X0:
	.dbline -2
	.dbline 317
; 		  } 
; 	 }	 
L47:
	adiw R28,3
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r count 20 i
	.dbsym r len 22 c
	.dbsym r s 10 pc
	.dbend
	.dbfunc e lcd_ascii_5_7 _lcd_ascii_5_7 fV
;          count -> R20
;              s -> R22,R23
;      chr_ascii -> R20
	.even
_lcd_ascii_5_7::
	xcall push_gset2
	mov R20,R16
	sbiw R28,3
	.dbline -1
	.dbline 321
; /**********显示一个5x7点ascii***********/
; void lcd_ascii_5_7(unsigned char chr_ascii);
; void lcd_ascii_5_7(unsigned char chr_ascii)
; 	 {
	.dbline 324
; 	  const unsigned char *s;
; 	  unsigned char count;
; 	  lcd_bkg_color=3;
	ldi R24,3
	sts _lcd_bkg_color,R24
	.dbline 325
;  	  lcd_text_color=247;
	ldi R24,247
	sts _lcd_text_color,R24
	.dbline 326
; 	 clr_lcd_cs;          //enable lcd	  
	cbi 0x18,3
	.dbline 327
; 	  s=Bmp_ascii+chr_ascii*5;
	ldi R24,5
	mul R24,R20
	movw R22,R0
	ldi R24,<_Bmp_ascii
	ldi R25,>_Bmp_ascii
	add R22,R24
	adc R23,R25
	.dbline 328
; 	  lcd_window(lcd_x,lcd_y,lcd_x+6,lcd_y+7);	  
	lds R24,_lcd_y
	subi R24,249    ; addi 7
	std y+2,R24
	lds R24,_lcd_x
	subi R24,250    ; addi 6
	std y+0,R24
	lds R18,_lcd_y
	lds R16,_lcd_x
	xcall _lcd_window
	.dbline 329
;       LCD_write(LCD_CMD_MADCTL,0);
	clr R18
	ldi R16,54
	xcall _LCD_write
	.dbline 330
; 	  LCD_write(MADCTL_VERT,1);	  
	ldi R18,1
	ldi R16,104
	xcall _LCD_write
	.dbline 332
; 
; 	  LCD_write(LCD_CMD_RAMWR,0);
	clr R18
	ldi R16,44
	xcall _LCD_write
	.dbline 333
; 	  for (count=0;count<5;count++)	
	clr R20
	xjmp L72
L69:
	.dbline 334
; 	  	  {
	.dbline 335
; 		   if (*s&0x1)  LCD_write(lcd_text_color,1); //high 8 bit
	movw R30,R22
	lpm R30,Z
	sbrs R30,0
	rjmp L73
	.dbline 335
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L74
L73:
	.dbline 336
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L74:
	.dbline 337
; 		   if (*s&0x2)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,1
	rjmp L75
	.dbline 337
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L76
L75:
	.dbline 338
; 		   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L76:
	.dbline 339
; 	  	   if (*s&0x4)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,2
	rjmp L77
	.dbline 339
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L78
L77:
	.dbline 340
; 		   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L78:
	.dbline 341
; 	 	   if (*s&0x8)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,3
	rjmp L79
	.dbline 341
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L80
L79:
	.dbline 342
; 		   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L80:
	.dbline 343
; 	  	   if (*s&0x10)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,4
	rjmp L81
	.dbline 343
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L82
L81:
	.dbline 344
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L82:
	.dbline 345
; 	  	   if (*s&0x20)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,5
	rjmp L83
	.dbline 345
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L84
L83:
	.dbline 346
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L84:
	.dbline 347
; 	  	   if (*s&0x40)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,6
	rjmp L85
	.dbline 347
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L86
L85:
	.dbline 348
; 	  	   else LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L86:
	.dbline 349
;     	   if (*s&0x80)  LCD_write(lcd_text_color,1); 
	movw R30,R22
	lpm R30,Z
	sbrs R30,7
	rjmp L87
	.dbline 349
	ldi R18,1
	lds R16,_lcd_text_color
	xcall _LCD_write
	xjmp L88
L87:
	.dbline 350
;     	   else   LCD_write(lcd_bkg_color,1);
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
L88:
	.dbline 352
	subi R22,255  ; offset = 1
	sbci R23,255
	.dbline 353
L70:
	.dbline 333
	inc R20
L72:
	.dbline 333
	cpi R20,5
	brsh X1
	xjmp L69
X1:
	.dbline 354
; 		
; 		   s++;
; 		  }
; 			LCD_write(lcd_bkg_color,1);	 //字体之间隔一竖行
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 355
; 			LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 356
; 			LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 357
; 			LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 358
; 			LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 359
; 			LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 360
; 			LCD_write(lcd_bkg_color,1);	
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 361
; 			LCD_write(lcd_bkg_color,1);		
	ldi R18,1
	lds R16,_lcd_bkg_color
	xcall _LCD_write
	.dbline 363
; 					  
; 	 lcd_x=lcd_x+6;	                     //自动换下一个位置
	lds R24,_lcd_x
	subi R24,250    ; addi 6
	sts _lcd_x,R24
	.dbline 364
; 	 if (lcd_x>128)
	ldi R24,128
	lds R2,_lcd_x
	cp R24,R2
	brsh L89
	.dbline 365
; 	 	{
	.dbline 366
; 		 lcd_x=0;
	clr R2
	sts _lcd_x,R2
	.dbline 367
; 		 lcd_y=lcd_y+8;
	lds R24,_lcd_y
	subi R24,248    ; addi 8
	sts _lcd_y,R24
	.dbline 368
; 		}	
L89:
	.dbline 369
; 	 if (lcd_y>128) lcd_y=0;
	ldi R24,128
	lds R2,_lcd_y
	cp R24,R2
	brsh L91
	.dbline 369
	clr R2
	sts _lcd_y,R2
L91:
	.dbline 370
; 	 set_lcd_cs;          //disable lcd	  	  
	sbi 0x18,3
	.dbline -2
	.dbline 371
; 	 }
L68:
	adiw R28,3
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r count 20 c
	.dbsym r s 22 pkc
	.dbsym r chr_ascii 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile G:\mega8\atmega16\mp3_7210\lcd6610.c
_lcd_y::
	.blkb 1
	.dbsym e lcd_y _lcd_y c
_lcd_x::
	.blkb 1
	.dbsym e lcd_x _lcd_x c
_lcd_text_color::
	.blkb 1
	.dbsym e lcd_text_color _lcd_text_color c
_lcd_bkg_color::
	.blkb 1
	.dbsym e lcd_bkg_color _lcd_bkg_color c

⌨️ 快捷键说明

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