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

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

?? linmac.a51

?? 基于philips的932單片機的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一区二区三区免费野_久草精品视频
日韩高清在线电影| 精品在线播放午夜| 一本大道av一区二区在线播放| 久久久99免费| 韩国成人在线视频| 欧美xxxxxxxx| 另类小说综合欧美亚洲| 欧美一区二区私人影院日本| 日韩制服丝袜av| 欧美一区二区三区免费大片| 免费一级片91| 日韩欧美视频在线| 精品伊人久久久久7777人| 欧美电影精品一区二区| 久久精工是国产品牌吗| 精品美女在线观看| 国产一区二区中文字幕| 久久久精品中文字幕麻豆发布| 国产一区二区三区黄视频 | 国产麻豆日韩欧美久久| 久久一夜天堂av一区二区三区| 久久99精品久久久久久| 精品国产123| 国产成人av电影在线| 国产精品欧美一区喷水| 91麻豆成人久久精品二区三区| 一级特黄大欧美久久久| 欧美日韩一二三区| 蜜臀久久99精品久久久久久9| 一区二区三区久久| 欧美三级三级三级爽爽爽| 日韩av不卡在线观看| 精品欧美一区二区在线观看| 国产精品羞羞答答xxdd| 1000精品久久久久久久久| 在线看日本不卡| 日韩精品一级中文字幕精品视频免费观看 | 日本不卡123| 26uuu国产日韩综合| 成人精品一区二区三区中文字幕| 亚洲色图视频免费播放| 欧美日韩综合不卡| 精品在线观看视频| 亚洲欧洲99久久| 欧美日韩在线直播| 狠狠色狠狠色综合系列| 国产精品电影一区二区三区| 欧美午夜不卡在线观看免费| 免费成人av在线播放| 国产欧美精品国产国产专区| 色综合欧美在线| 天堂影院一区二区| 久久久精品蜜桃| 色婷婷综合视频在线观看| 亚洲成人自拍偷拍| 久久影院视频免费| 在线视频欧美精品| 九色综合国产一区二区三区| 中文字幕亚洲精品在线观看| 欧美日韩电影在线| 国产激情精品久久久第一区二区 | 综合分类小说区另类春色亚洲小说欧美| 欧美性极品少妇| 狠狠色综合日日| 亚洲九九爱视频| 精品粉嫩超白一线天av| 欧美一级在线观看| 国产精品第一页第二页第三页| 亚洲黄色小说网站| 色综合天天综合给合国产| 国产精品久久久久久久久免费相片| 在线免费观看不卡av| 久久99这里只有精品| 中文字幕一区二区三区在线播放 | 欧美艳星brazzers| 国产黄色91视频| 午夜精品久久久久久久99樱桃| 国产日韩欧美综合一区| 欧美乱妇15p| 99久久精品免费看| 狠狠色狠狠色综合日日91app| 亚洲男女毛片无遮挡| 久久久久国色av免费看影院| 欧美日韩电影在线| 91视频免费播放| 国产精品18久久久久久vr| 亚洲chinese男男1069| 中文字幕高清不卡| 欧美刺激脚交jootjob| 91精品1区2区| 成人午夜在线免费| 国产一区二区三区四| 天天影视色香欲综合网老头| 亚洲视频电影在线| 中文子幕无线码一区tr| 日韩精品中文字幕在线不卡尤物| 欧美特级限制片免费在线观看| 亚洲精品免费看| 另类小说综合欧美亚洲| 久久嫩草精品久久久精品一| 欧美日韩国产免费| 一本到不卡精品视频在线观看 | 日韩福利电影在线| 国产成人久久精品77777最新版本| 欧美美女bb生活片| 亚洲欧美日韩国产成人精品影院| 日韩和的一区二区| 99国产一区二区三精品乱码| 精品日产卡一卡二卡麻豆| 一个色综合网站| 成人久久18免费网站麻豆| 欧美成人a在线| 免费成人你懂的| 91精品福利在线一区二区三区| 亚洲欧美一区二区三区国产精品| 国内精品嫩模私拍在线| 制服丝袜日韩国产| 日韩高清在线观看| 91麻豆精品国产91久久久久久久久 | 亚洲视频在线观看三级| 成人网页在线观看| 久久亚洲私人国产精品va媚药| 成人小视频免费在线观看| 亚洲va欧美va国产va天堂影院| 狠狠久久亚洲欧美| 成人精品国产一区二区4080| 欧美日韩电影在线| 亚洲成人www| 日韩一区二区视频| 激情综合亚洲精品| 久久综合九色综合久久久精品综合| 麻豆国产精品官网| 精品日韩欧美在线| 国产曰批免费观看久久久| 日本三级亚洲精品| 午夜视频一区在线观看| 91精品久久久久久久久99蜜臂| 色综合天天综合网天天看片| va亚洲va日韩不卡在线观看| 99视频精品全部免费在线| 爽爽淫人综合网网站| 日韩一区二区麻豆国产| 国产精品1区二区.| 亚洲欧美在线视频| 欧美日韩一级视频| 国产在线麻豆精品观看| 国产欧美一区二区三区沐欲| 99这里只有精品| 日本美女视频一区二区| 国产日本欧洲亚洲| 在线看国产日韩| 国产一区二区三区免费播放| 国产欧美一区二区三区在线老狼| 99久久99久久免费精品蜜臀| 五月激情六月综合| 国产午夜精品理论片a级大结局| 99久久婷婷国产| 老司机精品视频在线| 中文字幕亚洲欧美在线不卡| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品久久久久久久久图文区| 国产1区2区3区精品美女| 国产精品久久久久9999吃药| 欧美日韩国产另类一区| 国产成人自拍在线| 男女性色大片免费观看一区二区| 2020日本不卡一区二区视频| 色综合天天狠狠| 在线综合视频播放| 国产色爱av资源综合区| 国产精品久久久久久久久久久免费看 | 国产精品色婷婷| 日韩欧美国产综合一区 | 日韩欧美中文字幕一区| av亚洲产国偷v产偷v自拍| 美女视频黄久久| 午夜电影网亚洲视频| 中文字幕五月欧美| 久久久久久一二三区| 久久男人中文字幕资源站| 欧美日韩不卡在线| 欧美午夜精品免费| 99re66热这里只有精品3直播| 精品在线播放免费| 久热成人在线视频| 日日夜夜免费精品| 亚洲国产成人av好男人在线观看| 欧美激情一区二区三区在线| 日韩一级免费观看| 日韩精品专区在线| 精品成人一区二区三区四区| 欧美日韩免费观看一区二区三区| 99久久综合99久久综合网站| 狠狠色丁香久久婷婷综合_中| 成人高清伦理免费影院在线观看| 国产a久久麻豆| 欧美日韩一级片在线观看| 1024亚洲合集| 性久久久久久久久久久久| 狠狠色2019综合网|