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

📄 disp.lst

📁 可以测试位图文件
💻 LST
📖 第 1 页 / 共 3 页
字号:
    06E8 2D0C      MOV	R16,R12
    06E9 6B08      ORI	R16,0xB8
    06EA DE7F      RCALL	_LCD_Write_ComL
(0247)   	LCD_Write_ComL(0x48|y<<3);
    06EB 2D0A      MOV	R16,R10
    06EC 0F00      LSL	R16
    06ED 0F00      LSL	R16
    06EE 0F00      LSL	R16
    06EF 6408      ORI	R16,0x48
    06F0 DE79      RCALL	_LCD_Write_ComL
(0248)   	for(i=8;i<16;i++)
    06F1 E068      LDI	R22,0x8
    06F2 C00C      RJMP	0x06FF
(0249)   	{
(0250)     		LCD_Write_DatL(Hzk[chr_m+i]);
    06F3 2E26      MOV	R2,R22
    06F4 2433      CLR	R3
    06F5 01FA      MOVW	R30,R20
    06F6 0DE2      ADD	R30,R2
    06F7 1DF3      ADC	R31,R3
    06F8 E88C      LDI	R24,0x8C
    06F9 E090      LDI	R25,0
    06FA 0FE8      ADD	R30,R24
    06FB 1FF9      ADC	R31,R25
    06FC 9104      LPM	R16,0(Z)
    06FD DE7E      RCALL	_LCD_Write_DatL
    06FE 9563      INC	R22
    06FF 3160      CPI	R22,0x10
    0700 F390      BCS	0x06F3
(0251)   	}
(0252) 
(0253)   	LCD_Write_ComL(0xb9|x);
    0701 2D0C      MOV	R16,R12
    0702 6B09      ORI	R16,0xB9
    0703 DE66      RCALL	_LCD_Write_ComL
(0254)   	LCD_Write_ComL(0x40|y<<3);
    0704 2D0A      MOV	R16,R10
    0705 0F00      LSL	R16
    0706 0F00      LSL	R16
    0707 0F00      LSL	R16
    0708 6400      ORI	R16,0x40
    0709 DE60      RCALL	_LCD_Write_ComL
(0255)   	for(i=16;i<24;i++)
    070A E160      LDI	R22,0x10
    070B C00C      RJMP	0x0718
(0256)   	{
(0257)     		LCD_Write_DatL(Hzk[chr_m+i]);
    070C 2E26      MOV	R2,R22
    070D 2433      CLR	R3
    070E 01FA      MOVW	R30,R20
    070F 0DE2      ADD	R30,R2
    0710 1DF3      ADC	R31,R3
    0711 E88C      LDI	R24,0x8C
    0712 E090      LDI	R25,0
    0713 0FE8      ADD	R30,R24
    0714 1FF9      ADC	R31,R25
    0715 9104      LPM	R16,0(Z)
    0716 DE65      RCALL	_LCD_Write_DatL
    0717 9563      INC	R22
    0718 3168      CPI	R22,0x18
    0719 F390      BCS	0x070C
(0258)   	}
(0259)   	LCD_Write_ComL(0xb9|x);
    071A 2D0C      MOV	R16,R12
    071B 6B09      ORI	R16,0xB9
    071C DE4D      RCALL	_LCD_Write_ComL
(0260)   	LCD_Write_ComL(0x48|y<<3);
    071D 2D0A      MOV	R16,R10
    071E 0F00      LSL	R16
    071F 0F00      LSL	R16
    0720 0F00      LSL	R16
    0721 6408      ORI	R16,0x48
    0722 DE47      RCALL	_LCD_Write_ComL
(0261)   	for(i=24;i<32;i++)
    0723 E168      LDI	R22,0x18
    0724 C00C      RJMP	0x0731
(0262)   	{
(0263)     		LCD_Write_DatL(Hzk[chr_m+i]);
    0725 2E26      MOV	R2,R22
    0726 2433      CLR	R3
    0727 01FA      MOVW	R30,R20
    0728 0DE2      ADD	R30,R2
    0729 1DF3      ADC	R31,R3
    072A E88C      LDI	R24,0x8C
    072B E090      LDI	R25,0
    072C 0FE8      ADD	R30,R24
    072D 1FF9      ADC	R31,R25
    072E 9104      LPM	R16,0(Z)
    072F DE4C      RCALL	_LCD_Write_DatL
    0730 9563      INC	R22
    0731 3260      CPI	R22,0x20
    0732 F390      BCS	0x0725
(0264)   	}
(0265) }
    0733 940E07C3  CALL	pop_gset4
    0735 9508      RET
_LCD_WrMap8x8:
  chr_m                --> R20
  i                    --> R22
  chrx                 --> Y+8
  y                    --> R10
  x                    --> R12
    0736 940E07C8  CALL	push_gset4
    0738 2EA2      MOV	R10,R18
    0739 2EC0      MOV	R12,R16
(0266) 
(0267) }
(0268) 
(0269) //======================================================
(0270) //显示128x64点阵图型,位置按8x8一个点来定
(0271) // x:行坐标(0-3)  y:列坐标(0-15) chrx:图型索引值
(0272) //======================================================
(0273) void LCD_WrMap8x8(unsigned char x,unsigned char y,unsigned char chrx)
(0274) {
(0275) unsigned char i;
(0276) unsigned int chr_m;
(0277) chr_m=chrx;
    073A 8548      LDD	R20,Y+8
    073B 2755      CLR	R21
(0278) chr_m=chr_m*64;
    073C E400      LDI	R16,0x40
    073D E010      LDI	R17,0
    073E 019A      MOVW	R18,R20
    073F 940E07B0  CALL	empy16s
    0741 01A8      MOVW	R20,R16
(0279) if(y>=8)          //y以字节计算,在右半屏显示,y以字节单位
    0742 2D8A      MOV	R24,R10
    0743 3088      CPI	R24,0x8
    0744 F0E0      BCS	0x0761
(0280) {
(0281) 	y=y-8;
    0745 5088      SUBI	R24,0x8
    0746 2EA8      MOV	R10,R24
(0282) 	LCD_Write_ComR(0xb8|x);  	//确定显示行位置
    0747 2D0C      MOV	R16,R12
    0748 6B08      ORI	R16,0xB8
    0749 DE45      RCALL	_LCD_Write_ComR
(0283)   	LCD_Write_ComR(0x40|y<<3);	//确定显示列位置
    074A 2D0A      MOV	R16,R10
    074B 0F00      LSL	R16
    074C 0F00      LSL	R16
    074D 0F00      LSL	R16
    074E 6400      ORI	R16,0x40
    074F DE3F      RCALL	_LCD_Write_ComR
(0284)   	for(i=0;i<64;i++)
    0750 2766      CLR	R22
    0751 C00C      RJMP	0x075E
(0285)   	{
(0286)     		LCD_Write_DatR(Hzk[chr_m+i]);
    0752 2E26      MOV	R2,R22
    0753 2433      CLR	R3
    0754 01FA      MOVW	R30,R20
    0755 0DE2      ADD	R30,R2
    0756 1DF3      ADC	R31,R3
    0757 E88C      LDI	R24,0x8C
    0758 E090      LDI	R25,0
    0759 0FE8      ADD	R30,R24
    075A 1FF9      ADC	R31,R25
    075B 9104      LPM	R16,0(Z)
    075C DE44      RCALL	_LCD_Write_DatR
    075D 9563      INC	R22
    075E 3460      CPI	R22,0x40
    075F F390      BCS	0x0752
(0287)   	}
(0288) }
    0760 C019      RJMP	0x077A
(0289) else
(0290) {
(0291) 	LCD_Write_ComL(0xb8|x);
    0761 2D0C      MOV	R16,R12
    0762 6B08      ORI	R16,0xB8
    0763 DE06      RCALL	_LCD_Write_ComL
(0292)   	LCD_Write_ComL(0x40|y<<3);
    0764 2D0A      MOV	R16,R10
    0765 0F00      LSL	R16
    0766 0F00      LSL	R16
    0767 0F00      LSL	R16
    0768 6400      ORI	R16,0x40
    0769 DE00      RCALL	_LCD_Write_ComL
(0293)   	for(i=0;i<64;i++)
    076A 2766      CLR	R22
    076B C00C      RJMP	0x0778
(0294)   	{
(0295)     		LCD_Write_DatL(Hzk[chr_m+i]);
    076C 2E26      MOV	R2,R22
    076D 2433      CLR	R3
    076E 01FA      MOVW	R30,R20
    076F 0DE2      ADD	R30,R2
    0770 1DF3      ADC	R31,R3
    0771 E88C      LDI	R24,0x8C
    0772 E090      LDI	R25,0
    0773 0FE8      ADD	R30,R24
    0774 1FF9      ADC	R31,R25
    0775 9104      LPM	R16,0(Z)
    0776 DE05      RCALL	_LCD_Write_DatL
    0777 9563      INC	R22
    0778 3460      CPI	R22,0x40
    0779 F390      BCS	0x076C
(0296)   	}
(0297) }
    077A 940E07C3  CALL	pop_gset4
    077C 9508      RET
_main:
  i                    --> R20
    077D 9721      SBIW	R28,1
(0298) }
(0299) 
(0300) //=============
(0301) //主程序
(0302) //=============
(0303) void main(void)
(0304) {
(0305) unsigned int i;
(0306) DDRA=0xff; PORTA=0x00;  //数据端口输出
    077E EF8F      LDI	R24,0xFF
    077F BB8A      OUT	0x1A,R24
    0780 2422      CLR	R2
    0781 BA2B      OUT	0x1B,R2
(0307) DDRC=0xff; PORTC=0x04;  //控制端口输出
    0782 BB84      OUT	0x14,R24
    0783 E084      LDI	R24,4
    0784 BB85      OUT	0x15,R24
(0308) 
(0309) //#asm("wdr");
(0310) 
(0311) //#asm("SEI");  //开总中断
(0312) Delay(200);
    0785 EC08      LDI	R16,0xC8
    0786 E010      LDI	R17,0
    0787 DDCD      RCALL	_Delay
(0313) 
(0314) LCD_Init(); 	//LCD初始化
    0788 DE2B      RCALL	_LCD_Init
(0315) LCD_Clr();      //LCD清屏
    0789 DE37      RCALL	_LCD_Clr
(0316) 
(0317) Delay(200);
    078A EC08      LDI	R16,0xC8
    078B E010      LDI	R17,0
    078C DDC8      RCALL	_Delay
(0318) Delay(200);
    078D EC08      LDI	R16,0xC8
    078E E010      LDI	R17,0
    078F DDC5      RCALL	_Delay
(0319) 
(0320) for(i=0; i<8; i++)
    0790 2744      CLR	R20
    0791 2755      CLR	R21
    0792 C016      RJMP	0x07A9
(0321) {
(0322) 	LCD_WrMap8x8(i,0,2*i);
    0793 E002      LDI	R16,2
    0794 E010      LDI	R17,0
    0795 019A      MOVW	R18,R20
    0796 940E07B0  CALL	empy16s
    0798 8308      STD	Y+0,R16
    0799 2722      CLR	R18
    079A 2F04      MOV	R16,R20
    079B DF9A      RCALL	_LCD_WrMap8x8
(0323) 	LCD_WrMap8x8(i,8,2*i+1);
    079C E002      LDI	R16,2
    079D E010      LDI	R17,0
    079E 019A      MOVW	R18,R20
    079F 940E07B0  CALL	empy16s
    07A1 01C8      MOVW	R24,R16
    07A2 9601      ADIW	R24,1
    07A3 8388      STD	Y+0,R24
    07A4 E028      LDI	R18,0x8
    07A5 2F04      MOV	R16,R20
    07A6 DF8F      RCALL	_LCD_WrMap8x8
    07A7 5F4F      SUBI	R20,0xFF
    07A8 4F5F      SBCI	R21,0xFF
    07A9 3048      CPI	R20,0x8
    07AA E0E0      LDI	R30,0
    07AB 075E      CPC	R21,R30
    07AC F330      BCS	0x0793
(0324) }
(0325) //for(i=0;i<8;i++) LCD_WrCHr8x16(0,i,i);      	//第一行显示8x16西文字符
(0326) //for(i=0;i<8;i++) LCD_WrCHr16x16(0,i*2,i);
(0327) //for(i=0;i<8;i++) LCD_WrCHr16x16(2,i*2,i+8);      	//第二行显示16x16中文字符
(0328) //for(i=0;i<8;i++) LCD_WrCHr16x16(4,i*2,i+16); 	//第三行显示16x16中文字符
(0329) //for(i=0;i<8;i++) LCD_WrCHr16x16(6,i*2,i+24); 	//第三行显示16x16中文字符
(0330) 
(0331) //for(i=0;i<8;i++) LCD_WrCHr16x16(6,i*2,i+24); 	//第四行显示16x16中文字符
(0332) 
(0333) while(1)
FILE: <library>
    07AD CFFF      RJMP	0x07AD
    07AE 9621      ADIW	R28,1
    07AF 9508      RET
empy16s:
    07B0 920A      ST	R0,-Y
    07B1 921A      ST	R1,-Y
    07B2 938A      ST	R24,-Y
    07B3 939A      ST	R25,-Y
    07B4 9F02      MUL	R16,R18
    07B5 01C0      MOVW	R24,R0
    07B6 9F12      MUL	R17,R18
    07B7 0D90      ADD	R25,R0
    07B8 9F03      MUL	R16,R19
    07B9 0D90      ADD	R25,R0
    07BA 018C      MOVW	R16,R24
    07BB 9199      LD	R25,Y+
    07BC 9189      LD	R24,Y+
    07BD 9019      LD	R1,Y+
    07BE 9009      LD	R0,Y+
    07BF 9508      RET
pop_gset2:
    07C0 E0E2      LDI	R30,2
    07C1 940C07D2  JMP	pop
pop_gset4:
    07C3 E0E8      LDI	R30,0x8
    07C4 940C07D2  JMP	pop
push_gset5:
    07C6 92FA      ST	R15,-Y
    07C7 92EA      ST	R14,-Y
push_gset4:
    07C8 92DA      ST	R13,-Y
    07C9 92CA      ST	R12,-Y
push_gset3:
    07CA 92BA      ST	R11,-Y
    07CB 92AA      ST	R10,-Y
push_gset2:
    07CC 937A      ST	R23,-Y
    07CD 936A      ST	R22,-Y
push_gset1:
    07CE 935A      ST	R21,-Y
    07CF 934A      ST	R20,-Y
    07D0 9508      RET
pop_gset1:
    07D1 E0E1      LDI	R30,1
pop:
    07D2 9149      LD	R20,Y+
    07D3 9159      LD	R21,Y+
    07D4 FDE0      SBRC	R30,0
    07D5 9508      RET
    07D6 9169      LD	R22,Y+
    07D7 9179      LD	R23,Y+
    07D8 FDE1      SBRC	R30,1
    07D9 9508      RET
    07DA 90A9      LD	R10,Y+
    07DB 90B9      LD	R11,Y+
    07DC FDE2      SBRC	R30,2
    07DD 9508      RET
    07DE 90C9      LD	R12,Y+
    07DF 90D9      LD	R13,Y+
    07E0 FDE3      SBRC	R30,3
    07E1 9508      RET
    07E2 90E9      LD	R14,Y+
    07E3 90F9      LD	R15,Y+
    07E4 9508      RET

⌨️ 快捷键说明

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