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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wsaa1064.asm

?? c8051f020源代碼39個(gè) 使用Silicon Labs IDE 調(diào)試器
?? ASM
字號(hào):
;參考程序B :WSAA1064.ASM程序功能:向顯示器SAA1064送數(shù)據(jù)
;顯示0,1,2,3四位數(shù)要顯示的數(shù)據(jù)在70H--7BH中.
$include (C8051F020.inc)         
 SAA1064ADR      EQU   070H        ; SAA1064芯片的寫地址
   ;SMBus狀態(tài)(SMB9STA):
 SMB_BUS_ERROR   EQU   00H  ;(所有方式)總線錯(cuò)誤
 SMB_START      EQU   08H  
;(MT&MR)主收發(fā)器發(fā)送起始位成功.再將從機(jī)寫地址送SMB0DAT
 SMB_RP_START    EQU   10H  
;(MT&MR)主收發(fā)器重復(fù)發(fā)送起始位成功,再將從機(jī)讀地址送SMB0DAT
 SMB_MTADDACK    EQU   18H  
;(MT)主收發(fā)器發(fā)送從地址+W成功;收到 ACK(從機(jī)應(yīng)答)
;再將從器件的子地址送入SMB0DAT
 SMB_MTADDNACK   EQU   20H  ;(MT)主收發(fā)器發(fā)送從地址+W成功;收到 NACK.
 SMB_MTDBACK     EQU   28H  ;(MT)主收發(fā)器發(fā)送數(shù)據(jù)字節(jié)成功;收到ACK(從機(jī)應(yīng)答)
 SMB_MTDBNACK    EQU   30H  ;(MT)主發(fā)送器發(fā)送數(shù)據(jù)成功;收到NACK(從機(jī)無(wú)應(yīng)答).
 SMB_MTARBLOST   EQU   38H  ;(MT)總線競(jìng)爭(zhēng)失敗
 SMB_MRADDACK    EQU   40H  ;(MR)主收發(fā)器發(fā)送從地址+R成功;收到 ACK(從機(jī)應(yīng)答)
 SMB_MRADDNACK   EQU   48H  ;(MR)主收發(fā)器發(fā)送從地址+R成功;收到NACK
 SMB_MRDBACK     EQU   50H  ;(MR)主收發(fā)器接收數(shù)據(jù)成功;主機(jī)將AA清另 ,發(fā)送ACK
 SMB_MRDBNACK    EQU   58H  ;(MR)主收發(fā)器接收數(shù)據(jù)成功;主機(jī)發(fā)送NACK ,1'STO
DSEG						;	數(shù)據(jù)段;
ORG       30H;
    TRANSMIT_BYTE: DS    1         ;保存SMBus待發(fā)送的字節(jié)
    RECEIVE_BYTE:  DS    1         ;保存SMBus剛收到的字節(jié)
    SLA_ADD:       DS    1         ;保存從地址
    WRI_ADD:       DS    1         ;保存從地址+ WRITE
    READ_ADD:      DS    1         ;保存從地址+ READ
    SUBADDR:       DS    1         ;要訪問(wèn)器件的子地址
   ; 用于暫存數(shù)據(jù)的單元
    DATA_COUNT:    DS    1          ;測(cè)試計(jì)數(shù)器變量
    DATA_BYTE:     DS    1         ;測(cè)試數(shù)據(jù)
    DATA_ADDR:     DS    1         ;測(cè)試存儲(chǔ)器地址
BSEG						       ;	數(shù)據(jù)段;
ORG      00H
    RW:            DBIT  1           ;R/W命令位。L為READ,0為WRITE
    SM_BUSY:       DBIT  1          ;SMBus忙標(biāo)志(軟件保存)
    BYTE_SENT :    DBIT  1  
 CSEG                                 ;代碼段
    ORG      00H                      ;復(fù)位
   LJMP     MAIN
    ORG     03BH                      ;SMBus中斷向量
   LJMP    SMBus_ISR
;主程序
MAIN:   MOV    SP,#7H 
	    MOV    WDTCN,#0DEH       ;禁止看門狗定時(shí)器
        MOV    WDTCN,#0ADH;
        LCALL  PORT_Init        ;初始化I/O端口及時(shí)鐘
        CLR    SM_BUSY          ;為第一次傳輸清除SM_Busy標(biāo)志
        SETB       EA   
		MOV    R1,#50H   
