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

📄 yj1602.lis

📁 AVR单片机开发版资料测试程序里的源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0198 A6DF              xcall _LCD1602_sendbyte
 019A           L40:
 019A                   .dbline 153
 019A           L41:
 019A                   .dbline 153
 019A           ;       while(LCD1602_readBF());
 019A CEDF              xcall _LCD1602_readBF
 019C 0023              tst R16
 019E E9F7              brne L40
 01A0                   .dbline 154
 01A0           ;       LCD1602_clear();                                                //清屏
 01A0 C5DF              xcall _LCD1602_clear
 01A2           L43:
 01A2                   .dbline 155
 01A2           L44:
 01A2                   .dbline 155
 01A2           ;       while(LCD1602_readBF());
 01A2 CADF              xcall _LCD1602_readBF
 01A4 0023              tst R16
 01A6 E9F7              brne L43
 01A8                   .dbline 156
 01A8           ;       LCD1602_sendbyte(iCmd, LCDa_ENTRY);     // 输入模式设定         
 01A8 26E0              ldi R18,6
 01AA 0027              clr R16
 01AC                   .dbline -2
 01AC                   .dbline 157
 01AC           ; }
 01AC           L36:
 01AC                   .dbline 0 ; func end
 01AC 9CCF              xjmp _LCD1602_sendbyte
 01AE                   .dbend
 01AE                   .dbfunc e LCD1602_wrCGRAM _LCD1602_wrCGRAM fV
 01AE           ;              i -> R20
 01AE           ;        ptCGRAM -> R22,R23
                        .even
 01AE           _LCD1602_wrCGRAM::
 01AE 0E940000          xcall push_gset2
 01B2 B801              movw R22,R16
 01B4                   .dbline -1
 01B4                   .dbline 165
 01B4           ; /*******************************************
 01B4           ; 函数名称: LCD1602_wrCGRAM
 01B4           ; 功    能: 向CGRAM写入数据
 01B4           ; 参    数: ptCGRAM--CGRAM数据指针
 01B4           ; 返回值  : 无
 01B4           ; /********************************************/
 01B4           ; void LCD1602_wrCGRAM(const uchar *ptCGRAM)
 01B4           ; {
 01B4                   .dbline 167
 01B4           ;       uchar i;
 01B4           ;       LCD1602_sendbyte(iCmd, LCDa_CGRAM_ADDR);  //写入CGRAM首地址
 01B4 20E4              ldi R18,64
 01B6 0027              clr R16
 01B8 96DF              xcall _LCD1602_sendbyte
 01BA                   .dbline 168
 01BA           ;       for (i = 0; i < LCDa_CGMAX; i++)                  //写入64个字节的CGRAM内容
 01BA 4427              clr R20
 01BC 08C0              xjmp L50
 01BE           L47:
 01BE                   .dbline 169
 01BE                   .dbline 170
 01BE E42F              mov R30,R20
 01C0 FF27              clr R31
 01C2 E60F              add R30,R22
 01C4 F71F              adc R31,R23
 01C6 2491              lpm R18,Z
 01C8 01E0              ldi R16,1
 01CA 8DDF              xcall _LCD1602_sendbyte
 01CC                   .dbline 171
 01CC           L48:
 01CC                   .dbline 168
 01CC 4395              inc R20
 01CE           L50:
 01CE                   .dbline 168
 01CE 4034              cpi R20,64
 01D0 B0F3              brlo L47
 01D2                   .dbline -2
 01D2                   .dbline 172
 01D2           ;       {
 01D2           ;               LCD1602_sendbyte(iDat,ptCGRAM[i]);
 01D2           ;       }
 01D2           ; }
 01D2           L46:
 01D2 0E940000          xcall pop_gset2
 01D6                   .dbline 0 ; func end
 01D6 0895              ret
 01D8                   .dbsym r i 20 c
 01D8                   .dbsym r ptCGRAM 22 pc
 01D8                   .dbend
 01D8                   .dbfunc e LCD1602_disCGRAM _LCD1602_disCGRAM fV
 01D8           ;              i -> R20
                        .even
 01D8           _LCD1602_disCGRAM::
 01D8 0E940000          xcall push_gset1
 01DC                   .dbline -1
 01DC                   .dbline 180
 01DC           ; /*******************************************
 01DC           ; 函数名称: LCD1602_disCGRAM
 01DC           ; 功    能: 显示CGRAM内容,将64个字节写在两行,每行32个字节
 01DC           ; 参    数: 无
 01DC           ; 返回值  : 无
 01DC           ; /********************************************/
 01DC           ; void LCD1602_disCGRAM(void)
 01DC           ; {
 01DC                   .dbline 182
 01DC           ;       uchar i;
 01DC           ;       LCD1602_gotoXY(1,6);   //从第1行第6列开始显示
 01DC 26E0              ldi R18,6
 01DE 01E0              ldi R16,1
 01E0 B9DF              xcall _LCD1602_gotoXY
 01E2                   .dbline 183
 01E2           ;       for (i = 0;i <4;i++)   //显示前32个字节的内容
 01E2 4427              clr R20
 01E4 04C0              xjmp L55
 01E6           L52:
 01E6                   .dbline 184
 01E6                   .dbline 185
 01E6 242F              mov R18,R20
 01E8 01E0              ldi R16,1
 01EA 7DDF              xcall _LCD1602_sendbyte
 01EC                   .dbline 186
 01EC           L53:
 01EC                   .dbline 183
 01EC 4395              inc R20
 01EE           L55:
 01EE                   .dbline 183
 01EE 4430              cpi R20,4
 01F0 D0F3              brlo L52
 01F2                   .dbline 187
 01F2           ;       {               
 01F2           ;               LCD1602_sendbyte(iDat, i);              
 01F2           ;       }
 01F2           ;       LCD1602_gotoXY(2,6);   //从第2行第6列开始显示
 01F2 26E0              ldi R18,6
 01F4 02E0              ldi R16,2
 01F6 AEDF              xcall _LCD1602_gotoXY
 01F8                   .dbline 188
 01F8           ;       for (i = 4;i <8;i++)   //显示后32个字节的内容
 01F8 44E0              ldi R20,4
 01FA 04C0              xjmp L59
 01FC           L56:
 01FC                   .dbline 189
 01FC                   .dbline 190
 01FC 242F              mov R18,R20
 01FE 01E0              ldi R16,1
 0200 72DF              xcall _LCD1602_sendbyte
 0202                   .dbline 191
 0202           L57:
 0202                   .dbline 188
 0202 4395              inc R20
 0204           L59:
 0204                   .dbline 188
 0204 4830              cpi R20,8
 0206 D0F3              brlo L56
 0208                   .dbline -2
 0208                   .dbline 192
 0208           ;       {               
 0208           ;               LCD1602_sendbyte(iDat,i);               
 0208           ;       }
 0208           ; }
 0208           L51:
 0208 0E940000          xcall pop_gset1
 020C                   .dbline 0 ; func end
 020C 0895              ret
 020E                   .dbsym r i 20 c
 020E                   .dbend
 020E                   .dbfunc e main _main fV
 020E           ;              i -> R20
                        .even
 020E           _main::
 020E                   .dbline -1
 020E                   .dbline 200
 020E           ; /*******************************************
 020E           ; 函数名称: main
 020E           ; 功    能: 1602液晶驱动主程序
 020E           ; 参    数: 无
 020E           ; 返回值  : 无
 020E           ; /********************************************/
 020E           ; void main(void)
 020E           ; {
 020E                   .dbline 202
 020E           ;  uchar i;
 020E           ;  Board_init( );
 020E 26DF              xcall _Board_init
 0210                   .dbline 203
 0210           ;  LCD1602_initial(); 
 0210 B7DF              xcall _LCD1602_initial
 0212 29C0              xjmp L62
 0214           X1:
 0214                   .dbline 205
 0214           ;  while(1)
 0214           ;  {             //滚动显示CGROM的字符
 0214           L64:
 0214                   .dbline 206
 0214           L65:
 0214                   .dbline 206
 0214           ;   while(LCD1602_readBF());
 0214 91DF              xcall _LCD1602_readBF
 0216 0023              tst R16
 0218 E9F7              brne L64
 021A                   .dbline 207
 021A           ;   LCD1602_gotoXY(1,17);
 021A 21E1              ldi R18,17
 021C 01E0              ldi R16,1
 021E 9ADF              xcall _LCD1602_gotoXY
 0220                   .dbline 208
 0220           ;   LCD1602_sendstr("AVR_PQ1A BOARD");  
 0220 00E0              ldi R16,<L67
 0222 10E0              ldi R17,>L67
 0224 73DF              xcall _LCD1602_sendstr
 0226           L68:
 0226                   .dbline 209
 0226           L69:
 0226                   .dbline 209
 0226           ;   while(LCD1602_readBF());
 0226 88DF              xcall _LCD1602_readBF
 0228 0023              tst R16
 022A E9F7              brne L68
 022C                   .dbline 210
 022C           ;   LCD1602_gotoXY(2,18);
 022C 22E1              ldi R18,18
 022E 02E0              ldi R16,2
 0230 91DF              xcall _LCD1602_gotoXY
 0232                   .dbline 211
 0232           ;   LCD1602_sendstr("13212800564");     
 0232 00E0              ldi R16,<L71
 0234 10E0              ldi R17,>L71
 0236 6ADF              xcall _LCD1602_sendstr
 0238                   .dbline 212
 0238           ;   for(i=0;i<30;i++)
 0238 4427              clr R20
 023A 07C0              xjmp L75
 023C           L72:
 023C                   .dbline 213
 023C                   .dbline 214
 023C 28E1              ldi R18,24
 023E 0027              clr R16
 0240 52DF              xcall _LCD1602_sendbyte
 0242                   .dbline 215
 0242 04EF              ldi R16,500
 0244 11E0              ldi R17,1
 0246 F4DE              xcall _Delayms
 0248                   .dbline 216
 0248           L73:
 0248                   .dbline 212
 0248 4395              inc R20
 024A           L75:
 024A                   .dbline 212
 024A 4E31              cpi R20,30
 024C B8F3              brlo L72
 024E                   .dbline 217
 024E 6EDF              xcall _LCD1602_clear
 0250                   .dbline 219
 0250 00E0              ldi R16,<_CGRAM
 0252 10E0              ldi R17,>_CGRAM
 0254 ACDF              xcall _LCD1602_wrCGRAM
 0256                   .dbline 220
 0256 0AE5              ldi R16,90
 0258 10E0              ldi R17,0
 025A EADE              xcall _Delayms
 025C                   .dbline 221
 025C BDDF              xcall _LCD1602_disCGRAM
 025E                   .dbline 222
 025E 00ED              ldi R16,2000
 0260 17E0              ldi R17,7
 0262 E6DE              xcall _Delayms
 0264                   .dbline 223
 0264 63DF              xcall _LCD1602_clear
 0266                   .dbline 224
 0266           L62:
 0266                   .dbline 204
 0266 D6CF              xjmp L65
 0268           X2:
 0268                   .dbline -2
 0268                   .dbline 225
 0268           ;   {
 0268           ;    LCD1602_sendbyte(iCmd, LCDa_D2L);
 0268           ;    Delayms(500);
 0268           ;   }
 0268           ;   LCD1602_clear();
 0268           ;                //静止显示CGRAM的内容
 0268           ;   LCD1602_wrCGRAM(CGRAM);
 0268           ;   Delayms(90);
 0268           ;   LCD1602_disCGRAM();
 0268           ;   Delayms(2000);
 0268           ;   LCD1602_clear();
 0268           ;  }
 0268           ; }
 0268           L60:
 0268                   .dbline 0 ; func end
 0268 0895              ret
 026A                   .dbsym r i 20 c
 026A                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\3_1602\YJ1602.C
 0000           L71:
 0000                   .blkb 12
                        .area idata
 0000 313332313238303035363400  .byte 49,51,50,49,50,56,48,48,53,54,52,0
                        .area data(ram, con, rel)
 000C                   .dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\3_1602\YJ1602.C
 000C           L67:
 000C                   .blkb 15
                        .area idata
 000C 4156525F5051314120424F41524400    .byte 'A,'V,'R,95,'P,'Q,49,'A,32,'B,'O,'A,'R,'D,0
                        .area data(ram, con, rel)
 001B                   .dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\3_1602\YJ1602.C

⌨️ 快捷键说明

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