📄 ire.lis
字号:
00A8 ; TIMSK=0x00; //停止发送
00A8 2224 clr R2
00AA 29BE out 0x39,R2
00AC .dbline -2
00AC L11:
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbend
00AE .dbfunc e send_n _send_n fV
00AE ; i -> R22
00AE ; cc -> R20
00AE ; bb -> R10
00AE ; aa -> R12
.even
00AE _send_n::
00AE 0E940000 xcall push_xgsetF03C
00B2 A22E mov R10,R18
00B4 C02E mov R12,R16
00B6 .dbline -1
00B6 .dbline 93
00B6 ; }
00B6 ;
00B6 ; //发送函数
00B6 ; void send_n(uchar aa,uchar bb) //aa系统码,bb键码
00B6 ; {
00B6 .dbline 95
00B6 ; uchar cc,i;
00B6 ; TIMSK=0x01;
00B6 81E0 ldi R24,1
00B8 89BF out 0x39,R24
00BA .dbline 96
00BA ; timer1_init(0xb9,0x9e); //引导码9ms低
00BA 2EE9 ldi R18,158
00BC 09EB ldi R16,185
00BE C3DF xcall _timer1_init
00C0 .dbline 97
00C0 ; TIMSK=0x00;
00C0 2224 clr R2
00C2 29BE out 0x39,R2
00C4 .dbline 98
00C4 ; timer1_init(0xdc,0xcf); //引导码4.5ms高
00C4 2FEC ldi R18,207
00C6 0CED ldi R16,220
00C8 BEDF xcall _timer1_init
00CA .dbline 100
00CA ; //发送系统码
00CA ; cc=0x80;
00CA 40E8 ldi R20,128
00CC .dbline 101
00CC ; for(i=0;i<8;i++)
00CC 6627 clr R22
00CE 08C0 xjmp L16
00D0 L13:
00D0 .dbline 102
00D0 ; {
00D0 .dbline 103
00D0 ; if(aa&cc)
00D0 2C2C mov R2,R12
00D2 2422 and R2,R20
00D4 11F0 breq L17
00D6 X1:
00D6 .dbline 104
00D6 ; {
00D6 .dbline 105
00D6 ; out_1();
00D6 CFDF xcall _out_1
00D8 .dbline 106
00D8 ; }
00D8 01C0 xjmp L18
00DA L17:
00DA .dbline 108
00DA ; else
00DA ; {
00DA .dbline 109
00DA ; out_0();
00DA D7DF xcall _out_0
00DC .dbline 110
00DC ; }
00DC L18:
00DC .dbline 111
00DC ; cc=cc>>1;
00DC 4695 lsr R20
00DE .dbline 112
00DE ; }
00DE L14:
00DE .dbline 101
00DE 6395 inc R22
00E0 L16:
00E0 .dbline 101
00E0 6830 cpi R22,8
00E2 B0F3 brlo L13
00E4 X2:
00E4 .dbline 114
00E4 ; //发送系统反码
00E4 ; aa=~aa;
00E4 C094 com R12
00E6 .dbline 115
00E6 ; cc=0x80;
00E6 40E8 ldi R20,128
00E8 .dbline 116
00E8 ; for(i=0;i<8;i++)
00E8 6627 clr R22
00EA 08C0 xjmp L22
00EC L19:
00EC .dbline 117
00EC ; {
00EC .dbline 118
00EC ; if(aa&cc)
00EC 2C2C mov R2,R12
00EE 2422 and R2,R20
00F0 11F0 breq L23
00F2 X3:
00F2 .dbline 119
00F2 ; {
00F2 .dbline 120
00F2 ; out_1();
00F2 C1DF xcall _out_1
00F4 .dbline 121
00F4 ; }
00F4 01C0 xjmp L24
00F6 L23:
00F6 .dbline 123
00F6 ; else
00F6 ; {
00F6 .dbline 124
00F6 ; out_0();
00F6 C9DF xcall _out_0
00F8 .dbline 125
00F8 ; }
00F8 L24:
00F8 .dbline 126
00F8 ; cc=cc>>1;
00F8 4695 lsr R20
00FA .dbline 127
00FA ; }
00FA L20:
00FA .dbline 116
00FA 6395 inc R22
00FC L22:
00FC .dbline 116
00FC 6830 cpi R22,8
00FE B0F3 brlo L19
0100 X4:
0100 .dbline 129
0100 ; //发送键码
0100 ; cc=0x80;
0100 40E8 ldi R20,128
0102 .dbline 130
0102 ; for(i=0;i<8;i++)
0102 6627 clr R22
0104 08C0 xjmp L28
0106 L25:
0106 .dbline 131
0106 ; {
0106 .dbline 132
0106 ; if(bb&cc)
0106 2A2C mov R2,R10
0108 2422 and R2,R20
010A 11F0 breq L29
010C X5:
010C .dbline 133
010C ; {
010C .dbline 134
010C ; out_1();
010C B4DF xcall _out_1
010E .dbline 135
010E ; }
010E 01C0 xjmp L30
0110 L29:
0110 .dbline 137
0110 ; else
0110 ; {
0110 .dbline 138
0110 ; out_0();
0110 BCDF xcall _out_0
0112 .dbline 139
0112 ; }
0112 L30:
0112 .dbline 140
0112 ; cc=cc>>1;
0112 4695 lsr R20
0114 .dbline 141
0114 ; }
0114 L26:
0114 .dbline 130
0114 6395 inc R22
0116 L28:
0116 .dbline 130
0116 6830 cpi R22,8
0118 B0F3 brlo L25
011A X6:
011A .dbline 143
011A ; //发送键码反码
011A ; bb=~bb;
011A A094 com R10
011C .dbline 144
011C ; cc=0x80;
011C 40E8 ldi R20,128
011E .dbline 145
011E ; for(i=0;i<8;i++)
011E 6627 clr R22
0120 08C0 xjmp L34
0122 L31:
0122 .dbline 146
0122 ; {
0122 .dbline 147
0122 ; if(bb&cc)
0122 2A2C mov R2,R10
0124 2422 and R2,R20
0126 11F0 breq L35
0128 X7:
0128 .dbline 148
0128 ; {
0128 .dbline 149
0128 ; out_1();
0128 A6DF xcall _out_1
012A .dbline 150
012A ; }
012A 01C0 xjmp L36
012C L35:
012C .dbline 152
012C ; else
012C ; {
012C .dbline 153
012C ; out_0();
012C AEDF xcall _out_0
012E .dbline 154
012E ; }
012E L36:
012E .dbline 155
012E ; cc=cc>>1;
012E 4695 lsr R20
0130 .dbline 156
0130 ; }
0130 L32:
0130 .dbline 145
0130 6395 inc R22
0132 L34:
0132 .dbline 145
0132 6830 cpi R22,8
0134 B0F3 brlo L31
0136 X8:
0136 .dbline 158
0136 ; //结束
0136 ; out_f();
0136 B3DF xcall _out_f
0138 .dbline -2
0138 L12:
0138 .dbline 0 ; func end
0138 0C940000 xjmp pop_xgsetF03C
013C .dbsym r i 22 c
013C .dbsym r cc 20 c
013C .dbsym r bb 10 c
013C .dbsym r aa 12 c
013C .dbend
013C .dbfunc e main _main fI
.even
013C _main::
013C .dbline -1
013C .dbline 162
013C ; }
013C ;
013C ; main()
013C ; {
013C .dbline 163
013C ; init_devices();
013C 92DF xcall _init_devices
013E 04C0 xjmp L39
0140 L38:
0140 .dbline 165
0140 ; while(1)
0140 ; {
0140 .dbline 166
0140 ; send_n(0x00,0x58); //发送遥控码
0140 28E5 ldi R18,88
0142 0027 clr R16
0144 B4DF xcall _send_n
0146 L41:
0146 .dbline 167
0146 ; while(1);
0146 L42:
0146 .dbline 167
0146 FFCF xjmp L41
0148 L39:
0148 .dbline 164
0148 FBCF xjmp L38
014A X9:
014A .dbline -2
014A L37:
014A .dbline 0 ; func end
014A 0895 ret
014C .dbend
014C ; }
014C ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -