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

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

?? linmac.a51

?? 由LPC932構成的LIN BUS節點實例 LIN總線驅動程序
?? A51
?? 第 1 頁 / 共 2 頁
字號:
_sendCRC:			MOV A,R7; LinCRC
						CPL A	; A=#0FFH-A
						MOV R3,A;_LinLastSent
						MOV SBUF,A
__RxReti:			AJMP _RxReti
						

;********************************************************************************
;Evaluating the ID-field
;********************************************************************************
_evaluate_ID:
						MOV A,SBUF
						MOV LinID,A
				ANL LinID,#3FH
						RL A
						RL A	  ; ACC = FL,FL,X,X|X,X,P1,P0
						; get Frame-Length
						MOV LinFrameLength,#2
						RLC A
						JNC _addRLC ; ---> one additional RLC has to be done
						MOV LinFrameLength,#4
					RLC A
						JNC _getParity
						MOV LinFrameLength,#8
						ljmp _getParity
_addRLC:		RLC A				
						; ACC = X,X,X,X,P1,P0,C,FL
_getParity:			ANL A,#0CH
						MOV _Parity,A

_TestParity :
						;Parity Check
						MOV A,LinID ; renew FrameID in accumulator
						ANL A,#17H  ; Mask Accumulator for Parity0
						MOV C,P 	; read Parity from Program Status Word
						MOV calcPar0,C	; store Parity 0
						MOV A,LinID	;renew FrameID in accumulator
						ANL A,#3AH  ; Mask Accumulator for Parity1
						MOV C,P 	
						CPL C			; odd Parity 
						MOV calcPar1,C ;store Parity 0
				
	    ;Parity Ready
		;check parity-bits
						MOV A,_Parity ; _Parity is in bitadressable RAM ... Bit 2&3 are Par0 & Par1, Bit 5&6 are calcPAr0 and calcPar1
						SWAP A
						CJNE A,_Parity,_Parity_Error
						CLR	LinParityError
				 
						SETB	LinIDreceived
						
						MOV _ByteLeft,LinFrameLength
						DEC _ByteLeft
						MOV _LinCRC,#0
				
						AJMP _Eventreturn
				
_Parity_Error:
						SETB LinParityError
						AJMP _Errorreturn	
						
						
;#############################################################################
;# UART Tx-routine													#
;#############################################################################
IntUARTTx:
			PUSH ACC
			PUSH PSW
			
			ORL PSW,#18H;  : regbank 3
			CLR TI
			
			MOV A,LinState
			CJNE A,#07H,_TxReti ;test Flags
			
			SETB LinTxData; this Bit indicates, that the node is tranmitting data
			;send the first data byte
			MOV A,#LinData
			ADD A,R6; _ByteLeft
			MOV R1,A
			MOV  SBUF,@R1; send the first Databyte
			MOV _LinLastSent,@R1

_TxReti:			
			POP PSW
			POP ACC 		
			RETI

						
$IF (_HW_SYNC_COUNTER) 
;####################################################################################
;# Timer1 ISR															       #
;####################################################################################
IntTimer1:
						PUSH PSW
						
						ORL PSW,#18H;	; use Registerbank 3
						
						CPL TR0 ;enable/disable timer0 for bittiming evaluation
						CLR TF1
						CLR TR1   ; stop counter
						JNB TR0,_LoadNewBaudVal 					
						;start of counter
						MOV TH1,#0FFH ;preload counter
						MOV TL1,#0FCH
						SETB TR1 ;start counter
						
						POP PSW
						RETI
$ENDIF	

$IF (_SW_SYNC_COUNTER)
;######################################################################################
;# external Int1 ISR														 #
;######################################################################################
IntExt1:
						PUSH PSW
						
						ORL	PSW,#18H;	; use Registerbank 3
						SETB TR0
						DJNZ R4,_counting ; R4 in Registerbak 2 is _SyncEdgeCount
						CLR TR0
						CLR EX1 ; disable external int
						SJMP _LoadNewBaudVal
_counting:
						POP PSW
						RETI
$ENDIF

;****************************
;calculating and loading the new
;baudrate. Same function for HW or SW counter
_LoadNewBaudval:  
						PUSH ACC
						PUSH B

						;calculating the new baudrategenerator reload value from TH0 and TL0
						;the formular is:
						;THL0/4 with round on the last bit
						MOV B,TH0
						MOV A,TL0
						MOV R0,#2
						
_div_2_16:
						XCH A,B   ; divide 16bit-value by 2
						CLR C
						RRC A	  ; High-byte
						XCH A,B
						RRC A	  ; Low-byte
						DJNZ R0,_div_2_16 ; 2 times to divide by 4
						
						JNC _no_round_up  ; test if the result has to be round up
						INC A		  ; round up
						JNZ _no_high_inc ; test if high-byte also needs to be increased due to the round up
						INC B
						
_no_high_inc:
_no_round_up:		
						;flush the UART-buffer, so that the next falling edge is interpreted as Start of the Startbit
						MOV BRGCON,#2	; stop the generator
						CLR ESR 	; disable receive-int
						MOV BRGR1,#0	; maximum baudrate
						MOV BRGR0,#0
						MOV BRGCON,#3	;enable baudrategenerator
						CLR RI		
						JNB RI,$	;wait for next receive-int
						;load the calculated value into the baudrategenerator
						MOV BRGCON,#2	;disable baudrategenerator
						MOV BRGR1,B		 ; load high byte
						MOV BRGR0,A	; load low byte
						MOV BRGCON,#3	; start generator again
						
						SETB LinSynced
						POP B
						AJMP _EventReturn ; this Symbol can be found in the Rx-ISR. A little bit cruel to jump into another
											   ; ISR, but at least it safes some byte.

;############################################################################
;# Initialisation Routine										       #
;############################################################################
InitLinMac:
				; reset all Flags
						MOV LinState,#0    
						MOV LinError,#0
				;Initialise Baudrategenerator for default baudrate
						MOV BRGCON,#2
						MOV BRGR0,#BAUDGENELOW
						MOV BRGR1,#BAUDGENEHIGH
				; put UART to 8-bit mode
						ANL PCON,#0BFH	  
						MOV SCON,#050H
						ORL PCON,#040H	  ; Make FE-bit visible
						MOV SSTAT,#21H	  ; seperate Rx and Tx int, Break generates an Int
				;initialise Sync-Sequence evaluation
						MOV TAMOD,#0 ;set Timer mode
						$IF (_HW_SYNC_COUNTER) 
						MOV TMOD,#01010001b  ; Timer0 as 16bit Timer
													; Timer1 as 16bit counter with preloadvalue
						CLR TR1
						$ENDIF
						$IF (_SW_SYNC_COUNTER)
						ANL TMOD,#0F0H
						ORL TMOD,#01H	    ; Timer0 as 16bit Timer
						SETB IT1	    ; edge trigger
						$ENDIF
						
						MOV BRGCON,#3	 ;start baudrate generator
						
						ANL SSTAT,#0F1H ; reset the SSTAT register
						ANL SCON,#7CH	; CLR TI, CLR RI, CLR FE
				 ;set interrupt priorities
						;UART is absolutely not time-critical, so Priority 0 (reset value)
						;The Sync-Measurement is very time-critical, so it gets Priority 3 (Ext1 or Timer1)
						$IF (_HW_SYNC_COUNTER) 
						ORL IP0H,#08H
						ORL IP0,#08H
						$ENDIF
						$IF (_SW_SYNC_COUNTER)
						ORL IP0H,#04H
						ORL IP0,#04H
						$ENDIF
						
				;allow UART Tx and Rx interrupt 
						SETB ESR
						SETB EST
						RET

END









































































?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美怡红院视频| 99re6这里只有精品视频在线观看| 久久日韩粉嫩一区二区三区| 久久蜜桃av一区精品变态类天堂| 久久久久久久久久久久久夜| 中文字幕一区二区三中文字幕| 国产精品短视频| 婷婷开心久久网| 国产精品99久久久久久久女警| 懂色av一区二区在线播放| 欧美亚洲综合另类| 亚洲国产高清在线观看视频| 亚洲午夜久久久久| 风流少妇一区二区| 91精品国产手机| 国产精品乱码人人做人人爱| 日欧美一区二区| 99久久久久久99| 久久先锋资源网| 天堂一区二区在线免费观看| a美女胸又www黄视频久久| 欧美成人精品二区三区99精品| 一区二区三区蜜桃| 久久久青草青青国产亚洲免观| 亚洲一区二区三区四区五区中文| 国产成人精品www牛牛影视| 欧美男男青年gay1069videost | 亚洲综合色成人| 成人久久18免费网站麻豆| 久久色.com| 日本不卡视频在线观看| 欧美在线视频你懂得| 亚洲欧美一区二区三区极速播放| 制服丝袜国产精品| 在线亚洲一区二区| 久久蜜桃一区二区| 成人久久视频在线观看| 日韩二区三区四区| 欧美老年两性高潮| 亚洲一区二区三区自拍| 91色综合久久久久婷婷| 欧美不卡一区二区| 全部av―极品视觉盛宴亚洲| 91亚洲男人天堂| 久久国产综合精品| 97久久精品人人做人人爽50路| 国产精品剧情在线亚洲| 国产激情偷乱视频一区二区三区| 久久久久久久久久久久久女国产乱| 国产精品一卡二卡| 久久免费视频一区| 91丝袜美腿高跟国产极品老师| 亚洲欧美一区二区不卡| 欧洲日韩一区二区三区| 视频一区中文字幕国产| 欧美成人精品福利| 99久久免费国产| 日韩和欧美一区二区三区| 欧美videos大乳护士334| 成人一区在线观看| 这里只有精品电影| 99精品国产视频| 久久男人中文字幕资源站| 91丨porny丨户外露出| 亚洲美女区一区| 欧美三级资源在线| 亚洲天堂网中文字| 欧美人体做爰大胆视频| www.激情成人| 国产毛片精品一区| 激情av综合网| 国产揄拍国内精品对白| 精品中文字幕一区二区小辣椒| 亚洲国产成人高清精品| 欧美中文字幕一区二区三区亚洲| 免费国产亚洲视频| 亚洲精品乱码久久久久久| 日韩一区二区高清| 秋霞国产午夜精品免费视频| 色婷婷av一区二区三区大白胸| 丝袜美腿一区二区三区| 欧美另类一区二区三区| 成人av中文字幕| 中文字幕在线不卡| 日本视频在线一区| 成人午夜私人影院| 亚洲国产日韩在线一区模特| 精品国产一区二区三区四区四 | 91丨九色丨蝌蚪丨老版| 尤物在线观看一区| 欧美嫩在线观看| 丰满少妇久久久久久久| 亚洲一区二区三区四区的| 亚洲精品网站在线观看| 亚洲视频香蕉人妖| 亚洲一卡二卡三卡四卡| 国产精品欧美极品| 日韩码欧中文字| 亚洲国产三级在线| 狂野欧美性猛交blacked| 日本va欧美va瓶| 蜜臀av性久久久久蜜臀av麻豆| 免费高清在线一区| 国产精品资源在线| 色老头久久综合| 欧美吞精做爰啪啪高潮| 99久久婷婷国产| 日韩av网站在线观看| 99九九99九九九视频精品| 欧美欧美欧美欧美首页| 丁香婷婷综合激情五月色| 国产乱码精品一区二区三区av | 欧美日韩你懂得| 国产露脸91国语对白| 人人爽香蕉精品| 亚洲乱码国产乱码精品精小说 | 亚洲一区二区三区精品在线| 亚洲尤物视频在线| 肉色丝袜一区二区| 国产不卡视频在线观看| 欧美日韩免费视频| 精品国偷自产国产一区| 国产精品久久久久久久久免费丝袜| 一区二区三区产品免费精品久久75| 五月综合激情婷婷六月色窝| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日本道色综合久久| 精品美女一区二区| 亚洲一区精品在线| 99久久er热在这里只有精品15 | 欧美午夜一区二区| 99久久婷婷国产| 欧美精品免费视频| 欧美一区二区三区免费| 2017欧美狠狠色| 亚洲自拍与偷拍| proumb性欧美在线观看| 日韩欧美www| 午夜精品在线视频一区| 91久久精品一区二区三| 91精品国产黑色紧身裤美女| 日韩一级欧美一级| 国产欧美日韩在线| 亚洲国产精品久久人人爱蜜臀 | av在线综合网| 色综合久久久久久久久久久| 日韩精品专区在线影院观看| 午夜视频在线观看一区二区| av激情综合网| 中文字幕免费一区| 高清视频一区二区| 国产三级精品视频| 国产suv精品一区二区三区| 26uuu精品一区二区三区四区在线| 视频一区欧美精品| 日韩午夜三级在线| 久久国产免费看| 久久众筹精品私拍模特| 九一九一国产精品| 久久久精品国产免费观看同学| 国产一区二区久久| 久久精品无码一区二区三区| 国产成人8x视频一区二区| 国产日韩欧美不卡在线| 北条麻妃国产九九精品视频| 国产精品的网站| 日本高清视频一区二区| 亚洲va欧美va天堂v国产综合| 欧美日韩一级二级| 久久国产精品72免费观看| 欧美国产日韩a欧美在线观看| 色综合色狠狠综合色| 午夜电影网亚洲视频| 久久婷婷成人综合色| 91色视频在线| 免费在线看一区| 国产精品国产馆在线真实露脸| 色哟哟一区二区在线观看| 蜜桃传媒麻豆第一区在线观看| 久久精品视频网| 欧美日韩在线观看一区二区 | 精品国产精品一区二区夜夜嗨| 国产成人精品免费在线| 亚洲国产精品精华液网站| 337p粉嫩大胆色噜噜噜噜亚洲| 91网站黄www| 国产精品中文字幕欧美| 日韩精品欧美成人高清一区二区| 国产精品美女久久久久高潮| 欧美一级高清大全免费观看| 北条麻妃国产九九精品视频| 国产尤物一区二区| 青青草原综合久久大伊人精品优势| 国产欧美日韩精品a在线观看| 日韩欧美视频在线| 欧美专区亚洲专区| 色综合天天综合网天天看片| 国产精品一区二区三区乱码| 亚洲人被黑人高潮完整版| 26uuu亚洲综合色欧美|