; SAA1064W: 依次連續(xù)寫入5個(gè)數(shù)到SAA1064中去:17H,3FH,06H,5BH,4FH
        MOV     SUBADDR,#00H ; 裝入SAA1064的子地址(SUBADR=00H)
        MOV     DATA_COUNT,#6H         ; 裝入待寫數(shù)據(jù)塊的長(zhǎng)度
        MOV     SLA_ADD,#SAA1064ADR    ; 裝入從器件的寫地址
		MOV     R0,#0                  ; R0做計(jì)數(shù)器用
        LCALL   SEND   
		CLR   EA                       ; 調(diào)用數(shù)據(jù)發(fā)送子程序
    	SJMP   $                       ; 運(yùn)行結(jié)束,原地等待.
TAB:    DB  17H,4fH,5bH ,06H,3FH;送顯示器SAA1064的數(shù)據(jù),顯示3,2,1,0四位數(shù)
;發(fā)送子程序SEND;
;SEND子程序執(zhí)行一次向SAA1064寫入六位數(shù)據(jù)(0,17H,4FH,5BH,06H,3FH)的過(guò)程。
;該子程序管理SM_BUSY位,設(shè)置 RW=WRITE,裝載 SLAW,啟動(dòng)寫操作。
     SEND:
     PUSH     ACC                  ;保存累加器
     JB       SM_BUSY,$            ;等待SMBus空閑
     CLR      RW                    ; RW= 0(寫)
     MOV      A,SLA_ADD             ; 取SLA_ADD到A 
     MOV      WRI_ADD,A            ;將SLA_ADD+ WRITE保存到SLAW
	 SETB     SM_BUSY             ; 占用SMBus
     SETB     STA                 ; 啟動(dòng)發(fā)送過(guò)程
     JB       SM_BUSY,$            ;等待發(fā)送結(jié)束(在中斷中處理)
     POP      ACC     
	 RET               
;SMBus 中斷程序 ,處理SMBUS 中斷
    SMBus_ISR:
    PUSH     PSW                ; 保護(hù)現(xiàn)場(chǎng)
    PUSH     ACC                ; 
    PUSH     DPH                ;  
    PUSH     DPL                ; 
    MOV    A,SMB0STA ;將當(dāng)前狀態(tài)(SMB0STA)裝入累加器.每個(gè)狀態(tài)對(duì)應(yīng)一個(gè)地址偏移量 ;    ANL      A,#7FH     ; 屏蔽最高位
    MOV    @R1,A       ;在50H---60H中存放SMB0STA和SMB0DAT,可查看中斷路徑
	INC    R1
	MOV    @R1,SMB0DAT;
	INC    R1                              
    MOV     DPTR,#SMB_STATE_TABLE ; DPTR指向狀態(tài)表的起始地址
    JMP    @A+DPTR                ;轉(zhuǎn)移到當(dāng)前狀態(tài)
;SMBuS狀態(tài)表                      ;(SMB0STA  =00H)
    SMB_STATE_TABLE: ; SMB_BUS_ERROR總線錯(cuò)誤(對(duì)所有方式)
     ORG   SMB_STATE_TABLE+SMB_BUS_ERROR    
    SETB   STO         ; 停止位置1,使硬件復(fù)位
    JMP   SMB_ISR_END    ; 中斷返回
 ;SMB_START     ;                  (SMB0STA  =08H)
 ;主發(fā)送器/接收器發(fā)送起始位成功.再將從機(jī)寫地址送SMB0DAT并清除START位.
    ORG    SMB_STATE_TABLE+SMB_START        
    MOV    SMB0DAT,WRI_ADD        ; 裝載從地址+ W````
    CLR    STA                     ; 清除START位
    JMP    SMB_ISR_END             ; 中斷返回
;SMB_RP_START                    ;(SMB0STA  =10H)
;主發(fā)送器/接收器發(fā)送重復(fù)起始位成功.再將從機(jī)讀地址送SMB0DAT并清除START位.
    ORG   SMB_STATE_TABLE+SMB_RP_START      
    MOV   SMB0DAT,READ_ADD         ;裝載從地址+ R
    CLR   STA                      ; 清除START位
    JMP   SMB_ISR_END
;SMB_MTADDACK                      (SMB0STA  =18H)
;主發(fā)送器(MT)發(fā)送從地址+W成功;收到 ACK,再將要發(fā)的子地址送入SMB0DAT.
 ORG    SMB_STATE_TABLE+SMB_MTADDACK      
 MOV    SMB0DAT,SUBADDR          ;裝載從器件的子地址到SMB0DAT.
 SETB   BYTE_SENT ;BYTE_SENT=1.在下一次中斷調(diào)用時(shí)存儲(chǔ)器地址剛被發(fā)送
JMP   SMB_ISR_END
;SMB_MTADDNACK                       (SMB0STA  =20H)
;主發(fā)送器(MT)發(fā)送從地址+W成功;收到 NACK,用確認(rèn)查詢重試。發(fā)送 STOP+START
ORG    SMB_STATE_TABLE + SMB_MTADDNACK       
   SETB    STO
   SETB    STA
   JMP     SMB_ISR_END
;SMB_MTDBACK                            (SMB0STA  =28H)
;主發(fā)送器(MT)發(fā)送數(shù)據(jù)字節(jié)成功;收到ACK(從機(jī)應(yīng)答) 
;檢查BYTE_SENT:如果為1,說(shuō)明剛發(fā)出的是存儲(chǔ)器地址;為0,剛發(fā)出的是數(shù)據(jù)字節(jié)    
 ORG   SMB_STATE_TABLE+SMB_MTDBACK
    DJNZ   DATA_COUNT,ADDRESS_SENT
 JBC   BYTE_SENT,ADDRESS_SENT  ;如果BYTE_SENT=1,清除該位并轉(zhuǎn)到
                               ;ADDRESS_SENT去執(zhí)行狀態(tài)表以外的處理程序
    JMP   DATA_SENT            ; 如果BYTE_SENT=0,數(shù)據(jù)剛被發(fā)出,
                               ; 傳輸過(guò)程完成,轉(zhuǎn)到傳輸結(jié)束
;SMB_MTDBNACK                ;(SMB0STA  =30H)
;主發(fā)送器(MT)發(fā)送數(shù)據(jù)成功;收到NACK,用確認(rèn)查詢重試。發(fā)送STOP+START重試
   ORG   SMB_STATE_TABLE+SMB_MTDBNACK       
   SETB     STO
   SETB     STA
   JMP     SMB_ISR_END
; SMB_MTARBLOST      ;(SMB0STA  =38H);競(jìng)爭(zhēng)失敗.重新啟動(dòng)傳輸.
   ORG    SMB_STATE_TABLE+SMB_MTARBLOST     
    SETB     STO
    SETB     STA
   JMP     SMB_ISR_END
; SMB_MRADDACK                          ;(SMB0STA  =40H)
;(MR)主收發(fā)器發(fā)送從地址+R成功;收到 ACK(從機(jī)應(yīng)答).主機(jī)發(fā)送ACK.
   ORG     SMB_STATE_TABLE+SMB_MRADDACK      
  SETB   AA   ;主機(jī)發(fā)送ACK,轉(zhuǎn)入SMB_MRDBACK 	
  JMP     SMB_ISR_END
; SMB_MRADDNACK                   ;(SMB0STA  =48H)
;(MR)主收發(fā)器發(fā)送從地址+R成功;收到NACK(從機(jī)無(wú)應(yīng)答),發(fā)送重復(fù)起始位重試
   ORG      SMB_STATE_TABLE+SMB_MRADDNACK   
			SETB    STA
            JMP    SMB_ISR_END
;SMB_MRDBACK                    (SMB0STA  =50H)
;(MR)主收發(fā)器接收數(shù)據(jù)成功;主機(jī)發(fā)送ACK .
  ORG    SMB_STATE_TABLE+SMB_MRDBACK       
	MOV    RECEIVE_BYTE, SMB0DAT
	CLR    AA ;主機(jī)發(fā)NACK(清除AA),下一次中斷來(lái)時(shí)轉(zhuǎn)入;SMB_MRDBNACK(58H)
	CLR    SM_BUSY;
    JMP     SMB_ISR_END
;SMB_MRDBNACK                  ;(SMB0STA  =58H)
;(MR)主收發(fā)器接收數(shù)據(jù)成功;主機(jī)發(fā)送NACK 
;讀操作完成。讀數(shù)據(jù)寄存器并發(fā)送STOP
      ORG     SMB_STATE_TABLE+SMB_MRDBNACK     
      MOV    RECEIVE_BYTE, SMB0DAT
      SETB    STO
	  SETB    AA       ;主機(jī)發(fā)ACK,為下一次傳輸置位AA
      CLR    SM_BUSY;
      JMP    SMB_ISR_END
    ADDRESS_SENT:
		MOV     DPTR,#TAB   ;查表,找到顯示的數(shù)據(jù)(字型碼)
		MOV     A,R0
		MOVC    A,@A+DPTR     
        MOV     DATA_BYTE ,A   
		INC     R0  
        MOV     SMB0DAT,DATA_BYTE ;將要顯示的數(shù)據(jù)(字型碼)送SAA1064
	    JMP     SMB_ISR_END            ; 中斷返回
;對(duì)于地址字節(jié)剛發(fā)出的狀態(tài)。重復(fù)發(fā)送START,啟動(dòng)存儲(chǔ)器讀操作
    RW_READ:
    SETB      STA                    ;重復(fù)發(fā)送START
    JMP      SMB_ISR_END            ;中斷返回
;這是一個(gè)寫操作,數(shù)據(jù)字節(jié)已發(fā)出。傳輸過(guò)程結(jié)束。發(fā)送STOP,釋放總線,中斷返回
    DATA_SENT:
    SETB    STO                     ;發(fā)送STOP后中斷返回
    CLR     SM_BUSY                ; 釋放 SMBus
    JMP     SMB_ISR_END            ; 中斷返回
;SMBus ISR exit
;恢復(fù)現(xiàn)場(chǎng),清除SI位,從中斷返回
   SMB_ISR_END:
    CLR    SI
    POP    DPL 
    POP    DPH
    POP    ACC
    POP    PSW
    RETI
PORT_Init :
   ORL    OSCICN,#05H ;內(nèi)部振蕩器頻率設(shè)置為4MHz,選擇內(nèi)部振蕩器頻率作系統(tǒng)時(shí)鐘
   MOV    P0MDOUT,#00         ;P0口為開(kāi)漏方式
   MOV    XBR0,#01H      ;通過(guò)功能選擇開(kāi)關(guān)將將SDA接P0.0引腳,SCL接P0.1引腳
   MOV    XBR2 ,#40H;         允許功能選擇開(kāi)關(guān)和弱上拉
 ; 初始化SMBus程序段
   MOV   SMB0CN,#04H          ; 配置 SMBus在確認(rèn)周期發(fā)送 ACK(SDA線為低電平)
   MOV   SMB0CR,#0ECH         ; 設(shè)置時(shí)鐘速率=100 kHz (系統(tǒng)時(shí)鐘為4MHZ)
   ORL   SMB0CN,#40H          ; 允許SMBus
   ORL    EIE1,#02H           ; 允許SMBus中斷
   RET
