📄 lcm.lis
字号:
0138 .dbline 83
0138 ; data_1(2);
0138 02E0 ldi R16,2
013A 10E0 ldi R17,0
013C 98DF rcall _data_1
013E .dbline 84
013E ; data_0(1);
013E 01E0 ldi R16,1
0140 10E0 ldi R17,0
0142 7FDF rcall _data_0
0144 .dbline 85
0144 ; for(j=0;j<8;j++)
0144 4427 clr R20
0146 13C0 rjmp L39
0148 L36:
0148 .dbline 86
0148 .dbline 88
0148 82B3 in R24,0x12
014A 8F77 andi R24,127
014C 82BB out 0x12,R24
014E .dbline 88
014E 58DF rcall _delay_1us
0150 .dbline 89
0150 862F mov R24,R22
0152 8078 andi R24,128
0154 22B2 in R2,0x12
0156 282A or R2,R24
0158 22BA out 0x12,R2
015A .dbline 89
015A 52DF rcall _delay_1us
015C .dbline 90
015C 82B3 in R24,0x12
015E 8F7B andi R24,191
0160 82BB out 0x12,R24
0162 .dbline 90
0162 4EDF rcall _delay_1us
0164 .dbline 91
0164 969A sbi 0x12,6
0166 .dbline 91
0166 4CDF rcall _delay_1us
0168 .dbline 92
0168 660F lsl R22
016A .dbline 92
016A 4ADF rcall _delay_1us
016C .dbline 93
016C L37:
016C .dbline 85
016C 4395 inc R20
016E L39:
016E .dbline 85
016E 4830 cpi R20,8
0170 58F3 brlo L36
0172 .dbline 94
0172 ; {
0172 ;
0172 ; PORTD&=0x7f; delay_1us();
0172 ; PORTD|=(dat&0x80);delay_1us();
0172 ; PORTD&=0xbf; delay_1us();
0172 ; PORTD|=0x40; delay_1us();
0172 ; dat=(dat<<1); delay_1us();
0172 ; }
0172 ; PORTD|=0x10;delay_1us();
0172 949A sbi 0x12,4
0174 .dbline 94
0174 45DF rcall _delay_1us
0176 .dbline 96
0176 ;
0176 ; PORTD|=0xc0;delay_1us();
0176 82B3 in R24,0x12
0178 806C ori R24,192
017A 82BB out 0x12,R24
017C .dbline 96
017C 41DF rcall _delay_1us
017E .dbline 100
017E ;
017E ; //return(read_lcd()==)
017E ;
017E ; }break;
017E .dbline 100
017E 30C0 rjmp L28
0180 L40:
0180 .dbline 102
0180 ; case 10://将高七位全部置零
0180 ; {
0180 .dbline 104
0180 ;
0180 ; dat=(dat<<3);
0180 660F lsl R22
0182 660F lsl R22
0184 660F lsl R22
0186 .dbline 105
0186 ; PORTD&=0xef;delay_1us();
0186 82B3 in R24,0x12
0188 8F7E andi R24,239
018A 82BB out 0x12,R24
018C .dbline 105
018C 39DF rcall _delay_1us
018E .dbline 106
018E ; data_1(1);
018E 01E0 ldi R16,1
0190 10E0 ldi R17,0
0192 6DDF rcall _data_1
0194 .dbline 107
0194 ; data_0(1);
0194 01E0 ldi R16,1
0196 10E0 ldi R17,0
0198 54DF rcall _data_0
019A .dbline 108
019A ; data_1(2);
019A 02E0 ldi R16,2
019C 10E0 ldi R17,0
019E 67DF rcall _data_1
01A0 .dbline 109
01A0 ; for(j=0;j<5;j++)
01A0 4427 clr R20
01A2 13C0 rjmp L44
01A4 L41:
01A4 .dbline 110
01A4 .dbline 112
01A4 82B3 in R24,0x12
01A6 8F77 andi R24,127
01A8 82BB out 0x12,R24
01AA .dbline 112
01AA 2ADF rcall _delay_1us
01AC .dbline 113
01AC 862F mov R24,R22
01AE 8078 andi R24,128
01B0 22B2 in R2,0x12
01B2 282A or R2,R24
01B4 22BA out 0x12,R2
01B6 .dbline 113
01B6 24DF rcall _delay_1us
01B8 .dbline 114
01B8 82B3 in R24,0x12
01BA 8F7B andi R24,191
01BC 82BB out 0x12,R24
01BE .dbline 114
01BE 20DF rcall _delay_1us
01C0 .dbline 115
01C0 969A sbi 0x12,6
01C2 .dbline 115
01C2 1EDF rcall _delay_1us
01C4 .dbline 116
01C4 660F lsl R22
01C6 .dbline 116
01C6 1CDF rcall _delay_1us
01C8 .dbline 117
01C8 L42:
01C8 .dbline 109
01C8 4395 inc R20
01CA L44:
01CA .dbline 109
01CA 4530 cpi R20,5
01CC 58F3 brlo L41
01CE .dbline 118
01CE ; {
01CE ;
01CE ; PORTD&=0x7f; delay_1us();
01CE ; PORTD|=(dat&0x80);delay_1us();
01CE ; PORTD&=0xbf; delay_1us();
01CE ; PORTD|=0x40; delay_1us();
01CE ; dat=(dat<<1); delay_1us();
01CE ; }
01CE ; data_0(4);
01CE 04E0 ldi R16,4
01D0 10E0 ldi R17,0
01D2 37DF rcall _data_0
01D4 .dbline 119
01D4 ; PORTD|=0x10;delay_1us();
01D4 949A sbi 0x12,4
01D6 .dbline 119
01D6 14DF rcall _delay_1us
01D8 .dbline 121
01D8 ;
01D8 ; PORTD|=0xc0;delay_1us();
01D8 82B3 in R24,0x12
01DA 806C ori R24,192
01DC 82BB out 0x12,R24
01DE .dbline 121
01DE 10DF rcall _delay_1us
01E0 .dbline 125
01E0 ;
01E0 ; //return(read_lcd()==)
01E0 ;
01E0 ; }break;
01E0 .dbline 125
01E0 L27:
01E0 L28:
01E0 .dbline -2
01E0 L26:
01E0 00D0 rcall pop_gset3
01E2 .dbline 0 ; func end
01E2 0895 ret
01E4 .dbsym r j 20 c
01E4 .dbsym r dat 22 c
01E4 .dbsym r data 10 c
01E4 .dbsym r n 20 c
01E4 .dbend
.area lit(rom, con, rel)
0000 L46:
0000 2918 .byte 41,24
0002 0103 .byte 1,3
0004 L47:
0004 0610 .byte 6,16
0006 031E .byte 3,30
0008 071A .byte 7,26
000A 0613 .byte 6,19
000C 051B .byte 5,27
000E 051F .byte 5,31
0010 0710 .byte 7,16
0012 071F .byte 7,31
0014 071B .byte 7,27
0016 071D .byte 7,29
.area text(rom, con, rel)
01E4 .dbfile G:\AVR系列\LCM0825\lcm.c
01E4 .dbfunc e main _main fV
01E4 ; init -> y+20
01E4 ; add -> R22
01E4 ; address -> y+0
01E4 ; j -> R22,R23
01E4 ; i -> R20
.even
01E4 _main::
01E4 6897 sbiw R28,24
01E6 .dbline -1
01E6 .dbline 130
01E6 ;
01E6 ; }
01E6 ; }
01E6 ; void main(void)
01E6 ; {
01E6 .dbline 131
01E6 ; unsigned char init[4]={0x29,0x18,0x01,0x03}, address[20]={0x06,0x10,0x03,0x1e,0x07,0x1a,
01E6 80E0 ldi R24,<L46
01E8 90E0 ldi R25,>L46
01EA FE01 movw R30,R28
01EC 7496 adiw R30,20
01EE 04E0 ldi R16,4
01F0 10E0 ldi R17,0
01F2 FA93 st -y,R31
01F4 EA93 st -y,R30
01F6 9A93 st -y,R25
01F8 8A93 st -y,R24
01FA 00D0 rcall asgncblk
01FC .dbline 131
01FC 80E0 ldi R24,<L47
01FE 90E0 ldi R25,>L47
0200 FE01 movw R30,R28
0202 04E1 ldi R16,20
0204 10E0 ldi R17,0
0206 FA93 st -y,R31
0208 EA93 st -y,R30
020A 9A93 st -y,R25
020C 8A93 st -y,R24
020E 00D0 rcall asgncblk
0210 .dbline 138
0210 ; 0x06,0x13,0x05,0x1b,0x05,0x1f,
0210 ; 0x07,0x10,0x07,0x1f,0x07,0x1b,
0210 ; 0x07,0x1d};//初始化命令字表和0~9数字表
0210 ;
0210 ; char i,add;
0210 ; unsigned int j;
0210 ; DDRD|=0xf0;delay_1us();
0210 81B3 in R24,0x11
0212 806F ori R24,240
0214 81BB out 0x11,R24
0216 .dbline 138
0216 F4DE rcall _delay_1us
0218 .dbline 139
0218 ; PORTD|=0xf0;delay_1us();
0218 82B3 in R24,0x12
021A 806F ori R24,240
021C 82BB out 0x12,R24
021E .dbline 139
021E F0DE rcall _delay_1us
0220 .dbline 140
0220 ; for(i=0;i<10;i++)
0220 4427 clr R20
0222 0AC0 rjmp L51
0224 L48:
0224 .dbline 141
0224 6627 clr R22
0226 7727 clr R23
0228 02C0 rjmp L55
022A L52:
022A .dbline 141
022A L53:
022A .dbline 141
022A 6F5F subi R22,255 ; offset = 1
022C 7F4F sbci R23,255
022E L55:
022E .dbline 141
022E 6037 cpi R22,112
0230 E7E1 ldi R30,23
0232 7E07 cpc R23,R30
0234 D0F3 brlo L52
0236 L49:
0236 .dbline 140
0236 4395 inc R20
0238 L51:
0238 .dbline 140
0238 4A30 cpi R20,10
023A A0F3 brlo L48
023C .dbline 142
023C ; for(j=0;j<6000;j++);
023C ; for(i=0;i<4;i++)//初始化
023C 4427 clr R20
023E 0AC0 rjmp L59
0240 L56:
0240 .dbline 143
0240 CE01 movw R24,R28
0242 4496 adiw R24,20
0244 E42F mov R30,R20
0246 FF27 clr R31
0248 E80F add R30,R24
024A F91F adc R31,R25
024C 2081 ldd R18,z+0
024E 0CE0 ldi R16,12
0250 25DF rcall _write_lcd
0252 L57:
0252 .dbline 142
0252 4395 inc R20
0254 L59:
0254 .dbline 142
0254 4430 cpi R20,4
0256 A0F3 brlo L56
0258 .dbline 144
0258 ; write_lcd(12,init[i]);
0258 ; for(add=2;add<16;add++)//将高七位置零
0258 62E0 ldi R22,2
025A 04C0 rjmp L63
025C L60:
025C .dbline 145
025C 262F mov R18,R22
025E 0AE0 ldi R16,10
0260 1DDF rcall _write_lcd
0262 L61:
0262 .dbline 144
0262 6395 inc R22
0264 L63:
0264 .dbline 144
0264 6031 cpi R22,16
0266 D0F3 brlo L60
0268 1BC0 rjmp L65
026A L64:
026A .dbline 148
026A ; write_lcd(10,add);
026A ; //delay(300);
026A ; while(1)
026A ; {
026A .dbline 149
026A ; for(i=0;i<20;i++) //写一个数据延时一段时间
026A 4427 clr R20
026C 17C0 rjmp L70
026E L67:
026E .dbline 150
026E .dbline 151
026E 242E mov R2,R20
0270 3324 clr R3
0272 4F5F subi R20,255 ; addi 1
0274 CE01 movw R24,R28
0276 E22D mov R30,R2
0278 FF27 clr R31
027A E80F add R30,R24
027C F91F adc R31,R25
027E 2081 ldd R18,z+0
0280 0DE0 ldi R16,13
0282 0CDF rcall _write_lcd
0284 .dbline 152
0284 CE01 movw R24,R28
0286 E42F mov R30,R20
0288 FF27 clr R31
028A E80F add R30,R24
028C F91F adc R31,R25
028E 2081 ldd R18,z+0
0290 0DE0 ldi R16,13
0292 04DF rcall _write_lcd
0294 .dbline 154
0294 08EC ldi R16,200
0296 10E0 ldi R17,0
0298 C7DE rcall _delay
029A .dbline 155
029A L68:
029A .dbline 149
029A 4395 inc R20
029C L70:
029C .dbline 149
029C 4431 cpi R20,20
029E 38F3 brlo L67
02A0 .dbline 156
02A0 L65:
02A0 .dbline 147
02A0 E4CF rjmp L64
02A2 X2:
02A2 .dbline -2
02A2 L45:
02A2 6896 adiw R28,24
02A4 .dbline 0 ; func end
02A4 0895 ret
02A6 .dbsym l init 20 A[4:4]c
02A6 .dbsym r add 22 c
02A6 .dbsym l address 0 A[20:20]c
02A6 .dbsym r j 22 i
02A6 .dbsym r i 20 c
02A6 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -