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

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

?? cmd6.asm

?? 用PIC單片機18F6520+ADE7755實現的一個大安培、鋰離子電池的化程器。全部源碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:

; ***********************************************************************************************
; 命令處理模塊

CMD:
		bcf	aFRAME
		
		bsf	PCLATH,3		; Prog page 1
		call	CHECKSUM
		bcf	PCLATH,3		; Prog page 0
		movwf	TEMP
		movf	SBL,W
		addlw	DI0
		movwf	FSR
		movf	INDF,W
		subwf	TEMP,W
		btfss	STATUS,Z
		return			;累加和不等
		
		movlw	A0	
		movwf	FSR
		movlw	.3
		movwf	J
CMD2:
		movf	INDF,W
		sublw	0xFF		;是全網廣播?
		btfss	STATUS,Z
		goto	Command1
		incf	FSR,F
		decfsz	J,F
		goto	CMD2
		goto	Command2

Command1:						
; ----   讀出通道號   ---------------------------------
	I2C_READ_SUB    0x03, (BFIIC+1), AT_DeviceNO

		movlw	.3
		movwf	J
		movlw	(BFIIC+1)
		movwf	FSR
IF_EQ:
		movf	INDF,W		;取出通道號
		andlw	0x0F
		movwf	TEMP
		movlw	B'01110000'
		xorwf	FSR,F		;21H-->61H 指向A0
		movf	INDF,W		;地址碼->W
		andlw	0x0F
		subwf	TEMP,F
		btfss	STATUS,Z	;通道號比較
		goto	IF_0F

EQ1:				
		movlw	B'01110000'
		xorwf	FSR,F		;61H-->21H 指向通道號low

		movf	INDF,W		;取出通道號
		andlw	0xF0
		movwf	TEMP
		movlw	B'01110000'
		xorwf	FSR,F		;21H-->61H 指向A0
		movf	INDF,W		;地址碼->W
		incf	FSR,F		;指向A1
		andlw	0xF0
		subwf	TEMP,F
		btfss	STATUS,Z	;通道號比較
		goto	IF_F0
EQ10:		
		movlw	B'01110000'
		xorwf	FSR,F		;62H-->22H 指向通道號high
EQ1A:		
		decfsz	J,F
		goto	IF_EQ
		goto	Command2

IF_0F:		
		sublw	0x0F
		btfsc	STATUS,Z	;=統配符?
		goto	EQ1		;=
		return
IF_F0:		
		sublw	0xF0
		btfsc	STATUS,Z	;=統配符?
		goto	EQ10		;=
		return
; -----------------------------------------------------------------------------------
Command2:						;從站地址吻合或為廣播發送
        	clrwdt

		movlw	0x01
		subwf	CCODE,W
		btfsc	STATUS,Z
		goto	READ_REPLY		;讀數據

		movlw	0x08
		subwf	CCODE,W
		btfsc	STATUS,Z
		goto	CollectData		;數據巡采

		movlw	0x04
		subwf	CCODE,W
		btfsc	STATUS,Z
		goto	SET_REPLY		;寫數據

		btfsc	BUTTON
		return			;編程允許鍵未按下(=1)為不允許編程

		movlw	0x0A
		subwf	CCODE,W
		btfsc	STATUS,Z
		goto	SetDeviceNO

		return
; -----------------------------------------------------------------------------------
;讀數據
READ_REPLY:		
		movlw	0x95
		subwf	DI1,W
		btfsc	STATUS,Z
		goto	FILL95

		movlw	0xA3
		subwf	DI1,W
		btfsc	STATUS,Z
		goto	FILLA3

		return
; -----------------------------------------------------------------------------------
FILL95:
		movlw	0x10
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	ReadCH1

		movlw	0x11
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	ReadCH2

		return
;單獨讀取通道值時,回送立即值		
ReadCH1:		
		movlw	RB0_I1
		goto	RC
ReadCH2:
		movlw	RB0_V1
RC:		
		movwf	I
		movlw	SDATA
		movwf	J
		movlw	D'3'
		movwf	tempCount
		call	S1_S0
		
		movlw	D'5'
		movwf	SBL
		goto	PRE_DELAY
		
; -----------------------------------------------------------------------------------
FILLA3:
		movlw	0x1F
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	ReadREG

		movlw	0x20
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	ReadDeviceNO

		return
ReadREG:
		bsf	STATUS,RP0		; select page 1
		bcf 	PIE1,TMR1IE 		; disable Timer1中斷
		bcf	STATUS,RP0		; select page 1
;read out CH1OS
		movlw	B'00001000'
		movwf	spi		; call spi control read
		movlw	b'00000001'	; number of bytes to download B'000(5)(4)(3)(2)(1)' 
		movwf	wordlen		; wordlen is 8 bits.
		CALL	SPIRX		; read out to insd1
		movf	insd1,W
		movwf	SDATA

;read out CH2OS
		movlw	B'00001001'
		movwf	spi		; call spi control read
		movlw	b'00000001'	; number of bytes to download B'000(5)(4)(3)(2)(1)' 
		movwf	wordlen		; wordlen is 8 bits.
		CALL	SPIRX		; read out to insd1
		movf	insd1,W
		movwf	(SDATA+1)

;read out APGain
		call	ReadAPGain
		movf	insd1,W
		movwf	(SDATA+2)	
		movf	insd2,W
		movwf	(SDATA+3)
;;;
;	bsf	_BANK1
;	movf	APGAIN1_LOW,W
;	bcf	_BANK1
;	movwf	(SDATA+2)	
;	bsf	_BANK1
;	movf	APGAIN1_HI,W
;	bcf	_BANK1
;	movwf	(SDATA+3)

		bsf	STATUS,RP0		; select page 1
		bsf 	PIE1,TMR1IE 		; enable Timer1中斷
		bcf	STATUS,RP0		; select page 1

		movlw	D'6'
		movwf	SBL
		goto	PRE_DELAY
		
ReadDeviceNO:
		movlw	D'2'
		movwf	SBL
		goto	PRE_DELAY
		
; -----------------------------------------------------------------------------------
;寫數據
SET_REPLY:
		bsf	STATUS,RP0		; bank 1
		bcf	WP_TRIS			; MOT re_set to output
		bcf	STATUS,RP0		; bank 0
		bcf	WP

		movlw	0xA0
		subwf	DI1,W
		btfsc	STATUS,Z
		goto	SETA0

		movlw	0xA3
		subwf	DI1,W
		btfsc	STATUS,Z
		goto	Correct7756

		return
; -----------------------------------------------------------------------------------
SETA0:
		movlw	0x12
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	SetDisCharge

		movlw	0x14
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	SetCharge

		movlw	0x18
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	SetStandby

		movlw	0x20
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	SetTerminate

		movlw	0x21
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	SetStart

		return
; -----------------------------------------------------------------------------------
SetCharge:
		clrf	LoadOn
		bcf	OverCapacity
		bsf	CMD_Charge
		bcf	OverTermTime		;清除超時標志

		I2C_WR_SUB    0x08, SDATA, AT_Current
		I2C_WR_SUB    0x06, (SDATA+8), (AT_Current+8)
;
;	I2C_READ_SUB    0x08, BFIIC, AT_Current
;	nop
;	nop
;	I2C_READ_SUB    0x06, BFIIC, (AT_Current+8)
;	nop	
		movlw	SDATA
		movwf	I
		movlw	Current_LOW
		movwf	J
		movlw	D'11'		;未傳截止容量
		movwf	tempCount
		call	S0_S1

		movf	(SDATA+D'14'),W
		bsf	_BANK1
		movwf	J_H
		bcf	_BANK1

		movlw	D'2'
		movwf	SBL
		goto	REPLY_OK
; -----------------------------------------------------------------------------------
SetDisCharge:
		clrf	LoadOn
		bcf	OverCapacity
		bsf	CMD_DisCharge
		bcf	OverTermTime		;清除超時標志

		I2C_WR_SUB    0x03, SDATA, AT_Current
		I2C_WR_SUB    0x03, (SDATA+3),AT_DisCHTermV
		I2C_WR_SUB    0x02, (SDATA+6),AT_TerminalT

		movlw	SDATA
		movwf	I
		movlw	Current_LOW
		movwf	J
		movlw	D'3'
		movwf	tempCount
		call	S0_S1

		movlw	(SDATA+3)
		movwf	I
		movlw	DisCHTermV_LOW
		movwf	J
		movlw	D'3'
		movwf	tempCount
		call	S0_S1

		movlw	(SDATA+6)
		movwf	I
		movlw	TerminalT_LOW
		movwf	J
		movlw	D'2'
		movwf	tempCount
		call	S0_S1

		movlw	D'2'
		movwf	SBL
		goto	REPLY_OK
; -----------------------------------------------------------------------------------
SetStandby:
		bcf	OverCapacity
		bsf	PCLATH,3		; Prog page 1
		call	ClosePWM		; 沒有流程,暫關PWM
		bcf	PCLATH,3		; Prog page 0
		clrf	C_LowerTerm
		bsf	CH			; close 充電控制
		bsf	DISCH			;close 放電控制
		btfss	BattOn
		goto	SS1	
		bsf	RedLed			;有電池亮桔燈
		bsf	GreenLed	
SS1:
		I2C_WR_SUB    0x01, SDATA, AT_HandleTime	; 失調值寫入外存

		movf	SDATA,W
		bsf	STATUS,RP0
		movwf	StandBy
		bcf	STATUS,RP0		; select page 1

		clrf	LoadOn
		clrf	WorkFlag
		bsf	Standing
		bcf	OverTermTime		;清除超時標志
		
		clrf	Minutes
		
		movlw	D'2'
		movwf	SBL
		goto	REPLY_OK
; -----------------------------------------------------------------------------------
; 停止流程
SetTerminate:
		bsf	CMD_Stop

		bsf 	PCLATH,3
		call	ClosePWM
		bcf 	PCLATH,3

		movlw	0x43		;ASCII 'C'
		xorwf	SDATA,W
		btfss	_Z
		goto	ST0
		bsf	OverCapacity
		goto	ST2
ST0:		
		bcf	OverCapacity
ST2:
		bsf	CH
		bsf	DISCH
		
		btfss	BattOn
		goto	ST1			
		bsf	RedLed		;有電池亮桔燈
		bsf	GreenLed	
ST1:
		clrf	WorkFlag

		movlw	D'3'
		movwf	SBL
		goto	PRE_DELAY
; -----------------------------------------------------------------------------------
; 啟動流程
SetStart:
;		bsf	CMD_Start
		bcf	CMD_Stop
		bcf	OverCapacity

		movlw	D'2'
		movwf	SBL
		goto	PRE_DELAY
; ***********************************************************************************
Correct7756:
		movlw	0x10
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	CorrectCH1OS

		movlw	0x11
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	CorrectCH1

		movlw	0x12
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	CorrectCH2

		movlw	0x13
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	CorrectCH2OS

		movlw	0x1A
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	StepCorrect

		movlw	0x1F
		subwf	DI0,W
		btfsc	STATUS,Z
		goto	ClearREG

		return

; -----------------------------------------------------------------------------------
; 通道1失調校正

CorrectCH1OS:
		bsf	STATUS,RP0		; select page 1
		bcf 	PIE1,TMR1IE 		; disable Timer1中斷
		bcf	STATUS,RP0		; select page 1

;first clear CH1OS
		clrf	outd1
		movlw	B'10001000'	; command to write to ch1os register(通道1失調校正寄存器) 
		movwf	spi		; call spi control write to ch1os reg
		movlw	D'8'		; number of bits
		movwf	wordlen
		CALL	SPIDX		; output outd1 to 7756 
		I2C_WR_SUB 0x01, outd1, AT_CH1OS
;clear APGain
;		clrf	outd1
		clrf	outd2
		call	W_APGain
		I2C_WR_SUB 0x02, outd1, AT_APGAIN
		bsf	_BANK1
		clrf	APGAIN1_LOW
		clrf	APGAIN1_HI
		bcf	_BANK1

		movlw	low MODE_INIT
		iorlw	B'00000001'
		movwf	outd1		; lower eight bits
		movlw	high MODE_INIT
		andlw	B'11011111'	; change to CH1
		iorlw	B'01000001'	; 內部短接模擬地CH1與AGND
		movwf	outd2		; higher eight bits
		call	WriteMODE

		CALL	ReadWafeForm
;
		goto	CT2

; -----------------------------------------------------------------------------------
; 通道2失調校正

CorrectCH2OS:
		bsf	STATUS,RP0		; select page 1
		bcf 	PIE1,TMR1IE 		; disable Timer1中斷
		bcf	STATUS,RP0		; select page 1

;first clear CH2OS
		clrf	outd1
		movlw	B'10001001'	; command to write to ch2os register 
		movwf	spi		; call spi control write to ch2os reg
		movlw	D'8'		; number of bits
		movwf	wordlen
		CALL	SPIDX		; output outd1 to 7756
		I2C_WR_SUB 0x01, outd1, AT_CH2OS

		movlw	low MODE_INIT
		iorlw	B'00000001'
		movwf	outd1		; lower eight bits
		movlw	high MODE_INIT
		andlw	B'11111110'	; 內部短接模擬地CH2與AGND
		iorlw	B'01100010'	; 內部短接模擬地CH2與AGND
		movwf	outd2		; higher eight bits
		call	WriteMODE

		CALL	ReadWafeForm
;
CT2:
;失調值送給手抄器
		movf	insd1,W
		movwf	SDATA
		movf	insd2,W
		movwf	(SDATA+1)
		movf	insd3,W
		movwf	(SDATA+2)

; 恢復工作寄存器
		movlw	low MODE_INIT
		movwf	outd1		; lower eight bits
		movlw	high MODE_INIT
		movwf	outd2		; higher eight bits
		call	WriteMODE
		bcf	Mode_0CH1_1CH2
;
		bsf	STATUS,RP0		; select page 1
		bsf 	PIE1,TMR1IE 		; enable Timer1中斷
		bcf	STATUS,RP0		; select page 1

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品一区二区三区四区 | 色屁屁一区二区| 精品视频全国免费看| 精品福利视频一区二区三区| 一区二区在线电影| www.在线欧美| 久久久99精品免费观看不卡| 亚洲国产另类av| 97精品电影院| 久久久美女艺术照精彩视频福利播放| 午夜精彩视频在线观看不卡| 91视频观看免费| 国产精品伦理一区二区| 国产剧情在线观看一区二区| 日韩精品自拍偷拍| 青青草国产成人av片免费| 91成人看片片| 亚洲欧美一区二区三区国产精品 | 色94色欧美sute亚洲线路一久| 久久久久久97三级| 国产综合色视频| 欧美mv日韩mv| 国产自产v一区二区三区c| 欧美精品乱人伦久久久久久| 亚洲国产精品人人做人人爽| 91浏览器在线视频| 亚洲精品乱码久久久久久久久| av资源网一区| 亚洲美女视频一区| 色视频成人在线观看免| 亚洲欧美日韩在线播放| 欧美专区日韩专区| 日韩黄色片在线观看| 欧美一区二区三区日韩视频| 免费不卡在线视频| 久久综合九色综合97婷婷| 国产一区二区免费视频| 国产视频亚洲色图| 色综合天天视频在线观看| 一卡二卡欧美日韩| 欧美日韩一区二区在线观看视频 | 欧美精品v日韩精品v韩国精品v| 一区二区欧美在线观看| 欧美区一区二区三区| 久久精品国产亚洲a| 久久久www免费人成精品| 成a人片亚洲日本久久| 亚洲天堂成人在线观看| 欧美日韩中文一区| 另类中文字幕网| 国产精品日韩精品欧美在线| 一本色道综合亚洲| 日韩电影免费在线| 欧美国产一区在线| 在线区一区二视频| 精品一区二区在线观看| 中文字幕制服丝袜一区二区三区| 色婷婷国产精品久久包臀| 日韩黄色免费电影| 国产香蕉久久精品综合网| 色婷婷激情综合| 久久se这里有精品| 亚洲免费在线观看视频| 宅男在线国产精品| fc2成人免费人成在线观看播放| 一区二区三区蜜桃| 久久久777精品电影网影网| 欧美羞羞免费网站| 国产精品99久久久久久似苏梦涵| 亚洲女爱视频在线| 久久亚洲一区二区三区明星换脸| 99re这里都是精品| 精品一区二区精品| 午夜精品福利一区二区三区蜜桃| 国产视频一区二区在线观看| 欧美日韩黄视频| 99re在线视频这里只有精品| 久久精品国产色蜜蜜麻豆| 亚洲精品成人悠悠色影视| 久久尤物电影视频在线观看| 欧美午夜寂寞影院| 成人av在线播放网站| 免费成人在线播放| 亚洲国产成人porn| 亚洲男同1069视频| 中文字幕第一区第二区| 精品少妇一区二区三区视频免付费 | av色综合久久天堂av综合| 久久成人av少妇免费| 亚洲主播在线播放| 中文一区二区在线观看| 欧美va亚洲va在线观看蝴蝶网| 欧美图片一区二区三区| 99re6这里只有精品视频在线观看| 精品在线你懂的| 日韩电影在线免费| 日韩高清在线电影| 亚洲成av人**亚洲成av**| 亚洲美女视频在线| 亚洲欧美激情插| 亚洲三级免费观看| 中文字幕在线视频一区| 久久午夜色播影院免费高清| 日韩欧美高清在线| 欧美成人欧美edvon| 日韩一卡二卡三卡国产欧美| 正在播放一区二区| 欧美一区二区成人6969| 555夜色666亚洲国产免| 欧美一区二区三区四区视频| 91麻豆精品国产91久久久久久| 在线欧美日韩国产| 欧美三级中文字幕| 在线免费观看成人短视频| 色悠悠久久综合| 91久久久免费一区二区| 欧美色大人视频| 69堂国产成人免费视频| 日韩视频免费观看高清完整版| 日韩一区二区三区免费观看| 日韩女优av电影| 国产丝袜欧美中文另类| 中文字幕日韩av资源站| 亚洲精品国产无套在线观| 亚洲一区免费视频| 日本欧美一区二区| 国产在线一区二区| 成人国产视频在线观看| 色哟哟精品一区| 欧美伦理影视网| 26uuu国产日韩综合| 国产精品久久午夜| 亚洲美女精品一区| 日韩福利电影在线| 国产成人综合在线| 欧美中文字幕一二三区视频| 欧美一区二区三区视频在线| 久久久精品天堂| 一区二区高清免费观看影视大全| 丝瓜av网站精品一区二区| 国产在线播精品第三| 91碰在线视频| 日韩免费高清视频| 亚洲欧美中日韩| 日本不卡高清视频| youjizz久久| 日韩一区二区在线观看视频 | 蜜桃视频在线观看一区二区| 国产成人av一区二区三区在线观看| aaa亚洲精品| 日韩欧美一二三| 一区二区三区四区视频精品免费 | 91精品婷婷国产综合久久| 久久久精品影视| 偷拍一区二区三区四区| 国产麻豆一精品一av一免费| 色婷婷国产精品综合在线观看| 日韩精品专区在线影院观看| 亚洲精品国产一区二区三区四区在线| 麻豆91在线观看| 在线观看免费视频综合| 久久久久久久久久久久久夜| 亚洲精品欧美激情| 风间由美性色一区二区三区| 91麻豆精品国产91久久久使用方法 | 久久99国产精品成人| 欧美午夜精品免费| 中文字幕五月欧美| 国产精品一级二级三级| 91麻豆精品久久久久蜜臀| 亚洲美女在线一区| av在线不卡观看免费观看| 2014亚洲片线观看视频免费| 日韩电影免费一区| 欧美性生活久久| 亚洲另类春色校园小说| 国产.精品.日韩.另类.中文.在线.播放 | 免费在线观看视频一区| 欧美日韩一二三| 亚洲精品久久7777| 色综合视频一区二区三区高清| 精品国产成人系列| 久久99精品国产麻豆婷婷| 欧美精品123区| 亚洲午夜激情网页| 欧美视频精品在线观看| 亚洲高清中文字幕| 欧美日韩一区二区三区在线| 一区二区三区视频在线看| 成人av在线一区二区| 国产精品私房写真福利视频| 国产aⅴ精品一区二区三区色成熟| 精品久久国产97色综合| 美国三级日本三级久久99| 91精品国产91久久久久久一区二区 | 亚洲在线观看免费| 欧美日韩国产系列| 日本中文字幕一区二区有限公司| 9191久久久久久久久久久| 午夜精品福利久久久|