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

📄 radio.asm

📁 有时钟功能
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	bcf	FFMLed
	bcf	FAMLed
	bsf	FClockLed
	bcf	FBandAdjust
	call	InitAdjustClockTime
	goto	KeyBandIncEnd
KeyBandIncOnly:
	call	BandInc
KeyBandIncEnd:
	goto	KeyBandIncRet
;-------------------------------------
KeyBandDec:
	btfss	PKeyBandInc
	goto	KeyBandDecEnd
	call	BandDec	
KeyBandDecEnd:
	goto	KeyBandDecRet
;-------------------------------------
KeyVolInc:
	btfss	FLedFlash
	goto	KeyVolIncLoop
	btfsc	FBandAdjust
	goto	KeyVolIncLoop
KeyHourInc:
	call	InitAdjustClockTime
	Bank2
	incf	ClockHour,1
	movlw	d'24'
	subwf	ClockHour,0
	btfsc	FC
	clrf	ClockHour
	goto	KeyHourIncEnd
KeyVolIncLoop:
	Bank1
	movlw	CVolStepMax
	subwf	VolStep,0
	btfsc	FC
	goto	KeyVolIncEnd
	incf	VolStep,1
	goto	KeyVolIncEnd
KeyHourIncEnd:
KeyVolIncEnd:
	goto	KeyVolIncRet
;-------------------------------------
KeyVolDec:
	btfss	FLedFlash
	goto	KeyVolDecLoop
	btfsc	FBandAdjust
	goto	KeyVolDecLoop
KeyMinInc:
	call	InitAdjustClockTime
	Bank2
	incf	ClockMin,1
	movlw	d'60'
	subwf	ClockMin,0
	btfsc	FC
	clrf	ClockMin
	goto	KeyHourDecEnd
KeyVolDecLoop:
	Bank1
	movlw	CVolStepMin
	subwf	VolStep,0
	btfss	FC
	goto	KeyVolDecEnd
	decf	VolStep,1
	goto	KeyVolDecEnd
KeyHourDecEnd:
KeyVolDecEnd:
	goto	KeyVolDecRet
;-----------------------------------
KeyBand1_P2:
	Page3
	goto	KeyBand1
KeyBand2_P2:
	Page3
	goto	KeyBand2
KeyBand3_P2:
	Page3
	goto	KeyBand3
KeyBand4_P2:
	Page3
	goto	KeyBand4
KeyBand5_P2:
	Page3
	goto	KeyBand5
IfAutoAdjustBand:
	btfss	FAutoOn
	goto	IfAutoAdjustBandEnd
	btfss	FAutoTime
	goto	IfAutoAdjustBandEnd
	bcf	FAutoTime
	Bank3
	decfsz	AutoTime,1
	goto	IfAutoAdjustBandEnd
	call	BandInc
	movlw	CAutoTime
	movwf	AutoTime
IfAutoAdjustBandEnd:
	Page0	
	goto	IfAutoAdjustBandRet


;=============================
	Org	600h
;=============================
Delay2us:
;	nop
;	nop
	retlw	0
;-----------------------------
SendData:
	btfss	FSendData
	goto	SendDataEnd
	bcf	FSendData
	btfss	FFM
	goto	SendAMData
SendFMData:
	Bank0
	btfss	FRadioInit
	goto	NoInitRadio
InitRadio:
	bcf	FRadioInit
	movlw	010h
	movwf	SendData3
	movlw	07fh
	movwf	SendData2
	movlw	007h
	movwf	SendData1
	movlw	0adh	;0ach
	movwf	SendData0		;init send data
	goto	CntFMData
NoInitRadio:
	movlw	010h
	movwf	SendData3
	movlw	0ffh
	movwf	SendData2
	movlw	007h
	movwf	SendData1
	movlw	0ach
	movwf	SendData0		;init send data
	goto	CntFMData
CntFMData:
	Bank2
	movlw	CFMDataMin0
	subwf	FMData0,0
	movwf	DataBuf0
	movlw	CFMDataMin1
	subwf	FMData1,0
	movwf	DataBuf1
	bcf	FC
	rlf	DataBuf0,1
	rlf	DataBuf1,1

	Bank0
	movf	DataBuf0,0
	addwf	SendData0,1
	movlw	00h
	btfsc	FC
	movlw	01h
	addwf	SendData1,1

	movf	DataBuf1,0
	addwf	SendData1,1
	movlw	00h
	btfsc	FC
	movlw	01h
	addwf	SendData2,1

	movlw	00h
	btfsc	FC
	movlw	01h
	addwf	SendData3,1
	goto	SendDataStart
SendAMData:
	Bank0
	movlw	00dh
	movwf	SendData3
	movlw	087h;080h
	movwf	SendData2
	movlw	014h
	movwf	SendData1
	movlw	070h
	movwf	SendData0
	
	bcf	FC
	rrf	SendData1
	rrf	SendData0
	bcf	FC
	rrf	SendData1
	rrf	SendData0
	bcf	FC
	rrf	SendData1
	rrf	SendData0
	bcf	FC
	rrf	SendData1
	rrf	SendData0
	


	Bank2	
	movlw	CAMDataMin0
	subwf	AMData0,0
	movwf	DataBuf0
	movlw	CAMDataMin1
	subwf	AMData1,0
	movwf	DataBuf1
CntAMOddsData:
	movlw	003h
	subwf	DataBuf0,1
	movlw	00h
	btfsc	FC
	movlw	01h
	subwf	DataBuf1,1
	btfsc	FC
	goto	CntAMOddsDataOk
	incf	AMAdjust0,1
	movlw	000h
	btfsc	FC
	movlw	001h
	addwf	AMAdjust1,1
CntAMOddsDataOk:
	Bank0	
		
	movf	AMAdjust0,0
	movwf	DataBuf0
	movf	AMAdjust1,0
	movwf	DataBuf1



	movf	DataBuf0,0
	addwf	SendData0,1
	movlw	00h
	btfsc	FC
	movlw	01h
	addwf	SendData1,1

	movf	DataBuf1,0
	addwf	SendData1,1
	movlw	00h
	btfsc	FC
	movlw	01h
	addwf	SendData2,1

	movlw	00h
	btfsc	FC
	movlw	01h
	addwf	SendData3,1
	
	bcf	FC
	rlf	SendData0
	rlf	SendData1
	bcf	FC
	rlf	SendData0
	rlf	SendData1
	bcf	FC
	rlf	SendData0
	rlf	SendData1
	bcf	FC
	rlf	SendData0
	rlf	SendData1
	
	
 	goto	SendDataStart
SendDataStart:
	movlw	d'32'
	movwf	DataBuf0
	bsf	PCs
SendAMDataLoop:
	bcf	PClk
;	bcf	PData
	call	Delay2us
	rrf	SendData3,1
	rrf	SendData2,1
	rrf	SendData1,1
	rrf	SendData0,1
	call	Delay2us
	btfsc	FC
	goto	SetData
ClrData:
	bcf	PData
	goto	SendDataCom	
SetData:
	bsf	PData
SendDataCom	
	call	Delay2us
	call	Delay2us
	bsf	PClk
	call	Delay2us
	call	Delay2us
	bcf	PClk
	call	Delay2us
	call	Delay2us
;	bcf	PData
	decfsz	DataBuf0,1
	goto	SendAMDataLoop

		
	bcf	PCs
	bcf	PClk
	bcf	PData
	bsf	FReadData
	Bank3
	movlw	CReadDataWaitTime
	movwf	ReadDataWaitTime
SendDataEnd:
	Page0
	goto	SendDataRet
;=========================
Timer:
	movlw	d'250';'254'
        subwf	TMR0,0
	btfss	FC
	goto	Timer
	movwf	TMR0
	bsf	FVol100ms

	Bank3
	decfsz	Timer500ms,1
	goto	$+5
	movlw	CTimer500ms
	movwf	Timer500ms
	movlw	001h
	xorwf	Flag1,1
	bsf	FAutoTime
	
	decfsz	Timer1s,1
	goto	TimerEnd
	movlw	CTimer1s
	movwf	Timer1s
IfFlashLed:
	btfss	FLedFlash
	goto	IfFlashLedEnd
	decfsz	AdjustTime
	goto	IfFlashLedEnd
	bcf	FLedFlash
	bcf	FBandAdjust
IfFlashLedEnd:
	Bank2
	incf	Second,1
	movlw	d'60'
	subwf	Second,0
	btfss	FC
	goto	TimerEnd

	clrf	Second
	incf	ClockMin,1
	movlw	d'60'
	subwf	ClockMin,0
	btfss	FC
	goto	TimerEnd

	clrf	ClockMin
	incf	ClockHour,1
	movlw	d'24'
	subwf	ClockHour,0
	btfss	FC
	goto	TimerEnd

	clrf	ClockHour
TimerEnd:
	Page0
	goto	TimerRet
;-------------------------------------
KeyBand1:
;	btfss	FBandAdjust
;	goto	CarryDataToBand1
;SaveDataToBand1:
;	btfss	FFM
;	goto	SaveDataToBand1_AM
;SaveDataToBand1_FM:
;	Bank2
;	movf	FMData0,0
;	Bank0
;	movwf	SaveChan10
;	Bank2
;	movf	FMData1,0
;	Bank0
;	movwf	SaveChan11
;	bsf	FBand1Flag
;	goto	KeyBand1End
;SaveDataToBand1_AM:
;	Bank2
;	movf	AMData0,0
;	Bank0
;	movwf	SaveChan10
;	Bank2
;	movf	AMData1,0
;	Bank0
;	movwf	SaveChan11
;	bcf	FBand1Flag
;	goto	KeyBand1End
;CarryDataToBand1:
;	bsf	FSendData
;	bcf	FAMLed
;	bcf	FFMLed
;	btfss	FBand1Flag
;	goto	CarryDataToBand1_AM
;CarryDataToBand1_FM:
;	bsf	FFM
;	bsf	FFMLed
;	Bank0
;	movf	SaveChan10,0
;	Bank2
;	movwf	FMData0
;	Bank0
;	movf	SaveChan11,0
;	Bank2
;	movwf	FMData1
;	goto	KeyBand1End
;CarryDataToBand1_AM:
;	bcf	FFM
;	bsf	FAMLed
;	Bank0
;	movf	SaveChan10,0
;	Bank2
;	movwf	AMData0
;	Bank0
;	movf	SaveChan11,0
;	Bank2
;	movwf	AMData1
;	goto	KeyBand1End
;KeyBand1End:
;	Page2
	goto	KeyBand1Ret
;-------------------------------------
KeyBand2:
;	btfss	FBandAdjust
;	goto	CarryDataToBand2
;SaveDataToBand2:
;	btfss	FFM
;	goto	SaveDataToBand2_AM
;SaveDataToBand2_FM:
;	Bank2
;	movf	FMData0,0
;	Bank0
;	movwf	SaveChan20
;	Bank2
;	movf	FMData1,0
;	Bank0
;	movwf	SaveChan21
;	bsf	FBand2Flag
;	goto	KeyBand2End
;SaveDataToBand2_AM:
;	Bank2
;	movf	AMData0,0
;	Bank0
;	movwf	SaveChan20
;	Bank2
;	movf	AMData1,0
;	Bank0
;	movwf	SaveChan21
;	bcf	FBand2Flag
;	goto	KeyBand2End
;CarryDataToBand2:
;	bsf	FSendData
;	bcf	FAMLed
;	bcf	FFMLed
;	btfss	FBand2Flag
;	goto	CarryDataToBand2_AM
;CarryDataToBand2_FM:
;	bsf	FFM
;	bsf	FFMLed
;	Bank0
;	movf	SaveChan20,0
;	Bank2
;	movwf	FMData0
;	Bank0
;	movf	SaveChan21,0
;	Bank2
;	movwf	FMData1
;	goto	KeyBand2End
;CarryDataToBand2_AM:
;	bcf	FFM
;	bsf	FAMLed
;	Bank0
;	movf	SaveChan20,0
;	Bank2
;	movwf	AMData0
;	Bank0
;	movf	SaveChan21,0
;	Bank2
;	movwf	AMData1
;	goto	KeyBand2End
;KeyBand2End:
;	Page2
;	goto	KeyBand2Ret
;-------------------------------------
KeyBand3:
;	btfss	FBandAdjust
;	goto	CarryDataToBand3
;SaveDataToBand3:
;	btfss	FFM
;	goto	SaveDataToBand3_AM
;SaveDataToBand3_FM:
;	Bank2
;	movf	FMData0,0
;	Bank0
;	movwf	SaveChan30
;	Bank2
;	movf	FMData1,0
;	Bank0
;	movwf	SaveChan31
;	bsf	FBand3Flag
;	goto	KeyBand3End
;SaveDataToBand3_AM:
;	Bank2
;	movf	AMData0,0
;	Bank0
;	movwf	SaveChan30
;	Bank2
;	movf	AMData1,0
;	Bank0
;	movwf	SaveChan31
;	bcf	FBand3Flag
;	goto	KeyBand3End
;CarryDataToBand3:
;	bsf	FSendData
;	bcf	FAMLed
;	bcf	FFMLed
;	btfss	FBand3Flag
;	goto	CarryDataToBand3_AM
;CarryDataToBand3_FM:
;	bsf	FFM
;	bsf	FFMLed
;	Bank0
;	movf	SaveChan30,0
;	Bank2
;	movwf	FMData0
;	Bank0
;	movf	SaveChan31,0
;	Bank2
;	movwf	FMData1
;	goto	KeyBand3End
;CarryDataToBand3_AM:
;	bcf	FFM
;	bsf	FAMLed
;	Bank0
;	movf	SaveChan30,0
;	Bank2
;	movwf	AMData0
;	Bank0
;	movf	SaveChan31,0
;	Bank2
;	movwf	AMData1
;	goto	KeyBand3End
;KeyBand3End:
;	Page2
	goto	KeyBand3Ret
;-------------------------------------
KeyBand4:
;	btfss	FBandAdjust
;	goto	CarryDataToBand4
;SaveDataToBand4:
;	btfss	FFM
;	goto	SaveDataToBand4_AM
;SaveDataToBand4_FM:
;	Bank2
;	movf	FMData0,0
;	Bank0
;	movwf	SaveChan40
;	Bank2
;	movf	FMData1,0
;	Bank0
;	movwf	SaveChan41
;	bsf	FBand4Flag
;	goto	KeyBand4End
;SaveDataToBand4_AM:
;	Bank2
;	movf	AMData0,0
;	Bank0
;	movwf	SaveChan40
;	Bank2
;	movf	AMData1,0
;	Bank0
;	movwf	SaveChan41
;	bcf	FBand4Flag
;	goto	KeyBand4End
;CarryDataToBand4:
;	bsf	FSendData
;	bcf	FAMLed
;	bcf	FFMLed
;	btfss	FBand4Flag
;	goto	CarryDataToBand4_AM
;CarryDataToBand4_FM:
;	bsf	FFM
;	bsf	FFMLed
;	Bank0
;	movf	SaveChan40,0
;	Bank2
;	movwf	FMData0
;	Bank0
;	movf	SaveChan41,0
;	Bank2
;	movwf	FMData1
;	goto	KeyBand4End
;CarryDataToBand4_AM:
;	bcf	FFM
;	bsf	FAMLed
;	Bank0
;	movf	SaveChan40,0
;	Bank2
;	movwf	AMData0
;	Bank0
;	movf	SaveChan41,0
;	Bank2
;	movwf	AMData1
;	goto	KeyBand4End
;KeyBand4End:
;	Page2
	goto	KeyBand4Ret
;-------------------------------------
KeyBand5:
;	btfss	FBandAdjust
;	goto	CarryDataToBand5
;SaveDataToBand5:
;	btfss	FFM
;	goto	SaveDataToBand5_AM
;SaveDataToBand5_FM:
;	Bank2
;	movf	FMData0,0
;	Bank0
;	movwf	SaveChan50
;	Bank2
;	movf	FMData1,0
;	Bank0
;	movwf	SaveChan51
;	bsf	FBand5Flag
;	goto	KeyBand5End
;SaveDataToBand5_AM:
;	Bank2
;	movf	AMData0,0
;	Bank0
;	movwf	SaveChan50
;	Bank2
;	movf	AMData1,0
;	Bank0
;	movwf	SaveChan51
;	bcf	FBand5Flag
;	goto	KeyBand5End
;CarryDataToBand5:
;	bsf	FSendData
;	bcf	FAMLed
;	bcf	FFMLed
;	btfss	FBand5Flag
;	goto	CarryDataToBand5_AM
;CarryDataToBand5_FM:
;	bsf	FFM
;	bsf	FFMLed
;	Bank0
;	movf	SaveChan50,0
;	Bank2
;	movwf	FMData0
;	Bank0
;	movf	SaveChan51,0
;	Bank2
;	movwf	FMData1
;	goto	KeyBand5End
;CarryDataToBand5_AM:
;	bcf	FFM
;	bsf	FAMLed
;	Bank0
;	movf	SaveChan50,0
;	Bank2
;;	movwf	AMData0
;;	Bank0
;	movf	SaveChan51,0
;	Bank2
;	movwf	AMData1
;;	goto	KeyBand5End
KeyBand5End:
;	Page2
;       NOP
;	goto	KeyBand5Ret


;#################################################
	org	07ffh
  	goto	Reset
	end

⌨️ 快捷键说明

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