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

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

?? slave.asm

?? 51開發板仿真平臺提供的串口調試軟件(sscom32.exe)和虛擬串口軟件 (vspdxp.exe)
?? ASM
字號:
;;;;;;;;;;;;;;;;I2C讀寫的子程序是老外寫的,俺們只是看明白了,然后調用。;;;;;;;;;;;;;;;;;;;;;;;;;
SDA		BIT	P3.7			;THE SDA BIT IS PORT 1 BIT 0
SCL		BIT	P3.5			;THE SCL BIT IS PORT 1 BIT 1
IIC_ADL 	EQU     70H             	;LOCATION FOR 2404 ADDRESS TO ACCESS
IIC_ADH 	EQU     71H
IIC_CT  	EQU     72H             	;COUNTER VARIABLE
IIC_TP  	EQU     73H             	;SCRATCH PAD BYTE
IIC_CT2 	EQU     74H             	;COUNTER FOR ACK POLLING



       		ORG     0000H
		jmp	BEGIN
		org	0003h			;外部中斷0的中斷響應地址。
EXT_INT0:	jmp	INT0ADDRESS		;

		org 	0023h			;串行中斷的中斷響應地址。
COMM_INT: 	jmp 	INTCOMM			;

		org 	0100h			;
BEGIN:  	MOV     SP,#80H			;
		call	COMMINITIALIZATION	;
		call	ENABLEINT0		;
		clr	c			;
		mov	p3.4,c			;AT89C52控制串口。
        	JMP     $

COMMINITIALIZATION:
		mov 	TMOD,#20h      		;設置定時器T1工作方式2。
              	mov 	TL1,#0F3h      		;定時器計數初值,波特率2400。 
              	mov 	TH1,#0F3h      		;定時器重裝值。
              	setb 	EA            		;允許總的中斷。
              	setb 	ES            		;允許串行中斷。
              	mov 	PCON,#00h      		;波特率不倍增。
              	mov 	SCON,#50h      		;設置串口工作方式1,REN=1,允許接收。
              	setb 	TR1            		;定時器開始工作。
              	ret      	        	;返回。

ENABLEINT0:	clr	IE0			;清除外部中斷0標志。
	    	setb	IT0			;設置外部中斷0為負脈沖觸發方式。
    		setb 	EX0 			;允許外部中斷0。
    		setb 	EA			;允許全部中斷。
		ret				;

INTCOMM:  	clr	ES			;屏蔽串口中斷。
		clr	EA			;屏蔽所有中端。
		mov	a,SBUF			;讀數,清空接收緩沖區。
		clr	RI			;清除串口接收標志。
		mov	b,a			;暫存。
		clr	c			;清除c。
		mov	a,b			;
		subb	a,#0CCh			;
		jz	WRIREI2C;		;
		clr	c			;清除c。
		mov	a,b			;
		subb	a,#0CDh			;
		jz	READI2C			;
		setb	EA			;
		reti				;	
WRIREI2C:	jnb	RI,WRIREI2C		;
		mov	a,SBUF			;
		clr	RI			;
		mov	IIC_ADL,a		;
WRIREI2C_1:	jnb	RI,WRIREI2C_1		;
		mov	a,SBUF			;
		clr	RI			;
		call	WRBYT			;
		call	ACKPOL			;
		clr	c			;
		mov	p3.4,c			;釋放串口。
		setb	ES			;
		setb	EA			;
		reti				;
READI2C:	jnb	RI,READI2C		;
		mov	a,SBUF			;
		clr	RI			;
		mov	IIC_ADL,a		;
		call	RDBYT			;
		mov	SBUF,a			;
READI2C_1:	jnb	TI,READI2C_1		;
		clr	TI			;
		clr	c			;
		mov	p3.4,c			;釋放串口。
		setb	ES			;
		setb	EA			;
		reti				;

INT0ADDRESS:	setb	c			;
		mov	p3.4,c			;AT89C4051控制串口。
		nop				;
		nop				;
		reti				;

;*********************************************************************
; READ A BYTE "RANDOM READ SEQUENCE".  THE ADDRESS TO READ IS STORED *
;  IN IIC_AD.  THE DATA FROM THE DUT IS STORED IN IIC_DA.               *
;*********************************************************************
RDBYT:  LCALL   START           ; READ A BYTE FROM THE ADDRESS INDICATED
        MOV     A,IIC_ADH          ;  IN 'IIC_AD'
	CLR	C
	RLC	A
	ORL	A,#0A0H         ; BUILD SLAVE ADDRESS FOR WRITE
        MOV     IIC_TP,A
	LCALL	OUTBYT          ; SEND SLAVE ADDRESS
	LCALL	ACK             ; SEND ACKNOWLEDGE
        MOV     A,IIC_ADL
	LCALL	OUTBYT          ; SEND WORD ADDRESS
	LCALL	ACK             ; SEND ACKNOWLEDGE
	LCALL	START           ; SEND START COMMAND
        MOV     A,IIC_TP          ; BUILD SLAVE ADDRESS FOR READ
	ORL	A,#01H          ; R/W BIT = 1
	LCALL	OUTBYT          ; SEND SLAVE ADDRESS
	LCALL	ACK             ; SEND ACKNOWLEDGE
	LCALL	INBYT           ; READ DATA FROM 2404
	LCALL	NACK            ; CLOCK WITHOUT ACKNOWLEDGE
	LCALL	STOP            ; SEND STOP COMMAND
	RET
;**********************************************************************
; WRITE A BYTE "BYTE WRITE SEQUENCE".  THE ADDRESS TO WRITE IS STORED *
;  IN IIC_AD.  THE DATA TO WRITE IS STORED IN IIC_DA.                    *
;**********************************************************************
WRBYT:                            ; WRITE TO BYTE POINTED TO BY ADDR THE
        MOV     IIC_TP,A          ; VALUE IN LOCATION 'DATA'
	LCALL	START           ; SEND START COMMAND
        MOV     A,IIC_ADH          ; BUILD SLAVE ADDRESS FOR WRITE
	CLR	C
	RLC	A
	ORL	A,#0A0H
	LCALL	OUTBYT          ; SEND SLAVE ADDRESS
	LCALL	ACK             ; SEND ACKNOWLEDGE
        MOV     A,IIC_ADL
	LCALL	OUTBYT          ; SEND WORD ADDRESS
	LCALL	ACK             ; SEND ACKNOWLEDGE
        MOV     A,IIC_TP
	LCALL	OUTBYT          ; SEND WRITE DATA
	LCALL	ACK             ; SEND ACKNOWLEDGE
	LCALL	STOP            ; SEND STOP
	RET
;***************************************************************
; READ 8 BITS FROM THE DUT. THE RESULTS ARE RETURNED IN IIC_DA. *
;***************************************************************
INBYT:  SETB    SDA             ; READ 8 BITS, MAKE SDA AN INPUT
        MOV     IIC_CT,#08H
LOOPI:	LCALL	CLOCK           ; CLOCK DATA
	RLC	A               ; ROLL IN NEXT BIT FROM DUT
        DJNZ    IIC_CT,LOOPI     ; LOOP UNTIL 8 BITS ARE READ
	RET
;*********************************************************
; WRITE 8 BITS TO THE DUT. THE DATA TO SEND IS IN IIC_DA. *
;*********************************************************
OUTBYT: MOV     IIC_CT,#08H      ; PREPARE TO SHIFT OUT 8 BITS
LOOPO:  RLC     A               ; ROTATE BIT TO SEND INTO CARRY FLAG
	MOV	SDA,C		; SEND CARRY TO SDA
	LCALL	CLOCK           ; SEND CLOCK SIGNAL TO DUT
        DJNZ    IIC_CT,LOOPO     ; LOOP UNTIL ALL 8 BITS HAVE BEEN SENT
	RET
;*********************************************************************
; PERFORM ACKNOWLEDGE POLLING TO DETERMINE WHEN THE WRITE CYCLE      *
;  COMPLETES.  UPON RETURN FROM THIS ROUTINE THE CARRY BIT INDICATES *
;  WHETHER THE DUT EVER ACKNOWLEDGED THE WRITE.  CARRY=0 PART        *
;  ACKNOWLEDGED, CARRY=1 NO ACKNOWLEDGE RECEIVED.                    *
;*********************************************************************
ACKPOL: MOV     IIC_CT2,#080H    ; MAX NUMBER OF TIMES TO CHECK THE PART
AKLOOP: DJNZ    IIC_CT2,LOOK     ; RETURN IF THE PART
	SJMP	OUTACK		;  NEVER ISSUES AN ACKNOWLEDGE.
LOOK:	LCALL	START           ; SET UP FOR A READ
	MOV	A,#0A0H         ; MAKE SLAVE ADDRESS FOR A READ
	LCALL	OUTBYT          ; SEND SLAVE ADDRESS
	LCALL	NACK            ; SEND ACKNOWLEDGE
	JC	AKLOOP		; LOOP IF NO ACKNOWLEDGE RECEIVED
OUTACK:	LCALL	STOP		; ISSUE A STOP BEFORE RETURNING
	RET
;***********************
; ISSUE A STOP COMMAND *
;***********************
STOP:   CLR     SDA             ; SEND STOP CONDITION TO DUT, SDA LOW
	SETB	SCL		; SCL HIGH
	NOP			; MAKE SUTE THE SET UP TIME IS VALID
	NOP
	NOP
	NOP
	SETB	SDA		; SDA HIGH
	RET
;************************
; ISSUE A START COMMAND *
;************************
START:  SETB    SDA             ; SEND START CONDITION TO DUT, SDA HIGH
	SETB	SCL		; SCL HIGH
	NOP			; MAKE SURE SCL SET UP TIME IS VALID
	NOP
	NOP
	NOP
	CLR	SDA		; SDA LOW
	NOP			; MAKE SURE THE SET UP TIME IS VALID
	NOP
	NOP
	NOP
	CLR	SCL		; SCL LOW
	RET
;********************************************************
; ISSUE AN ACKNOWLEDGE.  THE ACK ROUTINE DOES NOT CHECK *
;  TO SEE IF THE DUT ACTUALLY ISSUES AN ACKNOWLEDGE.    *
;********************************************************
ACK:    CLR     SDA             ; PERFORM AN ACKNOWLEDGE, SDA LOW
	LCALL	CLOCK           ; GENERATE A CLOCK PULSE
	RET
;*********************************************
; CLOCK IN A 1 TO THE DUT.  THIS ROUTINE IS  *
;  CALLED WHEN A READ SEQUENCE HAS FINISHED. *
;*********************************************
NACK:   SETB    SDA             ; CLOCK A 1 INTO THE DUT, SDA HIGH
	LCALL	CLOCK           ; GENERATE A CLOCK PULSE
	RET
;*****************************************************************
; ISSUE A CLOCK PULSE.  WHILE THE CLOCK IS HIGH THE VALUE ON THE *
;  SDA LINE IS PLACED IN THE CARRY FLAG.  WHEN A READ IS TAKING  *
;  PLACE THE CARRY FLAG WILL INDICATE THE VALUE FROM THE DUT.    *
;*****************************************************************
CLOCK:  NOP                     ; MAKE SURE THE DATA SET UP TIME IS VALID
	SETB	SCL             ; GENERATE A CLOCK PULSE, SCL HIGH
	NOP			; MAKE SURE CLOCK HIGH TIME IS VALID
	NOP
	NOP
	MOV	C,SDA		; READ STATE ON SDA, SAVE IN CARRY FLAG
	CLR	SCL		; SCL LOW
	RET

	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩你懂得| 国产视频911| 制服丝袜av成人在线看| 精品国精品国产尤物美女| 久久国产综合精品| 欧美日韩视频一区二区| 日本中文字幕一区二区有限公司| 色先锋aa成人| 五月天激情综合网| 欧美xxxxxxxxx| 波多野结衣在线一区| 亚洲精品久久久蜜桃| 99国产麻豆精品| 亚洲va欧美va人人爽| 色域天天综合网| 丝袜美腿成人在线| 国产亚洲成aⅴ人片在线观看| 黑人巨大精品欧美一区| 欧美成人a∨高清免费观看| 日韩国产精品久久久| www激情久久| 91视视频在线观看入口直接观看www| 国产偷国产偷精品高清尤物| 国产精品免费看片| 一本高清dvd不卡在线观看| 天天综合网天天综合色| 久久久久久久久久看片| 色综合天天综合色综合av| 日韩电影在线一区| 亚洲国产成人午夜在线一区 | 国产精品久久久久久久久免费桃花 | 91论坛在线播放| 日本在线不卡视频| 国产精品无人区| 在线电影一区二区三区| 免费观看在线色综合| 国产精品三级av在线播放| 欧美日韩国产影片| 国产99久久久国产精品免费看| 国产农村妇女毛片精品久久麻豆| 国产精品 日产精品 欧美精品| 国产女人aaa级久久久级| 亚洲与欧洲av电影| 欧美精品亚洲二区| 岛国精品在线观看| 日韩和欧美一区二区三区| 欧美videossexotv100| 99久久精品情趣| 亚洲一本大道在线| 国产午夜精品美女毛片视频| 欧美日韩亚洲国产综合| 成人午夜av在线| 奇米888四色在线精品| 精品国产免费久久| 欧美优质美女网站| 成人自拍视频在线观看| 日本sm残虐另类| 亚洲啪啪综合av一区二区三区| 欧洲精品视频在线观看| 粉嫩aⅴ一区二区三区四区| 亚洲丝袜自拍清纯另类| 精品国产欧美一区二区| 欧美裸体bbwbbwbbw| 99免费精品在线| 国产麻豆精品在线| 五月天丁香久久| 91在线免费视频观看| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲精品国产第一综合99久久 | 亚洲不卡av一区二区三区| 久久久不卡网国产精品二区| 91丨porny丨最新| 国产精品香蕉一区二区三区| 肉色丝袜一区二区| 夜夜嗨av一区二区三区网页 | 精品日韩在线观看| 欧美日韩免费电影| 91国偷自产一区二区三区成为亚洲经典 | 欧美一区二区三区在线视频| 日本精品一区二区三区四区的功能| 日本成人中文字幕| 一区二区三区在线视频观看58| 日韩一级片在线播放| 欧美日韩日日摸| 在线观看视频一区二区| 91小视频在线免费看| 成a人片国产精品| 国产精品自拍av| 久久成人羞羞网站| 蜜桃av噜噜一区| 亚洲免费视频成人| 中文字幕一区二区在线观看| 欧美国产日韩亚洲一区| 国产亚洲福利社区一区| 久久午夜国产精品| 久久综合av免费| 精品国产一区二区亚洲人成毛片| 色婷婷综合激情| 99re这里都是精品| jiyouzz国产精品久久| 美女诱惑一区二区| 美女脱光内衣内裤视频久久影院| 波多野洁衣一区| 国产精品一色哟哟哟| 国产一本一道久久香蕉| 国产伦精品一区二区三区免费迷 | 久久综合九色综合97婷婷女人| 欧美性生活大片视频| 在线亚洲+欧美+日本专区| 色婷婷亚洲综合| 欧美亚洲国产怡红院影院| 欧美综合一区二区| 欧美日韩三级视频| 91精品国产麻豆| 精品日韩在线一区| 国产午夜精品一区二区三区嫩草 | 日韩欧美电影一二三| 欧美一区午夜视频在线观看| 日韩午夜小视频| 国产资源在线一区| 日产国产高清一区二区三区| 奇米色777欧美一区二区| 亚洲午夜久久久久久久久久久 | 精品一区二区三区免费观看| 亚洲成人一区在线| 日韩电影在线看| 亚洲一区二区精品久久av| 午夜欧美在线一二页| 麻豆成人综合网| 国产成人免费视频一区| 不卡免费追剧大全电视剧网站| 国产精品影视网| 99精品偷自拍| voyeur盗摄精品| 成人午夜看片网址| 91久久人澡人人添人人爽欧美 | 在线观看亚洲精品视频| 欧美伦理影视网| 欧美精品一区视频| 国产精品久久久久影院色老大| 久久日韩精品一区二区五区| 免费久久精品视频| 国产精品77777| 国产在线视频不卡二| 成人av资源在线| 欧美在线一二三四区| 日韩一区二区电影| 欧美一区二区日韩| 91精品欧美福利在线观看| 精品国产1区二区| 亚洲欧美综合另类在线卡通| 国产精品国产三级国产普通话99| 久久久精品影视| 久久久久九九视频| 亚洲精品久久久蜜桃| 日本成人超碰在线观看| 国产91清纯白嫩初高中在线观看 | 色欧美88888久久久久久影院| 北条麻妃国产九九精品视频| 欧美色网一区二区| www国产亚洲精品久久麻豆| 亚洲色图丝袜美腿| 免费看欧美女人艹b| 91在线免费视频观看| 日韩精品一区二区三区swag | 粗大黑人巨茎大战欧美成人| 高清久久久久久| 欧美日韩一区二区三区高清| 26uuu亚洲| 一区二区高清在线| 午夜精品福利在线| 成人在线综合网站| 91精品国产综合久久精品性色| 日韩三级中文字幕| 久久影院午夜片一区| 亚洲综合视频网| 国产成人亚洲综合a∨猫咪 | 国产精品一区一区三区| 日本黄色一区二区| 久久理论电影网| 亚洲成人资源网| 波多野结衣亚洲一区| 欧美大片一区二区| 亚洲一区二区三区在线看| 国产成人精品一区二区三区四区| 99久久久久久| 欧美视频一区二区三区四区| 国产午夜精品一区二区三区视频| 亚洲天堂av老司机| 国内精品久久久久影院一蜜桃| 成人午夜看片网址| 日韩精品一区国产麻豆| 亚洲一二三区视频在线观看| 福利电影一区二区| 日本在线不卡视频一二三区| 色天使久久综合网天天| 欧美激情一二三区| 国内外精品视频| 91精品欧美一区二区三区综合在| 国产视频亚洲色图|