?? diy0206_4.s
字號:
.module diy0206_4.c
.area text(rom, con, rel)
.dbfile E:/icc/include/diy0206.c
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 81
; /*******************************************/
; /* 廣州天河雙龍電子公司 */
; /* 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 保持高電平
; // 或按下遙控器<A>(保持 0.5s) 進入遙控機器人運行環境
; //聲控起動遙控車程序,未起動時,PA口的8 LED 呈廣告燈效果(霓虹燈)
; //聲控起動后,機器人開始動作
; //遙控器無按鍵,機器人直行
; //按住 < A > 鍵,機器人右轉,同時演奏右轉指示音樂;
; //按住 < B > 鍵,機器人后退,同時演奏后退指示音樂;
; //按住 < C > 鍵,機器人停止,同時演奏停止指示音樂;
; //按住 < D > 鍵,機器人左轉,同時演奏左轉指示音樂;
; //釋放遙控器按鍵,音樂停止
;
; //將 pd1 接低電平,pd3,pd2,pd0 保持高電平
; // 或按下遙控器<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 保持高電平
; // 或按下遙控器<D>(保持 0.5s) 機器人按程序設定路線行走,走四方形,同時演奏音樂
; //自走車 機器人走四方形路線,遙控器調節行走路線
; //聲控起動機器人按設定路線行走,未起動時,PA口的 8 LED 呈廣告燈效果(霓虹燈)
; //聲控起動后,機器人開始動作,PA口的 8 LED 指示運動狀態
;
; //程序等待聲控起動運行,未啟動運行時機器人運行霓虹車程序。
; //連續按住遙控器 < C > 鍵超過 10s 起動看門狗,再過 1s 系統復位
;
; //將 diy0206.c 文件拷貝到 icc avr 安裝目錄的<include>文件夾
; //diy0206.c 是diy0206機器人板的子函數庫
; //程序中調用此文件后 #include <diy0206.c>
; //可直接調用里面的函數和變量
;
; // 最后更新:2003.04.17
;
; #include <io8515v.h>
; #include <macros.h>
; #include <diy0206.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,
.dbline 82
; 0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x21,0x18,0x16,0x26,0x28,0x26,0x28,0x29,
ldi R24,255
out 0x1a,R24
.dbline 82
out 0x1b,R24
.dbline 84
; 0x49,0x49,0x20,0x25,0x28,0x29,0x2a,0x29,0x49,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,
; 0x2c,0x15,0x1a,0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,
clr R2
out 0x17,R2
.dbline 84
out 0x18,R24
.dbline 86
; 0x28,0x26,0x28,0x28,0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x28,0x28,0x26,0x2a,
; 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 88
; 0x2a,0x1a,0x1a,0x1a,0x18,0x40,0x20,0x26,0x28,0x28,0x28,0x26,0x28,0x48,0x26,0x25,
; 0x45,0x45,0x40,0x40,0x40,0x28,0x48,0x28,0x28,0x1c,0x1d,0x2d,0x2c,0x28,0x28,0x28,
ldi R24,240
out 0x11,R24
.dbline 88
ldi R24,255
out 0x12,R24
.dbline -2
.dbline 90
; 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,
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_us _delay_us fV
; time -> R16,R17
.even
_delay_us::
.dbline -1
.dbline 93
; 0x28,0x26,0x2a,0x19,0x18,0x28,0x18,0x19,0x49,0x49,0x40,0x40,
;
; 0x00,0x00
L3:
.dbline 95
; };
; #pragma data:data
.dbline 96
; /* 音階表 */
subi R16,1
sbci R17,0
.dbline 97
; const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
L4:
.dbline 98
; RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
ldi R24,1
ldi R25,0
cp R24,R16
cpc R25,R17
brlt L3
.dbline -2
.dbline 99
; /* 音階重裝常數 */
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 102
; unsigned int toneconst;
; unsigned int sound_add=0;
; unsigned int rst_time,delay_time1,delay_time2,led_delayms=600;
rjmp L8
L7:
.dbline 104
.dbline 105
ldi R16,1000
ldi R17,3
rcall _delay_us
.dbline 106
subi R20,1
sbci R21,0
.dbline 107
L8:
.dbline 103
; unsigned char temp,temp1;
cpi R20,0
cpc R20,R21
brne L7
X0:
.dbline -2
.dbline 108
; 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;
;
; const unsigned char led_data[]=
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 111
; {//設置LED廣告燈數據表
; 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
; 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
.dbline 112
; 0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
ldi R24,144
out 0x12,R24
.dbline 113
; 0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
ldi R24,204
out 0x1b,R24
.dbline -2
.dbline 114
; 0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
L10:
.dbline 0 ; func end
ret
.dbend
.dbfunc e turn_left _turn_left fV
.even
_turn_left::
.dbline -1
.dbline 117
; 0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
; 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
; 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
.dbline 118
; 0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
ldi R24,96
out 0x12,R24
.dbline 119
; 0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
ldi R24,51
out 0x1b,R24
.dbline -2
.dbline 120
; 0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,
L11:
.dbline 0 ; func end
ret
.dbend
.dbfunc e turn_right_s _turn_right_s fV
.even
_turn_right_s::
.dbline -1
.dbline 122
;
; 0x0a,0x0a
.dbline 123
; };
ldi R24,128
out 0x12,R24
.dbline 124
;
ldi R24,207
out 0x1b,R24
.dbline -2
.dbline 125
; const unsigned char music_11[]=
L12:
.dbline 0 ; func end
ret
.dbend
.dbfunc e turn_left_s _turn_left_s fV
.even
_turn_left_s::
.dbline -1
.dbline 128
; {//七子之歌
; 0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,0x45,0x41,
; 0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,0x25,0x25,
.dbline 129
; 0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,0x45,0x41,
ldi R24,32
out 0x12,R24
.dbline 130
; 0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,0x41,0x41,
ldi R24,243
out 0x1b,R24
.dbline -2
.dbline 131
; 0x41,0x41,0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,
L13:
.dbline 0 ; func end
ret
.dbend
.dbfunc e backward _backward fV
.even
_backward::
.dbline -1
.dbline 134
; 0x45,0x41,0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,
; 0x25,0x25,0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,
; 0x45,0x41,0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,
.dbline 135
; 0x41,0x41,0x41,0x20,0x25,0x4a,0x29,0x28,0x26,0x25,0x45,0x26,
ldi R24,80
out 0x12,R24
.dbline 136
; 0x46,0x25,0x36,0x18,0x2a,0x28,0x49,0x49,0x49,0x20,0x25,0x4a,
ldi R24,60
out 0x1b,R24
.dbline -2
.dbline 137
; 0x39,0x18,0x26,0x25,0x45,0x26,0x46,0x25,0x46,0x2a,0x29,0x49,
L14:
.dbline 0 ; func end
ret
.dbend
.dbfunc e forward _forward fV
.even
_forward::
.dbline -1
.dbline 140
; 0x49,0x49,0x49,0x4a,0x39,0x18,0x26,0x25,0x45,0x48,0x26,0x25,
; 0x23,0x22,0x41,0x40,0x22,0x23,0x45,0x45,0x45,0x45,0x40,0x25,
; 0x26,0x48,0x48,0x48,
.dbline 141
; 0x00,0x00
ldi R24,160
out 0x12,R24
.dbline 142
; };
ldi R24,195
out 0x1b,R24
.dbline -2
.dbline 143
; const unsigned char music_22[]=
L15:
.dbline 0 ; func end
ret
.dbend
.dbfunc e stop _stop fV
.even
_stop::
.dbline -1
.dbline 146
; {//走進新時代
; 0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
; 0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x45,0x68,
.dbline 147
; 0x29,0x29,0x28,0x26,0x25,0x46,0x46,0x46,0x25,0x26,
ldi R24,255
out 0x12,R24
.dbline 148
; 0x29,0x43,0x25,0x22,0x23,0x22,0x21,0x42,0x42,0x42,0x42,0x63,
out 0x1b,R24
.dbline -2
.dbline 149
; 0x25,0x26,0x25,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x23,0x25,
L16:
.dbline 0 ; func end
ret
.dbend
.dbfunc e sw_touch _sw_touch fV
; sw_in -> R20
; remote_in -> R22
.even
_sw_touch::
rcall push_gset2
.dbline -1
.dbline 165
; 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,
; 0x46,0x46,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,0x28,0x48,0x48,0x48,
; 0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,
.dbline 167
; 0x28,0x48,0x48,0x28,0x27,0x36,0x16,0x45,0x27,0x26,0x46,0x46,0x46,0x46,0x46,0x46,
; 0x00,0x00
in R20,0x13
andi R20,16
.dbline 168
; };
brne L18
.dbline 169
; const unsigned char music_44[]=
.dbline 170
; {
rcall _backward
.dbline 171
; //上海灘
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 173
; 0x2a,0x2c,0x4d,0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,
; 0x2d,0x4f,0x2d,0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,
lds R24,_work_status
cpi R24,112
brne L20
.dbline 174
; 0x4c,0x4c,0x4c,0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,
.dbline 175
; 0x39,0x1a,0x29,0x27,0x26,0x28,0x45,0x45,0x45,0x2a,0x2c,0x4d,
rcall _stop
rjmp L23
L22:
.dbline 177
.dbline 178
ldi R24,85
out 0x1b,R24
.dbline 179
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 180
ldi R24,170
out 0x1b,R24
.dbline 181
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 182
L23:
.dbline 176
; 0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,0x2d,0x4f,0x2d,
rjmp L22
X1:
.dbline 183
; 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,
; 0x18,0x28,0x4a,0x4a,0x20,0x2a,0x2a,0x29,0x4a,0x4a,0x20,0x2f,
; 0x2f,0x2e,0x4d,0x4d,0x4d,0x2a,0x2a,0x69,0x2a,0x2f,0x2e,0x2d,
; 0x2a,0x4c,0x4c,0x4c,
L20:
.dbline 185
; 0x00,0x00
; };
rcall _turn_left
.dbline 186
; const unsigned char sound_none[]={0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 187
; 0x28,0x48,0x48,0x28,0x27,0x36,0x16,0x45,0x27,0x26,0x46,0x46,0x46,0x46,0x46,0x46,0x00,0x00};
L18:
.dbline 189
; const unsigned char sound_right[]={0x23,0x25,0x46,0x4a,0x39,0x18,0x27,0x28,0x48,0x48,0x48,
; 0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x00,0x00};
in R20,0x16
andi R20,11
.dbline 190
; const unsigned char sound_back[]={0x2a,0x2c,0x4d,0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,0x2d,0x4f,
cpi R20,9
brne L25
.dbline 191
; 0x2d,0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x00,0x00};
.dbline 192
; const unsigned char sound_stop[]={0x23,0x24,0x25,0x44,0x45,0x24,0x23,0x22,0x42,0x40,0x40,0x23,0x22,0x21,0x41,0x28,
rcall _forward
.dbline 193
; 0x48,0x23,0x25,0x45,0x40,0x40,0x00,0x00};
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 195
; const unsigned char sound_left[]={0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
; 0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x00,0x00};
rcall _turn_left
.dbline 196
;
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 197
; //Watchdog initialisation
L25:
.dbline 198
; // prescale: 1024K cycles
cpi R20,10
brne L27
.dbline 199
; void watchdog_init(void)
.dbline 200
; {
rcall _backward
.dbline 201
; WDR(); //this prevents a timout on enabling
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 203
; WDTCR = 0x0E; //WATCHDOG ENABLED - dont forget WDR
; }
rcall _turn_left
.dbline 204
;
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 205
; //TIMER0 initialisation - prescale:1024
L27:
.dbline 206
; // desired value: 25mSec
cpi R20,3
brne L29
.dbline 207
; // actual value: 24.960mSec (0.2%)
.dbline 208
; void timer0_init(void)
rcall _backward
.dbline 209
; {
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 211
; TCCR0 = 0x00; //stop timer
; TCNT0 = 0x3D; //set count value
rcall _turn_left
.dbline 212
; TCCR0 = 0x05; //start timer
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 213
; }
L29:
.dbline 214
;
cpi R20,2
brne L31
.dbline 215
; #pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF
.dbline 216
; void timer0_ovf_isr(void)
rcall _stop
.dbline 217
; {
ldi R16,1000
ldi R17,3
rcall _delay_ms
rjmp L34
L33:
.dbline 219
; TCNT0 = 0x3D; //reload counter value
; t0_times++;
.dbline 220
; remote_in = PINB & 0xF0;
in R20,0x13
andi R20,16
.dbline 221
; switch (remote_in)
brne L36
.dbline 222
; {//檢測遙控器是否有鍵按下
.dbline 222
rjmp L35
L36:
.dbline 223
; case 0x00: // none
ldi R24,85
out 0x1b,R24
.dbline 224
; rst_time=0;
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 225
; break;
ldi R24,170
out 0x1b,R24
.dbline 226
; case 0x20: // < A >
ldi R16,250
ldi R17,0
rcall _delay_ms
.dbline 227
; rst_time=0;
in R22,0x16
andi R22,240
.dbline 228
; break;
cpi R22,16
breq L42
cpi R22,32
breq L42
cpi R22,64
breq L42
cpi R22,128
brne L38
L42:
.dbline 229
; case 0x40: // < B >
.dbline 229
rjmp L35
L38:
.dbline 230
L34:
.dbline 218
rjmp L33
L35:
.dbline 231
L31:
.dbline -2
.dbline 232
; rst_time=0;
; break;
; case 0x10: // < C >
L17:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r sw_in 20 c
.dbsym r remote_in 22 c
.dbend
.dbfunc e mic_startup _mic_startup fV
; mic_in -> R16
.even
_mic_startup::
.dbline -1
.dbline 235
; rst_time++;
; break;
; case 0x80: // < D >
rjmp L45
L44:
.dbline 238
; rst_time=0;
; break;
; }
.dbline 239
; if(rst_time > 400) // 400*25ms=10s,+1s 看門狗復位
in R16,0x16
andi R16,4
.dbline 240
; {
brne L47
.dbline 240
.dbline 240
rjmp L46
L47:
.dbline 241
L45:
.dbline 237
rjmp L44
L46:
.dbline -2
.dbline 242
; PORTA = 0xff;
; watchdog_init();
L43:
.dbline 0 ; func end
ret
.dbsym r mic_in 16 c
.dbend
.dbfunc e remote_auto_time _remote_auto_time fV
; remote_in -> R16
.even
_remote_auto_time::
.dbline -1
.dbline 259
; while(1);
; }
; if(gzsl == 0x88)
; {
; if(t0_times == 10)
; {
; timers++;
; t0_times = 0;
; pa = led_data[timers];
; if(pa==0x0a){timers=0;}
; PORTA = pa;
; }
; }
; if(gzsl == 0x33)
; {
; sw_touch();
; if(t0_times == 8) //8*25ms=200ms
.dbline 261
; {
; t0_times = 0;
in R16,0x16
andi R16,240
.dbline 262
; remote_in = PINB & 0xF0;
clr R17
cpi R16,32
ldi R30,0
cpc R17,R30
breq L53
ldi R24,32
ldi R25,0
cp R24,R16
cpc R25,R17
brlt L67
L66:
cpi R16,0
cpc R16,R17
brne X4
rjmp L51
X4:
X2:
cpi R16,0
ldi R30,0
cpc R17,R30
brge X5
rjmp L50
X5:
L68:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -