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

📄 sl3010_4.s

📁 单片机开发资料光盘-双龙-686M.zip
💻 S
📖 第 1 页 / 共 5 页
字号:
	.module sl3010_4.c
	.area text(rom, con, rel)
	.dbfile E:/icc/include/sl3010.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 83
; /*******************************************/
; /*            广州天河双龙电子公司         */
; /*            http://www.sl.com.cn         */
; /*     020-85510191,87578852,87578872      */
; /*              nikko@sl.com.cn            */
; /*******************************************/
; 
; //遥控器没有按键或者 pd3,pd2,pd1,pd0 短路块全部不接上,全为高电平
; //机器人运行音乐机器人程序。     
; 	//PA口为音乐灯,当不同的音乐节奏,点亮不同的灯。
;     //声控起动音乐机器人程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
;     //声控起动后,机器人开始演奏音乐,同时PA口LED灯根据音乐节拍闪烁
;     //按遥控器上不同的键后可改变机器人演奏的乐曲。
; 
; //将 pd0 接低电平,pd3,pd2,pd1 保持高电平,只连接pd0的短路块
; //       或按下遥控器<A>(保持 0.5s)        进入遥控机器人运行环境 
;          //声控起动遥控车程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
;          //声控起动后,机器人开始动作
;          //遥控器无按键,机器人直行
;          //按住 < A > 键,机器人右转,同时演奏右转指示音乐;
;          //按住 < B > 键,机器人后退,同时演奏后退指示音乐;
;          //按住 < C > 键,机器人停止,同时演奏停止指示音乐;
;          //按住 < D > 键,机器人左转,同时演奏左转指示音乐;
;          //释放遥控器按键,音乐停止
; 
; //将 pd1 接低电平,pd3,pd2,pd0 保持高电平,只连接pd1的短路块
; //       或按下遥控器<B>(保持 0.5s)        寻迹机器人,探测白底黑线,沿黑线行进 
;          //声控起动寻迹机器人程序,未起动时,PA口的 8 LED 呈广告灯效果(霓虹灯)
;          //声控起动后,机器人开始动作,PA口的 8 LED 指示运动状态
; 
; //将 pd2 接低电平,pd3,pd1,pd0 保持高电平,只连接pd2的短路块
; //       或按下遥控器<C>(保持 0.5s)        机器人避障碍、避悬崖行进 
;          //声控起动避悬崖,壁障碍运行程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
;          //声控起动后,机器人开始动作,PA口的 8 LED 指示运动状态
;          //探测到边缘,后退、转弯,并以伴有音乐提示。
; 
; //将 pd3 接低电平,pd2,pd1,pd0 保持高电平,只连接pd3的短路块
; //       或按下遥控器<D>(保持 0.5s)        机器人按程序设定路线行走,走四方形,同时演奏音乐 
;          //自走车   机器人走四方形路线,遥控器调节行走路线
;          //声控起动机器人按设定路线行走,未起动时,PA口的 8 LED 呈广告灯效果(霓虹灯)
;          //声控起动后,机器人开始动作,PA口的 8 LED 指示运动状态
; 
; //程序等待声控起动运行,未启动运行时机器人运行霓虹车程序。
; //连续按住遥控器 < C > 键超过 10s 起动看门狗,再过 1s 系统复位
; 
; //将 sl3010.c 文件拷贝到 icc avr 安装目录的<include>文件夹
; //sl3010.c 是sl3010机器人板的子函数库
; //程序中调用此文件后 #include <sl3010.c>
; //可直接调用里面的函数和变量
; 
; //  最后更新:2003.04.17
; 
; #include <io8515v.h>
; #include <macros.h>
; #include <sl3010.c>
; #include <eeprom.h>
; 
; #define xuanya_delayms  300
; #define cny_delayms 50
; #define light_delay 100
; 
; /* 		  音乐数据  	  */
; /* 四分之一拍为0x10, 二分之一拍为0x20, 一拍为0x40 */
; /* 低1-1 2-2 3-3 4-4 5-5 6-6 7-7 */
; /* 中1-8 2-9 3-A 4-B 5-C 6-D 7-E */
; /* 高1-F */								  	
; #pragma data:eeprom
; unsigned char sound[]={ //乐曲数据表
; //情非得以 
; 0x20,0x1c,0x1d,0x4c,0x4c,0x4c,0x4c,0x20,0x2d,0x19,0x1a,0x19,0x18,0x48,0x48,0x48,
; 0x48,0x47,0x47,0x46,0x46,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
; 
; 0x23,0x24,0x25,0x44,0x45,0x24,0x23,0x22,0x42,0x40,0x40,0x23,0x22,0x21,0x41,0x28,
; 0x48,0x23,0x25,0x45,0x40,0x40,0x21,0x21,0x42,0x21,0x21,0x41,0x20,0x28,0x47,0x26,
; 0x17,0x16,0x15,0x45,0x40,0x31,0x11,0x21,0x21,0x21,0x22,0x42,0x40,0x20,0x23,0x23,
; 0x24,0x25,0x24,0x23,0x24,0x25,0x26,0x23,0x23,0x42,0x42,0x40,0x23,0x22,0x21,0x41,
; 0x28,0x28,0x28,0x23,0x25,0x45,0x45,0x40,0x20,0x25,0x46,0x28,0x28,0x48,0x20,0x29,
; 0x47,0x26,0x17,0x16,0x15,0x45,0x25,0x25,0x26,0x28,0x18,0x16,0x26,0x28,0x26,0x28,
; 0x19,0x19,0x49,0x49,0x20,0x25,0x2a,0x18,0x19,0x29,0x28,0x16,0x17,0x16,0x15,0x25,
; 0x25,0x28,0x29,0x2a,0x29,0x48,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,0x2c,0x1c,0x1a,
; 0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,0x28,0x26,0x48,
; 0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x21,0x18,0x16,0x26,0x28,0x26,0x28,0x29,
; 0x49,0x49,0x20,0x25,0x28,0x29,0x2a,0x29,0x49,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,
	.dbline 84
; 0x2c,0x15,0x1a,0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,
	ldi R24,255
	out 0x1a,R24
	.dbline 84
	out 0x1b,R24
	.dbline 85
; 0x28,0x26,0x28,0x28,0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x28,0x28,0x26,0x2a,
	ldi R24,128
	out 0x17,R24
	.dbline 85
	ldi R24,255
	out 0x18,R24
	.dbline 86
; 0x19,0x18,0x28,0x18,0x19,0x48,0x48,0x40,0x40,0x40,0x40,0x28,0x48,0x29,0x28,0x28,
	ldi R24,1
	out 0x14,R24
	.dbline 86
	ldi R24,255
	out 0x15,R24
	.dbline 87
; 0x2a,0x1a,0x1a,0x1a,0x18,0x40,0x20,0x26,0x28,0x28,0x28,0x26,0x28,0x48,0x26,0x25,
	ldi R24,240
	out 0x11,R24
	.dbline 87
	ldi R24,255
	out 0x12,R24
	.dbline -2
	.dbline 88
; 0x45,0x45,0x40,0x40,0x40,0x28,0x48,0x28,0x28,0x1c,0x1d,0x2d,0x2c,0x28,0x28,0x28,
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_us _delay_us fV
;           time -> R16,R17
	.even
_delay_us::
	.dbline -1
	.dbline 91
; 0x20,0x26,0x19,0x1a,0x29,0x19,0x18,0x28,0x28,0x26,0x21,0x29,0x49,0x49,0x40,0x20,
; 0x28,0x29,0x2a,0x4a,0x4a,0x20,0x25,0x28,0x29,0x48,0x48,0x48,0x25,0x25,0x26,0x28,
; 0x28,0x26,0x2a,0x19,0x18,0x28,0x18,0x19,0x49,0x49,0x40,0x40,
L3:
	.dbline 93
; 
; 		0x00,0x00
	.dbline 94
; 						};
	subi R16,1
	sbci R17,0
	.dbline 95
; #pragma data:data						
L4:
	.dbline 96
; /*	  		    音阶表				*/	
	ldi R24,1
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L3
	.dbline -2
	.dbline 97
; const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
L2:
	.dbline 0 ; func end
	ret
	.dbsym r time 16 I
	.dbend
	.dbfunc e delay_ms _delay_ms fV
;           time -> R20,R21
	.even
_delay_ms::
	rcall push_gset1
	mov R20,R16
	mov R21,R17
	.dbline -1
	.dbline 100
; 			    	 	RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
; /*			  音阶重装常数			*/						
; unsigned int toneconst;								  							   						 				 	 	 
	rjmp L8
L7:
	.dbline 102
	.dbline 103
	ldi R16,1000
	ldi R17,3
	rcall _delay_us
	.dbline 104
	subi R20,1
	sbci R21,0
	.dbline 105
L8:
	.dbline 101
; unsigned int sound_add=0;
	cpi R20,0
	cpc R20,R21
	brne L7
X0:
	.dbline -2
	.dbline 106
; unsigned int rst_time,delay_time1,delay_time2,led_delayms=600;
; unsigned char temp,temp1;
; unsigned char pa,pb,pc,pd,remote_in,timers,cny_in,cny_times,cds,pd_select,remote_select;
; unsigned char gzsl,t0_times;
; unsigned char sound_1,sound_2;
L6:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r time 20 i
	.dbend
	.dbfunc e turn_right _turn_right fV
	.even
_turn_right::
	.dbline -1
	.dbline 109
; 
; const unsigned char led_data[]=
;     {//设置LED广告灯数据表
	.dbline 110
;      0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
	ldi R24,96
	out 0x12,R24
	.dbline 111
;      0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
	ldi R24,204
	out 0x1b,R24
	.dbline -2
	.dbline 112
;      0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
L10:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e turn_left _turn_left fV
	.even
_turn_left::
	.dbline -1
	.dbline 115
;      0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
;      0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
;      0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
	.dbline 116
;      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
	ldi R24,144
	out 0x12,R24
	.dbline 117
;      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
	ldi R24,51
	out 0x1b,R24
	.dbline -2
	.dbline 118
;      0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
L11:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e turn_right_s _turn_right_s fV
	.even
_turn_right_s::
	.dbline -1
	.dbline 120
;      0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
;      0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,
	.dbline 121
; 	 
	ldi R24,32
	out 0x12,R24
	.dbline 122
;      0x0a,0x0a
	ldi R24,207
	out 0x1b,R24
	.dbline -2
	.dbline 123
;     };
L12:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e turn_left_s _turn_left_s fV
	.even
_turn_left_s::
	.dbline -1
	.dbline 126
; 
; const unsigned char music_11[]=
; {//七子之歌
	.dbline 127
;     0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,0x45,0x41,
	ldi R24,128
	out 0x12,R24
	.dbline 128
;     0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,0x25,0x25,
	ldi R24,243
	out 0x1b,R24
	.dbline -2
	.dbline 129
;     0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,0x45,0x41,
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e backward _backward fV
	.even
_backward::
	.dbline -1
	.dbline 132
;     0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,0x41,0x41,
;     0x41,0x41,0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,
;     0x45,0x41,0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,
	.dbline 133
;     0x25,0x25,0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,
	ldi R24,80
	out 0x12,R24
	.dbline 134
;     0x45,0x41,0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,
	ldi R24,60
	out 0x1b,R24
	.dbline -2
	.dbline 135
;     0x41,0x41,0x41,0x20,0x25,0x4a,0x29,0x28,0x26,0x25,0x45,0x26,
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e forward _forward fV
	.even
_forward::
	.dbline -1
	.dbline 138
;     0x46,0x25,0x36,0x18,0x2a,0x28,0x49,0x49,0x49,0x20,0x25,0x4a,
;     0x39,0x18,0x26,0x25,0x45,0x26,0x46,0x25,0x46,0x2a,0x29,0x49,
;     0x49,0x49,0x49,0x4a,0x39,0x18,0x26,0x25,0x45,0x48,0x26,0x25,
	.dbline 139
;     0x23,0x22,0x41,0x40,0x22,0x23,0x45,0x45,0x45,0x45,0x40,0x25,
	ldi R24,160
	out 0x12,R24
	.dbline 140
; 	0x26,0x48,0x48,0x48,
	ldi R24,195
	out 0x1b,R24
	.dbline -2
	.dbline 141
; 	0x00,0x00
L15:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e stop _stop fV
	.even
_stop::
	.dbline -1
	.dbline 144
; };
; const unsigned char music_22[]=
; {//走进新时代
	.dbline 145
; 0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
	ldi R24,255
	out 0x12,R24
	.dbline 146
; 0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x45,0x68,
	out 0x1b,R24
	.dbline -2
	.dbline 147
; 0x29,0x29,0x28,0x26,0x25,0x46,0x46,0x46,0x25,0x26,
L16:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e sw_touch _sw_touch fV
	.even
_sw_touch::
	.dbline -1
	.dbline 163
; 0x29,0x43,0x25,0x22,0x23,0x22,0x21,0x42,0x42,0x42,0x42,0x63,
; 0x25,0x26,0x25,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x23,0x25,
; 0x28,0x28,0x28,0x28,0x29,0x2a,0x2a,0x29,0x46,0x46,0x46,0x46,
; 0x46,0x29,0x2a,0x28,0x28,0x26,0x25,0x26,0x26,0x25,0x43,0x43,
; 0x22,0x42,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x41,
; 0x00,0x00
; };
; const unsigned char music_33[]=
; {
; //星语心愿
; 0x36,0x18,0x27,0x26,0x25,0x26,0x43,0x43,0x43,0x26,0x25,0x36,0x18,0x27,0x18,0x17,
; 0x26,0x27,0x48,0x48,0x48,0x28,0x29,0x2a,0x2a,0x2a,0x2a,0x49,0x49,0x28,0x27,0x26,
; 0x27,0x45,0x45,0x46,0x48,0x47,0x26,0x25,0x46,0x46,0x46,0x40,0x40,0x40,0x40,0x40,
; 0x36,0x18,0x27,0x26,0x25,0x26,0x26,0x26,0x46,0x46,0x26,0x25,0x36,0x18,0x27,0x18,
; 0x17,0x26,0x27,0x48,0x48,0x48,0x28,0x29,0x2a,0x2a,0x2a,0x2a,0x49,0x49,0x28,0x27,
; 0x26,0x27,0x45,0x45,0x46,0x26,0x28,0x47,0x45,0x40,0x26,0x28,0x47,0x45,0x46,0x46,
	.dbline 164
; 0x46,0x46,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,0x28,0x48,0x48,0x48,
	in R24,0x13
	andi R24,16
	sts _sw_in,R24
	.dbline 165
; 0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,
	tst R24
	brne L18
	.dbline 166
; 0x28,0x48,0x48,0x28,0x27,0x36,0x16,0x45,0x27,0x26,0x46,0x46,0x46,0x46,0x46,0x46,
	.dbline 167
; 0x00,0x00
	rcall _backward
	.dbline 168
; };
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 170
; const unsigned char music_44[]=
; {
	lds R24,_work_status
	cpi R24,112
	brne L20
	.dbline 171
; //上海滩
	.dbline 172
; 0x2a,0x2c,0x4d,0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,
	rcall _stop
	rjmp L23
L22:
	.dbline 174
	.dbline 175
	ldi R24,85
	out 0x1b,R24
	.dbline 176
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 177
	ldi R24,170
	out 0x1b,R24
	.dbline 178
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 179
L23:
	.dbline 173
; 0x2d,0x4f,0x2d,0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,
	rjmp L22
X1:
	.dbline 180
; 0x4c,0x4c,0x4c,0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,
; 0x39,0x1a,0x29,0x27,0x26,0x28,0x45,0x45,0x45,0x2a,0x2c,0x4d,
; 0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,0x2d,0x4f,0x2d,
; 0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,0x4c,0x4c,0x4c,
; 0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,0x39,0x1a,0x29,
; 0x27,0x26,0x25,0x48,0x48,0x20,0x2f,0x2f,0x2d,0x4f,0x4f,0x20,
; 0x2d,0x2f,0x2d,0x4c,0x4c,0x4c,0x2c,0x2a,0x6d,0x2c,0x48,0x19,
L20:
	.dbline 182
; 0x18,0x28,0x4a,0x4a,0x20,0x2a,0x2a,0x29,0x4a,0x4a,0x20,0x2f,
; 0x2f,0x2e,0x4d,0x4d,0x4d,0x2a,0x2a,0x69,0x2a,0x2f,0x2e,0x2d,
	rcall _turn_left
	.dbline 183
; 0x2a,0x4c,0x4c,0x4c,
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 184
; 0x00,0x00
L18:
	.dbline 186
; };
; const unsigned char sound_none[]={0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,
	in R24,0x16
	andi R24,112
	sts _sw_in,R24
	.dbline 187
; 	  		   0x28,0x48,0x48,0x28,0x27,0x36,0x16,0x45,0x27,0x26,0x46,0x46,0x46,0x46,0x46,0x46,0x00,0x00};
	cpi R24,80
	brne L25
	.dbline 188
; const unsigned char sound_right[]={0x23,0x25,0x46,0x4a,0x39,0x18,0x27,0x28,0x48,0x48,0x48,
	.dbline 189
; 	  		   0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x00,0x00};
	rcall _forward
	.dbline 190
; const unsigned char sound_back[]={0x2a,0x2c,0x4d,0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,0x2d,0x4f,
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 192
; 	  		   0x2d,0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x00,0x00};
; const unsigned char sound_stop[]={0x23,0x24,0x25,0x44,0x45,0x24,0x23,0x22,0x42,0x40,0x40,0x23,0x22,0x21,0x41,0x28,
	rcall _turn_left
	.dbline 193
; 	  		   0x48,0x23,0x25,0x45,0x40,0x40,0x00,0x00};
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 194
; const unsigned char sound_left[]={0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
L25:
	.dbline 195
; 	  		   0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x00,0x00};
	lds R24,_sw_in
	cpi R24,48
	brne L27
	.dbline 196
; 
	.dbline 197
; //Watchdog initialisation
	rcall _backward
	.dbline 198
; // prescale: 1024K cycles
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 200
; void watchdog_init(void)
; {
	rcall _turn_left
	.dbline 201
;  WDR(); //this prevents a timout on enabling
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 202
;  WDTCR = 0x0E; //WATCHDOG ENABLED - dont forget WDR
L27:
	.dbline 203
; }
	lds R24,_sw_in
	cpi R24,96
	brne L29
	.dbline 204
; 
	.dbline 205
; //TIMER0 initialisation - prescale:1024
	rcall _backward
	.dbline 206
; // desired value: 25mSec
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 208
; // actual value: 24.960mSec (0.2%)
; void timer0_init(void)
	rcall _turn_left
	.dbline 209
; {
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 210
;  TCCR0 = 0x00; //stop timer
L29:
	.dbline 211
;  TCNT0 = 0x3D; //set count value
	lds R24,_sw_in
	cpi R24,32
	brne L31
	.dbline 212
;  TCCR0 = 0x05; //start timer
	.dbline 213
; }
	rcall _stop
	.dbline 214
; 
	ldi R16,1000
	ldi R17,3
	rcall _delay_ms
	rjmp L34
L33:
	.dbline 216
; #pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF
; void timer0_ovf_isr(void)
	.dbline 217
; {
	in R24,0x13
	andi R24,16
	sts _sw_in,R24
	.dbline 218
;  TCNT0 = 0x3D; //reload counter value
	tst R24
	brne L36
	.dbline 219
;  t0_times++;
	.dbline 219
	rjmp L35
L36:
	.dbline 220
;  	   remote_in = PINB & 0x0F;
	ldi R24,85
	out 0x1b,R24
	.dbline 221
; 	   switch (remote_in)
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 222
;       	 {//检测遥控器是否有键按下
	ldi R24,170
	out 0x1b,R24
	.dbline 223
;           case 0x00:  // none
	ldi R16,250
	ldi R17,0
	rcall _delay_ms
	.dbline 224
; 			  rst_time=0;
	in R24,0x16
	andi R24,15
	sts _remote_in,R24
	.dbline 225
;       	    break;
	tst R24
	breq L38
	.dbline 226
;           case 0x04:  // < A >
	.dbline 226
	rjmp L35
L38:
	.dbline 227
L34:
	.dbline 215
	rjmp L33
L35:
	.dbline 228
L31:
	.dbline -2
	.dbline 229
; 			  rst_time=0;
;       	    break;
;           case 0x02:  // < B >
L17:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e mic_startup _mic_startup fV
	.even
_mic_startup::
	.dbline -1
	.dbline 232
; 		      rst_time=0;
;       	    break;
;           case 0x08:  // < C >
	rjmp L42
L41:
	.dbline 235
; 		      rst_time++;
;       	    break;
;           case 0x01:  // < D >
	.dbline 236
;               rst_time=0;
	in R24,0x13
	andi R24,8
	sts _mic_in,R24
	.dbline 237
;       	    break;
	tst R24
	brne L44
	.dbline 237
	.dbline 237
	rjmp L43
L44:
	.dbline 238
L42:
	.dbline 234
	rjmp L41
L43:
	.dbline -2
	.dbline 239
;       	 }
;  if(rst_time > 400)  // 400*25ms=10s,+1s 看门狗复位  
L40:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e remote_auto_time _remote_auto_time fV
	.even
_remote_auto_time::
	.dbline -1
	.dbline 254
;    {
;     PORTA = 0xff;
; 	watchdog_init();
; 	while(1);
;    }
;  if(gzsl == 0x88)
;    {
;     if(t0_times == 10)
;       {
; 	   timers++;
; 	   t0_times = 0;
; 	   pa = led_data[timers];
; 	   if(pa==0x0a){timers=0;}
; 	   PORTA = pa;	   
;       }
	.dbline 255
;    }
	in R24,0x16
	andi R24,15
	sts _remote_in,R24
	.dbline 256
;  if(gzsl == 0x33)
	mov R16,R24
	clr R17
	cpi R16,0
	cpc R16,R17
	brne X4
	rjmp L48
X4:
X2:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	brne X5
	rjmp L59
X5:
	cpi R16,2
	ldi R30,0
	cpc R17,R30
	breq L53
	cpi R16,4
	ldi R30,0
	cpc R17,R30
	breq L50
	cpi R16,8
	ldi R30,0
	cpc R17,R30
	breq L56
	rjmp L47

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -