📄 hongwai.lis
字号:
00B4 ; if(IRCON==4) IRCON=0;
00B4 8430 cpi R24,4
00B6 11F4 brne L21
00B8 X5:
00B8 .dbline 56
00B8 20920100 sts _IRCON,R2
00BC L21:
00BC .dbline 57
00BC ; }
00BC L19:
00BC .dbline -2
00BC L16:
00BC .dbline 0 ; func end
00BC 0895 ret
00BE .dbend
.area vector(rom, abs)
.org 2
0002 5FC0 rjmp _int0_isr
.area text(rom, con, rel)
00BE .dbfile C:\DOCUME~1\Administrator.27F5F4061F03467\桌面\实验板红外avr解码\hongwai.c
00BE .dbfunc e int0_isr _int0_isr fV
00BE ; i -> R20
.even
00BE _int0_isr::
00BE 0A92 st -y,R0
00C0 1A92 st -y,R1
00C2 2A92 st -y,R2
00C4 3A92 st -y,R3
00C6 4A92 st -y,R4
00C8 5A92 st -y,R5
00CA 6A92 st -y,R6
00CC 7A92 st -y,R7
00CE 8A92 st -y,R8
00D0 9A92 st -y,R9
00D2 0A93 st -y,R16
00D4 1A93 st -y,R17
00D6 2A93 st -y,R18
00D8 3A93 st -y,R19
00DA 8A93 st -y,R24
00DC 9A93 st -y,R25
00DE AA93 st -y,R26
00E0 BA93 st -y,R27
00E2 EA93 st -y,R30
00E4 FA93 st -y,R31
00E6 0FB6 in R0,0x3f
00E8 0A92 st -y,R0
00EA 4A93 st -y,R20
00EC .dbline -1
00EC .dbline 62
00EC ; }
00EC ; /*****************************外部中断服务函数*****************************************/
00EC ; #pragma interrupt_handler int0_isr:iv_INT0
00EC ; void int0_isr(void)
00EC ; {
00EC .dbline 64
00EC ; uchar i;
00EC ; GICR = 0x00; //禁止外部中断
00EC 2224 clr R2
00EE 2BBE out 0x3b,R2
00F0 .dbline 65
00F0 ; delay_nms(616); //延时15400us 616
00F0 08E6 ldi R16,616
00F2 12E0 ldi R17,2
00F4 93DF rcall _delay_nms
00F6 .dbline 66
00F6 ; for(i=0;i<32;i++)
00F6 4427 clr R20
00F8 02C0 rjmp L27
00FA L24:
00FA .dbline 67
00FA ; {
00FA .dbline 68
00FA ; panduan();
00FA AEDF rcall _panduan
00FC .dbline 69
00FC ; }
00FC L25:
00FC .dbline 66
00FC 4395 inc R20
00FE L27:
00FE .dbline 66
00FE 4032 cpi R20,32
0100 E0F3 brlo L24
0102 X6:
0102 .dbline 71
0102 ;
0102 ; uart0_init();
0102 9ADF rcall _uart0_init
0104 .dbline 72
0104 ; for(i=0;i<4;i++)
0104 4427 clr R20
0106 0CC0 rjmp L31
0108 L28:
0108 .dbline 73
0108 ; {
0108 .dbline 74
0108 ; delay_nms(5000);
0108 08E8 ldi R16,5000
010A 13E1 ldi R17,19
010C 87DF rcall _delay_nms
010E .dbline 76
010E ; // PORTB=IRCode[i];
010E ; sendchar(IRCode[i]);
010E 80E0 ldi R24,<_IRCode
0110 90E0 ldi R25,>_IRCode
0112 E42F mov R30,R20
0114 FF27 clr R31
0116 E80F add R30,R24
0118 F91F adc R31,R25
011A 0081 ldd R16,z+0
011C 98DF rcall _sendchar
011E .dbline 77
011E ; }
011E L29:
011E .dbline 72
011E 4395 inc R20
0120 L31:
0120 .dbline 72
0120 4430 cpi R20,4
0122 90F3 brlo L28
0124 X7:
0124 .dbline 78
0124 ; GICR = 0x40;
0124 80E4 ldi R24,64
0126 8BBF out 0x3b,R24
0128 .dbline -2
0128 L23:
0128 .dbline 0 ; func end
0128 4991 ld R20,y+
012A 0990 ld R0,y+
012C 0FBE out 0x3f,R0
012E F991 ld R31,y+
0130 E991 ld R30,y+
0132 B991 ld R27,y+
0134 A991 ld R26,y+
0136 9991 ld R25,y+
0138 8991 ld R24,y+
013A 3991 ld R19,y+
013C 2991 ld R18,y+
013E 1991 ld R17,y+
0140 0991 ld R16,y+
0142 9990 ld R9,y+
0144 8990 ld R8,y+
0146 7990 ld R7,y+
0148 6990 ld R6,y+
014A 5990 ld R5,y+
014C 4990 ld R4,y+
014E 3990 ld R3,y+
0150 2990 ld R2,y+
0152 1990 ld R1,y+
0154 0990 ld R0,y+
0156 1895 reti
0158 .dbsym r i 20 c
0158 .dbend
0158 .dbfunc e init_devices_int0 _init_devices_int0 fV
.even
0158 _init_devices_int0::
0158 .dbline -1
0158 .dbline 83
0158 ; }
0158 ;
0158 ; /*****************外部中断设置***********************************/
0158 ; void init_devices_int0(void)
0158 ; {
0158 .dbline 84
0158 ; CLI(); //disable all interrupts
0158 F894 cli
015A .dbline 85
015A ; MCUCR = 0x02; //下降沿触发方式
015A 82E0 ldi R24,2
015C 85BF out 0x35,R24
015E .dbline 86
015E ; EMCUCR = 0x00;
015E 2224 clr R2
0160 26BE out 0x36,R2
0162 .dbline 87
0162 ; GICR = 0x40; //外部中断请求 0 使能
0162 80E4 ldi R24,64
0164 8BBF out 0x3b,R24
0166 .dbline 88
0166 ; SEI(); //re-enable interrupts
0166 7894 sei
0168 .dbline -2
0168 L32:
0168 .dbline 0 ; func end
0168 0895 ret
016A .dbend
016A .dbfunc e main _main fV
.even
016A _main::
016A .dbline -1
016A .dbline 92
016A ; }
016A ;
016A ; void main(void)//主函数
016A ; {
016A .dbline 93
016A ; DDRB=0XFF;
016A 8FEF ldi R24,255
016C 87BB out 0x17,R24
016E .dbline 94
016E ; PORTB=0XFF;
016E 88BB out 0x18,R24
0170 .dbline 95
0170 ; DDRD&=~BIT(0);
0170 8898 cbi 0x11,0
0172 .dbline 96
0172 ; DDRD|=BIT(1);
0172 899A sbi 0x11,1
0174 .dbline 97
0174 ; DDRD&=~BIT(2);//设置PD2为输入口
0174 8A98 cbi 0x11,2
0176 .dbline 98
0176 ; init_devices_int0(); //外部中断初始化并开外部中断
0176 F0DF rcall _init_devices_int0
0178 L34:
0178 .dbline 99
0178 ; while(1);
0178 L35:
0178 .dbline 99
0178 FFCF rjmp L34
017A X8:
017A .dbline -2
017A L33:
017A .dbline 0 ; func end
017A 0895 ret
017C .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator.27F5F4061F03467\桌面\实验板红外avr解码\hongwai.c
0000 _flag::
0000 .blkb 1
0001 .dbsym e flag _flag c
0001 _IRCON::
0001 .blkb 1
0002 .dbsym e IRCON _IRCON c
0002 _IRCode::
0002 .blkb 3
0005 .dbsym e IRCode _IRCode A[3:3]c
0005 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -