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

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

?? i2cslave.asm

?? ADuc812的例程
?? ASM
字號:
;======================================================================
;
; Author        : ADI - Apps              www.analog.com/MicroConverter
;
; Date          : Oct 2000
;
; File          : i2cslave.asm
;
; Hardware      : ADuC812 (commented out = ADuC816/ADuC824)
;
; Description   : Code for a slave in an I2C system. This code will
;               continuously receive and transmit a byte over the I2C
;               interface, then send the received byte out the UART, 
;               then check if a character had been entered in the UART.
;               If so, it will send the ASCII value of the character
;               entered to the slave, the next time it transmits a byte.
;
; Reference     : Tech Note, uC001: "MicroConverter I2C Compatible
;               Interface" find it at www.analog.com/microconverter
;
;======================================================================

$MOD812                         ; use ADuC812 & 8052 predefined symbols
;$MOD816
;$MOD824


;____________________________________________________________________
                                   ; DEFINE VARIABLES IN INTERNAL RAM

BYTECNT         DATA    30h    	; byte counter for I2C routines
INPUT           DATA    31h     ; data recieved from master
OUTPUT          DATA    32h     ; data to be transmitted to master

GO              BIT     00h     ; flag for all the interrupts
FIRST           BIT     01h     ; flag for recieve mode interrupt
TR              BIT     02h     ; flag for transmit mode interrupt

LED             EQU     P3.4    ; P3.4 drives the LED on eval board

;____________________________________________________________________
                                                  ; BEGINNING OF CODE
CSEG
ORG 0000h
        JMP MAIN
;____________________________________________________________________
                                                           ; INT0 ISR
ORG 0003h
        INC     OUTPUT
        RETI
;____________________________________________________________________
                                                            ; I2C ISR
ORG 003Bh  

	JB	I2CTX,TRANSMIT	; if slave-transmitter get data ready

RECEIVE:
        CLR     TR              ; FLAG to indicate that this time
                                ; we were receiving (not trans'ting)
	JB      FIRST, ENDINT1	; no need to store the address
        SETB    GO              ; reception complete 
        MOV     INPUT, I2CDAT   ; store data recieved in INPUT
	JMP     ENDINT1		; ERROR => end interrupt

TRANSMIT:
	SETB    TR		; FLAG to indicate that this time
                                ; we were transmitting (not receiving)
        SETB    GO              ; transmission complete
        MOV     I2CDAT,OUTPUT	; move data to be transmitted into I2CDAT
;        JMP     ENDINT2         ; Note: On the ADuC824/816 the read or
                                ;       write of I2CDAT register 
                                ;       automatically clears i2ci. If
                                ;       I2CI is cleared twice then the
                                ;       microconverter will hang.)

ENDINT1:
        CLR     I2CI            ; clear I2C interrupt bit (812 only)
ENDINT2:
	CLR	FIRST		; address has already been recieved

        RETI


;____________________________________________________________________
                                                       ; MAIN PROGRAM
ORG 0060h
MAIN:

; configure the UART ADuC812
        MOV     SCON,#52h       ; configure UART for 9600baud..
        MOV     TMOD,#20h       ; ..assuming 11.0592MHz crystal
        MOV     TH1,#-3
        SETB    TR1

; configure the UART ADuC824/ADuC816
;        MOV     RCAP2H,#0FFh   ; config UART for 9830baud
;        MOV     RCAP2L,#-5     ; (close enough to 9600baud)
;        MOV     TH2,#0FFh
;        MOV     TL2,#-5
;        MOV     SCON,#52h
;        MOV     T2CON,#34h

;configure and enable interrupts
        MOV     IE2,#01h        ; enable I2C interrupt
;        MOV     IEIP2,#01h      ; enable I2C interrupt
	SETB	EX0		; enable INT0
	SETB	IT0		; INT0 edge triggered
	SETB	EA	        ; allow all the interrupts


;initialise settings
        MOV     I2CADD,#044h    ; slave address is 44h
        MOV     I2CCON,#00h    	; slave mode
	CLR     GO              ; clear flag used in the interrupt

        MOV     OUTPUT,#0       ; TX 0 as default
	SETB	LED

RESET:  
   	SETB	FIRST		; first byte recieved will be the
 				; address => no need to store it.
	JNB     GO,$            ; wait for the interrupt. If it is in 
				; recieve mode, it will wait here for
				; a second interrupt, when it 
				; recieves the data bit
        CLR     GO              ; flag cleared for the next interrupt
	JB	TR,RESET	; if the slave has just transmitted, 
				; wait for another interrupt. If it has 
				; recieved a data byte send it out the UART
  	
SENDUART:	
	CPL	LED		; LED changes each time one byte has been 
				; recieved and another transmitted

	MOV	A,INPUT		; send value recieved out the UART
	CALL	SENDVAL
	MOV	A,#10
	CALL    SENDCHAR	; send LF + CR
	MOV	A,#13
	CALL    SENDCHAR

	JNB     RI, RESET       ; repeat (unless UART data received)


; WHEN UART DATA RECEIVED, MOVE DATA TO I2C OUTPUT...

        MOV     OUTPUT, SBUF    ; update OUTPUT byte to new value
        CLR     RI              ; must clear RI
        JMP     RESET           ; back to main loop



;======================================================================
;                             SUBROUTINES
;======================================================================

;____________________________________________________________________
                                                           ; SENDCHAR
; sends ASCII value contained in A to UART

SENDCHAR:       

        JNB     TI,$            ; wait til present char gone
        CLR     TI              ; must clear TI
        MOV     SBUF,A
        RET


;____________________________________________________________________
                                                          ; HEX2ASCII
; converts A into the hex character representing the value of A's 
; least significant nibble

HEX2ASCII:      

        ANL     A,#00Fh
        CJNE    A,#00Ah,$+3
        JC      IO0030
        ADD     A,#007h
IO0030: ADD     A,#'0'
        RET

        
;____________________________________________________________________
                                                            ; SENDVAL
; converts the hex value of A into two ASCII chars, and then spits 
; these two characters up the UART. does not change the value of A.

SENDVAL: 
        PUSH    ACC
        SWAP    A
        CALL    HEX2ASCII
        CALL    SENDCHAR        ; send high nibble
        POP     ACC
        PUSH    ACC
        CALL    HEX2ASCII
        CALL    SENDCHAR        ; send low nibble
        POP     ACC

        RET
;____________________________________________________________________

END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情一区二区| 26uuu国产一区二区三区| 久久精品国产77777蜜臀| 亚洲国产精品精华液网站| 亚洲精品少妇30p| 伊人色综合久久天天| 亚洲永久免费av| **性色生活片久久毛片| 一区二区三区在线免费视频| **欧美大码日韩| 亚洲伊人伊色伊影伊综合网| 午夜精品一区二区三区三上悠亚| 偷拍一区二区三区四区| 日韩av不卡在线观看| 精品一区二区三区在线视频| 国产在线精品一区二区三区不卡| 国产伦精品一区二区三区免费 | 亚洲欧美视频在线观看视频| 亚洲日本乱码在线观看| 亚洲国产日韩a在线播放性色| 亚洲成人精品在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品一区二区三区不卡| 播五月开心婷婷综合| 91成人免费电影| 精品国产一区二区三区av性色| 国产精品入口麻豆九色| 亚洲线精品一区二区三区| 激情综合色综合久久| 成人av资源站| 91精品国产乱| 亚洲欧洲综合另类| 美女视频一区在线观看| 99视频超级精品| 欧美一区二区三区电影| 在线成人av影院| 国产精品美女久久久久av爽李琼| 亚欧色一区w666天堂| 狠狠色狠狠色综合日日91app| 色欧美乱欧美15图片| 一本一道波多野结衣一区二区 | 久久综合999| 亚洲人成网站影音先锋播放| 美女一区二区久久| 在线观看免费亚洲| 国产精品网站一区| 久久草av在线| 欧美高清视频一二三区| 成人免费在线视频观看| 激情小说欧美图片| 欧美一级片免费看| 亚洲高清一区二区三区| 91视频com| 欧美国产综合色视频| 另类小说综合欧美亚洲| 欧美四级电影在线观看| 国产精品高潮久久久久无| 韩国理伦片一区二区三区在线播放| 欧洲激情一区二区| 综合电影一区二区三区 | 成人亚洲一区二区一| 欧美综合一区二区三区| 欧美激情在线一区二区| 精品在线免费视频| 欧美日韩日日骚| 亚洲一区二区av电影| 91麻豆免费看| 亚洲激情一二三区| 99久久er热在这里只有精品66| 久久婷婷成人综合色| 国产一区二区网址| 日韩三级视频在线观看| 午夜精品一区在线观看| 欧美日韩黄色影视| 天堂影院一区二区| 欧美另类高清zo欧美| 午夜婷婷国产麻豆精品| 欧美色倩网站大全免费| 亚洲成av人片一区二区| 91精品国产综合久久蜜臀| 亚洲大片在线观看| 91麻豆精品国产自产在线| 日韩二区在线观看| 日韩女优电影在线观看| 国产老肥熟一区二区三区| 久久久久久久电影| 大陆成人av片| 国产精品成人一区二区艾草 | 久久久久国产精品麻豆| 国产成人av一区二区三区在线观看| 2023国产一二三区日本精品2022| 极品少妇xxxx精品少妇| 中文字幕的久久| 成人一级视频在线观看| 亚洲综合999| 日韩三级.com| www.日本不卡| 日韩 欧美一区二区三区| 国产三级精品三级在线专区| 91啪在线观看| 久久精品国产在热久久| 欧美国产精品一区| 欧美日韩视频在线第一区| 亚洲va韩国va欧美va| 精品国产乱码久久久久久图片 | 秋霞成人午夜伦在线观看| 欧美精品一区二区在线播放| 99久久久无码国产精品| 日韩av不卡一区二区| 国产精品美女久久久久av爽李琼| 欧美日韩国产成人在线91| 国产精品1区二区.| 亚洲国产精品人人做人人爽| 国产亚洲一二三区| 欧洲av在线精品| 成人a区在线观看| 久久成人精品无人区| 玉足女爽爽91| 欧美韩国日本一区| 日韩写真欧美这视频| 色老汉一区二区三区| 国产91精品久久久久久久网曝门| 日韩精品一级中文字幕精品视频免费观看| 久久综合色播五月| 欧美欧美欧美欧美| 日本韩国一区二区三区| 大陆成人av片| 狠狠色2019综合网| 男人的j进女人的j一区| 亚洲综合色成人| 亚洲欧美怡红院| 国产午夜久久久久| 日韩视频免费观看高清完整版 | 欧美α欧美αv大片| 在线观看亚洲一区| 91亚洲永久精品| 国产成人亚洲精品狼色在线| 久久成人久久爱| 青青草国产成人99久久| 亚洲成人av免费| 一区二区国产视频| 亚洲视频在线观看一区| 中文文精品字幕一区二区| 3atv一区二区三区| 欧美猛男超大videosgay| 欧美最新大片在线看| 一本大道久久a久久精品综合| 国产·精品毛片| 国产很黄免费观看久久| 亚洲va中文字幕| 亚洲一区在线观看免费观看电影高清| 亚洲人午夜精品天堂一二香蕉| 国产精品美女久久久久aⅴ | 免费视频最近日韩| 日本欧美韩国一区三区| 日韩电影在线看| 日本欧美一区二区三区乱码| 亚洲午夜在线视频| 日韩福利电影在线| 首页欧美精品中文字幕| 日韩精品电影一区亚洲| 日本不卡高清视频| 日韩av一区二区三区四区| 秋霞午夜av一区二区三区| 美女视频黄久久| 国产大陆精品国产| 成人性生交大片免费看视频在线| 成人的网站免费观看| 91在线免费视频观看| 欧美一a一片一级一片| 欧美三级乱人伦电影| 777a∨成人精品桃花网| 精品国一区二区三区| 久久久久久久网| 亚洲蜜臀av乱码久久精品| 亚洲第一主播视频| 久久97超碰国产精品超碰| 黄色日韩网站视频| 91麻豆.com| 日韩欧美一区电影| 亚洲国产精品精华液2区45| 一区二区三区免费观看| 久久电影国产免费久久电影 | 调教+趴+乳夹+国产+精品| 免费观看在线综合| 成人免费高清在线观看| 欧美久久久久久久久| 日本一区二区三区视频视频| 亚洲成av人综合在线观看| 亚洲成av人在线观看| 成人一区在线观看| 欧美一区二区三区四区在线观看| 国产精品久久久久久妇女6080| 91年精品国产| 久久综合五月天婷婷伊人| 亚洲激情中文1区| 粉嫩嫩av羞羞动漫久久久| 欧美综合亚洲图片综合区| 欧美激情一区二区三区全黄| 日韩精品免费专区|