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

📄 main.asl

📁 一款智能老鼠的玩具源代码
💻 ASL
📖 第 1 页 / 共 2 页
字号:
00A8 1F             183         inca
00A9 FD 05          184         sta	cnt_over_sound_rum
00AB A7 64          185         cmpe	#c_over_sound_rum
00AD 05 00 97       186         brnc	gameover_song
00B0                187 gameover_stop:
00B0 F3 FF          188 	lda	#11111111b		;stop all motors and ir tx
00B2 FC 32          189 	sta	r_prtd			;set i/o prtd
00B4 FC 31          190   	sta	r_prtc			;set i/o prtc
00B6 F3 00          191 	lda	#00h
00B8 FC 48          192 	sta	r_voc
00BA FC 34          193 	sta	r_pwmc
00BC FD 00          194 	sta	status_ir_rcv   	;restore the receive status
+                   195 ;	lda	#00h
00BE FC 38          196 	sta	r_lcdc			;disable lcd display
+                   197 ;	lda	#00000b			;disable all interrupt
00C0 FC 04          198 	sta	r_ier
00C2 F3 40          199 	lda	#01000000b		;set sleep mode,close int,t1,t2,tb
00C4 FC 22          200 	sta	r_op1
00C6 00             201 	nop
00C7 00             202 	nop
00C8 00             203 	nop
00C9 00             204 	nop
00CA 02 00 B0       205 	br	gameover_stop
+                   206 ;-----------------------------------------------------------------------
+                   207 ;calculator point subroutie program,
+                   208 ;-----------------------------------------------------------------------
00CD                209 cal_point::
00CD F1 00          210 	lda	cnt_point_free 
00CF A7 78          211 	cmpe	#c_point_dec_intvl ;>400ms
00D1 04 00 D5       212 	brc	cal_point_0        ;yes,jump
00D4 24             213 	ret
00D5                214 cal_point_0:
00D5 F3 00          215 	lda	#0
00D7 FD 00          216 	sta	cnt_point_free
00D9 F1 04          217 	lda	cnt_play_v_intvl   ;play voice interval (c_point_dec_intvl*/300)*cnt_play_v_intvl
00DB 1F             218 	inca
00DC FD 04          219 	sta	cnt_play_v_intvl	;the register is also used to fail loop times	
00DE F1 01          220 	lda	cnt_point
00E0 AB 01          221 	suba	#1
00E2 FD 01          222 	sta	cnt_point
00E4 F1 02          223 	lda	cnt_point+1      
00E6 BB 00          224 	subc	#0
00E8 FD 02          225 	sta	cnt_point+1     ;(cnt_point+1)cnt_point decrease 1,if the result>=0,c=1(Note)
00EA 06 00 F3       226 	brz	play_voice_select
00ED 05 01 26       227 	brnc	mouse_fail      ;cy=0,cnt_point<0
00F0 02 01 04       228 	br	play_normal_voice  ;>255 ,play normal voice
+                   229 	
00F3                230 play_voice_select:	
00F3 20 00 00       231 	call	lcd_display
00F6 F1 01          232 	lda	cnt_point	;cnt_point+1=0
00F8 DB 00          233 	ora	#0              ;judge z flag bit
00FA 06 01 26       234 	brz	mouse_fail      ;=0,seek food fail,
00FD F1 01          235 	lda	cnt_point
00FF A7 32          236 	cmpe	#c_fast_voice
0101 04 01 16       237 	brc	play_fast_voice ;50< cnt_point<255
+                   238 ;play normal voice
0104                239 play_normal_voice:
0104 F1 00          240 	lda	flg_rcv_broadcast 
0106 A7 01          241 	cmpe	#1
0108 06 01 16       242 	brz	play_fast_voice	;receive the broadcast sign, fast voice	
+                   243 
010B 20 00 00       244 	call	lcd_display
010E F1 04          245 	lda	cnt_play_v_intvl
0110 A7 06          246 	cmpe	#c_play_v_normal_intvl
0112 04 01 1E       247 	brc	play_sound1
0115 24             248 	ret
0116                249 play_fast_voice:
0116 F1 04          250 	lda	cnt_play_v_intvl
0118 A7 01          251 	cmpe	#c_play_v_fast_intvl
011A 04 01 1E       252 	brc    play_sound1
011D 24             253 	ret
011E                254 play_sound1:
011E 20 00 00       255 	call	select_sound_normal
0121 F3 00          256 	lda	#0
0123 FD 04          257 	sta	cnt_play_v_intvl
0125 24             258 	ret
0126                259 mouse_fail::
0126 20 00 00       260 	call	lcd_display
0129 F3 FF          261 	lda	#0ffh
012B FC 32          262 	sta	r_prtd		;stop motors
012D FC 31          263 	sta	r_prtc		;stop transmit ir
012F F3 00          264 	lda	#0
0131 FD 00          265 	sta	status_ir_transmit ;stop transmit
0133 FD 00          266 	sta	cnt_point_free	   ;timer 255/300 s
0135 20 00 00       267 	call	select_sound_fail
0138 F3 05          268 	lda	#c_fail_loop
013A FD 03          269 	sta	cnt_fail_loop
013C                270 Play_fail_delay:
013C 29             271 	clrwdt
013D 20 00 00       272         call	lcd_display
0140 F1 00          273 	lda	cnt_point_free
0142 A7 FF          274 	cmpe	#255              ;delay 255/300s
0144 07 01 3C       275 	brnz	play_fail_delay
0147 FD 00          276 	sta	cnt_point_free
0149                277 play_fail_loop:
0149 29             278 	clrwdt
014A F3 00          279 	lda	#0
014C FC 38          280 	sta	r_lcdc		;disable lcd display
014E F1 00          281 	lda	cnt_point_free
0150 A7 FF          282 	cmpe	#255
0152 07 01 49       283 	brnz	play_fail_loop
0155 F3 00          284 	lda	#0
0157 FD 00          285 	sta	cnt_point_free	   ;timer 255/300 s
0159 20 00 00       286 	call	select_sound_fail
015C F1 03          287  	lda	cnt_fail_loop
015E 3F             288  	deca
015F FD 03          289  	sta	cnt_fail_loop
0161 04 01 3C       290  	brc	play_fail_delay     ;if>0,c=1
0164 02 00 B0       291  	br	gameover_stop
+                   292 
+
+Symbol Table
+
+    INT2_isr                           **** GX
+    M_stopbit                          **** GX
+  2 Play_fail_delay                    013C R
+    Run                                **** GX
+    c_fail_loop                     =  0005 
+    c_fast_voice                    =  0032 
+    c_ier                           =  0007 
+    c_ier_en_int2                   =  0001 
+    c_ier_en_t1                     =  0004 
+    c_ier_en_t2                     =  0002 
+    c_init_point_h                  =  0003 
+    c_init_point_l                  =  00E7 
+    c_op1                           =  001C 
+    c_over_sound_rum                =  0064 
+    c_play_v_fast_intvl             =  0001 
+    c_play_v_normal_intvl           =  0006 
+    c_point_dec_intvl               =  0078 
+    c_ram                           =  00FF 
+    c_sp                            =  00EF 
+    c_t1h                           =  0000 
+    c_t1l                           =  0003 
+    c_t2h                           =  0022 
+    c_t2l                           =  00B8 
+  2 cal_point                          00CD GR
+  2 cal_point_0                        00D5 R
+  2 clear_memory                       0022 R
+  2 clr_end                            0034 R
+  2 clr_m                              0026 R
+  1 cnt_fail_loop                      0003 GR
+  1 cnt_over_sound_rum                 0005 GR
+  1 cnt_play_v_intvl                   0004 GR
+  1 cnt_point                          0001 GR
+    cnt_point_free                     **** GX
+    debounce                           **** GX
+  1 flg_new_random                     0000 GR
+    flg_rcv_broadcast                  **** GX
+    flg_rcv_touched                    **** GX
+  2 gameover                           0090 R
+  2 gameover_song                      0097 R
+  2 gameover_song1                     00A5 R
+  2 gameover_stop                      00B0 R
+  2 if_gameover                        0088 GR
+  2 int1_isr                           0015 R
+    lcd_display                        **** GX
+  2 main                               0078 R
+  2 mouse_fail                         0126 GR
+  2 play_fail_loop                     0149 R
+  2 play_fast_voice                    0116 R
+  2 play_normal_voice                  0104 R
+  2 play_sound1                        011E R
+  2 play_voice_select                  00F3 R
+    scan_key                           **** GX
+    scan_key_start                     **** GX
+    select_sound_fail                  **** GX
+    select_sound_gameover              **** GX
+    select_sound_normal                **** GX
+  2 start_initial                      0016 R
+    status_ir_rcv                      **** GX
+    status_ir_transmit                 **** GX
+    t1_isr                             **** GX
+    t2_isr                             **** GX
+  2 tb_isr                             0015 R
+
+
+Area Table
+
+   0 .                                  size    0   flags 0
+   1 main_var                           size    6   flags 2
+   2 main_code                          size  167   flags D

⌨️ 快捷键说明

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