亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? isr.asi

?? A MP3 Player Source Code, Enjoy it!
?? ASI
?? 第 1 頁 / 共 2 頁
字號:
        inc     dptr        movx    a, @dptr        mov     r3, a        inc     dptr        movx    a, @dptr                ;read the number of words into r4/r5        mov     r4, a        inc     dptr        movx    a, @dptr        mov     r5, aplay_dma:        ;now let's map the block with the MP3 data to 0x9000        mov     dptr, #dram_page_cfg + (0x09 * 2)        mov     a, r2        movx    @dptr, a        inc     dptr        mov     a, r3        movx    @dptr, a        ;finally, we're done with the memory management stuff, and        ;we can now set up the DMA transfer and start it.        mov     dptr, #dma_mp3_src        clr     a        movx    @dptr, a                ;write LSB of src addr        inc     dptr        mov     a, #0x90        movx    @dptr, a                ;write MSB of src addr        mov     dptr, #dma_mp3_count        mov     a, r4        movx    @dptr, a                ;write LSB of length        inc     dptr        mov     a, r5        movx    @dptr, a                ;write MSB of length        clr     a        mov     dptr, #dma_mp3_go        movx    @dptr, a                ;begin the transfer        ;now the DMA is happening... in all likelyhood, the STA013 has        ;already asserted its DATA_REQ signal by the time we could get        ;through all that work to set up the DMA transfer.  If the        ;latency of this code ever gets to be a problem, the FPGA        ;will probably have to be changed to double buffer STA013        ;DMA requests, which would allow 0.1 second latency for the        ;fastest MP3 (320 kbps) !!        mov     dptr, #num_blks_played        movx    a, @dptr        add     a, #1           ;increment "num_blks_played"        movx    @dptr, a        inc     dptr        movx    a, @dptr        addc    a, #0        movx    @dptr, a        pop     acc        pop     dph        pop     dpl        pop     psw        reti;*****************************************************************;**                                                             **;**                       IDE Interface                         **;**                                                             **;*****************************************************************        ;int0 is connected to the xilinx chip.  There are        ;many possible interrupt sources that could generate        ;this interruptint0_isr:        push    psw        push    dpl        push    dph        push    acc        mov     psw, #00001000b         ;set reg bank1 (0x08 to 0x0F)int0_loop:        mov     dptr, #irq_ident        movx    a, @dptr        ;jb     acc.0, int0_ide_dma        jb      acc.1, int0_mp3_dma        ;this shouldn't happen, as we're not using hardware memcpy yet        ;mov    dptr, #irq_memcpy_ack        ;movx   @dptr, a        pop     acc        pop     dph        pop     dpl        pop     psw        reti        ;when we get here, a DMA transfer from the IDE drive has        ;been completedint0_ide_dma:        mov     dptr, #irq_dma_ide_ack        movx    @dptr, a        pop     acc        pop     dph        pop     dpl        pop     psw        reti        ;int1 is connected to the IDE drive... when we get an        ;interrupt, the drive has finished a command.int1_isr:        push    psw        push    dpl        push    dph        mov     psw, #00001000b         ;set reg bank1 (0x08 to 0x0F)        mov     r7, a        ;we might need to start a new command, or we might be in the        ;middle of a read request and the drive is now ready to begin        ;transfering data, either way we need to read the IDE status        ;register to clear the interrupt and find out what's up.        mov     dptr, #ide_status        movx    a, @dptr        mov     a, r7        pop     dph        pop     dpl        pop     psw        reti;*****************************************************************;**                                                             **;**                    Timer and Pushbuttons                    **;**                                                             **;*****************************************************************.equ	t2_reload, 53248		;approx 50 Hztimer_setup:	clr	et2	mov	t2con, #0		;timer2 = 16 bit auto reload	mov	rcap2l, #t2_reload & 255	mov	rcap2h, #t2_reload >> 8	mov	tl2, #t2_reload & 255	mov	th2, #t2_reload >> 8	clr	pb_state_next	clr	pb_state_play	clr	pb_state_prev	clr	pb_state_rand	mov	pb_count_v_up, #0	mov	pb_count_v_dn, #0	setb	et2			;enable the timer2 interrupt	setb	tr2			;start the timer        rettimer2_isr:        push    psw        mov     psw, #00001000b         ;set reg bank1 (0x08 to 0x0F)        mov     r7, a	mov	r6, dpl	mov	r5, dph	mov	r4, b	clr	tf2        clr     hc165_load_pin	nop        setb    hc165_load_pin	noppb_prev:	jb	hc165_data_pin, pb_prev_up	jnb	pb_state_prev,  pb_prev_press	sjmp	pb_prev_endpb_prev_press:	setb	pb_state_prev	mov	a, #event_previous	acall	add_new_event	sjmp	pb_prev_endpb_prev_up:	clr	pb_state_prevpb_prev_end:        clr     hc165_clk_pin        setb    hc165_clk_pinpb_play:	jb	hc165_data_pin, pb_play_up	jnb	pb_state_play,  pb_play_press	sjmp	pb_play_endpb_play_press:	setb	pb_state_play	mov	a, #event_play_pause	acall	add_new_event	sjmp	pb_play_endpb_play_up:	clr	pb_state_playpb_play_end:        clr     hc165_clk_pin        setb    hc165_clk_pinpb_rand:	jb	hc165_data_pin, pb_rand_up	jnb	pb_state_rand,  pb_rand_press	sjmp	pb_rand_endpb_rand_press:	setb	pb_state_rand	mov	a, #event_random	acall	add_new_event	sjmp	pb_rand_endpb_rand_up:	clr	pb_state_randpb_rand_end:        clr     hc165_clk_pin        setb    hc165_clk_pinpb_v_dn:	jb	hc165_data_pin, pb_v_dn_up	inc	pb_count_v_dn	mov	a, pb_count_v_dn	dec	a	jz	pb_v_dn_press	add	a, #256 - 12	jnc	pb_v_dn_end	mov	pb_count_v_dn, #1pb_v_dn_press:	mov	a, #event_vol_down	acall	add_new_event	sjmp	pb_v_dn_endpb_v_dn_up:	mov	pb_count_v_dn, #0pb_v_dn_end:        clr     hc165_clk_pin        setb    hc165_clk_pinpb_next:	jb	hc165_data_pin, pb_next_up	jnb	pb_state_next,  pb_next_press	sjmp	pb_next_endpb_next_press:	setb	pb_state_next	mov	a, #event_next	acall	add_new_event	sjmp	pb_next_endpb_next_up:	clr	pb_state_nextpb_next_end:        clr     hc165_clk_pin        setb    hc165_clk_pinpb_v_up:	jb	hc165_data_pin, pb_v_up_up	inc	pb_count_v_up	mov	a, pb_count_v_up	dec	a	jz	pb_v_up_press	add	a, #256 - 12	jnc	pb_v_up_end	mov	pb_count_v_up, #1pb_v_up_press:	mov	a, #event_vol_up	acall	add_new_event	sjmp	pb_v_up_endpb_v_up_up:	mov	pb_count_v_up, #0pb_v_up_end:timer:	mov	a, ide_timeout_count	add	a, #1			;increment ide timeout	subb	a, #0			;but don't go over 255	mov	ide_timeout_count, a	mov	dptr, #sw_timer_tick	movx	a, @dptr	add	a, #252	jc	timer_inc	add	a, #5	movx	@dptr, a	ljmp	timer_endtimer_inc:	clr	a	movx	@dptr, a	mov	dptr, #sw_timer_mask	movx	a, @dptr	mov	dptr, #sw_timer	mov	r1, #0xfftimer_loop:	cjne	r1, #7, timer_cont	mov	dptr, #sw_timer_mask	movx	@dptr, a	sjmp	timer_clocktimer_cont:	inc	r1	rr	a	jb	acc.7, timer_enabled	;flag is set	inc	dptr	inc	dptr	sjmp	timer_looptimer_enabled:	mov	b, a	movx	a, @dptr		;decrement counter	add	a, #255	movx	@dptr, a	mov	r2, a	inc	dptr	movx	a, @dptr	addc	a, #255	movx	@dptr, a	inc	dptr	jnz	timer_next		;check for end of count	mov	a, r2	jnz	timer_next	mov	a, #event_timer_base	;fire event	add	a, r1	mov	r2, dpl	mov	r3, dph	acall	add_new_event	mov	dpl, r2	mov	dph, r3	mov	a, b	anl	a, #0x7f		;clear flag	sjmp	timer_looptimer_next:	mov	a, b	sjmp	timer_looptimer_clock:	mov	dptr, #clock_tick	movx	a, @dptr	add	a, #1	movx	@dptr, a	jnc	timer_end	inc	dptr	movx	a, @dptr	addc	a, #0	movx	@dptr, a	inc	dptr	movx	a, @dptr	addc	a, #0	movx	@dptr, a	inc	dptr	movx	a, @dptr	addc	a, #0	movx	@dptr, atimer_end:	mov	b, r4	mov	dph, r5	mov	dpl, r6        mov     a, r7        pop     psw        reti.equ    event_next, 1.equ    event_play_pause, 2.equ    event_previous, 3.equ    event_random, 4.equ    event_vol_up, 5.equ    event_vol_down, 6; we use events 10 - 17 for timers 0 - 7.equ    event_timer_base, 10        ;put a new event (in Acc) into the event queue.  This is        ;intended (someday) to be called only from within the        ;interrupt routinesadd_new_event:	mov	r0, a        mov     a, event_queue_head        inc     a        cjne    a, #event_queue_size, addevt2        clr     aaddevt2:cjne    a, event_queue_tail, addevt3        ;if we get here, the event queue is full and we are not        ;able to add another event to it, so this event will        ;just get discarded... hopefully is wasn't too important.        retaddevt3:mov     event_queue_head, a        add     a, #event_queue & 255   ;add Acc + event_queue        mov     dpl, a        mov     dph, #event_queue >> 8  ;assume event queue in 256 byte area	mov	a, r0        movx    @dptr, a                ;put the event byte into event queue        ret

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
白白色亚洲国产精品| 一区二区三区在线播放| 色吧成人激情小说| 亚洲国产精品久久艾草纯爱| 日韩视频一区二区在线观看| 91免费视频观看| a4yy欧美一区二区三区| 国内精品伊人久久久久av一坑 | 日韩**一区毛片| 亚洲免费观看视频| 国产精品久久久久影院| 亚洲国产精品成人综合| 久久精品一区四区| 国产亚洲综合色| 久久久久国产精品麻豆ai换脸 | 8x8x8国产精品| 欧美视频一区二区三区在线观看| 色婷婷综合激情| 丁香六月综合激情| 国产成人av影院| 国产精品一卡二卡| 国产真实乱子伦精品视频| 久久精品av麻豆的观看方式| 一区在线播放视频| 中文字幕在线免费不卡| 国产精品久久毛片a| 中文成人综合网| 亚洲国产精品精华液2区45| 国产亚洲欧洲一区高清在线观看| 久久夜色精品国产欧美乱极品| 久久综合色之久久综合| 欧美一级生活片| 久久综合国产精品| 中文字幕一区二区三中文字幕| 国产欧美一区二区精品性色超碰| 久久久蜜臀国产一区二区| 精品免费国产二区三区| 精品国产伦理网| 中文字幕亚洲一区二区va在线| xfplay精品久久| 中文字幕在线不卡国产视频| 亚洲免费av观看| 日韩高清在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 国产mv日韩mv欧美| 91成人在线精品| 日韩一级完整毛片| 久久久久久久久伊人| 亚洲欧洲国产日本综合| 天天色综合天天| 国内成人免费视频| 91在线国产福利| 欧美丰满一区二区免费视频 | 成人免费不卡视频| 欧美在线高清视频| 精品国产伦一区二区三区观看体验| 2021国产精品久久精品| 一区二区三区四区中文字幕| 久久99精品国产麻豆不卡| 精品中文字幕一区二区小辣椒| yourporn久久国产精品| 在线电影国产精品| 国产精品免费视频观看| 日韩二区在线观看| 成人动漫视频在线| 精品成人一区二区三区四区| 婷婷久久综合九色国产成人| av一区二区久久| 26uuu亚洲综合色| 亚洲国产aⅴ天堂久久| 国产高清精品在线| 欧美一区二区三区婷婷月色| 中文字幕色av一区二区三区| 亚洲一区自拍偷拍| 成人小视频在线| 26uuu久久综合| 亚洲高清免费观看高清完整版在线观看 | 久久久国产综合精品女国产盗摄| 亚洲超碰精品一区二区| 91免费视频大全| 国产亚洲一区二区三区在线观看| 亚洲成人精品影院| 在线观看av一区| 中文字幕在线播放不卡一区| 日日骚欧美日韩| 在线看国产一区二区| 国产精品麻豆久久久| 精品亚洲成a人在线观看| 欧美精品少妇一区二区三区| 国产精品三级视频| 国内精品久久久久影院薰衣草| 欧美一区二区视频观看视频 | 日本韩国欧美国产| 国产精品麻豆99久久久久久| 国产激情精品久久久第一区二区 | 亚洲男人的天堂网| 从欧美一区二区三区| 亚洲福利视频三区| 色综合色综合色综合色综合色综合| 欧美激情在线看| 成人黄动漫网站免费app| 久久视频一区二区| 国产一区二区三区在线观看精品 | 欧美亚洲综合网| 一区二区成人在线视频| 欧美日精品一区视频| 一区二区三区精品视频| 欧美婷婷六月丁香综合色| 亚洲综合丁香婷婷六月香| 99久久伊人网影院| 亚洲男人都懂的| 欧美日韩一级二级三级| 男人的j进女人的j一区| 久久在线观看免费| 久久91精品久久久久久秒播| 久久精品亚洲精品国产欧美| 懂色av一区二区三区免费观看| 国产精品入口麻豆原神| 在线视频你懂得一区| 奇米色一区二区三区四区| wwwwww.欧美系列| 在线成人av影院| 色综合久久66| 丰满白嫩尤物一区二区| 美女爽到高潮91| 亚洲chinese男男1069| 国产精品久久久久久久浪潮网站| 欧美日韩国产综合一区二区| 成人av网站大全| 国产麻豆一精品一av一免费| 五月婷婷另类国产| 亚洲激情自拍视频| 国产精品理论片在线观看| 中文字幕一区二区三区不卡| 精品少妇一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲色图欧美在线| 国产亲近乱来精品视频| 精品国产伦一区二区三区观看体验 | 国产色综合一区| 精品乱人伦小说| 日韩一级片在线观看| 欧美伦理影视网| 欧美伦理视频网站| 欧美精品乱码久久久久久按摩 | 国产在线精品国自产拍免费| 亚洲一区二区三区四区五区黄 | 成人91在线观看| 国产成人免费xxxxxxxx| 国产主播一区二区| 国产一区二区在线视频| 久久97超碰色| 韩国女主播一区二区三区| 激情综合色丁香一区二区| 久久精品久久精品| 久久99日本精品| 国产成人啪午夜精品网站男同| 韩国在线一区二区| 国产精品一区二区你懂的| 国产成人免费视频一区| 不卡区在线中文字幕| 色综合久久久久综合体桃花网| 一本色道久久综合狠狠躁的推荐| 91美女蜜桃在线| 欧美二区三区的天堂| 欧美日韩国产首页| 精品日韩99亚洲| 国产农村妇女精品| 六月丁香婷婷色狠狠久久| 欧美视频日韩视频在线观看| 国产精品久久久久一区二区三区 | 亚洲男人的天堂在线观看| 一区二区三区视频在线看| 免费精品99久久国产综合精品| 国产成人在线观看免费网站| 日韩欧美中文一区| 中文字幕成人网| 日韩综合小视频| 美国精品在线观看| 国产麻豆精品95视频| 91亚洲男人天堂| 欧美性猛交一区二区三区精品| 欧美亚一区二区| 精品国产91乱码一区二区三区| 欧美一区三区二区| 精品久久久影院| 国产精品成人一区二区三区夜夜夜 | 一区二区三区视频在线观看| 国产色产综合产在线视频| 中文字幕精品综合| 丝袜亚洲另类欧美| 国产在线麻豆精品观看| 丁香一区二区三区| 日韩视频在线永久播放| 国产精品国产成人国产三级| 亚洲综合精品自拍| 成人性视频免费网站| 制服丝袜亚洲网站| 亚洲色图第一区| 国产传媒欧美日韩成人|