📄 ir_test.s
字号:
.dbline -1
.dbline 13
; //ICC-AVR application builder : 2008-11-12 11:41:28
; // Target : M16
; // Crystal: 8.0000Mhz
;
; #include <iom16v.h>
; #include <macros.h>
;
; #include "delay.h"
; #include "ir.h"
; #include "lcd1602.h"
;
; void port_init(void)
; {
.dbline 14
; PORTD = 0xC0;
ldi R24,192
out 0x12,R24
.dbline 15
; DDRD = 0x80;
ldi R24,128
out 0x11,R24
.dbline -2
L132:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer1_init _timer1_init fV
.even
_timer1_init::
.dbline -1
.dbline 23
; }
;
; //TIMER1 initialize - prescale:8
; // WGM: 0) Normal, TOP=0xFFFF
; // desired value: 8uSec
; // actual value: 8.000uSec (0.0%)
; void timer1_init(void)
; {
.dbline 24
; TCCR1B = 0x00; //stop
clr R2
out 0x2e,R2
.dbline 25
; ICR1H = 0x00;
out 0x27,R2
.dbline 26
; ICR1L = 0x08;
ldi R24,8
out 0x26,R24
.dbline 27
; TCCR1A = 0x00;
out 0x2f,R2
.dbline 28
; TCCR1B = 0x82; //start Timer
ldi R24,130
out 0x2e,R24
.dbline -2
L133:
.dbline 0 ; func end
ret
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 34
; }
;
;
; //call this routine to initialize all peripherals
; void init_devices(void)
; {
.dbline 36
; //stop errant interrupts until set up
; CLI(); //disable all interrupts
cli
.dbline 37
; port_init();
xcall _port_init
.dbline 38
; timer1_init();
xcall _timer1_init
.dbline 39
; LCD_init();
xcall _LCD_init
.dbline 41
;
; MCUCR = 0x00;
clr R2
out 0x35,R2
.dbline 42
; GICR = 0x00;
out 0x3b,R2
.dbline 43
; TIMSK = 0x20; //timer interrupt sources
ldi R24,32
out 0x39,R24
.dbline 44
; SEI(); //re-enable interrupts
sei
.dbline -2
L134:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
sbiw R28,2
.dbline -1
.dbline 50
; //all peripherals are now initialized
; }
;
; //
; void main(void)
; {
.dbline 51
; init_devices();
xcall _init_devices
.dbline 53
; //insert your functional code here...
; LCD_write_string(0,0,"opr_code:");
ldi R24,<L136
ldi R25,>L136
std y+1,R25
std y+0,R24
clr R18
clr R16
xcall _LCD_write_string
.dbline 54
; LCD_write_string(0,1,"key dis:");
ldi R24,<L137
ldi R25,>L137
std y+1,R25
std y+0,R24
ldi R18,1
clr R16
xcall _LCD_write_string
xjmp L139
L138:
.dbline 56
; while(1)
; {
.dbline 57
; get_ir_code();
xcall _get_ir_code
.dbline 58
; if(ir_num==0)
lds R2,_ir_num
lds R3,_ir_num+1
tst R2
brne L141
tst R3
brne L141
X109:
.dbline 59
; LCD_write_string(9,1," 0 ");
ldi R24,<L143
ldi R25,>L143
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L141:
.dbline 60
; if(ir_num==1)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,1
ldi R30,0
cpc R25,R30
brne L144
X110:
.dbline 61
; LCD_write_string(9,1," 1 ");
ldi R24,<L146
ldi R25,>L146
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L144:
.dbline 62
; if(ir_num==2)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,2
ldi R30,0
cpc R25,R30
brne L147
X111:
.dbline 63
; LCD_write_string(9,1," 2 ");
ldi R24,<L149
ldi R25,>L149
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L147:
.dbline 64
; if(ir_num==3)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,3
ldi R30,0
cpc R25,R30
brne L150
X112:
.dbline 65
; LCD_write_string(9,1," 3 ");
ldi R24,<L152
ldi R25,>L152
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L150:
.dbline 66
; if(ir_num==4)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,4
ldi R30,0
cpc R25,R30
brne L153
X113:
.dbline 67
; LCD_write_string(9,1," 4 ");
ldi R24,<L155
ldi R25,>L155
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L153:
.dbline 68
; if(ir_num==5)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,5
ldi R30,0
cpc R25,R30
brne L156
X114:
.dbline 69
; LCD_write_string(9,1," 5 ");
ldi R24,<L158
ldi R25,>L158
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L156:
.dbline 70
; if(ir_num==6)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,6
ldi R30,0
cpc R25,R30
brne L159
X115:
.dbline 71
; LCD_write_string(9,1," 6 ");
ldi R24,<L161
ldi R25,>L161
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L159:
.dbline 72
; if(ir_num==7)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,7
ldi R30,0
cpc R25,R30
brne L162
X116:
.dbline 73
; LCD_write_string(9,1," 7 ");
ldi R24,<L164
ldi R25,>L164
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L162:
.dbline 74
; if(ir_num==8)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,8
ldi R30,0
cpc R25,R30
brne L165
X117:
.dbline 75
; LCD_write_string(9,1," 8 ");
ldi R24,<L167
ldi R25,>L167
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L165:
.dbline 76
; if(ir_num==9)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,9
ldi R30,0
cpc R25,R30
brne L168
X118:
.dbline 77
; LCD_write_string(9,1," 9 ");
ldi R24,<L170
ldi R25,>L170
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L168:
.dbline 78
; if(ir_num==10)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,10
ldi R30,0
cpc R25,R30
brne L171
X119:
.dbline 79
; LCD_write_string(9,1,"power ");
ldi R24,<L173
ldi R25,>L173
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L171:
.dbline 80
; if(ir_num==11)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,11
ldi R30,0
cpc R25,R30
brne L174
X120:
.dbline 81
; LCD_write_string(9,1,"Colour ");
ldi R24,<L176
ldi R25,>L176
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L174:
.dbline 82
; if(ir_num==12)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,12
ldi R30,0
cpc R25,R30
brne L177
X121:
.dbline 83
; LCD_write_string(9,1,"Volume+");
ldi R24,<L179
ldi R25,>L179
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L177:
.dbline 84
; if(ir_num==13)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,13
ldi R30,0
cpc R25,R30
brne L180
X122:
.dbline 85
; LCD_write_string(9,1,"Chanel+");
ldi R24,<L182
ldi R25,>L182
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L180:
.dbline 86
; if(ir_num==14)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,14
ldi R30,0
cpc R25,R30
brne L183
X123:
.dbline 87
; LCD_write_string(9,1,"Volume-");
ldi R24,<L185
ldi R25,>L185
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L183:
.dbline 88
; if(ir_num==15)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,15
ldi R30,0
cpc R25,R30
brne L186
X124:
.dbline 89
; LCD_write_string(9,1,"Chanel-");
ldi R24,<L188
ldi R25,>L188
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L186:
.dbline 90
; if(ir_num==16)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,16
ldi R30,0
cpc R25,R30
brne L189
X125:
.dbline 91
; LCD_write_string(9,1,"Sound ");
ldi R24,<L191
ldi R25,>L191
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L189:
.dbline 92
; if(ir_num==17)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,17
ldi R30,0
cpc R25,R30
brne L192
X126:
.dbline 93
; LCD_write_string(9,1,"TV/VIde");
ldi R24,<L194
ldi R25,>L194
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L192:
.dbline 94
; if(ir_num==18)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,18
ldi R30,0
cpc R25,R30
brne L195
X127:
.dbline 95
; LCD_write_string(9,1,"Display");
ldi R24,<L197
ldi R25,>L197
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L195:
.dbline 96
; if(ir_num==19)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,19
ldi R30,0
cpc R25,R30
brne L198
X128:
.dbline 97
; LCD_write_string(9,1,"OFF_TIM");
ldi R24,<L200
ldi R25,>L200
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L198:
.dbline 98
; if(ir_num==20)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,20
ldi R30,0
cpc R25,R30
brne L201
X129:
.dbline 99
; LCD_write_string(9,1,"PI_ADup");
ldi R24,<L203
ldi R25,>L203
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L201:
.dbline 100
; if(ir_num==21)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,21
ldi R30,0
cpc R25,R30
brne L204
X130:
.dbline 101
; LCD_write_string(9,1,"HY_Bass");
ldi R24,<L206
ldi R25,>L206
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L204:
.dbline 102
; if(ir_num==22)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,22
ldi R30,0
cpc R25,R30
brne L207
X131:
.dbline 103
; LCD_write_string(9,1,"PI_AD--");
ldi R24,<L209
ldi R25,>L209
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L207:
.dbline 104
; if(ir_num==23)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,23
ldi R30,0
cpc R25,R30
brne L210
X132:
.dbline 105
; LCD_write_string(9,1,"PI_AD +");
ldi R24,<L212
ldi R25,>L212
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L210:
.dbline 106
; if(ir_num==24)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,24
ldi R30,0
cpc R25,R30
brne L213
X133:
.dbline 107
; LCD_write_string(9,1,"PI_ADdm");
ldi R24,<L215
ldi R25,>L215
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L213:
.dbline 108
; if(ir_num==25)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,25
ldi R30,0
cpc R25,R30
brne L216
X134:
.dbline 109
; LCD_write_string(9,1,"PC_MODE");
ldi R24,<L218
ldi R25,>L218
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L216:
.dbline 110
; if(ir_num==26)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,26
ldi R30,0
cpc R25,R30
brne L219
X135:
.dbline 111
; LCD_write_string(9,1," -/-- ");
ldi R24,<L221
ldi R25,>L221
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L219:
.dbline 112
; if(ir_num==27)
lds R24,_ir_num
lds R25,_ir_num+1
cpi R24,27
ldi R30,0
cpc R25,R30
brne L222
X136:
.dbline 113
; LCD_write_string(9,1," MUTE ");
ldi R24,<L224
ldi R25,>L224
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,9
xcall _LCD_write_string
L222:
.dbline 114
; }
L139:
.dbline 55
xjmp L138
X137:
.dbline -2
L135:
.dbline 0 ; func end
adiw R28,2
ret
.dbend
.area bss(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir_test.c
_ir_num::
.blkb 2
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
.dbsym e ir_num _ir_num i
_codebegin::
.blkb 1
.dbsym e codebegin _codebegin c
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L224:
.blkb 8
.area idata
.byte 32,'M,'U,'T,'E,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L221:
.blkb 8
.area idata
.byte 32,45,47,45,45,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L218:
.blkb 8
.area idata
.byte 'P,'C,95,'M,'O,'D,'E,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L215:
.blkb 8
.area idata
.byte 'P,'I,95,'A,'D,'d,'m,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L212:
.blkb 8
.area idata
.byte 'P,'I,95,'A,'D,32,43,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L209:
.blkb 8
.area idata
.byte 'P,'I,95,'A,'D,45,45,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L206:
.blkb 8
.area idata
.byte 'H,'Y,95,'B,'a,'s,'s,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L203:
.blkb 8
.area idata
.byte 'P,'I,95,'A,'D,'u,'p,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L200:
.blkb 8
.area idata
.byte 'O,'F,'F,95,'T,'I,'M,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L197:
.blkb 8
.area idata
.byte 'D,'i,'s,'p,'l,'a,'y,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L194:
.blkb 8
.area idata
.byte 'T,'V,47,'V,'I,'d,'e,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L191:
.blkb 8
.area idata
.byte 'S,'o,'u,'n,'d,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L188:
.blkb 8
.area idata
.byte 'C,'h,'a,'n,'e,'l,45,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L185:
.blkb 8
.area idata
.byte 'V,'o,'l,'u,'m,'e,45,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L182:
.blkb 8
.area idata
.byte 'C,'h,'a,'n,'e,'l,43,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L179:
.blkb 8
.area idata
.byte 'V,'o,'l,'u,'m,'e,43,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L176:
.blkb 8
.area idata
.byte 'C,'o,'l,'o,'u,'r,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L173:
.blkb 8
.area idata
.byte 'p,'o,'w,'e,'r,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L170:
.blkb 8
.area idata
.byte 32,57,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L167:
.blkb 8
.area idata
.byte 32,56,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L164:
.blkb 8
.area idata
.byte 32,55,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L161:
.blkb 8
.area idata
.byte 32,54,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L158:
.blkb 8
.area idata
.byte 32,53,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L155:
.blkb 8
.area idata
.byte 32,52,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L152:
.blkb 8
.area idata
.byte 32,51,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L149:
.blkb 8
.area idata
.byte 32,50,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L146:
.blkb 8
.area idata
.byte 32,49,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L143:
.blkb 8
.area idata
.byte 32,48,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L137:
.blkb 10
.area idata
.byte 'k,'e,'y,32,32,'d,'i,'s,58,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
L136:
.blkb 10
.area idata
.byte 'o,'p,'r,95,'c,'o,'d,'e,58,0
.area data(ram, con, rel)
.dbfile D:\mega16_32实验板资料\ICCAVR源程序\遥控器\ir.h
; }
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -