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

📄 initiate.asm

📁 个人用HT82M99E开发的无线小键盘接收端源码
💻 ASM
字号:
;;********************************************************************
Clear_RAM:
		MOV        A,C_Ramaddress
		MOV        MP0,A
		MOV        A,C_Ramnumber
Clear_RAMLOOP:
		CLR        R0
		INC        MP0
		SDZ        ACC
		JMP        Clear_RAMLOOP
		RET
;;********************************************************************
INI_RAM:
		MOV        A,80H
		MOV        TMR1C,A
		MOV        A,C_PollingL
		MOV        TMR1L,A
		MOV        A,C_PollingH
		MOV        TMR1H,A                         ;;If system clock is 12MHZ then each 34.66 microsecond polling rxd start bit one time.
		MOV        A,OFFSET R_ReceiveBuffer
		MOV        R_ReBufferAddress,A
		MOV        R_TrBufferAddress,A
		RET
;;********************************************************************
INI_PORT:
		MOV        A,10111100B
		MOV        PA,A
  		mov	  a,01000011B
 		mov	  pac,a
		MOV        A,11110011B		
		MOV        PB,A
		MOV        A,00001100B
		MOV        PBC,A
		RET
;;********************************************************************
INI_IRREC:	
		mov	  a,5
		mov	  R_PreCodeNum,a	;
		mov	  a,7
		mov	  R_KeyCodeNum,a	;
		mov	  a,20h
		mov	  USR,a
		clr	  recHbyte
		clr	  recLbyte
		clr	  F_Polling
		CLR	  F_Maximize
		;clr	  F_LastFrame
		;CLR	F_continuouskey
		ret
;;********************************************************************
INI_USB:
		set        F_FsysClock                       ;;The MCU systerm clock is 6MHZ
		MOV        A,62
		MOV        R_IdleTime,A
		SET        F_ReportProtocol
		SET        F_USBClockOn
		CLR        F_PS2mode
		SET        F_USBmode                         ;;The device is USB device.
           	RET		
;;********************************************************************
SBR_Delaysecond:
		MOV 	 A,2					
		MOV	 R_TEMP2,A
		SET      R_TEMP1
		SET		 ACC
L_Wait3s:
        	CLR      WDT
		SNZ      F_Suspend			    	;about 1ms
		RET	
		SDZ      ACC
		JMP      L_Wait3s
		SDZ      R_TEMP1
		JMP      L_Wait3s					;260ms
		SDZ	     R_TEMP2
		JMP      L_Wait3s
		RET

;;********************************************************************
SBR_Delay2us:
		MOV      A,04H
		SDZ      ACC
		JMP      $-1
		RET
;;********************************************************************

delay89ms:				;6*178*25*5*2/3,6MHz
	mov	a,05h			;7
	mov	r_delayvalue1,a
delayloop1:
	mov 	a,019h				;021h
	mov 	r_delayvalue2,a
delayloop2:
	mov	a,0b2h			;fa
	mov	r_delayvalue3,a
delayloop3:
	clr	  wdt
	NOP
	NOP
	sdz 	r_delayvalue3
	jmp 	delayloop3
	sdz		r_delayvalue2
	jmp		delayloop2
	sdz		r_delayvalue1
	jmp		delayloop1
	ret

delay108ms:				;6*250*27*4*2/3,6MHz
	mov	a,04h			;7
	mov	r_delayvalue1,a
  loop108ms1:
	mov 	a,01bh				
	mov 	r_delayvalue2,a
  loop108ms2:
	mov	a,0fah			;fa
	mov	r_delayvalue3,a
  loop108ms3:
	clr	  wdt
	NOP
	NOP
	sdz 	r_delayvalue3
	jmp 	loop108ms3
	sdz		r_delayvalue2
	jmp		loop108ms2
	sdz		r_delayvalue1
	jmp		loop108ms1
	ret

delay03ms:				
	mov 	a,04bh				
	mov 	r_delayvalue1,a
  loop03ms:
	clr	  wdt
	NOP
	NOP
	sdz 	r_delayvalue1
	jmp 	loop03ms
	ret


delay106ms:
	mov	a,06h			
	mov	r_delayvalue1,a
delayloop5:
	mov 	a,019h				
	mov 	r_delayvalue2,a
delayloop6:
	mov	a,0b2h			
	mov	r_delayvalue3,a
delayloop7:
	clr	  wdt
	NOP
	NOP
	sdz 	r_delayvalue3
	jmp 	delayloop7
	sdz		r_delayvalue2
	jmp		delayloop6
	sdz		r_delayvalue1
	jmp		delayloop5
	ret

	

delay840us:
	mov	a,0d2h
	mov	r_delayvalue1,a 
  loop840us:
	clr	wdt
	nop
	nop
	sdz	r_delayvalue1
	jmp	loop840us
      	ret
	
delay54ms:				;6*250*27*4*2/3,6MHz
	mov	a,02h			;7
	mov	r_delayvalue1,a
  loop54ms1:
	mov 	a,01bh				
	mov 	r_delayvalue2,a
  loop54ms2:
	mov	a,0fah			;fa
	mov	r_delayvalue3,a
  loop54ms3:
	clr	  wdt
	NOP
	NOP
	sdz 	r_delayvalue3
	jmp 	loop54ms3
	sdz		r_delayvalue2
	jmp		loop54ms2
	sdz		r_delayvalue1
	jmp		loop54ms1
	ret

⌨️ 快捷键说明

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