📄 ir.lst
字号:
1F3 334E CPI R20,0x3E
1F4 E0E0 LDI R30,0
1F5 075E CPC R21,R30
1F6 F40C BGE 0x01F8
1F7 C0FF RJMP 0x02F7
1F8 3444 CPI R20,0x44
1F9 E0E0 LDI R30,0
1FA 075E CPC R21,R30
1FB F409 BNE 0x01FD
1FC C093 RJMP 0x0290
1FD C0F9 RJMP 0x02F7
1FE 3644 CPI R20,0x64
1FF E0E0 LDI R30,0
200 075E CPC R21,R30
201 F409 BNE 0x0203
202 C09D RJMP 0x02A0
203 E684 LDI R24,0x64
204 E090 LDI R25,0
205 1784 CP R24,R20
206 0795 CPC R25,R21
207 F034 BLT 0x020E
208 354A CPI R20,0x5A
209 E0E0 LDI R30,0
20A 075E CPC R21,R30
20B F409 BNE 0x020D
20C C0D7 RJMP 0x02E4
20D C0E9 RJMP 0x02F7
20E 3748 CPI R20,0x78
20F E0E0 LDI R30,0
210 075E CPC R21,R30
211 F409 BNE 0x0213
212 C0A5 RJMP 0x02B8
213 C0E3 RJMP 0x02F7
214 3C40 CPI R20,0xC0
215 E0E0 LDI R30,0
216 075E CPC R21,R30
217 F409 BNE 0x0219
218 C0BB RJMP 0x02D4
219 EC80 LDI R24,0xC0
21A E090 LDI R25,0
21B 1784 CP R24,R20
21C 0795 CPC R25,R21
21D F40C BGE 0x021F
21E C030 RJMP 0x024F
21F 3948 CPI R20,0x98
220 E0E0 LDI R30,0
221 075E CPC R21,R30
222 F409 BNE 0x0224
223 C098 RJMP 0x02BC
224 E988 LDI R24,0x98
225 E090 LDI R25,0
226 1784 CP R24,R20
227 0795 CPC R25,R21
228 F084 BLT 0x0239
229 3849 CPI R20,0x89
22A E0E0 LDI R30,0
22B 075E CPC R21,R30
22C F409 BNE 0x022E
22D C0AE RJMP 0x02DC
22E 3849 CPI R20,0x89
22F E0E0 LDI R30,0
230 075E CPC R21,R30
231 F40C BGE 0x0233
232 C0C4 RJMP 0x02F7
233 3944 CPI R20,0x94
234 E0E0 LDI R30,0
235 075E CPC R21,R30
236 F409 BNE 0x0238
237 C074 RJMP 0x02AC
238 C0BE RJMP 0x02F7
239 3A44 CPI R20,0xA4
23A E0E0 LDI R30,0
23B 075E CPC R21,R30
23C F409 BNE 0x023E
23D C05E RJMP 0x029C
23E EA84 LDI R24,0xA4
23F E090 LDI R25,0
240 1784 CP R24,R20
241 0795 CPC R25,R21
242 F034 BLT 0x0249
243 394E CPI R20,0x9E
244 E0E0 LDI R30,0
245 075E CPC R21,R30
246 F409 BNE 0x0248
247 C0A4 RJMP 0x02EC
248 C0AE RJMP 0x02F7
249 3B49 CPI R20,0xB9
24A E0E0 LDI R30,0
24B 075E CPC R21,R30
24C F409 BNE 0x024E
24D C0A2 RJMP 0x02F0
24E C0A8 RJMP 0x02F7
24F 3D4E CPI R20,0xDE
250 E0E0 LDI R30,0
251 075E CPC R21,R30
252 F409 BNE 0x0254
253 C094 RJMP 0x02E8
254 ED8E LDI R24,0xDE
255 E090 LDI R25,0
256 1784 CP R24,R20
257 0795 CPC R25,R21
258 F0B4 BLT 0x026F
259 3C48 CPI R20,0xC8
25A E0E0 LDI R30,0
25B 075E CPC R21,R30
25C F409 BNE 0x025E
25D C06E RJMP 0x02CC
25E EC88 LDI R24,0xC8
25F E090 LDI R25,0
260 1784 CP R24,R20
261 0795 CPC R25,R21
262 F034 BLT 0x0269
263 3C44 CPI R20,0xC4
264 E0E0 LDI R30,0
265 075E CPC R21,R30
266 F409 BNE 0x0268
267 C02C RJMP 0x0294
268 C08E RJMP 0x02F7
269 3D4A CPI R20,0xDA
26A E0E0 LDI R30,0
26B 075E CPC R21,R30
26C F409 BNE 0x026E
26D C072 RJMP 0x02E0
26E C088 RJMP 0x02F7
26F 3E48 CPI R20,0xE8
270 E0E0 LDI R30,0
271 075E CPC R21,R30
272 F409 BNE 0x0274
273 C03C RJMP 0x02B0
274 EE88 LDI R24,0xE8
275 E090 LDI R25,0
276 1784 CP R24,R20
277 0795 CPC R25,R21
278 F034 BLT 0x027F
279 3E44 CPI R20,0xE4
27A E0E0 LDI R30,0
27B 075E CPC R21,R30
27C F409 BNE 0x027E
27D C026 RJMP 0x02A4
27E C078 RJMP 0x02F7
27F 3F48 CPI R20,0xF8
280 E0E0 LDI R30,0
281 075E CPC R21,R30
282 F409 BNE 0x0284
283 C03C RJMP 0x02C0
284 C072 RJMP 0x02F7
(0080) {
(0081) case 0x04: ir_num=0;break;//0
285 2422 CLR R2
286 2433 CLR R3
287 9230 015B STS ir_num+1,R3
289 9220 015A STS ir_num,R2
28B C06B RJMP 0x02F7
(0082) case 0x84: ir_num=1;break;//1
28C E081 LDI R24,1
28D 940E 05BC CALL <created procedures>
28F C067 RJMP 0x02F7
(0083) case 0x44: ir_num=2;break;//2
290 E082 LDI R24,2
291 940E 05BC CALL <created procedures>
293 C063 RJMP 0x02F7
(0084) case 0xc4: ir_num=3;break;//3
294 E083 LDI R24,3
295 940E 05BC CALL <created procedures>
297 C05F RJMP 0x02F7
(0085) case 0x24: ir_num=4;break;//4
298 E084 LDI R24,4
299 940E 05BC CALL <created procedures>
29B C05B RJMP 0x02F7
(0086) case 0xa4: ir_num=5;break;//5
29C E085 LDI R24,5
29D 940E 05BC CALL <created procedures>
29F C057 RJMP 0x02F7
(0087) case 0x64: ir_num=6;break;//6
2A0 E086 LDI R24,6
2A1 940E 05BC CALL <created procedures>
2A3 C053 RJMP 0x02F7
(0088) case 0xe4: ir_num=7;break;//7
2A4 E087 LDI R24,7
2A5 940E 05BC CALL <created procedures>
2A7 C04F RJMP 0x02F7
(0089) case 0x14: ir_num=8;break;//8
2A8 E088 LDI R24,0x8
2A9 940E 05BC CALL <created procedures>
2AB C04B RJMP 0x02F7
(0090) case 0x94: ir_num=9;break;//9
2AC E089 LDI R24,0x9
2AD 940E 05BC CALL <created procedures>
2AF C047 RJMP 0x02F7
(0091) case 0xe8: ir_num=10;break;//取消
2B0 E08A LDI R24,0xA
2B1 940E 05BC CALL <created procedures>
2B3 C043 RJMP 0x02F7
(0092) case 0x49: ir_num=11;break;//确认
2B4 E08B LDI R24,0xB
2B5 940E 05BC CALL <created procedures>
2B7 C03F RJMP 0x02F7
(0093) case 0x78: ir_num=12;break;//左
2B8 E08C LDI R24,0xC
2B9 940E 05BC CALL <created procedures>
2BB C03B RJMP 0x02F7
(0094) case 0x98: ir_num=13;break;//右
2BC E08D LDI R24,0xD
2BD 940E 05BC CALL <created procedures>
2BF C037 RJMP 0x02F7
(0095) case 0xf8: ir_num=14;break;//前
2C0 E08E LDI R24,0xE
2C1 940E 05BC CALL <created procedures>
2C3 C033 RJMP 0x02F7
(0096) case 0x18: ir_num=15;break;//后
2C4 E08F LDI R24,0xF
2C5 940E 05BC CALL <created procedures>
2C7 C02F RJMP 0x02F7
(0097) case 0x2d: ir_num=16;break;
2C8 E180 LDI R24,0x10
2C9 940E 05BC CALL <created procedures>
2CB C02B RJMP 0x02F7
(0098) case 0xc8: ir_num=17;break;
2CC E181 LDI R24,0x11
2CD 940E 05BC CALL <created procedures>
2CF C027 RJMP 0x02F7
(0099) case 0x20: ir_num=18;break;
2D0 E182 LDI R24,0x12
2D1 940E 05BC CALL <created procedures>
2D3 C023 RJMP 0x02F7
(0100) case 0xc0: ir_num=19;break;
2D4 E183 LDI R24,0x13
2D5 940E 05BC CALL <created procedures>
2D7 C01F RJMP 0x02F7
(0101) case 0x3e: ir_num=20;break;
2D8 E184 LDI R24,0x14
2D9 940E 05BC CALL <created procedures>
2DB C01B RJMP 0x02F7
(0102) case 0x89: ir_num=21;break;
2DC E185 LDI R24,0x15
2DD 940E 05BC CALL <created procedures>
2DF C017 RJMP 0x02F7
(0103) case 0xda: ir_num=22;break;
2E0 E186 LDI R24,0x16
2E1 940E 05BC CALL <created procedures>
2E3 C013 RJMP 0x02F7
(0104) case 0x5a: ir_num=23;break;
2E4 E187 LDI R24,0x17
2E5 940E 05BC CALL <created procedures>
2E7 C00F RJMP 0x02F7
(0105) case 0xde: ir_num=24;break;
2E8 E188 LDI R24,0x18
2E9 940E 05BC CALL <created procedures>
2EB C00B RJMP 0x02F7
(0106) case 0x9e: ir_num=25;break;
2EC E189 LDI R24,0x19
2ED 940E 05BC CALL <created procedures>
2EF C007 RJMP 0x02F7
(0107) case 0xb9: ir_num=26;break;
2F0 E18A LDI R24,0x1A
2F1 940E 05BC CALL <created procedures>
2F3 C003 RJMP 0x02F7
(0108) case 0x38: ir_num=27;break;
2F4 E18B LDI R24,0x1B
2F5 940E 05BC CALL <created procedures>
(0109) default: break;
(0110) }
(0111) LCD_write_data(10,0,operate_code);
2F7 9020 0063 LDS R2,operate_code
2F9 2433 CLR R3
2FA 8239 STD Y+1,R3
2FB 8228 STD Y+0,R2
2FC 2722 CLR R18
2FD 2733 CLR R19
2FE E00A LDI R16,0xA
2FF E010 LDI R17,0
300 D0B0 RCALL _LCD_write_data
301 940E 05C2 CALL 0x05C2
(0112) if(ir_num<28)
303 318C CPI R24,0x1C
304 E0E0 LDI R30,0
305 079E CPC R25,R30
306 F420 BCC 0x030B
(0113) {
(0114) codebegin=0;
307 2422 CLR R2
308 9220 015C STS codebegin,R2
(0115) spk();
30A DDE7 RCALL _spk
(0116) }
(0117) ir_rx_complete_flag=0;
30B 2422 CLR R2
30C 9220 0060 STS ir_rx_complete_flag,R2
(0118) bitcnt=0;
30E 9220 0061 STS bitcnt,R2
(0119) operate_code=0;
310 9220 0063 STS operate_code,R2
(0120) user_code=0;
312 9220 0062 STS user_code,R2
(0121) }
(0122) }
314 9622 ADIW R28,2
315 9159 LD R21,Y+
316 9149 LD R20,Y+
317 9508 RET
FILE: D:\mega16_32实验板资料\ICCAVR源程序\遥控器\lcd1602.h
(0001) /*-------------------------------------------
(0002) RS----------PC2
(0003) RW----------GND
(0004) EN----------PC3
(0005) D4-D7-------PC4-PC7
(0006) ---------------------------------------------*/
(0007) //定义MCU与LCD的接口
(0008) #define LCD_EN_PORT PORTC
(0009) #define LCD_EN_DDR DDRC
(0010) #define LCD_RS_PORT PORTC
(0011) #define LCD_RS_DDR DDRC
(0012) #define LCD_DATA_PORT PORTC
(0013) #define LCD_DATA_DDR DDRC
(0014) #define LCD_DATA_PIN PINC
(0015) #define LCD_EN 0x08 //portc3 out
(0016) #define LCD_RS 0x04 //portc2 out
(0017) #define LCD_DATA 0xf0 //portc4/5/6/7 out
(0018)
(0019) /*----------------------------------------------------------
(0020) Public function prototypes
(0021) ----------------------------------------------------------*/
(0022) void LCD_init(void);
(0023) void LCD_en_write(void);
(0024) void clear(void);
(0025) void LCD_write_char(unsigned command,unsigned data);
(0026) void LCD_set_xy(unsigned char x, unsigned char y);
(0027) void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);
(0028) void LCD_write_data(unsigned char X,unsigned char Y,int dat);
(0029)
(0030) /*------------------------------------------------------------
(0031) 函数: lcd1602口线初始化和液晶初始化
(0032) -------------------------------------------------------------*/
(0033) void LCD_init(void) //液晶初始化
(0034) {
(0035) LCD_DATA_DDR|=LCD_DATA;
_LCD_init:
318 B384 IN R24,0x14
319 6F80 ORI R24,0xF0
31A BB84 OUT 0x14,R24
(0036) LCD_EN_DDR|=LCD_EN;
31B 9AA3 SBI 0x14,3
(0037) LCD_RS_DDR|=LCD_RS;
31C 9AA2 SBI 0x14,2
(0038) delay_ms(15);
31D E00F LDI R16,0xF
31E E010 LDI R17,0
31F DDC3 RCALL _delay_ms
(0039) LCD_write_char(0x28,0); //4位显示
320 2722 CLR R18
321 2733 CLR R19
322 E208 LDI R16,0x28
323 E010 LDI R17,0
324 D028 RCALL _LCD_write_char
(0040) delay_ms(15);
325 E00F LDI R16,0xF
326 E010 LDI R17,0
327 DDBB RCALL _delay_ms
(0041) LCD_write_char(0x0c,0); //显示开
328 2722 CLR R18
329 2733 CLR R19
32A E00C LDI R16,0xC
32B E010 LDI R17,0
32C D020 RCALL _LCD_write_char
(0042) delay_ms(15);
32D E00F LDI R16,0xF
32E E010 LDI R17,0
32F DDB3 RCALL _delay_ms
(0043) LCD_write_char(0x01,0); //清屏
330 2722 CLR R18
331 2733 CLR R19
332 E001 LDI R16,1
333 E010 LDI R17,0
334 D018 RCALL _LCD_write_char
(0044) clear();
335 D04E RCALL _clear
336 9508 RET
_LCD_set_xy:
address --> R20
y --> R10
x --> R22
337 D262 RCALL push_xgsetF00C
338 2EA2 MOV R10,R18
339 2F60 MOV R22,R16
(0045) }
(0046)
(0047) /*------------------------------------------------------------
(0048) 函数: 设置显示地址
(0049) para: x---the display address of a line limit: 0---15
(0050) y---the display line limit 0 or 1
(0051) --------------------------------------------------------------*/
(0052) void LCD_set_xy(unsigned char x, unsigned char y) //写地址函数
(0053) {
(0054) unsigned char address;
(0055) if(y ==0)
33A 20AA TST R10
33B F419 BNE 0x033F
(0056) address=0x80+x; //the first line
33C 2F46 MOV R20,R22
33D 5840 SUBI R20,0x80
33E C002 RJMP 0x0341
(0057) else
(0058) address=0xc0+x; //the second line
33F 2F46 MOV R20,R22
340 5440 SUBI R20,0x40
(0059) LCD_write_char(address,0);
341 2722 CLR R18
342 2733 CLR R19
343 2F04 MOV R16,R20
344 2711 CLR R17
345 D007 RCALL _LCD_write_char
346 C258 RJMP pop_xgsetF00C
(0060) }
(0061) /*-------------------------------------------------------------
(0062) 函数: lcd1602使能
(0063) *--------------------------------------------------------------*/
(0064) void LCD_en_write(void) //液晶使能
(0065) {
(0066) LCD_EN_PORT|=LCD_EN;
_LCD_en_write:
347 9AAB SBI 0x15,3
(0067) delay_us(5);
348 E005 LDI R16,5
349 E010 LDI R17,0
34A DD7F RCALL _delay_us
(0068) LCD_EN_PORT&=~LCD_EN;
34B 98AB CBI 0x15,3
34C 9508 RET
_LCD_write_char:
data_temp --> R22
command_temp --> R20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -