📄 jhd12864.lis
字号:
01AC 10E0 ldi R17,0
01AE 32DF rcall _delay_1ms
01B0 .dbline 204
01B0 ; //W_1byte(0,0,0x34); //8BIT控制界面,扩充指令集,,绘图显示OFF
01B0 ; W_1byte(0,0,0x36);
01B0 86E3 ldi R24,54
01B2 8883 std y+0,R24
01B4 2227 clr R18
01B6 0027 clr R16
01B8 39DF rcall _W_1byte
01BA .dbline 205
01BA ; delay_1ms(20); //延时
01BA 04E1 ldi R16,20
01BC 10E0 ldi R17,0
01BE 2ADF rcall _delay_1ms
01C0 .dbline -2
01C0 L46:
01C0 .dbline 0 ; func end
01C0 2196 adiw R28,1
01C2 0895 ret
01C4 .dbend
01C4 .dbfunc e Set_Char _Set_Char fV
.even
01C4 _Set_Char::
01C4 2197 sbiw R28,1
01C6 .dbline -1
01C6 .dbline 220
01C6 ; }
01C6 ;
01C6 ;
01C6 ;
01C6 ; /********************************************************************
01C6 ; 函 数 名:Set_Char(
01C6 ; 入口参数:无
01C6 ; 出口参数:无
01C6 ; 建立日期:2007年8月26日
01C6 ; 修改日期:
01C6 ; 函数作用:显示字符前必须调用此函数
01C6 ; 说 明:
01C6 ; ********************************************************************/
01C6 ; void Set_Char(void)
01C6 ; {
01C6 .dbline 221
01C6 ; W_1byte(0,0,0x30); //基本指令集,,绘图显示OFF
01C6 80E3 ldi R24,48
01C8 8883 std y+0,R24
01CA 2227 clr R18
01CC 0027 clr R16
01CE 2EDF rcall _W_1byte
01D0 .dbline 222
01D0 ; W_1byte(0,0,0x01); //清除显示
01D0 81E0 ldi R24,1
01D2 8883 std y+0,R24
01D4 2227 clr R18
01D6 0027 clr R16
01D8 29DF rcall _W_1byte
01DA .dbline -2
01DA L47:
01DA .dbline 0 ; func end
01DA 2196 adiw R28,1
01DC 0895 ret
01DE .dbend
01DE .dbfunc e Draw_Pic _Draw_Pic fV
01DE ; temp_y -> R20
01DE ; temp_x -> R22
01DE ; i -> R10
01DE ; j -> R14
01DE ; Draw -> R12,R13
01DE ; y -> R10
01DE ; x -> R14
.even
01DE _Draw_Pic::
01DE 00D0 rcall push_xgsetF0FC
01E0 A22E mov R10,R18
01E2 E02E mov R14,R16
01E4 2197 sbiw R28,1
01E6 CB84 ldd R12,y+11
01E8 DC84 ldd R13,y+12
01EA .dbline -1
01EA .dbline 238
01EA ; }
01EA ;
01EA ; //===================================================================*/
01EA ; /********************************************************************
01EA ; 函 数 名:Draw_Pic 128*64
01EA ; 入口参数:x,y,*Draw
01EA ; 出口参数:无
01EA ; 建立日期:2007年8月26日
01EA ; 修改日期:
01EA ; 函数作用:
01EA ; 说 明:
01EA ; ********************************************************************/
01EA ; /*************************************************/
01EA ;
01EA ; void Draw_Pic(uchar x, uchar y, uchar *Draw)
01EA ; {
01EA .dbline 240
01EA ; uchar i, j, temp_x, temp_y; //
01EA ; temp_x = x; //
01EA 6E2D mov R22,R14
01EC .dbline 241
01EC ; temp_y = y; //
01EC 4A2D mov R20,R10
01EE .dbline 242
01EE ; temp_x |= 0x80; //
01EE 6068 ori R22,128
01F0 .dbline 243
01F0 ; temp_y |= 0x80; //
01F0 4068 ori R20,128
01F2 .dbline 244
01F2 ; for(i=0;i<32;i++ ) //上半屏32行
01F2 AA24 clr R10
01F4 18C0 rjmp L52
01F6 L49:
01F6 .dbline 245
01F6 ; {
01F6 .dbline 246
01F6 ; W_1byte(0,0,temp_y++); //设置绘图区的Y地址坐标0
01F6 242E mov R2,R20
01F8 4F5F subi R20,255 ; addi 1
01FA 2882 std y+0,R2
01FC 2227 clr R18
01FE 0027 clr R16
0200 15DF rcall _W_1byte
0202 .dbline 247
0202 ; W_1byte(0,0,temp_x); //设置绘图区的X地址坐标0
0202 6883 std y+0,R22
0204 2227 clr R18
0206 0027 clr R16
0208 11DF rcall _W_1byte
020A .dbline 248
020A ; for(j=0;j<16;j++) //
020A EE24 clr R14
020C 08C0 rjmp L56
020E L53:
020E .dbline 249
020E ; {
020E .dbline 250
020E ; W_1byte(0,1,*Draw++); //
020E F601 movw R30,R12
0210 2190 ld R2,Z+
0212 6F01 movw R12,R30
0214 2882 std y+0,R2
0216 21E0 ldi R18,1
0218 0027 clr R16
021A 08DF rcall _W_1byte
021C .dbline 251
021C ; }
021C L54:
021C .dbline 248
021C E394 inc R14
021E L56:
021E .dbline 248
021E 8E2D mov R24,R14
0220 8031 cpi R24,16
0222 A8F3 brlo L53
0224 X17:
0224 .dbline 252
0224 ; }
0224 L50:
0224 .dbline 244
0224 A394 inc R10
0226 L52:
0226 .dbline 244
0226 8A2D mov R24,R10
0228 8032 cpi R24,32
022A 28F3 brlo L49
022C X18:
022C .dbline 254
022C ;
022C ; temp_x = 0x88; //
022C 68E8 ldi R22,136
022E .dbline 255
022E ; temp_y = 0x80; //
022E 40E8 ldi R20,128
0230 .dbline 256
0230 ; j = 0; //
0230 EE24 clr R14
0232 .dbline 257
0232 ; for(;i<64;i++ )
0232 18C0 rjmp L60
0234 L57:
0234 .dbline 258
0234 ; {
0234 .dbline 259
0234 ; W_1byte(0,0,temp_y++); //设置绘图区的Y地址坐标
0234 242E mov R2,R20
0236 4F5F subi R20,255 ; addi 1
0238 2882 std y+0,R2
023A 2227 clr R18
023C 0027 clr R16
023E F6DE rcall _W_1byte
0240 .dbline 260
0240 ; W_1byte(0,0,temp_x); //设置绘图区的X地址坐标
0240 6883 std y+0,R22
0242 2227 clr R18
0244 0027 clr R16
0246 F2DE rcall _W_1byte
0248 .dbline 261
0248 ; for(j=0;j<16;j++)
0248 EE24 clr R14
024A 08C0 rjmp L64
024C L61:
024C .dbline 262
024C ; {
024C .dbline 263
024C ; W_1byte(0,1,*Draw++); //
024C F601 movw R30,R12
024E 2190 ld R2,Z+
0250 6F01 movw R12,R30
0252 2882 std y+0,R2
0254 21E0 ldi R18,1
0256 0027 clr R16
0258 E9DE rcall _W_1byte
025A .dbline 264
025A ; }
025A L62:
025A .dbline 261
025A E394 inc R14
025C L64:
025C .dbline 261
025C 8E2D mov R24,R14
025E 8031 cpi R24,16
0260 A8F3 brlo L61
0262 X19:
0262 .dbline 265
0262 ; }
0262 L58:
0262 .dbline 257
0262 A394 inc R10
0264 L60:
0264 .dbline 257
0264 8A2D mov R24,R10
0266 8034 cpi R24,64
0268 28F3 brlo L57
026A X20:
026A .dbline -2
026A L48:
026A .dbline 0 ; func end
026A 2196 adiw R28,1
026C 00C0 rjmp pop_xgsetF0FC
026E .dbsym r temp_y 20 c
026E .dbsym r temp_x 22 c
026E .dbsym r i 10 c
026E .dbsym r j 14 c
026E .dbsym r Draw 12 pc
026E .dbsym r y 10 c
026E .dbsym r x 14 c
026E .dbend
026E .dbfunc e Set_White _Set_White fV
026E ; clr_y -> R10
026E ; clr_x -> R20
026E ; white_y -> y+2
026E ; white_x -> y+1
026E ; i -> R22
026E ; white_end_x -> R12
026E ; j -> R14
026E ; clear -> y+15
026E ; end_x -> y+13
026E ; y -> R14
026E ; x -> R22
.even
026E _Set_White::
026E 00D0 rcall push_xgsetF0FC
0270 E22E mov R14,R18
0272 602F mov R22,R16
0274 2397 sbiw R28,3
0276 .dbline -1
0276 .dbline 276
0276 ;
0276 ; }
0276 ; /**************************************************/
0276 ;
0276 ;
0276 ; //设定哪一行,从那一个位置开始到那一个位置结束使用反白
0276 ; //x=液晶屏上汉字的位置(1~8);end_x=汉字结束的地址(1~8);y=1~4行
0276 ; //clear=1:清除反白;clear=0:设置反白;
0276 ; /**************************************************/
0276 ; void Set_White(uchar x,uchar y,uchar end_x,uchar clear)
0276 ; {
0276 .dbline 278
0276 ; uchar i, j, white_x, white_y,white_end_x,clr_x,clr_y; //
0276 ; white_end_x = (end_x-x+1);
0276 8D85 ldd R24,y+13
0278 861B sub R24,R22
027A 8F5F subi R24,255 ; addi 1
027C C82E mov R12,R24
027E .dbline 279
027E ; white_end_x <<= 1;
027E CC0C lsl R12
0280 .dbline 280
0280 ; if(y==1)
0280 8E2D mov R24,R14
0282 8130 cpi R24,1
0284 49F4 brne L66
0286 X21:
0286 .dbline 281
0286 ; {
0286 .dbline 282
0286 ; white_x = (0x80+x-1);
0286 862F mov R24,R22
0288 8058 subi R24,128 ; addi 128
028A 8150 subi R24,1
028C 8983 std y+1,R24
028E .dbline 283
028E ; white_y = 0x80;
028E 80E8 ldi R24,128
0290 8A83 std y+2,R24
0292 .dbline 284
0292 ; clr_x = 0x80;
0292 40E8 ldi R20,128
0294 .dbline 285
0294 ; clr_y = 0x80;
0294 A82E mov R10,R24
0296 .dbline 286
0296 ; }
0296 23C0 rjmp L67
0298 L66:
0298 .dbline 287
0298 ; else if(y==2)
0298 8E2D mov R24,R14
029A 8230 cpi R24,2
029C 49F4 brne L68
029E X22:
029E .dbline 288
029E ; {
029E .dbline 289
029E ; white_x = (0x80+x-1);
029E 862F mov R24,R22
02A0 8058 subi R24,128 ; addi 128
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -