📄 ledtest.lis
字号:
011A 75D0 xcall _LCD_ChkBusy
011C .dbline 112
011C ; SdCmd(0xf0,0xa0); LCD_ChkBusy(); //Font Control Reg
011C 20EA ldi R18,160
011E 30E0 ldi R19,0
0120 00EF ldi R16,240
0122 10E0 ldi R17,0
0124 38D0 xcall _SdCmd
0126 .dbline 112
0126 6FD0 xcall _LCD_ChkBusy
0128 .dbline 113
0128 ; SdCmd(0xf1,0x0f); LCD_ChkBusy(); //设置字型大小
0128 2FE0 ldi R18,15
012A 30E0 ldi R19,0
012C 01EF ldi R16,241
012E 10E0 ldi R17,0
0130 32D0 xcall _SdCmd
0132 .dbline 113
0132 69D0 xcall _LCD_ChkBusy
0134 .dbline 114
0134 ; SdCmd(0x20,0x27); LCD_ChkBusy(); //Active Window Right Reg
0134 27E2 ldi R18,39
0136 30E0 ldi R19,0
0138 00E2 ldi R16,32
013A 10E0 ldi R17,0
013C 2CD0 xcall _SdCmd
013E .dbline 114
013E 63D0 xcall _LCD_ChkBusy
0140 .dbline 115
0140 ; SdCmd(0x30,0xef); LCD_ChkBusy(); //Active Window Bottom Reg(240 duty)
0140 2FEE ldi R18,239
0142 30E0 ldi R19,0
0144 00E3 ldi R16,48
0146 10E0 ldi R17,0
0148 26D0 xcall _SdCmd
014A .dbline 115
014A 5DD0 xcall _LCD_ChkBusy
014C .dbline 116
014C ; SdCmd(0x40,0x00); LCD_ChkBusy(); //Active Window Left Reg
014C 2227 clr R18
014E 3327 clr R19
0150 00E4 ldi R16,64
0152 10E0 ldi R17,0
0154 20D0 xcall _SdCmd
0156 .dbline 116
0156 57D0 xcall _LCD_ChkBusy
0158 .dbline 117
0158 ; SdCmd(0x50,0x00); LCD_ChkBusy(); //Active Window Top Reg
0158 2227 clr R18
015A 3327 clr R19
015C 00E5 ldi R16,80
015E 10E0 ldi R17,0
0160 1AD0 xcall _SdCmd
0162 .dbline 117
0162 51D0 xcall _LCD_ChkBusy
0164 .dbline 118
0164 ; SdCmd(0x21,0x27); LCD_ChkBusy(); //Display Window Right Reg
0164 27E2 ldi R18,39
0166 30E0 ldi R19,0
0168 01E2 ldi R16,33
016A 10E0 ldi R17,0
016C 14D0 xcall _SdCmd
016E .dbline 118
016E 4BD0 xcall _LCD_ChkBusy
0170 .dbline 119
0170 ; SdCmd(0x30,0xef); LCD_ChkBusy(); // Display Window Bottom Reg(240 duty)
0170 2FEE ldi R18,239
0172 30E0 ldi R19,0
0174 00E3 ldi R16,48
0176 10E0 ldi R17,0
0178 0ED0 xcall _SdCmd
017A .dbline 119
017A 45D0 xcall _LCD_ChkBusy
017C .dbline 120
017C ; SdCmd(0x41,0x00); LCD_ChkBusy(); //Display Window Left Reg
017C 2227 clr R18
017E 3327 clr R19
0180 01E4 ldi R16,65
0182 10E0 ldi R17,0
0184 08D0 xcall _SdCmd
0186 .dbline 120
0186 3FD0 xcall _LCD_ChkBusy
0188 .dbline 121
0188 ; SdCmd(0x51,0x00); LCD_ChkBusy(); // Display Window Top Reg
0188 2227 clr R18
018A 3327 clr R19
018C 01E5 ldi R16,81
018E 10E0 ldi R17,0
0190 02D0 xcall _SdCmd
0192 .dbline 121
0192 39D0 xcall _LCD_ChkBusy
0194 .dbline -2
0194 L7:
0194 .dbline 0 ; func end
0194 0895 ret
0196 .dbend
0196 .dbfunc e SdCmd _SdCmd fV
0196 ; Com_Data -> R18
0196 ; Command -> R16
.even
0196 _SdCmd::
0196 .dbline -1
0196 .dbline 126
0196 ; }
0196 ; //====================================
0196 ; //-----------------------------------
0196 ; void SdCmd(uchar Command,uchar Com_Data) //send command
0196 ; {
0196 .dbline 127
0196 ; SetWR;
0196 979A sbi 0x12,7
0198 .dbline 127
0198 .dbline 128
0198 ; SetRD;
0198 959A sbi 0x12,5
019A .dbline 128
019A .dbline 129
019A ; ClrRS; //RS = 0 输入命令
019A 83B1 in R24,0x3
019C 8E7F andi R24,254
019E 83B9 out 0x3,R24
01A0 .dbline 129
01A0 .dbline 130
01A0 ; ClrCS;
01A0 82B3 in R24,0x12
01A2 8F7B andi R24,191
01A4 82BB out 0x12,R24
01A6 .dbline 130
01A6 .dbline 131
01A6 ; PORTF = Command;
01A6 00936200 sts 98,R16
01AA .dbline 132
01AA ; asm(" nop ");
01AA 0000 nop
01AC .dbline 133
01AC ; ClrWR; //写使能
01AC 82B3 in R24,0x12
01AE 8F77 andi R24,127
01B0 82BB out 0x12,R24
01B2 .dbline 133
01B2 .dbline 134
01B2 ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
01B2 0000 nop
01B4 .dbline 135
01B4 ; asm(" nop ");
01B4 0000 nop
01B6 .dbline 136
01B6 ; SetWR;
01B6 979A sbi 0x12,7
01B8 .dbline 136
01B8 .dbline 137
01B8 ; SetCS;
01B8 969A sbi 0x12,6
01BA .dbline 137
01BA .dbline 139
01BA ; //====================================
01BA ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
01BA 0000 nop
01BC .dbline 140
01BC ; asm(" nop ");
01BC 0000 nop
01BE .dbline 141
01BE ; SetWR;
01BE 979A sbi 0x12,7
01C0 .dbline 141
01C0 .dbline 142
01C0 ; SetRD;
01C0 959A sbi 0x12,5
01C2 .dbline 142
01C2 .dbline 143
01C2 ; ClrRS; //RS = 0 输入命令
01C2 83B1 in R24,0x3
01C4 8E7F andi R24,254
01C6 83B9 out 0x3,R24
01C8 .dbline 143
01C8 .dbline 144
01C8 ; ClrCS;
01C8 82B3 in R24,0x12
01CA 8F7B andi R24,191
01CC 82BB out 0x12,R24
01CE .dbline 144
01CE .dbline 145
01CE ; PORTF = Com_Data;
01CE 20936200 sts 98,R18
01D2 .dbline 146
01D2 ; asm(" nop ");
01D2 0000 nop
01D4 .dbline 147
01D4 ; ClrWR; //写使能
01D4 82B3 in R24,0x12
01D6 8F77 andi R24,127
01D8 82BB out 0x12,R24
01DA .dbline 147
01DA .dbline 148
01DA ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
01DA 0000 nop
01DC .dbline 149
01DC ; asm(" nop ");
01DC 0000 nop
01DE .dbline 150
01DE ; SetWR;
01DE 979A sbi 0x12,7
01E0 .dbline 150
01E0 .dbline 151
01E0 ; SetCS;
01E0 969A sbi 0x12,6
01E2 .dbline 151
01E2 .dbline -2
01E2 L8:
01E2 .dbline 0 ; func end
01E2 0895 ret
01E4 .dbsym r Com_Data 18 c
01E4 .dbsym r Command 16 c
01E4 .dbend
01E4 .dbfunc e SdData _SdData fV
01E4 ; DData -> R16
.even
01E4 _SdData::
01E4 .dbline -1
01E4 .dbline 155
01E4 ; }
01E4 ; //===============================================
01E4 ; void SdData(uchar DData) //send display data
01E4 ; {
01E4 .dbline 156
01E4 ; SetWR;
01E4 979A sbi 0x12,7
01E6 .dbline 156
01E6 .dbline 157
01E6 ; SetRD;
01E6 959A sbi 0x12,5
01E8 .dbline 157
01E8 .dbline 158
01E8 ; SetRS; //RS = 1 输入数据
01E8 189A sbi 0x3,0
01EA .dbline 158
01EA .dbline 159
01EA ; ClrCS;
01EA 82B3 in R24,0x12
01EC 8F7B andi R24,191
01EE 82BB out 0x12,R24
01F0 .dbline 159
01F0 .dbline 160
01F0 ; PORTF = DData;
01F0 00936200 sts 98,R16
01F4 .dbline 161
01F4 ; asm(" nop ");
01F4 0000 nop
01F6 .dbline 162
01F6 ; ClrWR; //写使能
01F6 82B3 in R24,0x12
01F8 8F77 andi R24,127
01FA 82BB out 0x12,R24
01FC .dbline 162
01FC .dbline 163
01FC ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
01FC 0000 nop
01FE .dbline 164
01FE ; asm(" nop ");
01FE 0000 nop
0200 .dbline 165
0200 ; SetWR;
0200 979A sbi 0x12,7
0202 .dbline 165
0202 .dbline 166
0202 ; SetCS;
0202 969A sbi 0x12,6
0204 .dbline 166
0204 .dbline -2
0204 L9:
0204 .dbline 0 ; func end
0204 0895 ret
0206 .dbsym r DData 16 c
0206 .dbend
0206 .dbfunc e LCD_ChkBusy _LCD_ChkBusy fV
0206 ; TempM -> R16
.even
0206 _LCD_ChkBusy::
0206 .dbline -1
0206 .dbline 171
0206 ; }
0206 ; //====================================
0206 ; //=================================
0206 ; void LCD_ChkBusy(void)
0206 ; {
0206 .dbline 172
0206 ; uchar TempM = 0x08;
0206 08E0 ldi R16,8
0208 .dbline 173
0208 ; DDRG = 0X00; //将端口设为输入
0208 2224 clr R2
020A 20926400 sts 100,R2
020E 03C0 xjmp L12
0210 L11:
0210 .dbline 175
0210 .dbline 176
0210 00916300 lds R16,99
0214 .dbline 177
0214 0870 andi R16,8
0216 .dbline 178
0216 L12:
0216 .dbline 174
0216 ; while(TempM)
0216 0023 tst R16
0218 D9F7 brne L11
021A .dbline 179
021A ; {
021A ; TempM = PING;
021A ; TempM &= 0x08; //读取DB.3位
021A ; }
021A ; DDRG = 0XFF; //将端口设为输出
021A 8FEF ldi R24,255
021C 80936400 sts 100,R24
0220 .dbline -2
0220 L10:
0220 .dbline 0 ; func end
0220 0895 ret
0222 .dbsym r TempM 16 c
0222 .dbend
0222 .dbfunc e Welcome_interface _Welcome_interface fV
.even
0222 _Welcome_interface::
0222 2297 sbiw R28,2
0224 .dbline -1
0224 .dbline 183
0224 ; }
0224 ; //====================================
0224 ; void Welcome_interface(void)
0224 ; {
0224 .dbline 184
0224 ; SdCmd(0x12,0x95);LCD_ChkBusy(); //操作图层1
0224 25E9 ldi R18,149
0226 02E1 ldi R16,18
0228 B6DF xcall _SdCmd
022A .dbline 184
022A EDDF xcall _LCD_ChkBusy
022C .dbline 185
022C ; CleanScreen();
022C 31D0 xcall _CleanScreen
022E .dbline 186
022E ; SdCmd(0xf1,0x1f);LCD_ChkBusy(); //设置字型大小
022E 2FE1 ldi R18,31
0230 01EF ldi R16,241
0232 B1DF xcall _SdCmd
0234 .dbline 186
0234 E8DF xcall _LCD_ChkBusy
0236 .dbline 189
0236 ; //SdCmd(0x60,0x0a);LCD_ChkBusy(); //设置光标X坐标
0236 ; //SdCmd(0x70,0x4b);LCD_ChkBusy(); //设置光标Y坐标
0236 ; ShowText(10,75,"金特维");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -