📄 no2.lis
字号:
007E 78F3 brlo L18
0080 X4:
0080 .dbline -2
0080 L17:
0080 .dbline 0 ; func end
0080 0C940000 xjmp pop_xgset003C
0084 .dbsym r i 10 i
0084 .dbsym r j 12 i
0084 .dbsym r ms 16 i
0084 .dbend
0084 .dbfunc e Lcd_Write_Byte _Lcd_Write_Byte fV
0084 ; temp -> R16
.even
0084 _Lcd_Write_Byte::
0084 .dbline -1
0084 .dbline 106
0084 ; }
0084 ; void Lcd_Write_Byte(uchar temp)
0084 ; {
0084 .dbline 107
0084 ; PORTB|=BIT(0);
0084 C09A sbi 0x18,0
0086 .dbline 108
0086 ; PORTB&=~BIT(1); //W
0086 C198 cbi 0x18,1
0088 .dbline 109
0088 ; PORTB|=BIT(4); //E使能
0088 C49A sbi 0x18,4
008A .dbline 110
008A ; DDRA=0xff; //a输出
008A 8FEF ldi R24,255
008C 8ABB out 0x1a,R24
008E .dbline 111
008E ; PORTA=temp;
008E 0BBB out 0x1b,R16
0090 .dbline 112
0090 ; asm("nop");
0090 0000 nop
0092 .dbline 113
0092 ; asm("nop");
0092 0000 nop
0094 .dbline 114
0094 ; asm("nop");
0094 0000 nop
0096 .dbline 115
0096 ; asm("nop");
0096 0000 nop
0098 .dbline 116
0098 ; PORTB&=~BIT(4);
0098 C498 cbi 0x18,4
009A .dbline 117
009A ; PORTA=0xff;
009A 8BBB out 0x1b,R24
009C .dbline -2
009C L26:
009C .dbline 0 ; func end
009C 0895 ret
009E .dbsym r temp 16 c
009E .dbend
009E .dbfunc e Lcd_Write_COM _Lcd_Write_COM fV
009E ; COL -> R16
.even
009E _Lcd_Write_COM::
009E .dbline -1
009E .dbline 120
009E ; }
009E ; void Lcd_Write_COM(uchar COL)
009E ; {
009E .dbline 121
009E ; PORTB&=~BIT(0);
009E C098 cbi 0x18,0
00A0 .dbline 122
00A0 ; PORTB&=~BIT(1); //W
00A0 C198 cbi 0x18,1
00A2 .dbline 123
00A2 ; PORTB|=BIT(4); //E使能
00A2 C49A sbi 0x18,4
00A4 .dbline 124
00A4 ; DDRA=0xff; //a输出
00A4 8FEF ldi R24,255
00A6 8ABB out 0x1a,R24
00A8 .dbline 125
00A8 ; PORTA=COL;
00A8 0BBB out 0x1b,R16
00AA .dbline 126
00AA ; asm("nop");
00AA 0000 nop
00AC .dbline 127
00AC ; asm("nop");
00AC 0000 nop
00AE .dbline 128
00AE ; asm("nop");
00AE 0000 nop
00B0 .dbline 129
00B0 ; asm("nop");
00B0 0000 nop
00B2 .dbline 130
00B2 ; PORTB&=~BIT(4);
00B2 C498 cbi 0x18,4
00B4 .dbline -2
00B4 L27:
00B4 .dbline 0 ; func end
00B4 0895 ret
00B6 .dbsym r COL 16 c
00B6 .dbend
00B6 .dbfunc e set_page_L _set_page_L fV
00B6 ; page -> R10
.even
00B6 _set_page_L::
00B6 AA92 st -y,R10
00B8 A02E mov R10,R16
00BA .dbline -1
00BA .dbline 136
00BA ;
00BA ; }
00BA ;
00BA ;
00BA ; void set_page_L(unsigned char page) /*设置X地址 设置页*/ //0-7
00BA ; {
00BA .dbline 137
00BA ; Lcd_Write_COM(0xb8|page);
00BA 0A2D mov R16,R10
00BC 086B ori R16,184
00BE EFDF xcall _Lcd_Write_COM
00C0 .dbline -2
00C0 L28:
00C0 .dbline 0 ; func end
00C0 A990 ld R10,y+
00C2 0895 ret
00C4 .dbsym r page 10 c
00C4 .dbend
00C4 .dbfunc e set_page_R _set_page_R fV
00C4 ; page -> R10
.even
00C4 _set_page_R::
00C4 AA92 st -y,R10
00C6 A02E mov R10,R16
00C8 .dbline -1
00C8 .dbline 140
00C8 ; }
00C8 ; void set_page_R(unsigned char page) /*设置X地址 设置页*/ //0-7
00C8 ; {
00C8 .dbline 141
00C8 ; Lcd_Write_COM(0xb8|page);
00C8 0A2D mov R16,R10
00CA 086B ori R16,184
00CC E8DF xcall _Lcd_Write_COM
00CE .dbline -2
00CE L29:
00CE .dbline 0 ; func end
00CE A990 ld R10,y+
00D0 0895 ret
00D2 .dbsym r page 10 c
00D2 .dbend
00D2 .dbfunc e set_col_addr_L _set_col_addr_L fV
00D2 ; col -> R10
.even
00D2 _set_col_addr_L::
00D2 AA92 st -y,R10
00D4 A02E mov R10,R16
00D6 .dbline -1
00D6 .dbline 145
00D6 ; }
00D6 ;
00D6 ; void set_col_addr_L(unsigned char col) /*设置Y地址*/ //0-63
00D6 ; {
00D6 .dbline 147
00D6 ;
00D6 ; Lcd_Write_COM(0x40|col);
00D6 0A2D mov R16,R10
00D8 0064 ori R16,64
00DA E1DF xcall _Lcd_Write_COM
00DC .dbline -2
00DC L30:
00DC .dbline 0 ; func end
00DC A990 ld R10,y+
00DE 0895 ret
00E0 .dbsym r col 10 c
00E0 .dbend
00E0 .dbfunc e set_col_addr_R _set_col_addr_R fV
00E0 ; col -> R10
.even
00E0 _set_col_addr_R::
00E0 AA92 st -y,R10
00E2 A02E mov R10,R16
00E4 .dbline -1
00E4 .dbline 151
00E4 ; }
00E4 ;
00E4 ; void set_col_addr_R(unsigned char col) /*设置Y地址*/ //0-63
00E4 ; {
00E4 .dbline 152
00E4 ; Lcd_Write_COM(0x40|col);
00E4 0A2D mov R16,R10
00E6 0064 ori R16,64
00E8 DADF xcall _Lcd_Write_COM
00EA .dbline -2
00EA L31:
00EA .dbline 0 ; func end
00EA A990 ld R10,y+
00EC 0895 ret
00EE .dbsym r col 10 c
00EE .dbend
00EE .dbfunc e Lcd_Set_X_Y _Lcd_Set_X_Y fV
00EE ; y -> R12
00EE ; x -> R10
.even
00EE _Lcd_Set_X_Y::
00EE AA92 st -y,R10
00F0 CA92 st -y,R12
00F2 C22E mov R12,R18
00F4 A02E mov R10,R16
00F6 .dbline -1
00F6 .dbline 163
00F6 ; }
00F6 ;
00F6 ;
00F6 ; /********************************************************************************************
00F6 ; * 函数名称:Lcd_Set_X_Y(uchar x, uchar y )
00F6 ; * 功 能:LCD设置x y坐标
00F6 ; * 入口参数:x y
00F6 ; * 出口参数:无
00F6 ; *********************************************************************************************/
00F6 ; void Lcd_Set_X_Y(uchar x, uchar y)
00F6 ; {
00F6 .dbline 164
00F6 ; if(y<64)
00F6 8C2D mov R24,R12
00F8 8034 cpi R24,64
00FA 28F4 brsh L33
00FC X5:
00FC .dbline 165
00FC ; { PORTB&=~BIT(3);
00FC .dbline 165
00FC C398 cbi 0x18,3
00FE .dbline 166
00FE ; PORTB|=BIT(2);
00FE C29A sbi 0x18,2
0100 .dbline 168
0100 ;
0100 ; set_col_addr_L(y);
0100 082F mov R16,R24
0102 E7DF xcall _set_col_addr_L
0104 .dbline 169
0104 ; }
0104 04C0 xjmp L34
0106 L33:
0106 .dbline 171
0106 ; else
0106 ; {
0106 .dbline 172
0106 ; PORTB|=BIT(3);
0106 C39A sbi 0x18,3
0108 .dbline 173
0108 ; PORTB&=~BIT(2);
0108 C298 cbi 0x18,2
010A .dbline 174
010A ; set_col_addr_R(y);
010A 0C2D mov R16,R12
010C E9DF xcall _set_col_addr_R
010E .dbline 175
010E ; }
010E L34:
010E .dbline 176
010E ; set_page_L( x);
010E 0A2D mov R16,R10
0110 D2DF xcall _set_page_L
0112 .dbline 177
0112 ; set_page_R( x);
0112 0A2D mov R16,R10
0114 D7DF xcall _set_page_R
0116 .dbline -2
0116 L32:
0116 .dbline 0 ; func end
0116 C990 ld R12,y+
0118 A990 ld R10,y+
011A 0895 ret
011C .dbsym r y 12 c
011C .dbsym r x 10 c
011C .dbend
011C .dbfunc e Lcd_Character_16X16 _Lcd_Character_16X16 fV
011C ; temp -> y+0
011C ; i -> R10
011C ; j -> R12
011C ; point -> y+11
011C ; y -> R14
011C ; x -> y+7
011C ; bit_flag -> R10
.even
011C _Lcd_Character_16X16::
011C 3A93 st -y,r19
011E 2A93 st -y,r18
0120 0E940000 xcall push_xgset00FC
0124 A02E mov R10,R16
0126 2197 sbiw R28,1
0128 E984 ldd R14,y+9
012A .dbline -1
012A .dbline 188
012A ; }
012A ;
012A ; /****************************************************************************
012A ; * 名称:Lcd_Character_16X16( bit bit_flag, uchar x, uchar y, uchar code *point )
012A ; * 功能:显示16*16字符(汉字)
012A ; * 入口参数:x y data
012A ; * 出口参数:无
012A ; *说明:bit_flag = 1 正常显示 bit_flag = 0 黑白反相显示
012A ; ****************************************************************************/
012A ; void Lcd_Character_16X16( uchar bit_flag, uchar x, uchar y, uchar *point )
012A ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -