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

📄 hd61202.lis

📁 可以测试位图文件
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 004C AB9A              sbi 0x15,3
 004E                   .dbline 62
 004E           ;   PORTC&=~BIT(E);
 004E AB98              cbi 0x15,3
 0050                   .dbline 63
 0050           ;   PORTC|=BIT(CS1);
 0050 A89A              sbi 0x15,0
 0052                   .dbline 64
 0052           ;   PORTC|=BIT(CS2);
 0052 A99A              sbi 0x15,1
 0054                   .dbline -2
 0054           L15:
 0054 0E940000          xcall pop_gset1
 0058                   .dbline 0 ; func end
 0058 0895              ret
 005A                   .dbsym r x 20 c
 005A                   .dbend
 005A                   .dbfunc e LCD_Write_DatL _LCD_Write_DatL fV
 005A           ;              x -> R20
                        .even
 005A           _LCD_Write_DatL::
 005A 0E940000          xcall push_gset1
 005E 402F              mov R20,R16
 0060                   .dbline -1
 0060                   .dbline 71
 0060           ; }
 0060           ; 
 0060           ; //===================
 0060           ; //LCD左半屏写数据
 0060           ; //===================
 0060           ; void LCD_Write_DatL(unsigned char x)
 0060           ; {
 0060                   .dbline 72
 0060           ;   PORTC&=~BIT(CS1);
 0060 A898              cbi 0x15,0
 0062                   .dbline 73
 0062           ;   PORTC|=BIT(CS2);
 0062 A99A              sbi 0x15,1
 0064                   .dbline 74
 0064           ;   LCD_NOP();
 0064 CDDF              xcall _LCD_NOP
 0066                   .dbline 75
 0066           ;   PORTC&=~BIT(RS);
 0066 AD98              cbi 0x15,5
 0068                   .dbline 76
 0068           ;   PORTC|=BIT(E);
 0068 AB9A              sbi 0x15,3
 006A                   .dbline 77
 006A           ;   LCD_NOP();
 006A CADF              xcall _LCD_NOP
 006C                   .dbline 78
 006C           ;   PORTC|=BIT(RS);
 006C AD9A              sbi 0x15,5
 006E                   .dbline 79
 006E           ;   PORTC&=~BIT(RW);
 006E AC98              cbi 0x15,4
 0070                   .dbline 80
 0070           ;   PORTA=x;
 0070 4BBB              out 0x1b,R20
 0072                   .dbline 81
 0072           ;   PORTC|=BIT(E);
 0072 AB9A              sbi 0x15,3
 0074                   .dbline 82
 0074           ;   PORTC&=~BIT(E);
 0074 AB98              cbi 0x15,3
 0076                   .dbline 83
 0076           ;   PORTC|=BIT(CS1);
 0076 A89A              sbi 0x15,0
 0078                   .dbline 84
 0078           ;   PORTC|=BIT(CS2);
 0078 A99A              sbi 0x15,1
 007A                   .dbline -2
 007A           L16:
 007A 0E940000          xcall pop_gset1
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbsym r x 20 c
 0080                   .dbend
 0080                   .dbfunc e LCD_Write_ComR _LCD_Write_ComR fV
 0080           ;              x -> R20
                        .even
 0080           _LCD_Write_ComR::
 0080 0E940000          xcall push_gset1
 0084 402F              mov R20,R16
 0086                   .dbline -1
 0086                   .dbline 91
 0086           ; }
 0086           ; 
 0086           ; //===================
 0086           ; //LCD右半屏写命令字
 0086           ; //===================
 0086           ; void LCD_Write_ComR(unsigned char x)
 0086           ; {
 0086                   .dbline 92
 0086           ;   PORTC|=BIT(CS1);
 0086 A89A              sbi 0x15,0
 0088                   .dbline 93
 0088           ;   PORTC&=~BIT(CS2);
 0088 A998              cbi 0x15,1
 008A                   .dbline 94
 008A           ;   LCD_NOP();
 008A BADF              xcall _LCD_NOP
 008C                   .dbline 95
 008C           ;   PORTC&=~BIT(RS);
 008C AD98              cbi 0x15,5
 008E                   .dbline 96
 008E           ;   PORTC|=BIT(E);
 008E AB9A              sbi 0x15,3
 0090                   .dbline 97
 0090           ;   LCD_NOP();
 0090 B7DF              xcall _LCD_NOP
 0092                   .dbline 98
 0092           ;   PORTC&=~BIT(RW);
 0092 AC98              cbi 0x15,4
 0094                   .dbline 99
 0094           ;   PORTA=x;
 0094 4BBB              out 0x1b,R20
 0096                   .dbline 100
 0096           ;   PORTC|=BIT(E);
 0096 AB9A              sbi 0x15,3
 0098                   .dbline 101
 0098           ;   PORTC&=~BIT(E);
 0098 AB98              cbi 0x15,3
 009A                   .dbline 102
 009A           ;   PORTC|=BIT(CS1);
 009A A89A              sbi 0x15,0
 009C                   .dbline 103
 009C           ;   PORTC|=BIT(CS2);
 009C A99A              sbi 0x15,1
 009E                   .dbline -2
 009E           L17:
 009E 0E940000          xcall pop_gset1
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbsym r x 20 c
 00A4                   .dbend
 00A4                   .dbfunc e LCD_Write_DatR _LCD_Write_DatR fV
 00A4           ;              x -> R20
                        .even
 00A4           _LCD_Write_DatR::
 00A4 0E940000          xcall push_gset1
 00A8 402F              mov R20,R16
 00AA                   .dbline -1
 00AA                   .dbline 110
 00AA           ; }
 00AA           ; 
 00AA           ; //===================
 00AA           ; //LCD右半屏写数据
 00AA           ; //===================
 00AA           ; void LCD_Write_DatR(unsigned char x)
 00AA           ; {
 00AA                   .dbline 111
 00AA           ;   PORTC|=BIT(CS1);
 00AA A89A              sbi 0x15,0
 00AC                   .dbline 112
 00AC           ;   PORTC&=~BIT(CS2);
 00AC A998              cbi 0x15,1
 00AE                   .dbline 113
 00AE           ;   LCD_NOP();
 00AE A8DF              xcall _LCD_NOP
 00B0                   .dbline 114
 00B0           ;   PORTC&=~BIT(RS);
 00B0 AD98              cbi 0x15,5
 00B2                   .dbline 115
 00B2           ;   PORTC|=BIT(E);
 00B2 AB9A              sbi 0x15,3
 00B4                   .dbline 116
 00B4           ;   LCD_NOP();
 00B4 A5DF              xcall _LCD_NOP
 00B6                   .dbline 117
 00B6           ;   PORTC|=BIT(RS);
 00B6 AD9A              sbi 0x15,5
 00B8                   .dbline 118
 00B8           ;   PORTC&=~BIT(RW);
 00B8 AC98              cbi 0x15,4
 00BA                   .dbline 119
 00BA           ;   PORTA=x;
 00BA 4BBB              out 0x1b,R20
 00BC                   .dbline 120
 00BC           ;   PORTC|=BIT(E);
 00BC AB9A              sbi 0x15,3
 00BE                   .dbline 121
 00BE           ;   PORTC&=~BIT(E);
 00BE AB98              cbi 0x15,3
 00C0                   .dbline 122
 00C0           ;   PORTC|=BIT(CS1);
 00C0 A89A              sbi 0x15,0
 00C2                   .dbline 123
 00C2           ;   PORTC|=BIT(CS2);
 00C2 A99A              sbi 0x15,1
 00C4                   .dbline -2
 00C4           L18:
 00C4 0E940000          xcall pop_gset1
 00C8                   .dbline 0 ; func end
 00C8 0895              ret
 00CA                   .dbsym r x 20 c
 00CA                   .dbend
 00CA                   .dbfunc e LCD_Init _LCD_Init fV
                        .even
 00CA           _LCD_Init::
 00CA                   .dbline -1
 00CA                   .dbline 128
 00CA           ; }
 00CA           ; 
 00CA           ; //LCD初始化
 00CA           ; void LCD_Init(void)
 00CA           ; {
 00CA                   .dbline 129
 00CA           ;   LCD_Write_ComL(0x3e); LCD_Write_ComR(0x3e);  //关闭显示器
 00CA 0EE3              ldi R16,62
 00CC B4DF              xcall _LCD_Write_ComL
 00CE                   .dbline 129
 00CE 0EE3              ldi R16,62
 00D0 D7DF              xcall _LCD_Write_ComR
 00D2                   .dbline 130
 00D2           ;   LCD_Write_ComL(0x3f); LCD_Write_ComR(0x3f);  //打开显示器
 00D2 0FE3              ldi R16,63
 00D4 B0DF              xcall _LCD_Write_ComL
 00D6                   .dbline 130
 00D6 0FE3              ldi R16,63
 00D8 D3DF              xcall _LCD_Write_ComR
 00DA                   .dbline 131
 00DA           ;   LCD_Write_ComL(0xc0); LCD_Write_ComR(0xc0);  //设置左右半屏起始行,从0行开始
 00DA 00EC              ldi R16,192
 00DC ACDF              xcall _LCD_Write_ComL
 00DE                   .dbline 131
 00DE 00EC              ldi R16,192
 00E0 CFDF              xcall _LCD_Write_ComR
 00E2                   .dbline -2
 00E2           L19:
 00E2                   .dbline 0 ; func end
 00E2 0895              ret
 00E4                   .dbend
 00E4                   .dbfunc e LCD_Clr _LCD_Clr fV
 00E4           ;              j -> R20
 00E4           ;              i -> R22
                        .even
 00E4           _LCD_Clr::
 00E4 0E940000          xcall push_gset2
 00E8                   .dbline -1
 00E8                   .dbline 137
 00E8           ; }
 00E8           ; 
 00E8           ; 
 00E8           ; //LCD清屏
 00E8           ; void LCD_Clr(void)
 00E8           ; {
 00E8                   .dbline 140
 00E8           ; unsigned char i,j;
 00E8           ; 
 00E8           ; for(j=0;j<8;j++)
 00E8 4427              clr R20
 00EA 14C0              xjmp L24
 00EC           L21:
 00EC                   .dbline 141
 00EC           ; {
 00EC                   .dbline 142
 00EC           ;       LCD_Write_ComL(0xb8|j);  //左半屏页设置指令
 00EC 042F              mov R16,R20
 00EE 086B              ori R16,184
 00F0 A2DF              xcall _LCD_Write_ComL
 00F2                   .dbline 143
 00F2           ;       LCD_Write_ComL(0x40);    //左半屏列地址设置指令
 00F2 00E4              ldi R16,64
 00F4 A0DF              xcall _LCD_Write_ComL
 00F6                   .dbline 144
 00F6           ;       LCD_Write_ComR(0xb8|j);  //右半屏页设置指令
 00F6 042F              mov R16,R20
 00F8 086B              ori R16,184
 00FA C2DF              xcall _LCD_Write_ComR
 00FC                   .dbline 145
 00FC           ;       LCD_Write_ComR(0x40);    //右半屏列地址设置指令
 00FC 00E4              ldi R16,64
 00FE C0DF              xcall _LCD_Write_ComR
 0100                   .dbline 146
 0100           ;       for(i=0; i<64; i++)
 0100 6627              clr R22
 0102 05C0              xjmp L28
 0104           L25:
 0104                   .dbline 147
 0104                   .dbline 148
 0104 0027              clr R16
 0106 A9DF              xcall _LCD_Write_DatL
 0108                   .dbline 149
 0108 0027              clr R16
 010A CCDF              xcall _LCD_Write_DatR
 010C                   .dbline 150
 010C           L26:
 010C                   .dbline 146
 010C 6395              inc R22
 010E           L28:
 010E                   .dbline 146
 010E 6034              cpi R22,64
 0110 C8F3              brlo L25
 0112                   .dbline 151
 0112           L22:
 0112                   .dbline 140
 0112 4395              inc R20
 0114           L24:
 0114                   .dbline 140
 0114 4830              cpi R20,8
 0116 50F3              brlo L21
 0118                   .dbline -2
 0118           L20:
 0118 0E940000          xcall pop_gset2
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbsym r j 20 c
 011E                   .dbsym r i 22 c
 011E                   .dbend
 011E                   .dbfunc e LCD_WrCHr8x16 _LCD_WrCHr8x16 fV
 011E           ;          chr_m -> R20,R21
 011E           ;              i -> R22
 011E           ;           chrx -> y+8
 011E           ;              y -> R10
 011E           ;              x -> R12
                        .even
 011E           _LCD_WrCHr8x16::
 011E 0E940000          xcall push_gset4
 0122 A22E              mov R10,R18
 0124 C02E              mov R12,R16
 0126                   .dbline -1
 0126                   .dbline 159
 0126           ;       {
 0126           ;               LCD_Write_DatL(0x00);  //左半屏写0;
 0126           ;               LCD_Write_DatR(0x00);  //右半屏写0;
 0126           ;       }
 0126           ; }
 0126           ; }
 0126           ; 
 0126           ; //====================================================================
 0126           ; //功能: 显示8x16字符,位置按8x8一个点来定
 0126           ; // x:行坐标(x=(0--8))  y:列坐标(y=0--15)  chrx:显示字符
 0126           ; //====================================================================
 0126           ; void LCD_WrCHr8x16(unsigned char x,unsigned char y,unsigned char chrx)
 0126           ; {
 0126                   .dbline 162
 0126           ; unsigned char i;
 0126           ; unsigned int chr_m;
 0126           ; chr_m=chrx;
 0126 4885              ldd R20,y+8
 0128 5527              clr R21
 012A                   .dbline 163
 012A           ; chr_m=chr_m*16;
 012A 00E1              ldi R16,16
 012C 10E0              ldi R17,0
 012E 9A01              movw R18,R20
 0130 0E940000          xcall empy16s
 0134 A801              movw R20,R16
 0136                   .dbline 164
 0136           ; if(y >= 8)
 0136 8A2D              mov R24,R10
 0138 8830              cpi R24,8
 013A 08F4              brsh X0
 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -