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

📄 lcd.lst

📁 atmega单片机用的ucos系统 占用内存适中 是atmega单片机合适的操作系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
 258 0034 82E3      		ldi r24,lo8(50)
 259 0036 90E0      		ldi r25,hi8(50)
 260 0038 0E94 0000 		call delay
 262               	.LM9:
 263 003c AA9A      		sbi 53-0x20,2
 265               	.LM10:
 266 003e 82E3      		ldi r24,lo8(50)
 267 0040 90E0      		ldi r25,hi8(50)
 268 0042 0E94 0000 		call delay
 270               	.LM11:
 271 0046 AA98      		cbi 53-0x20,2
 273               	.LM12:
 274 0048 1150      		subi r17,lo8(-(-1))
 275 004a 2196      		adiw r28,1
 276 004c 17FF      		sbrs r17,7
 277 004e E5CF      		rjmp .L41
 278               	/* epilogue: frame size=0 */
 279 0050 DF91      		pop r29
 280 0052 CF91      		pop r28
 281 0054 1F91      		pop r17
 282 0056 0F91      		pop r16
 283 0058 0895      		ret
 284               	/* epilogue end (size=5) */
 285               	/* function write_byte size 40 (31) */
 290               	.Lscope1:
 293               	.global	write_command
 295               	write_command:
  55:APP1/lcd.c    ****       for(j=0;j<10;j++)
  56:APP1/lcd.c    ****         ; 
  57:APP1/lcd.c    ****   }
  58:APP1/lcd.c    **** /************************命令写入函数***************************/
  59:APP1/lcd.c    **** void write_command(unsigned char command)		 //写命令
  60:APP1/lcd.c    ****   {
 297               	.LM13:
 298               	/* prologue: frame size=0 */
 299 005a 1F93      		push r17
 300               	/* prologue end (size=1) */
 301 005c 182F      		mov r17,r24
  61:APP1/lcd.c    ****    SET_CS;
 303               	.LM14:
 304 005e A89A      		sbi 53-0x20,0
  62:APP1/lcd.c    ****    write_byte(0xF8);   //发送S_ID
 306               	.LM15:
 307 0060 88EF      		ldi r24,lo8(-8)
 308 0062 0E94 0000 		call write_byte
  63:APP1/lcd.c    ****    write_byte(command&0xF0); //发送H_data
 310               	.LM16:
 311 0066 812F      		mov r24,r17
 312 0068 807F      		andi r24,lo8(-16)
 313 006a 0E94 0000 		call write_byte
  64:APP1/lcd.c    ****    write_byte((command&0x0F)<<4); //发送L_data
 315               	.LM17:
 316 006e 812F      		mov r24,r17
 317 0070 8295      		swap r24
 318 0072 807F      		andi r24,0xf0
 319 0074 0E94 0000 		call write_byte
  65:APP1/lcd.c    ****    CLR_CS; 
 321               	.LM18:
 322 0078 A898      		cbi 53-0x20,0
 323               	/* epilogue: frame size=0 */
 324 007a 1F91      		pop r17
 325 007c 0895      		ret
 326               	/* epilogue end (size=2) */
 327               	/* function write_command size 18 (15) */
 329               	.Lscope2:
 332               	.global	write_data
 334               	write_data:
  66:APP1/lcd.c    ****   }
  67:APP1/lcd.c    **** /************************数据写入函数***************************/
  68:APP1/lcd.c    **** void write_data(unsigned char Data)			 //写数据
  69:APP1/lcd.c    ****   {
 336               	.LM19:
 337               	/* prologue: frame size=0 */
 338 007e 1F93      		push r17
 339               	/* prologue end (size=1) */
 340 0080 182F      		mov r17,r24
  70:APP1/lcd.c    ****    SET_CS;
 342               	.LM20:
 343 0082 A89A      		sbi 53-0x20,0
  71:APP1/lcd.c    ****    write_byte(0xFA);   //发送S_ID
 345               	.LM21:
 346 0084 8AEF      		ldi r24,lo8(-6)
 347 0086 0E94 0000 		call write_byte
  72:APP1/lcd.c    ****    write_byte(Data&0xF0); //发送H_data
 349               	.LM22:
 350 008a 812F      		mov r24,r17
 351 008c 807F      		andi r24,lo8(-16)
 352 008e 0E94 0000 		call write_byte
  73:APP1/lcd.c    ****    write_byte((Data&0x0F)<<4); //发送L_data
 354               	.LM23:
 355 0092 812F      		mov r24,r17
 356 0094 8295      		swap r24
 357 0096 807F      		andi r24,0xf0
 358 0098 0E94 0000 		call write_byte
  74:APP1/lcd.c    ****    CLR_CS; 
 360               	.LM24:
 361 009c A898      		cbi 53-0x20,0
 362               	/* epilogue: frame size=0 */
 363 009e 1F91      		pop r17
 364 00a0 0895      		ret
 365               	/* epilogue end (size=2) */
 366               	/* function write_data size 18 (15) */
 368               	.Lscope3:
 370               	.global	LCD_Init
 372               	LCD_Init:
  75:APP1/lcd.c    ****   }
  76:APP1/lcd.c    **** /************************LCD初始化函数***************************/
  77:APP1/lcd.c    **** void LCD_Init(void)						      //LCD初始化
  78:APP1/lcd.c    ****   {
 374               	.LM25:
 375               	/* prologue: frame size=0 */
 376               	/* prologue end (size=0) */
  79:APP1/lcd.c    ****    DDRC|=0X07;
 378               	.LM26:
 379 00a2 84B3      		in r24,52-0x20
 380 00a4 8760      		ori r24,lo8(7)
 381 00a6 84BB      		out 52-0x20,r24
  80:APP1/lcd.c    ****    delay(200);
 383               	.LM27:
 384 00a8 88EC      		ldi r24,lo8(200)
 385 00aa 90E0      		ldi r25,hi8(200)
 386 00ac 0E94 0000 		call delay
  81:APP1/lcd.c    ****    write_command(0x30);                         //功能设置 8位数据,基本指令集
 388               	.LM28:
 389 00b0 80E3      		ldi r24,lo8(48)
 390 00b2 0E94 0000 		call write_command
  82:APP1/lcd.c    ****    delay(10);
 392               	.LM29:
 393 00b6 8AE0      		ldi r24,lo8(10)
 394 00b8 90E0      		ldi r25,hi8(10)
 395 00ba 0E94 0000 		call delay
  83:APP1/lcd.c    ****    write_command(0x0C);                         //显示状态 ON,游标OFF,反白OFF
 397               	.LM30:
 398 00be 8CE0      		ldi r24,lo8(12)
 399 00c0 0E94 0000 		call write_command
  84:APP1/lcd.c    ****    delay(10);
 401               	.LM31:
 402 00c4 8AE0      		ldi r24,lo8(10)
 403 00c6 90E0      		ldi r25,hi8(10)
 404 00c8 0E94 0000 		call delay
  85:APP1/lcd.c    ****    write_command(0x01);                         //清除显示
 406               	.LM32:
 407 00cc 81E0      		ldi r24,lo8(1)
 408 00ce 0E94 0000 		call write_command
  86:APP1/lcd.c    ****    delay(500);
 410               	.LM33:
 411 00d2 84EF      		ldi r24,lo8(500)
 412 00d4 91E0      		ldi r25,hi8(500)
 413 00d6 0E94 0000 		call delay
  87:APP1/lcd.c    ****    write_command(0x02); //地址归位
 415               	.LM34:
 416 00da 82E0      		ldi r24,lo8(2)
 417 00dc 0E94 0000 		call write_command
  88:APP1/lcd.c    ****    write_command(0x80); //设置DDRAM地址
 419               	.LM35:
 420 00e0 80E8      		ldi r24,lo8(-128)
 421 00e2 0E94 0000 		call write_command
  89:APP1/lcd.c    ****    write_command(0x01);                         //清除显示
 423               	.LM36:
 424 00e6 81E0      		ldi r24,lo8(1)
 425 00e8 0E94 0000 		call write_command
 426               	/* epilogue: frame size=0 */
 427 00ec 0895      		ret
 428               	/* epilogue end (size=1) */
 429               	/* function LCD_Init size 38 (37) */
 431               	.Lscope4:
 436               	.global	display_str
 438               	display_str:
  90:APP1/lcd.c    ****   }
  91:APP1/lcd.c    **** /************************字符串打印函数***************************/
  92:APP1/lcd.c    **** void display_str(unsigned char row,unsigned char column,unsigned char *p)
  93:APP1/lcd.c    ****   {
 440               	.LM37:
 441               	/* prologue: frame size=0 */
 442 00ee 0F93      		push r16
 443 00f0 1F93      		push r17
 444 00f2 CF93      		push r28
 445 00f4 DF93      		push r29
 446               	/* prologue end (size=4) */
 447 00f6 182F      		mov r17,r24
 448 00f8 062F      		mov r16,r22
 449 00fa EA01      		movw r28,r20
  94:APP1/lcd.c    ****     write_command(0x30);
 451               	.LM38:
 452 00fc 80E3      		ldi r24,lo8(48)
 453 00fe 0E94 0000 		call write_command
 454               	.LBB2:
  95:APP1/lcd.c    **** 	//write_command(adress_table[row*8+column]);
  96:APP1/lcd.c    **** 	write_command(pgm_read_byte(adress_table+row*8+column));
 456               	.LM39:
 457 0102 E12F      		mov r30,r17
 458 0104 FF27      		clr r31
 459 0106 83E0      		ldi r24,3
 460 0108 EE0F      	1:	lsl r30
 461 010a FF1F      		rol r31
 462 010c 8A95      		dec r24
 463 010e E1F7      		brne 1b
 464 0110 E00F      		add r30,r16
 465 0112 F11D      		adc r31,__zero_reg__
 466 0114 E050      		subi r30,lo8(-(adress_table))
 467 0116 F040      		sbci r31,hi8(-(adress_table))
 468               	/* #APP */
 469 0118 8491      		lpm r24, Z
 470               		
 471               	/* #NOAPP */
 472               	.LBE2:
 473 011a 0E94 0000 		call write_command
  97:APP1/lcd.c    **** 	while((*p)!='\0')
  98:APP1/lcd.c    ****      {write_data(*p++);
  99:APP1/lcd.c    ****       column++;
 475               	.LM40:
 476 011e 8881      		ld r24,Y
 477 0120 8823      		tst r24
 478 0122 31F0      		breq .L52
 479               	.L50:
 481               	.LM41:
 482 0124 8991      		ld r24,Y+
 483 0126 0E94 0000 		call write_data
 485               	.LM42:
 486 012a 8881      		ld r24,Y
 487 012c 8823      		tst r24
 488 012e D1F7      		brne .L50
 489               	.L52:
 490               	/* epilogue: frame size=0 */
 491 0130 DF91      		pop r29
 492 0132 CF91      		pop r28
 493 0134 1F91      		pop r17
 494 0136 0F91      		pop r16
 495 0138 0895      		ret
 496               	/* epilogue end (size=5) */
 497               	/* function display_str size 41 (32) */
 502               	.Lscope5:
 507               	.global	display_1str
 509               	display_1str:
 100:APP1/lcd.c    ****      }
 101:APP1/lcd.c    ****   }
 102:APP1/lcd.c    **** void display_1str(unsigned char row,unsigned char column,unsigned char p)
 103:APP1/lcd.c    ****   {
 511               	.LM43:
 512               	/* prologue: frame size=0 */
 513 013a FF92      		push r15
 514 013c 0F93      		push r16
 515 013e 1F93      		push r17
 516               	/* prologue end (size=3) */
 517 0140 182F      		mov r17,r24
 518 0142 062F      		mov r16,r22
 519 0144 F42E      		mov r15,r20
 104:APP1/lcd.c    ****     write_command(0x30);
 521               	.LM44:
 522 0146 80E3      		ldi r24,lo8(48)
 523 0148 0E94 0000 		call write_command
 524               	.LBB3:
 105:APP1/lcd.c    **** 	write_command(pgm_read_byte(adress_table+row*8+column));
 526               	.LM45:
 527 014c E12F      		mov r30,r17
 528 014e FF27      		clr r31
 529 0150 93E0      		ldi r25,3
 530 0152 EE0F      	1:	lsl r30
 531 0154 FF1F      		rol r31
 532 0156 9A95      		dec r25
 533 0158 E1F7      		brne 1b
 534 015a E00F      		add r30,r16
 535 015c F11D      		adc r31,__zero_reg__
 536 015e E050      		subi r30,lo8(-(adress_table))
 537 0160 F040      		sbci r31,hi8(-(adress_table))
 538               	/* #APP */

⌨️ 快捷键说明

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