END


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情另类小说区图片区视频区| 欧美又粗又大又爽| 日本一道高清亚洲日美韩| 麻豆国产精品777777在线| 亚洲mv大片欧洲mv大片精品| 亚洲精品视频免费观看| 欧美一级欧美三级在线观看| 欧美日产国产精品| 国内精品在线播放| 国产精品538一区二区在线| 国产一区二区三区免费在线观看| 国产激情91久久精品导航 | 91视频xxxx| 一个色妞综合视频在线观看| 一区二区三区不卡在线观看| 亚洲午夜免费福利视频| 国产欧美1区2区3区| 色噜噜狠狠一区二区三区果冻| 亚洲男同性恋视频| 久久伊人蜜桃av一区二区| 一本到高清视频免费精品| 欧洲视频一区二区| 国产尤物一区二区| 色综合天天做天天爱| 91精品欧美一区二区三区综合在| 成人黄色在线视频| 91麻豆高清视频| 欧美一区二区三区播放老司机| 一区二区三区四区高清精品免费观看| 一区二区三区四区中文字幕| 日本va欧美va精品发布| 成人黄色av电影| 亚洲成人午夜影院| 一区二区在线看| 免费在线视频一区| 亚洲成人久久影院| 亚洲综合在线五月| 欧美国产精品劲爆| 久久人人爽人人爽| 亚洲一区二区不卡免费| 国产精品一区在线观看乱码| 色偷偷久久一区二区三区| 精品福利一二区| 欧美成人精品3d动漫h| 亚洲人成小说网站色在线| 精品在线你懂的| 欧美日韩卡一卡二| 专区另类欧美日韩| 天堂久久久久va久久久久| 国产福利一区二区| 精品日韩一区二区三区免费视频| 欧美绝品在线观看成人午夜影视| 日本一区二区免费在线观看视频| 青青草成人在线观看| 亚洲一区中文日韩| 亚洲乱码国产乱码精品精的特点 | 国产自产v一区二区三区c| 免费高清成人在线| 欧美性xxxxxxxx| 国产精品免费视频一区| 国产精品夜夜爽| 日本成人在线视频网站| 一本色道久久加勒比精品| 色婷婷综合久色| 日韩毛片视频在线看| 欧美亚洲精品一区| 欧美三级日韩三级| 亚洲人吸女人奶水| 99久久国产综合精品女不卡| 欧美国产视频在线| 丝袜脚交一区二区| 日本成人超碰在线观看| 欧美日韩视频在线第一区 | 午夜一区二区三区在线观看| 亚洲综合激情网| 日韩和欧美一区二区| 欧美日韩一区三区四区| 欧美电影免费观看高清完整版在 | 视频在线观看一区| 欧美日韩中文字幕一区二区| 亚洲一区二区精品久久av| 日韩精品一区国产麻豆| 裸体在线国模精品偷拍| 2023国产精华国产精品| 综合亚洲深深色噜噜狠狠网站| 亚洲日本成人在线观看| 99精品热视频| 欧美日韩高清一区| 美女www一区二区| 色综合一区二区三区| 精品精品欲导航| 裸体健美xxxx欧美裸体表演| 久久先锋资源网| 久久久久久久久伊人| 粉嫩av一区二区三区在线播放| 中文字幕一区二区三区在线观看| 在线一区二区观看| 久久国产成人午夜av影院| 欧美性受xxxx| 中文字幕一区二区在线播放| 日韩成人一级大片| 久久精品视频网| 福利视频网站一区二区三区| 国产欧美精品日韩区二区麻豆天美| 亚洲国产视频a| av高清久久久| 五月天久久比比资源色| 久久免费美女视频| 91国模大尺度私拍在线视频| 日韩欧美在线影院| 亚洲成人动漫在线免费观看| 日韩一区二区三| 成人精品小蝌蚪| 五月天久久比比资源色| 色综合欧美在线| 国产精品女人毛片| 91精品欧美综合在线观看最新| 一区二区三区美女视频| 成人黄色免费短视频| 日韩av在线播放中文字幕| 中文字幕在线一区| 成人一区二区三区视频| 日本网站在线观看一区二区三区| 欧美私人免费视频| 色综合天天综合在线视频| 久久99精品视频| 久久久精品tv| 777久久久精品| 在线观看中文字幕不卡| 亚洲人成精品久久久久久| av中文字幕一区| 欧美日本一区二区三区| 91亚洲午夜精品久久久久久| 国产美女一区二区| 久久久久久久久伊人| 日韩欧美一区在线观看| 午夜精品一区二区三区三上悠亚 | 亚洲欧洲美洲综合色网| 久久亚洲一级片| eeuss鲁片一区二区三区在线看| 国产三区在线成人av| 成人av综合一区| 樱桃视频在线观看一区| 国产精品欧美久久久久一区二区| 欧美大片一区二区三区| 久久久久国产精品厨房| 欧美大片一区二区| 欧美岛国在线观看| 成人av在线资源网| 亚洲国产日韩a在线播放| 欧美va天堂va视频va在线| 粉嫩蜜臀av国产精品网站| 亚洲精品国产精品乱码不99| 亚洲私人黄色宅男| 亚洲免费视频成人| 日韩一区二区三区在线| 国产成人在线观看免费网站| 国产在线不卡一卡二卡三卡四卡| 国产精品电影一区二区| 国产精品青草久久| 欧美喷潮久久久xxxxx| 精品一区二区国语对白| 日本一道高清亚洲日美韩| 国产精品久久久久久久岛一牛影视 | 99久久精品费精品国产一区二区| 成人黄色大片在线观看| 2021国产精品久久精品| 久久久91精品国产一区二区精品 | 国产亲近乱来精品视频| 国产欧美日韩不卡免费| 综合欧美一区二区三区| 亚洲色欲色欲www在线观看| 亚洲精品乱码久久久久久黑人 | 懂色av一区二区夜夜嗨| 激情综合五月天| 国内精品久久久久影院色| 成人综合在线视频| 一区二区三区在线看| 国产在线精品一区二区夜色| 成人精品一区二区三区四区 | 99久久精品费精品国产一区二区| 亚洲成人在线观看视频| 精品亚洲免费视频| 成人教育av在线| 日本不卡不码高清免费观看| 国产九色sp调教91| 在线免费观看日韩欧美| 91看片淫黄大片一级在线观看| 欧美精品亚洲二区| 欧美精品一区二区三区很污很色的| 欧美怡红院视频| 国产午夜一区二区三区| 亚洲成av人影院在线观看网| 蜜臀久久99精品久久久画质超高清| 亚洲精品免费播放| 一区二区三区精品在线观看| 精品一区二区三区不卡| 日韩精品乱码av一区二区| 久久综合九色综合欧美就去吻| 亚洲免费观看高清|