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

📄 lcd.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00BA 05E0              ldi R16,5
 00BC 10E0              ldi R17,0
 00BE 0E940000          xcall _Delay_nms
 00C2                   .dbline 52
 00C2           ; LcdWriteCommand(0x38,0); //8位数据传送,2行显示,5*7字形,不检测忙信号
 00C2 2227              clr R18
 00C4 3327              clr R19
 00C6 08E3              ldi R16,56
 00C8 10E0              ldi R17,0
 00CA 27D0              xcall _LcdWriteCommand
 00CC                   .dbline 53
 00CC           ; Delay_nms(5);
 00CC 05E0              ldi R16,5
 00CE 10E0              ldi R17,0
 00D0 0E940000          xcall _Delay_nms
 00D4                   .dbline 54
 00D4           ; LcdWriteCommand(0x38,0); //8位数据传送,2行显示,5*7字形,不检测忙信号
 00D4 2227              clr R18
 00D6 3327              clr R19
 00D8 08E3              ldi R16,56
 00DA 10E0              ldi R17,0
 00DC 1ED0              xcall _LcdWriteCommand
 00DE                   .dbline 55
 00DE           ; Delay_nms(5);
 00DE 05E0              ldi R16,5
 00E0 10E0              ldi R17,0
 00E2 0E940000          xcall _Delay_nms
 00E6                   .dbline 56
 00E6           ; LcdWriteCommand(0x38,1); //8位数据传送,2行显示,5*7字形,检测忙信号
 00E6 21E0              ldi R18,1
 00E8 30E0              ldi R19,0
 00EA 08E3              ldi R16,56
 00EC 10E0              ldi R17,0
 00EE 15D0              xcall _LcdWriteCommand
 00F0                   .dbline 57
 00F0           ; LcdWriteCommand(0x08,1); //关闭显示,检测忙信号
 00F0 21E0              ldi R18,1
 00F2 30E0              ldi R19,0
 00F4 08E0              ldi R16,8
 00F6 10E0              ldi R17,0
 00F8 10D0              xcall _LcdWriteCommand
 00FA                   .dbline 58
 00FA           ; LcdWriteCommand(0x01,1); //清屏,检测忙信号
 00FA 21E0              ldi R18,1
 00FC 30E0              ldi R19,0
 00FE 01E0              ldi R16,1
 0100 10E0              ldi R17,0
 0102 0BD0              xcall _LcdWriteCommand
 0104                   .dbline 59
 0104           ; LcdWriteCommand(0x06,1); //显示光标右移设置,检测忙信号
 0104 21E0              ldi R18,1
 0106 30E0              ldi R19,0
 0108 06E0              ldi R16,6
 010A 10E0              ldi R17,0
 010C 06D0              xcall _LcdWriteCommand
 010E                   .dbline 60
 010E           ; LcdWriteCommand(0x0c,1); //显示屏打开,光标不显示、不闪烁,检测忙信号
 010E 21E0              ldi R18,1
 0110 30E0              ldi R19,0
 0112 0CE0              ldi R16,12
 0114 10E0              ldi R17,0
 0116 01D0              xcall _LcdWriteCommand
 0118                   .dbline -2
 0118           L17:
 0118                   .dbline 0 ; func end
 0118 0895              ret
 011A                   .dbend
 011A                   .dbfunc e LcdWriteCommand _LcdWriteCommand fV
 011A           ;        Attribc -> R22
 011A           ;            CMD -> R20
                        .even
 011A           _LcdWriteCommand::
 011A 0E940000          xcall push_gset2
 011E 622F              mov R22,R18
 0120 402F              mov R20,R16
 0122                   .dbline -1
 0122                   .dbline 64
 0122           ; }
 0122           ; //****************************************
 0122           ; void LcdWriteCommand(uchar CMD,uchar Attribc)
 0122           ; {
 0122                   .dbline 65
 0122           ; if(Attribc)WaitForEnable();
 0122 6623              tst R22
 0124 09F0              breq L19
 0126                   .dbline 65
 0126 24D0              xcall _WaitForEnable
 0128           L19:
 0128                   .dbline 66
 0128           ; Delay_nms(5);
 0128 05E0              ldi R16,5
 012A 10E0              ldi R17,0
 012C 0E940000          xcall _Delay_nms
 0130                   .dbline 67
 0130           ; LCM_RS_0;LCM_RW_0;_NOP();
 0130 C098              cbi 0x18,0
 0132                   .dbline 67
 0132 C198              cbi 0x18,1
 0134                   .dbline 67
 0134 0000              nop
 0136                   .dbline 68
 0136           ; DataPort=CMD;_NOP();
 0136 4BBB              out 0x1b,R20
 0138                   .dbline 68
 0138 0000              nop
 013A                   .dbline 69
 013A           ; LCM_EN_1;_NOP();_NOP();LCM_EN_0;
 013A C29A              sbi 0x18,2
 013C                   .dbline 69
 013C 0000              nop
 013E                   .dbline 69
 013E 0000              nop
 0140                   .dbline 69
 0140 C298              cbi 0x18,2
 0142                   .dbline -2
 0142           L18:
 0142 0E940000          xcall pop_gset2
 0146                   .dbline 0 ; func end
 0146 0895              ret
 0148                   .dbsym r Attribc 22 c
 0148                   .dbsym r CMD 20 c
 0148                   .dbend
 0148                   .dbfunc e LcdWriteData _LcdWriteData fV
 0148           ;          dataW -> R20
                        .even
 0148           _LcdWriteData::
 0148 0E940000          xcall push_gset1
 014C 402F              mov R20,R16
 014E                   .dbline -1
 014E                   .dbline 73
 014E           ; }
 014E           ; //***************************************
 014E           ; void LcdWriteData(uchar dataW)
 014E           ; {
 014E                   .dbline 74
 014E           ; WaitForEnable();
 014E 10D0              xcall _WaitForEnable
 0150                   .dbline 75
 0150           ; Delay_nms(5);
 0150 05E0              ldi R16,5
 0152 10E0              ldi R17,0
 0154 0E940000          xcall _Delay_nms
 0158                   .dbline 76
 0158           ; LCM_RS_1;LCM_RW_0;_NOP();
 0158 C09A              sbi 0x18,0
 015A                   .dbline 76
 015A C198              cbi 0x18,1
 015C                   .dbline 76
 015C 0000              nop
 015E                   .dbline 77
 015E           ; DataPort=dataW;_NOP();
 015E 4BBB              out 0x1b,R20
 0160                   .dbline 77
 0160 0000              nop
 0162                   .dbline 78
 0162           ; LCM_EN_1;_NOP();_NOP();LCM_EN_0;
 0162 C29A              sbi 0x18,2
 0164                   .dbline 78
 0164 0000              nop
 0166                   .dbline 78
 0166 0000              nop
 0168                   .dbline 78
 0168 C298              cbi 0x18,2
 016A                   .dbline -2
 016A           L21:
 016A 0E940000          xcall pop_gset1
 016E                   .dbline 0 ; func end
 016E 0895              ret
 0170                   .dbsym r dataW 20 c
 0170                   .dbend
 0170                   .dbfunc e WaitForEnable _WaitForEnable fV
 0170           ;            val -> R16
                        .even
 0170           _WaitForEnable::
 0170                   .dbline -1
 0170                   .dbline 82
 0170           ; }
 0170           ; //****************************************
 0170           ; void WaitForEnable(void)
 0170           ; {
 0170                   .dbline 84
 0170           ; uchar val;
 0170           ; DataPort=0xff;
 0170 8FEF              ldi R24,255
 0172 8BBB              out 0x1b,R24
 0174                   .dbline 85
 0174           ; LCM_RS_0;LCM_RW_1;_NOP();
 0174 C098              cbi 0x18,0
 0176                   .dbline 85
 0176 C19A              sbi 0x18,1
 0178                   .dbline 85
 0178 0000              nop
 017A                   .dbline 86
 017A           ; LCM_EN_1;_NOP();_NOP();
 017A C29A              sbi 0x18,2
 017C                   .dbline 86
 017C 0000              nop
 017E                   .dbline 86
 017E 0000              nop
 0180                   .dbline 87
 0180           ; DDRA=0x00;
 0180 2224              clr R2
 0182 2ABA              out 0x1a,R2
 0184                   .dbline 88
 0184           ; val=PINA;
 0184 09B3              in R16,0x19
 0186 02C0              xjmp L24
 0188           L23:
 0188                   .dbline 89
 0188                   .dbline 89
 0188 09B3              in R16,0x19
 018A                   .dbline 89
 018A A895              wdr
 018C                   .dbline 89
 018C           L24:
 018C                   .dbline 89
 018C           ; while(val&Busy){val=PINA;WDR();}
 018C 07FD              sbrc R16,7
 018E FCCF              rjmp L23
 0190                   .dbline 90
 0190           ; LCM_EN_0;
 0190 C298              cbi 0x18,2
 0192                   .dbline 91
 0192           ; DDRA=0xff;
 0192 8FEF              ldi R24,255
 0194 8ABB              out 0x1a,R24
 0196                   .dbline -2
 0196           L22:
 0196                   .dbline 0 ; func end
 0196 0895              ret
 0198                   .dbsym r val 16 c
 0198                   .dbend

⌨️ 快捷键说明

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