⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jhd12864.lis

📁 ds1302事实时钟+12864液晶显示 4094
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -