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

📄 tesk21k.asm

📁 SNC21085 马达正反转调速控制程序。
💻 ASM
字号:
SNC21085
SN0#XO.WAV
SN1#XO.WAV
SIL#XO.WAV
PROGRAM
deboc	equ	#0101b
	IR_MODE	EQU	#0000B
MRX	EQU	#1111B
MRXB	EQU	#0000B
MRX32	EQU	1111B
MRX48	EQU	1111B
MRX64	EQU	1111B
KeyP1	EQU	#1111B
KeyP2	EQU	#0000B
KeyP3	EQU	#0000B
Rand0Max	EQU	#0000B
Rand1Max	EQU	#0000B
Rand2Max	EQU	#0000B
;#####################################################
; For SNC10000 Series (SNC12007 to SNC12340)
; Instruction Cycle : 4 us
; I/O      : P1, P2,P3
; Channel  : 1  ( DAC & PWM )
; Core program : SNC10KEZ  ( 1-channel , 12 ports)
; ----------------------------------------------------
; Scan Key          : P2 --> P1  ( Max 16 keys)
; Direct Key        : P1,P2 and P3 ( Max 12 keys)
; Flash with volume : P3 with CH1
; Output Control    : P1, P2,P3
;#####################################################

;/////////////////////////////////////////
tr1_4           equ     m0
tr5_8           equ     m1
tr9_12          equ     m2
tr13_16         equ     m3
p2state         equ     m4
p3state         equ     m5
4mto8m          equ     m6
; Bit 0 --> 1: Head being played, need play tail before power down
; Bit 1 --> Debonce Counter
; Bit 2 --> =1 ... 8ms
; Bit 3 --> Debonce


p3_fva          equ     m7    ; Flash with CH1
VolValue_Page0	equ	m8    ; Add by Allan for record Volume
v_state         equ     m9    ; Speech state
                              ; bit0 ....... CH 1
                              ; bit1 ....... CH 2
                              ; bit2 ....... BACK CH 1
                              ; bit3 ....... BACK CH 2
deboc_count	equ	m10
;bit 0   ..... for debounce counter 4-->8 ms
;bit1~3  ..... debounce counter 8~56ms

;for MIX key trigger.
Mtr2		equ	m11
Mtr3		equ	m12

temp1           equ     m13	;ScanKey KeyID used.
KeyID		equ	m13
;Temp RAM.
temp2           equ     m14
temp2_0		equ	m14
temp3           equ     m15
;trigger change condition
;---------------page1--------------
delay8m         equ     m0
delay01         equ     m1
delay1s         equ     m2
BGround1        equ     m3
BGround2        equ     m4
P2S_STATE       EQU     M5
P3S_STATE       EQU     M6
s_delay1        equ     m7
s_delay2        equ     m8
s_delay3        equ     m9
TrigState1      equ     m10
TrigState2      equ     m11
Delay_Flag	equ	m12
; Bit 0 --> Foreground Delay 8ms flag
; Bit 1 --> Background Delay 8ms flag
; Bit 2 --> Output     Delay 8ms flag
temp4           equ     m13
Time_Counter	equ	m13
IO_tmp1		equ	m13
temp5           equ     m14
RECEIVE_COUNT_1   EQU     M14
TRANS_COUNT_1     EQU     M14
IO_tmp2		equ	m14
; Bit 0 --> Inline Assembly Return 1 used flag
; Bit 1 --> Inline Assembly Return 2 used flag
p1state         equ     m15
;******* page2 ***********
p2_go1          equ     m0
p2_go2          equ     m1
p3_go1          equ     m2
p3_go2          equ     m3
loop            equ     m4
outloop         equ     m5
p3_fv1          equ     m7
Rand0           equ     m8
Rand1           equ     m9
Rand2           equ     m10
enter_b         equ     m11
p_delay1        equ     m12
p_delay2        equ     m13
p_delay3        equ     m14
m_stp           equ     #0011b
m_pause         equ     #0001b
p1_go1          equ     m6
p1_go2          equ     m15

;---------------page3--------------
EZIO_flag	equ	m11
EZIO_timerH	equ	m10
EZIO_timerL	equ	m9
EZ_Mark		equ	m8
PWMIOEN1	equ	m15
;;;; PAGE2   M12.0 ;;;;;;;;
IRout_ON_OFF_3_0   EQU      M14
;;;; PAGE2   M12.1 ;;;;;;;;
TRIGGER_FLAG_3_1   EQU     M14   ;

;;;; PAGE2   M12.2 ;;;;;;;;;
IRin_ON_OFF_3_2     EQU      M14  ;
; BIT2=0 ........ IR OFF
; BIT2=1 ........ IR ON

;;;; PAGE2   M12.3 ;;;;;;;;
IR_TX_P33_ON_OFF_3_3  EQU    M14 ;
; BIT3=0 ........ P3.3 38.5K Hz OFF
; BIT3=1 ........ P3.3 38.5K Hz ON

;;;; IR Tx
TRANS_L         EQU     M13
TRANS_H         EQU     M12

;;;; IR Rx
RECEIVE_L       EQU     M13
RECEIVE_H       EQU     M12


/*
ifdef @_key_type_@				;add at 5-26'04 for mix key
;Mtr2		equ	m10			;disable 2005/05/30 , page have define
;Mtr3		equ	m11			;In Mix key mode,memory direct key status

endif
*/
;**************** MACRO **************************
;--------------------------------------------
;	CAJNE	Macro
;--------------------------------------------
CAJNE	Macro	Memory,Address
	CAJE	Memory,@F
	JMP	Address
@@:
ENDM

;--------------------------------------------
;	CallTo	Macro	Label
;--------------------------------------------
JumpTo	Macro	label
	Jmp	label
@@&label&_Bk:
ENDM
includestd		macro21K.h

;##########################################################
; ###################  Program Start  ###################
;##########################################################
start:                                  ;power on initial routine
	JumpTo	Initial_Chip
	JumpTo	Update_Key
	jmp     @@_init
Main_Loop:
;;;;;;;; For IR transmit function ;;;;;;;;;;;;;;;;;;;;;
ifdef   IR_TRANSMIT
        JMP     @IR_TRANSMIT
@IR_TRANSMIT_OK:
endif

ifdef   IR_Receive
;;;;;;;; For IR receive function ;;;;;;;;;;;;;;;;;;;;;
        JMP     @IR_RECEIVE
@IR_RECEIVE_OK:
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	JumpTo	ScanKey				; Scankey Function.
	
	JumpTo	Update_Output			; I/O output Function.
	JumpTo	Check_Random			; Random Function.
	;JumpTo	Check_Speech			; Speech Play Function.
	JumpTo	Check_Timer			; 4ms Timer.
	JumpTo	Check_Delay
	JumpTo	Check_Event			; Event Mark Function.
	page1
	Jmp	@@CHKBGROUND			; Check BackGround.
@@CHKBGROUND_BACK:
	JumpTo	Check_PowerDown			; Power Down Routine
@@Scankey1:
@@Toggle_2_Back:
	JumpTo	Check_EnterB			; Check Enter B function.
	Jmp	Main_Loop

;##########################################################
; ###################  Wake Up Routine ###################
;##########################################################
trigger:
        rstc
        rstcf
@@ini_lp:
        cjc     @@ready_scan
        jmp     @@ini_lp
@@ready_scan:
        rstcf
;;;; Scankey P2-->P1
        page0
        mov     a       mrx
        and     a       p2state
ifdef	@_key_type_@
	mov     p2state a
	mov	a	keyp2 
	and	a	p2state
endif	               
        mov     p2state a
        mov     p2      a
	
;;;;;; For IR  receive function  ;;;;;;
;;;;;; WAKEUP STATE
ifdef   IR_Receive	;2005/10/4 09:55

⌨️ 快捷键说明

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