?? lcd.lis
字號:
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 + -