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

📄 lcd.lis

📁 AVR单片机ATmega16(L)应用实例1——风机测试仪
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00C8           ; {
 00C8                   .dbline 52
 00C8           ; LcdWriteCommand(0x38,0); //8位数据传送,2行显示,5*7字形,不检测忙信号
 00C8 2227              clr R18
 00CA 3327              clr R19
 00CC 08E3              ldi R16,56
 00CE 10E0              ldi R17,0
 00D0 30D0              xcall _LcdWriteCommand
 00D2                   .dbline 53
 00D2           ; Delay_nms(5);
 00D2 05E0              ldi R16,5
 00D4 10E0              ldi R17,0
 00D6 0E940000          xcall _Delay_nms
 00DA                   .dbline 54
 00DA           ; LcdWriteCommand(0x38,0); //8位数据传送,2行显示,5*7字形,不检测忙信号
 00DA 2227              clr R18
 00DC 3327              clr R19
 00DE 08E3              ldi R16,56
 00E0 10E0              ldi R17,0
 00E2 27D0              xcall _LcdWriteCommand
 00E4                   .dbline 55
 00E4           ; Delay_nms(5);
 00E4 05E0              ldi R16,5
 00E6 10E0              ldi R17,0
 00E8 0E940000          xcall _Delay_nms
 00EC                   .dbline 56
 00EC           ; LcdWriteCommand(0x38,0); //8位数据传送,2行显示,5*7字形,不检测忙信号
 00EC 2227              clr R18
 00EE 3327              clr R19
 00F0 08E3              ldi R16,56
 00F2 10E0              ldi R17,0
 00F4 1ED0              xcall _LcdWriteCommand
 00F6                   .dbline 57
 00F6           ; Delay_nms(5);
 00F6 05E0              ldi R16,5
 00F8 10E0              ldi R17,0
 00FA 0E940000          xcall _Delay_nms
 00FE                   .dbline 58
 00FE           ; LcdWriteCommand(0x38,1); //8位数据传送,2行显示,5*7字形,检测忙信号
 00FE 21E0              ldi R18,1
 0100 30E0              ldi R19,0
 0102 08E3              ldi R16,56
 0104 10E0              ldi R17,0
 0106 15D0              xcall _LcdWriteCommand
 0108                   .dbline 59
 0108           ; LcdWriteCommand(0x08,1); //关闭显示,检测忙信号
 0108 21E0              ldi R18,1
 010A 30E0              ldi R19,0
 010C 08E0              ldi R16,8
 010E 10E0              ldi R17,0
 0110 10D0              xcall _LcdWriteCommand
 0112                   .dbline 60
 0112           ; LcdWriteCommand(0x01,1); //清屏,检测忙信号
 0112 21E0              ldi R18,1
 0114 30E0              ldi R19,0
 0116 01E0              ldi R16,1
 0118 10E0              ldi R17,0
 011A 0BD0              xcall _LcdWriteCommand
 011C                   .dbline 61
 011C           ; LcdWriteCommand(0x06,1); //显示光标右移设置,检测忙信号
 011C 21E0              ldi R18,1
 011E 30E0              ldi R19,0
 0120 06E0              ldi R16,6
 0122 10E0              ldi R17,0
 0124 06D0              xcall _LcdWriteCommand
 0126                   .dbline 62
 0126           ; LcdWriteCommand(0x0c,1); //显示屏打开,光标不显示、不闪烁,检测忙信号
 0126 21E0              ldi R18,1
 0128 30E0              ldi R19,0
 012A 0CE0              ldi R16,12
 012C 10E0              ldi R17,0
 012E 01D0              xcall _LcdWriteCommand
 0130                   .dbline -2
 0130           L19:
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbend
 0132                   .dbfunc e LcdWriteCommand _LcdWriteCommand fV
 0132           ;        Attribc -> R22
 0132           ;            CMD -> R20
                        .even
 0132           _LcdWriteCommand::
 0132 0E940000          xcall push_gset2
 0136 622F              mov R22,R18
 0138 402F              mov R20,R16
 013A                   .dbline -1
 013A                   .dbline 66
 013A           ; }
 013A           ; //****************************************
 013A           ; void LcdWriteCommand(uchar CMD,uchar Attribc)
 013A           ; {
 013A                   .dbline 67
 013A           ; if(Attribc)WaitForEnable();
 013A 6623              tst R22
 013C 09F0              breq L21
 013E                   .dbline 67
 013E 24D0              xcall _WaitForEnable
 0140           L21:
 0140                   .dbline 68
 0140           ; Delay_nms(5);
 0140 05E0              ldi R16,5
 0142 10E0              ldi R17,0
 0144 0E940000          xcall _Delay_nms
 0148                   .dbline 69
 0148           ; LCM_RS_0;LCM_RW_0;_NOP();
 0148 C098              cbi 0x18,0
 014A                   .dbline 69
 014A C298              cbi 0x18,2
 014C                   .dbline 69
 014C 0000              nop
 014E                   .dbline 70
 014E           ; DataPort=CMD;_NOP();
 014E 45BB              out 0x15,R20
 0150                   .dbline 70
 0150 0000              nop
 0152                   .dbline 71
 0152           ; LCM_EN_1;_NOP();_NOP();LCM_EN_0;
 0152 C39A              sbi 0x18,3
 0154                   .dbline 71
 0154 0000              nop
 0156                   .dbline 71
 0156 0000              nop
 0158                   .dbline 71
 0158 C398              cbi 0x18,3
 015A                   .dbline -2
 015A           L20:
 015A 0E940000          xcall pop_gset2
 015E                   .dbline 0 ; func end
 015E 0895              ret
 0160                   .dbsym r Attribc 22 c
 0160                   .dbsym r CMD 20 c
 0160                   .dbend
 0160                   .dbfunc e LcdWriteData _LcdWriteData fV
 0160           ;          dataW -> R20
                        .even
 0160           _LcdWriteData::
 0160 0E940000          xcall push_gset1
 0164 402F              mov R20,R16
 0166                   .dbline -1
 0166                   .dbline 75
 0166           ; }
 0166           ; //***************************************
 0166           ; void LcdWriteData(uchar dataW)
 0166           ; {
 0166                   .dbline 76
 0166           ; WaitForEnable();
 0166 10D0              xcall _WaitForEnable
 0168                   .dbline 77
 0168           ; Delay_nms(5);
 0168 05E0              ldi R16,5
 016A 10E0              ldi R17,0
 016C 0E940000          xcall _Delay_nms
 0170                   .dbline 78
 0170           ; LCM_RS_1;LCM_RW_0;_NOP();
 0170 C09A              sbi 0x18,0
 0172                   .dbline 78
 0172 C298              cbi 0x18,2
 0174                   .dbline 78
 0174 0000              nop
 0176                   .dbline 79
 0176           ; DataPort=dataW;_NOP();
 0176 45BB              out 0x15,R20
 0178                   .dbline 79
 0178 0000              nop
 017A                   .dbline 80
 017A           ; LCM_EN_1;_NOP();_NOP();LCM_EN_0;
 017A C39A              sbi 0x18,3
 017C                   .dbline 80
 017C 0000              nop
 017E                   .dbline 80
 017E 0000              nop
 0180                   .dbline 80
 0180 C398              cbi 0x18,3
 0182                   .dbline -2
 0182           L23:
 0182 0E940000          xcall pop_gset1
 0186                   .dbline 0 ; func end
 0186 0895              ret
 0188                   .dbsym r dataW 20 c
 0188                   .dbend
 0188                   .dbfunc e WaitForEnable _WaitForEnable fV
 0188           ;            val -> R16
                        .even
 0188           _WaitForEnable::
 0188                   .dbline -1
 0188                   .dbline 84
 0188           ; }
 0188           ; //****************************************
 0188           ; void WaitForEnable(void)
 0188           ; {
 0188                   .dbline 86
 0188           ; uchar val;
 0188           ; DataPort=0xff;
 0188 8FEF              ldi R24,255
 018A 85BB              out 0x15,R24
 018C                   .dbline 87
 018C           ; LCM_RS_0;LCM_RW_1;_NOP();
 018C C098              cbi 0x18,0
 018E                   .dbline 87
 018E C29A              sbi 0x18,2
 0190                   .dbline 87
 0190 0000              nop
 0192                   .dbline 88
 0192           ; LCM_EN_1;_NOP();_NOP();
 0192 C39A              sbi 0x18,3
 0194                   .dbline 88
 0194 0000              nop
 0196                   .dbline 88
 0196 0000              nop
 0198                   .dbline 89
 0198           ; DDRC=0x00;
 0198 2224              clr R2
 019A 24BA              out 0x14,R2
 019C                   .dbline 90
 019C           ; val=PINA;
 019C 09B3              in R16,0x19
 019E 02C0              xjmp L26
 01A0           L25:
 01A0                   .dbline 91
 01A0                   .dbline 91
 01A0 03B3              in R16,0x13
 01A2                   .dbline 91
 01A2 A895              wdr
 01A4                   .dbline 91
 01A4           L26:
 01A4                   .dbline 91
 01A4           ; while(val&Busy){val=PINC;WDR();}
 01A4 07FD              sbrc R16,7
 01A6 FCCF              rjmp L25
 01A8                   .dbline 92
 01A8           ; LCM_EN_0;
 01A8 C398              cbi 0x18,3
 01AA                   .dbline 93
 01AA           ; DDRC=0xff;
 01AA 8FEF              ldi R24,255
 01AC 84BB              out 0x14,R24
 01AE                   .dbline -2
 01AE           L24:
 01AE                   .dbline 0 ; func end
 01AE 0895              ret
 01B0                   .dbsym r val 16 c
 01B0                   .dbend

⌨️ 快捷键说明

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