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

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

?? wsaa1064.#2

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


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲宅男天堂在线观看无病毒| 亚洲精品在线一区二区| 亚洲猫色日本管| 色哟哟日韩精品| 亚洲一区二区精品3399| 欧美日韩综合色| 蜜桃精品在线观看| 久久香蕉国产线看观看99| 国产乱理伦片在线观看夜一区| 国产视频一区二区三区在线观看| 国产成人av一区二区| 1024亚洲合集| 欧美另类变人与禽xxxxx| 激情成人午夜视频| 国产精品二三区| 7777精品伊人久久久大香线蕉| 精品在线一区二区| 国产精品视频一区二区三区不卡| 一本一道久久a久久精品综合蜜臀| 午夜精品爽啪视频| 久久久久久久国产精品影院| 99综合电影在线视频| 亚洲成人av福利| 国产精品不卡在线观看| 欧美性猛交xxxx黑人交| 久久国产乱子精品免费女| 国产欧美日韩另类一区| 欧美日韩一区中文字幕| 国产精品香蕉一区二区三区| 亚洲日本在线看| 欧美电影免费观看完整版| 99久久99久久免费精品蜜臀| 免费在线观看成人| 亚洲欧洲三级电影| 欧美成人官网二区| 日本道精品一区二区三区| 精品在线免费观看| 一区二区成人在线视频 | 婷婷开心久久网| 国产日韩欧美一区二区三区综合| 欧美在线你懂的| 国产激情视频一区二区在线观看 | 亚洲精品一线二线三线无人区| av资源网一区| 麻豆精品视频在线观看免费 | 色婷婷亚洲精品| 国产麻豆91精品| 日韩成人dvd| 一区二区三区在线影院| 久久噜噜亚洲综合| 欧美美女一区二区| 色天天综合久久久久综合片| 国产a久久麻豆| 美女一区二区三区| 亚洲mv大片欧洲mv大片精品| 中文字幕在线观看一区二区| 精品精品国产高清a毛片牛牛| 欧美日韩五月天| 色诱亚洲精品久久久久久| 欧美三级在线看| 播五月开心婷婷综合| 国产伦精品一区二区三区免费迷 | 国产女主播在线一区二区| 在线电影国产精品| 在线观看三级视频欧美| 国产高清久久久| 国内精品嫩模私拍在线| 免费看黄色91| 蜜臀久久99精品久久久画质超高清| 一区二区三区成人| 亚洲美女视频一区| 亚洲精品v日韩精品| 1024成人网| 亚洲伦在线观看| 亚洲精品五月天| 一区二区视频在线看| 亚洲日本一区二区| 亚洲激情网站免费观看| 一区二区三区四区在线免费观看| 亚洲三级在线免费观看| 最好看的中文字幕久久| 亚洲日本欧美天堂| 一区二区在线观看视频| 亚洲图片欧美一区| 亚洲成a人在线观看| 三级久久三级久久久| 青青草伊人久久| 国产一区欧美一区| 成人一区在线看| 色婷婷久久久亚洲一区二区三区| 色婷婷综合五月| 制服丝袜成人动漫| 日韩一区二区三区在线| 精品久久久久一区二区国产| 国产亚洲1区2区3区| 国产目拍亚洲精品99久久精品| 日本一区二区久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲一区二区四区蜜桃| 亚洲一本大道在线| 免费在线看一区| 国产99一区视频免费| 97精品久久久午夜一区二区三区| 欧美午夜一区二区三区| 日韩精品一区二区三区在线观看 | 欧美优质美女网站| 91精品国产aⅴ一区二区| 亚洲精品一区二区三区精华液 | 欧美高清在线精品一区| 亚洲乱码国产乱码精品精小说 | 久草这里只有精品视频| 成人网页在线观看| 欧美日韩中文字幕一区| 精品久久国产老人久久综合| 国产精品国产三级国产aⅴ原创| 一区二区三区日韩在线观看| 蜜臀av性久久久久av蜜臀妖精| 国产伦精一区二区三区| 欧美亚洲国产一区二区三区va| 欧美成人性战久久| 亚洲色图一区二区三区| 日韩国产高清在线| aa级大片欧美| 日韩欧美中文一区二区| 欧美激情一区三区| 天堂精品中文字幕在线| 成人av在线资源网| 欧美一区二区播放| 亚洲欧洲性图库| 在线日韩国产精品| 欧美精品一区二区蜜臀亚洲| 亚洲欧美成人一区二区三区| 麻豆国产一区二区| 欧洲精品一区二区| 国产精品三级电影| 捆绑变态av一区二区三区| 一本到高清视频免费精品| 欧美精品一区二区三区一线天视频 | 久久久99精品免费观看不卡| 亚洲激情六月丁香| 成人午夜视频网站| 欧美α欧美αv大片| 午夜视频在线观看一区二区三区| 成人中文字幕电影| 久久综合久久鬼色| 热久久国产精品| 欧美日韩国产美| 亚洲视频免费观看| jvid福利写真一区二区三区| 久久先锋影音av| 美女视频黄免费的久久 | 欧美一区在线视频| 一区二区三区.www| 色琪琪一区二区三区亚洲区| 亚洲国产精品t66y| 国产精品一区二区男女羞羞无遮挡 | 国产欧美日韩综合精品一区二区| 奇米四色…亚洲| 91精品国产色综合久久不卡蜜臀| 亚洲精品成人少妇| 日本二三区不卡| 亚洲欧美色综合| 91视频你懂的| 亚洲人成影院在线观看| 不卡的av在线播放| 椎名由奈av一区二区三区| aaa欧美色吧激情视频| 国产精品成人免费精品自在线观看 | 国产亚洲一区二区三区在线观看| 99精品视频在线播放观看| 日本一二三四高清不卡| 成人自拍视频在线| 国产精品二三区| 色综合天天天天做夜夜夜夜做| 中文字幕一区二区三区av| 9i在线看片成人免费| 亚洲欧洲日韩在线| 色综合久久88色综合天天免费| 亚洲欧洲成人自拍| 日本韩国欧美国产| 日本在线不卡视频一二三区| 欧美一区二区日韩| 国产麻豆精品视频| 亚洲欧美在线视频观看| 在线观看91视频| 轻轻草成人在线| 久久久国际精品| av在线这里只有精品| 亚洲精品成a人| 91精品久久久久久蜜臀| 极品尤物av久久免费看| 日本一区二区电影| 欧美影视一区二区三区| 老司机精品视频在线| 国产免费成人在线视频| 色一情一伦一子一伦一区| 日本亚洲一区二区| 国产视频一区二区在线| 欧美又粗又大又爽| 精品一区中文字幕|