📄 hzmmi.lis
字号:
; byte i;
; cls();
00F2 94D0 xcall _cls
00F4 .dbline 111
;
; strcpy(disp_buffer,"靶靶靶靶靶靶靶靶靶靶靶靶");
00F4 20E0 ldi R18,<L20
00F6 30E0 ldi R19,>L20
00F8 00E0 ldi R16,<_disp_buffer
00FA 10E0 ldi R17,>_disp_buffer
00FC 0E940000 xcall _strcpy
0100 .dbline 112
; str_hz(0,0,disp_buffer);
0100 80E0 ldi R24,<_disp_buffer
0102 90E0 ldi R25,>_disp_buffer
0104 8883 std y+0,R24
0106 9983 std y+1,R25
0108 2227 clr R18
010A 0027 clr R16
010C E1D0 xcall _str_hz
010E .dbline 114
;
; strcpy(disp_buffer,"啊啊啊阿阿阿埃123456");
010E 20E0 ldi R18,<L21
0110 30E0 ldi R19,>L21
0112 00E0 ldi R16,<_disp_buffer
0114 10E0 ldi R17,>_disp_buffer
0116 0E940000 xcall _strcpy
011A .dbline 115
; str_hz(16,0,disp_buffer);
011A 80E0 ldi R24,<_disp_buffer
011C 90E0 ldi R25,>_disp_buffer
011E 8883 std y+0,R24
0120 9983 std y+1,R25
0122 2227 clr R18
0124 00E1 ldi R16,16
0126 D4D0 xcall _str_hz
0128 .dbline 117
;
; strcpy(disp_buffer,"靶把耙班搬办绊绑棒磅");
0128 20E0 ldi R18,<L22
012A 30E0 ldi R19,>L22
012C 00E0 ldi R16,<_disp_buffer
012E 10E0 ldi R17,>_disp_buffer
0130 0E940000 xcall _strcpy
0134 .dbline 118
; str_hz(32,0,disp_buffer);
0134 80E0 ldi R24,<_disp_buffer
0136 90E0 ldi R25,>_disp_buffer
0138 8883 std y+0,R24
013A 9983 std y+1,R25
013C 2227 clr R18
013E 00E2 ldi R16,32
0140 C7D0 xcall _str_hz
0142 .dbline 120
;
; strcpy(disp_buffer,"01234567890123456789");
0142 20E0 ldi R18,<L23
0144 30E0 ldi R19,>L23
0146 00E0 ldi R16,<_disp_buffer
0148 10E0 ldi R17,>_disp_buffer
014A 0E940000 xcall _strcpy
014E .dbline 121
; str_sasc(48,0,disp_buffer);
014E 80E0 ldi R24,<_disp_buffer
0150 90E0 ldi R25,>_disp_buffer
0152 8883 std y+0,R24
0154 9983 std y+1,R25
0156 2227 clr R18
0158 00E3 ldi R16,48
015A A2D2 xcall _str_sasc
015C .dbline -2
015C .dbline 122
; }
015C L19:
015C 2296 adiw R28,2
015E .dbline 0 ; func end
015E 0895 ret
0160 .dbsym l i 3 c
0160 .dbfunc s dlyms _dlyms fI
; ms -> R16,R17
.even
0160 _dlyms::
0160 .dbline -1
0160 .dbline 129
;
;
;
;
; //毫秒级延时函数
; void dlyms(word ms)
; {
0160 .dbline 130
; mstimer1=ms;
0160 10938B00 sts _mstimer1+1,R17
0164 00938A00 sts _mstimer1,R16
0168 01C0 xjmp L26
016A L25:
016A .dbline 131
016A .dbline 132
016A A895 wdr
016C .dbline 134
016C L26:
016C .dbline 131
; while(mstimer1){
016C 30908B00 lds R3,_mstimer1+1
0170 20908A00 lds R2,_mstimer1
0174 2220 tst R2
0176 C9F7 brne L25
0178 3320 tst R3
017A B9F7 brne L25
017C .dbline -2
017C .dbline 135
; asm("wdr"); //软看门狗复位
; // PORTB^=WDG; //硬看门狗复位
; }
; }
017C L24:
017C .dbline 0 ; func end
017C 0895 ret
017E .dbsym r ms 16 s
017E .dbfunc s delly _delly fI
; i -> R20
; ns -> R16,R17
.even
017E _delly::
017E 0E940000 xcall push_gset1
0182 .dbline -1
0182 .dbline 138
; //延时函数
; void delly(word ns)
; {
0182 .dbline 140
0182 4427 clr R20
0184 02C0 xjmp L32
0186 L29:
0186 .dbline 140
0186 .dbline 141
0186 A895 wdr
0188 .dbline 143
0188 L30:
0188 .dbline 140
0188 4395 inc R20
018A L32:
018A .dbline 140
; byte i;
; for(i=0;i<ns;i++){
018A 242E mov R2,R20
018C 3324 clr R3
018E 2016 cp R2,R16
0190 3106 cpc R3,R17
0192 C8F3 brlo L29
0194 .dbline -2
0194 .dbline 144
; asm("wdr"); //软看门狗复位
; // PORTB^=WDG; //硬看门狗复位
; }
; }
0194 L28:
0194 0E940000 xcall pop_gset1
0198 .dbline 0 ; func end
0198 0895 ret
019A .dbsym r i 20 c
019A .dbsym r ns 16 s
019A .dbfunc s wait_disp _wait_disp fI
; flag -> R16
.even
019A _wait_disp::
019A .dbline -1
019A .dbline 148
;
; //液晶忙等待
; void wait_disp(void)
; {
019A .dbline 151
; byte flag;
;
; PORTD|=LCD_ID; //CD=1
019A 969A sbi 0x12,6
019C .dbline 152
; PORTD|=LCD_ID; //CD=1
019C 969A sbi 0x12,6
019E .dbline 153
; PORTD&=~LCD_CS; //CE=0
019E 9598 cbi 0x12,5
01A0 .dbline 154
; PORTD&=~LCD_CS; //CE=0
01A0 9598 cbi 0x12,5
01A2 .dbline 155
; PORTD&=~LCD_CS; //CE=0
01A2 9598 cbi 0x12,5
01A4 .dbline 157
;
; for(;;)
01A4 L34:
01A4 .dbline 158
; {
01A4 .dbline 159
; asm("nop");
01A4 0000 nop
01A6 .dbline 160
; asm("nop");
01A6 0000 nop
01A8 .dbline 161
; asm("nop");
01A8 0000 nop
01AA .dbline 163
;
; flag=*(byte*)0x8000;
01AA 00910080 lds R16,32768
01AE .dbline 164
; if((flag & LCD_BUSY_S0) && (flag & LCD_BUSY_S1)) //判断液晶忙否?
01AE 00FF sbrs R16,0
01B0 09C0 rjmp L38
01B2 01FF sbrs R16,1
01B4 07C0 rjmp L38
01B6 .dbline 165
; {
01B6 .dbline 167
;
; PORTD|=LCD_CS|LCD_ID; //CE=1,ID=1
01B6 82B3 in R24,0x12
01B8 8066 ori R24,96
01BA 82BB out 0x12,R24
01BC .dbline 168
; PORTD|=LCD_CS|LCD_ID; //CE=1,ID=1
01BC 82B3 in R24,0x12
01BE 8066 ori R24,96
01C0 82BB out 0x12,R24
01C2 .dbline 169
; return;
01C2 04C0 xjmp L33
01C4 L38:
01C4 .dbline 171
01C4 0000 nop
01C6 .dbline 172
01C6 0000 nop
01C8 .dbline 173
01C8 0000 nop
01CA .dbline 174
01CA .dbline 157
01CA .dbline 157
01CA ECCF xjmp L34
01CC X2:
01CC .dbline -2
01CC L33:
01CC .dbline 0 ; func end
01CC 0895 ret
01CE .dbsym r flag 16 c
01CE .dbfunc s write_order _write_order fI
; pt -> <dead>
; order -> R20
.even
01CE _write_order::
01CE 0E940000 xcall push_gset1
01D2 402F mov R20,R16
01D4 .dbline -1
01D4 .dbline 179
; }
; asm("nop");
; asm("nop");
; asm("nop");
; }
; }
;
; //对液晶发送命令码
; void write_order(byte order)//对液晶发送命令码
; {
01D4 .dbline 182
; byte *pt;
;
; wait_disp();
01D4 E2DF xcall _wait_disp
01D6 .dbline 183
; PORTD|=LCD_ID; //CD=1
01D6 969A sbi 0x12,6
01D8 .dbline 184
; PORTD|=LCD_ID; //CD=1
01D8 969A sbi 0x12,6
01DA .dbline 185
; PORTD|=LCD_ID; //CD=1
01DA 969A sbi 0x12,6
01DC .dbline 186
; PORTD&=~LCD_CS; //CS=0
01DC 9598 cbi 0x12,5
01DE .dbline 187
; PORTD&=~LCD_CS; //CS=0
01DE 9598 cbi 0x12,5
01E0 .dbline 188
; PORTD&=~LCD_CS; //CS=0
01E0 9598 cbi 0x12,5
01E2 .dbline 189
; *(byte*)0x8000=order; //命令码
01E2 40930080 sts 32768,R20
01E6 .dbline 190
; PORTD|=LCD_CS; //CS=1
01E6 959A sbi 0x12,5
01E8 .dbline 191
; PORTD|=LCD_CS; //CS=1
01E8 959A sbi 0x12,5
01EA .dbline 192
; PORTD|=LCD_CS; //CS=1
01EA 959A sbi 0x12,5
01EC .dbline 193
; PORTD&=~LCD_ID; //CD=0
01EC 9698 cbi 0x12,6
01EE .dbline 194
; PORTD&=~LCD_ID; //CD=0
01EE 9698 cbi 0x12,6
01F0 .dbline 195
; PORTD&=~LCD_ID; //CD=0
01F0 9698 cbi 0x12,6
01F2 .dbline -2
01F2 .dbline 196
; }
01F2 L40:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -