📄 hzmmi.lis
字号:
01F2 0E940000 xcall pop_gset1
01F6 .dbline 0 ; func end
01F6 0895 ret
01F8 .dbsym l pt 1 pc
01F8 .dbsym r order 20 c
01F8 .dbfunc s write_data _write_data fI
; pt -> <dead>
; data -> R20
.even
01F8 _write_data::
01F8 0E940000 xcall push_gset1
01FC 402F mov R20,R16
01FE .dbline -1
01FE .dbline 200
;
;
; void write_data(byte data)
; {
01FE .dbline 203
; byte *pt;
;
; wait_disp();
01FE CDDF xcall _wait_disp
0200 .dbline 204
; PORTD&=~LCD_ID; //CD=0
0200 9698 cbi 0x12,6
0202 .dbline 205
; PORTD&=~LCD_ID; //CD=0
0202 9698 cbi 0x12,6
0204 .dbline 206
; PORTD&=~LCD_ID; //CD=0
0204 9698 cbi 0x12,6
0206 .dbline 207
; PORTD&=~LCD_CS; //CS=0
0206 9598 cbi 0x12,5
0208 .dbline 208
; PORTD&=~LCD_CS; //CS=0
0208 9598 cbi 0x12,5
020A .dbline 209
; PORTD&=~LCD_CS; //CS=0
020A 9598 cbi 0x12,5
020C .dbline 210
; *(byte*)0x8000=data; //命令码
020C 40930080 sts 32768,R20
0210 .dbline 211
; PORTD|=LCD_CS; //CS=1
0210 959A sbi 0x12,5
0212 .dbline 212
; PORTD|=LCD_CS; //CS=1
0212 959A sbi 0x12,5
0214 .dbline 213
; PORTD|=LCD_CS; //CS=1
0214 959A sbi 0x12,5
0216 .dbline -2
0216 .dbline 215
;
; }
0216 L41:
0216 0E940000 xcall pop_gset1
021A .dbline 0 ; func end
021A 0895 ret
021C .dbsym l pt 1 pc
021C .dbsym r data 20 c
021C .dbfunc s cls _cls fI
; i -> R20,R21
.even
021C _cls::
021C 0E940000 xcall push_gset1
0220 .dbline -1
0220 .dbline 219
;
; //清屏
; void cls(void)
; {
0220 .dbline 222
; int i;
;
; write_data(00); //设置显示储存器首地址
0220 0027 clr R16
0222 EADF xcall _write_data
0224 .dbline 223
; write_data(00);
0224 0027 clr R16
0226 E8DF xcall _write_data
0228 .dbline 224
; write_order(0x24);
0228 04E2 ldi R16,36
022A D1DF xcall _write_order
022C .dbline 225
; write_order(0xb0); //设置自动写方式
022C 00EB ldi R16,176
022E CFDF xcall _write_order
0230 .dbline 226
; wait_disp();
0230 B4DF xcall _wait_disp
0232 .dbline 227
; for(i=0;i<8000;i++) //8k显示存储器填00
0232 4427 clr R20
0234 5527 clr R21
0236 L43:
0236 .dbline 228
0236 .dbline 229
0236 0027 clr R16
0238 0BD0 xcall _write_data_auto
023A .dbline 230
023A L44:
023A .dbline 227
023A 4F5F subi R20,255 ; offset = 1
023C 5F4F sbci R21,255
023E .dbline 227
023E 4034 cpi R20,64
0240 EFE1 ldi R30,31
0242 5E07 cpc R21,R30
0244 C4F3 brlt L43
0246 .dbline 231
; {
; write_data_auto(0x00);
; }
; write_order(0xb2);
0246 02EB ldi R16,178
0248 C2DF xcall _write_order
024A .dbline -2
024A .dbline 232
; }
024A L42:
024A 0E940000 xcall pop_gset1
024E .dbline 0 ; func end
024E 0895 ret
0250 .dbsym r i 20 I
0250 .dbfunc s write_data_auto _write_data_auto fI
; data -> R20
.even
0250 _write_data_auto::
0250 0E940000 xcall push_gset1
0254 402F mov R20,R16
0256 .dbline -1
0256 .dbline 235
;
; void write_data_auto(byte data)
; {
0256 .dbline 236
; wait_disp_auto();
0256 05D0 xcall _wait_disp_auto
0258 .dbline 237
; write_data(data);
0258 042F mov R16,R20
025A CEDF xcall _write_data
025C .dbline -2
025C .dbline 238
; }
025C L47:
025C 0E940000 xcall pop_gset1
0260 .dbline 0 ; func end
0260 0895 ret
0262 .dbsym r data 20 c
0262 .dbfunc s wait_disp_auto _wait_disp_auto fI
; flag -> R16
.even
0262 _wait_disp_auto::
0262 .dbline -1
0262 .dbline 242
;
; //数据自动写状态忙等待
; void wait_disp_auto(void)
; {
0262 .dbline 245
; byte flag;
;
; PORTA=0xff;
0262 8FEF ldi R24,255
0264 8BBB out 0x1b,R24
0266 .dbline 246
; DDRA=0; //A口为输入
0266 2224 clr R2
0268 2ABA out 0x1a,R2
026A .dbline 247
; PORTD|=LCD_ID; //CD=1
026A 969A sbi 0x12,6
026C .dbline 248
; PORTD|=LCD_ID; //CD=1
026C 969A sbi 0x12,6
026E .dbline 249
; PORTD&=~LCD_CS; //CE=0
026E 9598 cbi 0x12,5
0270 .dbline 250
; PORTD&=~LCD_CS; //CE=0
0270 9598 cbi 0x12,5
0272 .dbline 251
; PORTD&=~LCD_CS; //CE=0
0272 9598 cbi 0x12,5
0274 .dbline 252
; for(;;)
0274 L49:
0274 .dbline 253
; {
0274 .dbline 254
; flag=*(byte*)0x8000;
0274 00910080 lds R16,32768
0278 .dbline 255
; if(flag & LCD_BUSY_S3){ //判断液晶忙否?
0278 03FF sbrs R16,3
027A FCCF rjmp L49
027C .dbline 255
027C .dbline 256
; PORTD|=LCD_CS|LCD_ID; //CE=1,ID=1
027C 82B3 in R24,0x12
027E 8066 ori R24,96
0280 82BB out 0x12,R24
0282 .dbline 257
; PORTD|=LCD_CS|LCD_ID; //CE=1,ID=1
0282 82B3 in R24,0x12
0284 8066 ori R24,96
0286 82BB out 0x12,R24
0288 .dbline 258
; return;
0288 .dbline 260
; }
; }
0288 .dbline 252
0288 .dbline 252
0288 .dbline -2
0288 L48:
0288 .dbline 0 ; func end
0288 0895 ret
028A .dbsym r flag 16 c
028A .dbfunc s init_disp _init_disp fI
.even
028A _init_disp::
028A .dbline -1
028A .dbline 267
; }
;
;
;
; //对液晶初始化,清屏
; void init_disp(void)
; {
028A .dbline 268
; PORTD&=~LCD_RST; //LCD_RST=0
028A 9798 cbi 0x12,7
028C .dbline 269
; PORTD&=~LCD_RST; //LCD_RST=0
028C 9798 cbi 0x12,7
028E .dbline 270
; dlyms(2);
028E 02E0 ldi R16,2
0290 10E0 ldi R17,0
0292 66DF xcall _dlyms
0294 .dbline 271
; PORTD|=LCD_RST; //LCD_RST=1
0294 979A sbi 0x12,7
0296 .dbline 272
; PORTD|=LCD_RST; //LCD_RST=1
0296 979A sbi 0x12,7
0298 .dbline 273
; dlyms(3);
0298 03E0 ldi R16,3
029A 10E0 ldi R17,0
029C 61DF xcall _dlyms
029E .dbline 274
; write_data(0x00); //设置图形显示首地址00H
029E 0027 clr R16
02A0 ABDF xcall _write_data
02A2 .dbline 275
; write_data(0x00);
02A2 0027 clr R16
02A4 A9DF xcall _write_data
02A6 .dbline 276
; write_order(0x42);
02A6 02E4 ldi R16,66
02A8 92DF xcall _write_order
02AA .dbline 277
; dlyms(2);
02AA 02E0 ldi R16,2
02AC 10E0 ldi R17,0
02AE 58DF xcall _dlyms
02B0 .dbline 278
; write_data(DIS_LEN); //设置图形显示区域宽度
02B0 00E2 ldi R16,32
02B2 A2DF xcall _write_data
02B4 .dbline 279
; write_data(00); //即一行显示所占字节数
02B4 0027 clr R16
02B6 A0DF xcall _write_data
02B8 .dbline 280
; write_order(0x43);
02B8 03E4 ldi R16,67
02BA 89DF xcall _write_order
02BC .dbline 281
; dlyms(2);
02BC 02E0 ldi R16,2
02BE 10E0 ldi R17,0
02C0 4FDF xcall _dlyms
02C2 .dbline 282
; write_order(0xa7); //光标形状设置
02C2 07EA ldi R16,167
02C4 84DF xcall _write_order
02C6 .dbline 283
; write_order(0x80); //显示方式设置逻辑"或"合成
02C6 00E8 ldi R16,128
02C8 82DF xcall _write_order
02CA .dbline 284
; write_order(0x98); //显示开关设置,开图形和文本显示
02CA 08E9 ldi R16,152
02CC 80DF xcall _write_order
02CE .dbline -2
02CE .dbline 285
; }
02CE L55:
02CE .dbline 0 ; func end
02CE 0895 ret
02D0 .dbfunc s str_hz _str_hz fI
; lrow -> y+6
; aa -> y+4
; zk -> y+0
; lcol -> R22,R23
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -