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

📄 main.lst

📁 Holtek audio decoder , headset 参考范例
💻 LST
📖 第 1 页 / 共 4 页
字号:
 474  0093  0775        		mov     a,DAC_FIFO_COUNTER
 475  0094  0083        		mov     mp1,a
 476  0095              		kmov    R1,RECORD_DATA_L
 477  0097  1483        		inc     mp1
 478  0098              		kmov	R1,RECORD_DATA_H
 479  009A              
 480  009A              	
 481  009A              EXIT_AUDIO_INT_ISR:
 482  009A  0757        		MOV		A,isr_play_bp		;restone bp
 483  009B  0084        		MOV		BP,A
 484  009C  0756        		MOV		A,isr_play_tblp		;restore TBLP
 485  009D  0087        		MOV		TBLP,A
 486  009E  0755        		MOV		A,isr_play_mp0		;restore MP0
 487  009F  0081        		MOV		MP0,A
 488  00A0  0754        		MOV		A,isr_play_mp1		;restore MP1
 489  00A1  0083        		MOV		MP1,A
 490  00A2  0753        		MOV		A,isr_play_status	;restore STATUS
 491  00A3  008A        		MOV		STATUS,A
 492  00A4  0752        		MOV		A,isr_play_acc		;restore ACC      		
 493  00A5              		
 494  00A5  0004        		RETI
 495  00A6              
 496  00A6              ;***************************************************************
 497  00A6              ;		RECORD_INT_ISR
 498  00A6              ;		1. 8Khz
 499  00A6              ;		
 500  00A6              ;***************************************************************
 501  00A6              RECORD_INT_ISR:
 502  00A6  00D8        		MOV		isr_rec_acc,A		;save ACC
 503  00A7  070A        		MOV		A,STATUS
 504  00A8  00D9        		MOV		isr_rec_status,A	;save status
 505  00A9  0703        		MOV		A,MP1
 506  00AA  00DA        		MOV		isr_rec_mp1,A		;save mp1
 507  00AB  0701        		MOV		A,MP0 
 508  00AC  00DB        		MOV		isr_rec_mp0,A		;save mp0
 509  00AD  0707        		MOV		A,TBLP
 510  00AE  00DC        		MOV		isr_rec_tblp,A		;save TBLP
 511  00AF  0704        		MOV		A,BP
 512  00B0  00DD        		MOV		isr_rec_bp,A		;save bp
 513  00B1              
 514  00B1  1F04        		clr	BP
 515  00B2              		
 516  00B2              RECORD_My_Function:	
 517  00B2              
 518  00B2              	;-----------------------------------------------------------
 519  00B2              	; Here to add your another code !!
 520  00B2              
 521  00B2              	;cpl PB		
 522  00B2              		
 523  00B2              EXIT_RECORD_INT_ISR:
 524  00B2  075D        		MOV		A,isr_rec_bp		;restone bp
 525  00B3  0084        		MOV		BP,A
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 10

 526  00B4  075C        		MOV		A,isr_rec_tblp		;restore TBLP
 527  00B5  0087        		MOV		TBLP,A
 528  00B6  075B        		MOV		A,isr_rec_mp0		;restore MP0
 529  00B7  0081        		MOV		MP0,A
 530  00B8  075A        		MOV		A,isr_rec_mp1		;restore MP1
 531  00B9  0083        		MOV		MP1,A
 532  00BA  0759        		MOV		A,isr_rec_status	;restore STATUS
 533  00BB  008A        		MOV		STATUS,A
 534  00BC  0758        		MOV		A,isr_rec_acc		;restore ACC   	     		
 535  00BD              		
 536  00BD  0004        		RETI
 537  00BE              		
 538  00BE              ;***************************************************************
 539  00BE              ;		Timer_0_ISR
 540  00BE              ;		1.Timer time = 21.2 ms
 541  00BE              ;		2.Do this procedure is 3.6ms
 542  00BE              ;***************************************************************
 543  00BE              Timer_0_ISR:	
 544  00BE  360E        		clr		TMR0C.4
 545  00BF  00C6        		MOV		isr_tmr0_acc,A		;save ACC
 546  00C0  070A        		MOV		A,STATUS
 547  00C1  00C7        		MOV		isr_tmr0_status,A	;save status
 548  00C2  0703        		MOV		A,MP1
 549  00C3  00C8        		MOV		isr_tmr0_mp1,A		;save mp1
 550  00C4  0701        		MOV		A,MP0
 551  00C5  00C9        		MOV		isr_tmr0_mp0,A		;save mp0
 552  00C6  0707        		MOV		A,TBLP
 553  00C7  00CA        		MOV		isr_tmr0_tblp,A		;save TBLP
 554  00C8  0704        		MOV		A,BP
 555  00C9  00CB        		MOV		isr_tmr0_bp,A		;save bp
 556  00CA              		
 557  00CA  1F04        		clr	BP		
 558  00CB              		
 559  00CB              Timer_0_My_Function:
 560  00CB              	;-----------------------------------------------------------
 561  00CB              	; Here to add your another code !!
 562  00CB              	;-----------------------------------------------------------
 563  00CB  0000        		NOP		
 564  00CC  0001        		clr wdt
 565  00CD              		
 566  00CD              Timer_0_ISR_END:	
 567  00CD  074B        		MOV		A,isr_tmr0_bp		;restone bp
 568  00CE  0084        		MOV		BP,A		
 569  00CF  074A        		MOV		A,isr_tmr0_tblp		;restore TBLP
 570  00D0  0087        		MOV		TBLP,A
 571  00D1  0749        		MOV		A,isr_tmr0_mp0		;restore MP0
 572  00D2  0081        		MOV		MP0,A
 573  00D3  0748        		MOV		A,isr_tmr0_mp1		;restore MP1
 574  00D4  0083        		MOV		MP1,A
 575  00D5  0747        		MOV		A,isr_tmr0_status	;restore STATUS
 576  00D6  008A        		MOV		STATUS,A
 577  00D7  0746        		MOV		A,isr_tmr0_acc		;restore ACC
 578  00D8  320E        		SET		TMR0C.4			;start timer0
 579  00D9              
 580  00D9  0004        		RETI
 581  00DA              
 582  00DA              ;***************************************************************
 583  00DA              ;		Timer_1_ISR
 584  00DA              ;		1.Timer time = 21.2 ms
 585  00DA              ;		2.Do this procedure is 3.6ms
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 11

 586  00DA              ;***************************************************************
 587  00DA              Timer_1_ISR:
 588  00DA  3611        		CLR		TMR1C.4
 589  00DB              
 590  00DB  00CC        		MOV		isr_tmr1_acc,A		;save ACC
 591  00DC  070A        		MOV		A,STATUS
 592  00DD  00CD        		MOV		isr_tmr1_status,A	;save status
 593  00DE  0703        		MOV		A,MP1
 594  00DF  00CE        		MOV		isr_tmr1_mp1,A		;save mp1
 595  00E0  0701        		MOV		A,MP0
 596  00E1  00CF        		MOV		isr_tmr1_mp0,A		;save mp0
 597  00E2  0707        		MOV		A,TBLP
 598  00E3  00D0        		MOV		isr_tmr1_tblp,A		;save TBLP
 599  00E4  0704        		MOV		A,BP
 600  00E5  00D1        		MOV		isr_tmr1_bp,A		;save bp
 601  00E6              				
 602  00E6  1F04        		clr	BP		
 603  00E7              		
 604  00E7  0001        		clr wdt	
 605  00E8              
 606  00E8              
 607  00E8  0751        		MOV		A,isr_tmr1_bp		;restone bp
 608  00E9  0084        		MOV		BP,A
 609  00EA  0750        		MOV		A,isr_tmr1_tblp		;restore TBLP
 610  00EB  0087        		MOV		TBLP,A
 611  00EC  074F        		MOV		A,isr_tmr1_mp0		;restore MP0
 612  00ED  0081        		MOV		MP0,A
 613  00EE  074E        		MOV		A,isr_tmr1_mp1		;restore MP1
 614  00EF  0083        		MOV		MP1,A
 615  00F0  074D        		MOV		A,isr_tmr1_status	;restore STATUS
 616  00F1  008A        		MOV		STATUS,A
 617  00F2  074C        		MOV		A,isr_tmr1_acc		;restore ACC
 618  00F3              
 619  00F3              Timer_1_ISR_End:
 620  00F3  3211        		SET		TMR1C.4
 621  00F4  0004        		RETI
 622  00F5              
 623  00F5              ;***************************************************************
 624  00F5              ;
 625  00F5              ;
 626  00F5              ;
 627  00F5              ;***************************************************************
 628  00F5              Delay_20ms:
 629  00F5  0001        		clr wdt
 630  00F6  0F75        			mov		a,075H
 631  00F7  00DE        			mov		Delay_1,a
 632  00F8  0FFF        			mov		a,0FFH
 633  00F9  00DF        			mov		Delay_2,a
 634  00FA              Delay_20ms_Wait:
 635  00FA  0001        		clr wdt
 636  00FB  17DF        			SDZ		Delay_2
 637  00FC  28FA        			JMP		Delay_20ms_Wait
 638  00FD  17DE        			SDZ		Delay_1
 639  00FE  28FA        			JMP		Delay_20ms_Wait
 640  00FF  0003        			RET
 641  0100              
 642  0100              Delay_5ms:
 643  0100  0001        		clr wdt
 644  0101  0F3A        			mov		a,03AH
 645  0102  00DE        			mov		Delay_1,a
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 12

 646  0103  0FFF        			mov		a,0FFH
 647  0104  00DF        			mov		Delay_2,a
 648  0105              Delay_5ms_Wait:
 649  0105  0001        		clr wdt
 650  0106  17DF        			SDZ		Delay_2
 651  0107  2905        			JMP		Delay_5ms_Wait
 652  0108  17DE        			SDZ		Delay_1
 653  0109  2905        			JMP		Delay_5ms_Wait
 654  010A  0003        			RET
 655  010B              
 656  010B              
 657  010B              Delay 	PROC
 658  010B  0001        		clr wdt
 659  010C  0FFF        		MOV		A,0FFH
 660  010D  00DE        		MOV		Delay_1,A
 661  010E  00DF        		MOV		Delay_2,A
 662  010F              
 663  010F              Wait:
 664  010F  0001        		clr wdt
 665  0110  17DF        		SDZ		Delay_2
 666  0111  290F        		JMP		Wait
 667  0112  17DE        		SDZ		Delay_1
 668  0113  290F        		JMP		Wait
 669  0114  0003        		RET
 670  0115              
 671  0115              Delay	ENDP
 672  0115              
 673  0115              ;***************************************************************
 674  0115              ;		Key_Debounced Module
 675  0115              ;		Key_Defined : bits want to detect
 676  0115              ;		Key_Process : set the bit when proces
 677  0115              ;		Key_CheckIn : set the bit if detect a pressed key first
 678  0115              ;		Key_Counter : i th  bit pressed
 679  0115              ;		If supportc key press continuously,  do not set Key_Process (Ex: INC,DEC Volume)
 680  0115              ;		If supportc key press continuously,  should set Key_Process (Ex: Mute,Play,Stop)
 681  0115              ;***************************************************************
 682  0115              #define		UseReportID	1
 683  0115              IF	UseMediaKey
 684  0115              Key_Debounced:
 685  0115  0001        				clr wdt	
 686  0116  0712        	       	mov		a,VIOP
 687  0117  0185        		cpl		acc
 688  0118  00E4        		mov		PortC_Data,a
 689  0119              
 690  0119  0F0E        		mov		a,Key_Defined
 691  011A  0664        		and		a,PortC_Data
 692  011B  3D0A        		sz		z
 693  011C  2948        		jmp		Key_Debounced_ClearReg	;//no key pressed
 694  011D              
 695  011D              
 696  011D              Key_Debounced_Detect_In:		
 697  011D              		kmov		Key_Temp,PortC_Data
 698  011F  1F6B        		clr		Key_Counter
 699  0120              Key_Debounced_Detect:		
 700  0120  340A        		clr		C
 701  0121  1BEC        		RRC		Key_Temp
 702  0122  3C0A        		sz		C
 703  0123  292A        		jmp		Key_Debounced_Detect_End
 704  0124  14EB        		inc		Key_Counter
 705  0125  0F08        		mov		a,8
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 13

 706  0126              		;xor		a,Key_Temp
 707  0126  046B        		xor		a,Key_Counter
 708  0127  3D0A        		sz		z
 709  0128  292A        		jmp		Key_Debounced_Detect_End
 710  0129  2920        		jmp		Key_Debounced_Detect
 711  012A              Key_Debounced_Detect_End:
 712  012A  076B        		mov		a,Key_Counter
 713  012B              		;call		GetPipeBit
 714  012B              		
 715  012B  046A        		xor		a,Key_CheckIn
 716  012C  390A        		snz		z
 717  012D  2941        		jmp		Key_Debounced_SetCheckIn
 718  012E              		

⌨️ 快捷键说明

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