📄 m128.lis
字号:
0276 .dbline 125
0276 1A01 movw R2,R20
0278 4F5F subi R20,255 ; offset = 1
027A 5F4F sbci R21,255
027C F101 movw R30,R2
027E 0491 lpm R16,Z
0280 34D0 xcall _WrDat
0282 L41:
0282 .dbline 125
0282 ; while(*p !='\0')WrDat(*(p++)) ;
0282 FA01 movw R30,R20
0284 E491 lpm R30,Z
0286 EE23 tst R30
0288 B1F7 brne L40
028A .dbline -2
028A L39:
028A 0E940000 xcall pop_gset2
028E .dbline 0 ; func end
028E 0895 ret
0290 .dbsym r p 20 pkc
0290 .dbsym r addr 22 c
0290 .dbend
0290 .dbfunc e LcdIni _LcdIni fV
0290 ; i -> R20,R21
.even
0290 _LcdIni::
0290 0E940000 xcall push_gset1
0294 .dbline -1
0294 .dbline 129
0294 ; }
0294 ;
0294 ; void LcdIni()
0294 ; {
0294 .dbline 131
0294 ; uint i ;
0294 ; DDRD=0XFF ; //设置PA输出
0294 8FEF ldi R24,255
0296 81BB out 0x11,R24
0298 .dbline 132
0298 ; PORTD=0XFF ; //全部加上上拉电阻
0298 82BB out 0x12,R24
029A .dbline 133
029A ; DDRC=0XFF ; //设置PC为输出
029A 84BB out 0x14,R24
029C .dbline 134
029C ; PORTC=0XFF ; //全部加上上拉电阻
029C 85BB out 0x15,R24
029E .dbline 135
029E ; WrOp(0x38) ;
029E 08E3 ldi R16,56
02A0 12D0 xcall _WrOp
02A2 .dbline 136
02A2 ; WrOp(0x06) ; //光标加1
02A2 06E0 ldi R16,6
02A4 10D0 xcall _WrOp
02A6 .dbline 137
02A6 ; WrOp(0x0c) ; //开显示
02A6 0CE0 ldi R16,12
02A8 0ED0 xcall _WrOp
02AA .dbline 138
02AA ; WrOp(0x01) ;
02AA 01E0 ldi R16,1
02AC 0CD0 xcall _WrOp
02AE .dbline 139
02AE 4427 clr R20
02B0 5527 clr R21
02B2 02C0 xjmp L47
02B4 L44:
02B4 .dbline 139
02B4 L45:
02B4 .dbline 139
02B4 4F5F subi R20,255 ; offset = 1
02B6 5F4F sbci R21,255
02B8 L47:
02B8 .dbline 139
02B8 ; for(i=0 ;i<5000 ;i++) ;
02B8 4838 cpi R20,136
02BA E3E1 ldi R30,19
02BC 5E07 cpc R21,R30
02BE D0F3 brlo L44
02C0 .dbline -2
02C0 L43:
02C0 0E940000 xcall pop_gset1
02C4 .dbline 0 ; func end
02C4 0895 ret
02C6 .dbsym r i 20 i
02C6 .dbend
02C6 .dbfunc e WrOp _WrOp fV
02C6 ; i -> R20
02C6 ; dat -> R20
.even
02C6 _WrOp::
02C6 0E940000 xcall push_gset1
02CA 402F mov R20,R16
02CC .dbline -1
02CC .dbline 143
02CC ; }
02CC ;
02CC ; void WrOp(uchar dat)
02CC ; {
02CC .dbline 145
02CC ; uchar i ;
02CC ; ChkBusy() ;
02CC 20D0 xcall _ChkBusy
02CE .dbline 146
02CE ; PORTD &=~BIT(rs) ; //RS=0
02CE 9298 cbi 0x12,2
02D0 .dbline 147
02D0 ; PORTD &=~BIT(rw) ; //RW=0
02D0 9398 cbi 0x12,3
02D2 .dbline 148
02D2 ; PORTD &=~BIT(en) ; //EN=0
02D2 9498 cbi 0x12,4
02D4 .dbline 149
02D4 ; PORTC =dat ; //送数据
02D4 45BB out 0x15,R20
02D6 .dbline 150
02D6 ; PORTD |=BIT(en) ; //EN=1
02D6 949A sbi 0x12,4
02D8 .dbline 151
02D8 41E0 ldi R20,1
02DA 01C0 xjmp L52
02DC L49:
02DC .dbline 151
02DC L50:
02DC .dbline 151
02DC 4395 inc R20
02DE L52:
02DE .dbline 151
02DE ; for(i=1 ;i ;i++) ; //延时
02DE 4423 tst R20
02E0 E9F7 brne L49
02E2 .dbline 152
02E2 ; PORTD &=~BIT(en) ; //EN=0
02E2 9498 cbi 0x12,4
02E4 .dbline -2
02E4 L48:
02E4 0E940000 xcall pop_gset1
02E8 .dbline 0 ; func end
02E8 0895 ret
02EA .dbsym r i 20 c
02EA .dbsym r dat 20 c
02EA .dbend
02EA .dbfunc e WrDat _WrDat fV
02EA ; i -> R20
02EA ; dat -> R20
.even
02EA _WrDat::
02EA 0E940000 xcall push_gset1
02EE 402F mov R20,R16
02F0 .dbline -1
02F0 .dbline 156
02F0 ; }
02F0 ;
02F0 ; void WrDat(uchar dat)
02F0 ; {
02F0 .dbline 158
02F0 ; uchar i ;
02F0 ; ChkBusy() ;
02F0 0ED0 xcall _ChkBusy
02F2 .dbline 159
02F2 ; PORTD |=BIT(rs) ; //rs=1
02F2 929A sbi 0x12,2
02F4 .dbline 160
02F4 ; PORTD &=~BIT(rw) ; //rw=0
02F4 9398 cbi 0x12,3
02F6 .dbline 161
02F6 ; PORTD &=~BIT(en) ; //en=0
02F6 9498 cbi 0x12,4
02F8 .dbline 162
02F8 ; PORTC=dat ; //送数据
02F8 45BB out 0x15,R20
02FA .dbline 163
02FA ; PORTD |=BIT(en) ; //en=1
02FA 949A sbi 0x12,4
02FC .dbline 164
02FC 41E0 ldi R20,1
02FE 01C0 xjmp L57
0300 L54:
0300 .dbline 164
0300 L55:
0300 .dbline 164
0300 4395 inc R20
0302 L57:
0302 .dbline 164
0302 ; for(i=1 ;i ;i++) ; //延时
0302 4423 tst R20
0304 E9F7 brne L54
0306 .dbline 165
0306 ; PORTD &=~BIT(en) ; //en=0
0306 9498 cbi 0x12,4
0308 .dbline -2
0308 L53:
0308 0E940000 xcall pop_gset1
030C .dbline 0 ; func end
030C 0895 ret
030E .dbsym r i 20 c
030E .dbsym r dat 20 c
030E .dbend
030E .dbfunc e ChkBusy _ChkBusy fV
.even
030E _ChkBusy::
030E .dbline -1
030E .dbline 169
030E ; }
030E ;
030E ; void ChkBusy()
030E ; {
030E .dbline 170
030E ; DDRC=0X00 ; //设置为输入
030E 2224 clr R2
0310 24BA out 0x14,R2
0312 .dbline 171
0312 ; PORTC=0X00 ; //不设置上拉电阻
0312 25BA out 0x15,R2
0314 .dbline 172
0314 ; PORTD &=~BIT(rs) ; //RS=0
0314 9298 cbi 0x12,2
0316 .dbline 173
0316 ; PORTD |=BIT(rw) ; //RW=1
0316 939A sbi 0x12,3
0318 .dbline 174
0318 ; PORTD |=BIT(en) ; //EN=1
0318 949A sbi 0x12,4
031A L59:
031A .dbline 175
031A L60:
031A .dbline 175
031A ; while(PINC & 0x80) ; //送数据
031A 9F99 sbic 0x13,7
031C FECF rjmp L59
031E .dbline 176
031E ; PORTD &=~BIT(en) ; //en=0
031E 9498 cbi 0x12,4
0320 .dbline 177
0320 ; DDRC=0xff ; //设置为输出
0320 8FEF ldi R24,255
0322 84BB out 0x14,R24
0324 .dbline -2
0324 L58:
0324 .dbline 0 ; func end
0324 0895 ret
0326 .dbend
0326 .dbfunc e delayms _delayms fV
0326 ; i -> R20,R21
0326 ; j -> R22
0326 ; n -> R16,R17
.even
0326 _delayms::
0326 0E940000 xcall push_gset2
032A .dbline -1
032A .dbline 181
032A ; }
032A ;
032A ; void delayms(uint n)
032A ; {
032A .dbline 184
032A ; uchar j ;
032A ; uint i ;
032A ; for(i=0 ;i<n ;i++)
032A 4427 clr R20
032C 5527 clr R21
032E 07C0 xjmp L66
0330 L63:
0330 .dbline 185
0330 6627 clr R22
0332 01C0 xjmp L70
0334 L67:
0334 .dbline 185
0334 L68:
0334 .dbline 185
0334 6395 inc R22
0336 L70:
0336 .dbline 185
0336 6A3F cpi R22,250
0338 E8F3 brlo L67
033A L64:
033A .dbline 184
033A 4F5F subi R20,255 ; offset = 1
033C 5F4F sbci R21,255
033E L66:
033E .dbline 184
033E 4017 cp R20,R16
0340 5107 cpc R21,R17
0342 B0F3 brlo L63
0344 .dbline -2
0344 L62:
0344 0E940000 xcall pop_gset2
0348 .dbline 0 ; func end
0348 0895 ret
034A .dbsym r i 20 i
034A .dbsym r j 22 c
034A .dbsym r n 16 i
034A .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128.c
0000 _Adc::
0000 .blkb 6
0006 .dbsym e Adc _Adc A[6:3]I
0006 _BCD::
0006 .blkb 6
000C .dbsym e BCD _BCD A[6:6]c
.area data(ram, con, rel)
0000 .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128.c
0000 L6:
0000 .blkb 9
.area idata
0000 CAFDC4A3D7AABBBB00 .byte 202,253,196,163,215,170,187,187,0
.area data(ram, con, rel)
0009 .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -