📄 12864串口.lis
字号:
00A0 D1DF xcall _wr_bit
00A2 .dbline 68
00A2 ;
00A2 ; wr_bit(4,0x00); //写入4个0
00A2 2227 clr R18
00A4 04E0 ldi R16,4
00A6 CEDF xcall _wr_bit
00A8 .dbline 70
00A8 ;
00A8 ; wr_bit(4,(b<<4)); //写入数据的低4位
00A8 242F mov R18,R20
00AA 2F70 andi R18,#0x0F
00AC 2295 swap R18
00AE 04E0 ldi R16,4
00B0 C9DF xcall _wr_bit
00B2 .dbline 72
00B2 ;
00B2 ; wr_bit(4,0x00); //写入4个0
00B2 2227 clr R18
00B4 04E0 ldi R16,4
00B6 C6DF xcall _wr_bit
00B8 .dbline 74
00B8 ;
00B8 ; set_sid;
00B8 AE9A sbi 0x15,6
00BA .dbline -2
00BA L22:
00BA .dbline 0 ; func end
00BA 4991 ld R20,y+
00BC A990 ld R10,y+
00BE 0895 ret
00C0 .dbsym r b 20 c
00C0 .dbsym r a 10 c
00C0 .dbend
00C0 .dbfunc e lcd12864_init _lcd12864_init fV
.even
00C0 _lcd12864_init::
00C0 .dbline -1
00C0 .dbline 77
00C0 ; }
00C0 ; void lcd12864_init()
00C0 ; {
00C0 .dbline 78
00C0 ; delay_ms(50);
00C0 02E3 ldi R16,50
00C2 10E0 ldi R17,0
00C4 ABDF xcall _delay_ms
00C6 .dbline 79
00C6 ; delay_ms(100);
00C6 04E6 ldi R16,100
00C8 10E0 ldi R17,0
00CA A8DF xcall _delay_ms
00CC .dbline 80
00CC ; delay_ms(200);
00CC 08EC ldi R16,200
00CE 10E0 ldi R17,0
00D0 A5DF xcall _delay_ms
00D2 .dbline 82
00D2 ;
00D2 ; write_shuju(0,0x30); //设置数据方式:8位
00D2 20E3 ldi R18,48
00D4 0027 clr R16
00D6 CBDF xcall _write_shuju
00D8 .dbline 83
00D8 ; delay_us(200);
00D8 08EC ldi R16,200
00DA 10E0 ldi R17,0
00DC 97DF xcall _delay_us
00DE .dbline 84
00DE ; write_shuju(0,0x30); //设置数据方式:8位
00DE 20E3 ldi R18,48
00E0 0027 clr R16
00E2 C5DF xcall _write_shuju
00E4 .dbline 85
00E4 ; delay_us(80);
00E4 00E5 ldi R16,80
00E6 10E0 ldi R17,0
00E8 91DF xcall _delay_us
00EA .dbline 86
00EA ; write_shuju(0,0x0C); //开显示
00EA 2CE0 ldi R18,12
00EC 0027 clr R16
00EE BFDF xcall _write_shuju
00F0 .dbline 87
00F0 ; delay_us(80);
00F0 00E5 ldi R16,80
00F2 10E0 ldi R17,0
00F4 8BDF xcall _delay_us
00F6 .dbline 88
00F6 ; write_shuju(0,0x40); //开显示
00F6 20E4 ldi R18,64
00F8 0027 clr R16
00FA B9DF xcall _write_shuju
00FC .dbline 89
00FC ; delay_us(200);
00FC 08EC ldi R16,200
00FE 10E0 ldi R17,0
0100 85DF xcall _delay_us
0102 .dbline 90
0102 ; write_shuju(0,0x01); //清屏
0102 21E0 ldi R18,1
0104 0027 clr R16
0106 B3DF xcall _write_shuju
0108 .dbline 91
0108 ; delay_ms(200);
0108 08EC ldi R16,200
010A 10E0 ldi R17,0
010C .dbline -2
010C L25:
010C .dbline 0 ; func end
010C 87CF xjmp _delay_ms
010E .dbend
010E .dbfunc e write_hz _write_hz fV
010E ; s -> R20,R21
.even
010E _write_hz::
010E 4A93 st -y,R20
0110 5A93 st -y,R21
0112 A801 movw R20,R16
0114 .dbline -1
0114 .dbline 94
0114 ; }
0114 ; void write_hz(char *s)
0114 ; {
0114 06C0 xjmp L28
0116 L27:
0116 .dbline 96
0116 ; while(*s)
0116 ; {
0116 .dbline 97
0116 ; write_shuju(1,*s);
0116 FA01 movw R30,R20
0118 2081 ldd R18,z+0
011A 01E0 ldi R16,1
011C A8DF xcall _write_shuju
011E .dbline 98
011E ; s++;
011E 4F5F subi R20,255 ; offset = 1
0120 5F4F sbci R21,255
0122 .dbline 99
0122 ; }
0122 L28:
0122 .dbline 95
0122 FA01 movw R30,R20
0124 2080 ldd R2,z+0
0126 2220 tst R2
0128 B1F7 brne L27
012A X6:
012A .dbline -2
012A L26:
012A .dbline 0 ; func end
012A 5991 ld R21,y+
012C 4991 ld R20,y+
012E 0895 ret
0130 .dbsym r s 20 pc
0130 .dbend
0130 .dbfunc e locate _locate fV
0130 ; y -> R20
0130 ; x -> R10
.even
0130 _locate::
0130 0E940000 xcall push_xgsetF00C
0134 422F mov R20,R18
0136 A02E mov R10,R16
0138 .dbline -1
0138 .dbline 102
0138 ; }
0138 ; void locate(uchar x,uchar y)
0138 ; {
0138 .dbline 103
0138 ; switch(x)
0138 6A2D mov R22,R10
013A 7727 clr R23
013C 6130 cpi R22,1
013E E0E0 ldi R30,0
0140 7E07 cpc R23,R30
0142 69F0 breq L34
0144 X7:
0144 6230 cpi R22,2
0146 E0E0 ldi R30,0
0148 7E07 cpc R23,R30
014A 79F0 breq L35
014C X8:
014C 6330 cpi R22,3
014E E0E0 ldi R30,0
0150 7E07 cpc R23,R30
0152 89F0 breq L36
0154 X9:
0154 6430 cpi R22,4
0156 E0E0 ldi R30,0
0158 7E07 cpc R23,R30
015A 99F0 breq L37
015C X10:
015C 17C0 xjmp L32
015E L34:
015E .dbline 105
015E ; {
015E ; case 1:write_shuju(0,(0x80+y-1)); break;
015E 242F mov R18,R20
0160 2058 subi R18,128 ; addi 128
0162 2150 subi R18,1
0164 0027 clr R16
0166 83DF xcall _write_shuju
0168 .dbline 105
0168 11C0 xjmp L32
016A L35:
016A .dbline 106
016A ; case 2:write_shuju(0,(0x90+y-1));break;
016A 242F mov R18,R20
016C 2057 subi R18,112 ; addi 144
016E 2150 subi R18,1
0170 0027 clr R16
0172 7DDF xcall _write_shuju
0174 .dbline 106
0174 0BC0 xjmp L32
0176 L36:
0176 .dbline 107
0176 ; case 3:write_shuju(0,(0x88+y-1));break;
0176 242F mov R18,R20
0178 2857 subi R18,120 ; addi 136
017A 2150 subi R18,1
017C 0027 clr R16
017E 77DF xcall _write_shuju
0180 .dbline 107
0180 05C0 xjmp L32
0182 L37:
0182 .dbline 108
0182 ; case 4:write_shuju(0,(0x98+y-1));break;
0182 242F mov R18,R20
0184 2856 subi R18,104 ; addi 152
0186 2150 subi R18,1
0188 0027 clr R16
018A 71DF xcall _write_shuju
018C .dbline 108
018C .dbline 109
018C ; default:break;
018C L32:
018C .dbline -2
018C L30:
018C .dbline 0 ; func end
018C 0C940000 xjmp pop_xgsetF00C
0190 .dbsym r y 20 c
0190 .dbsym r x 10 c
0190 .dbend
0190 .dbfunc e cls _cls fV
.even
0190 _cls::
0190 .dbline -1
0190 .dbline 113
0190 ; }
0190 ; }
0190 ; void cls()
0190 ; {
0190 .dbline 114
0190 ; delay_us(200);
0190 08EC ldi R16,200
0192 10E0 ldi R17,0
0194 3BDF xcall _delay_us
0196 .dbline 115
0196 ; write_shuju(0,0x01); //清屏
0196 21E0 ldi R18,1
0198 0027 clr R16
019A 69DF xcall _write_shuju
019C .dbline 116
019C ; delay_ms(20);
019C 04E1 ldi R16,20
019E 10E0 ldi R17,0
01A0 .dbline -2
01A0 L38:
01A0 .dbline 0 ; func end
01A0 3DCF xjmp _delay_ms
01A2 .dbend
01A2 .dbfunc e mega16_adc _mega16_adc fi
01A2 ; addata -> R10,R11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -