⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ir_test.s

📁 无线遥控器的源代码
💻 S
📖 第 1 页 / 共 3 页
字号:
	.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 + -