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

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

?? pcf8574ab.#1

?? C8051F系列單片機外圍電路功能模塊程序
?? #1
字號:

;實驗29  程序PCF8574AB.ASM   
;用I2C(與SUNBUS兼容)虛擬總線的方法編程.調用I2C通用子程序軟件包.
;程序功能:PCF8574是帶SUMBUS總線的串口轉并口的數據轉換芯片.一個8位
;口連結8個開關(K1-K8)作輸入,二個8位輸出鎖存口分別連結8個LED燈,指示二個8位
;輸出.程序安排二個8位輸出口鎖存的數據電平相反.
; 運行參考程序,在連續輸出三組數據:#0AAH,#55H;#0FH,#0F0H及#00H,#0FFH之后,
;處于輸入狀態,等待用戶通過開關K1~K8輸入數據并顯示出來。  
$include (C8051F020.inc)      
 SLA1W          EQU   70H      ;PCF8574 A片寫的節點地址(地址開關S1:000H)
 SLA1R          EQU   71H      ;PCF8574 A片讀的節點地址 
 SLA2W          EQU   72H      ;PCF8574 B片寫的節點地址 (地址開關S2:001H )    
 SLA2R          EQU   73H      ;PCF8574 B片讀的節點地址 
 SLA3W          EQU   74H      ;PCF8574 C片寫的節點地址 ((地址開關S3:010H)
 SLA3R          EQU   75H      ;PCF8574 C片讀的節點地址 
 SLA            EQU   60H
 COM            EQU   17H
 SLAW           EQU   62H
 SLAR           EQU   63H
 NUMBYT        EQU   61H     ;被傳送的字節數存放單元
 MTD            EQU   20H     ;發送數據緩沖區首地址
 MRD            EQU   30H     ;接收字節緩沖區首地址          
 VSCL           EQU   P0.1    ;模擬I2C總線時鐘線
 VSDA           EQU   P0.0    ;模擬I2C總線數據線
               ORG    0
               SJMP   MAIN
MAIN:	      MOV    WDTCN,#0DEH  ;禁止看門狗定時器
              MOV    WDTCN,#0ADH;
			  MOV     XBR2,#40H  ;交叉開關使能
              ACALL    INITA     ;作為輸入用的芯片應先初始化。
              ACALL    OUTPUT1   ;輸出數據0AAH
              ACALL    DELAY     ;延時
              ACALL    OUTPUT2   ;輸出數據55H
              ACALL    DELAY     ;延時
              ACALL    OUTPUT3   ;輸出數據0FH
              ACALL    DELAY     ;延時
              ACALL    OUTPUT4   ;輸出數據0F0H
              ACALL    DELAY     ;延時
ACALL    OUTPUT5   ;輸出數據0H
ACALL    DELAY       ;延時
LOOP:       ACALL     PCFIO ;從輸入器件U1讀取開關K1~K8的狀態數據并存入
             AJMP      LOOP  ;MRD中,再送U2,U3去。
OUTPUT1:   MOV       A,#0AAH      ;輸出數據0AAH
             PUSH   ACC
            ACALL  WRITEB
             POP    ACC
             CPL    A
             ACALL  WRITEC
             RET
OUTPUT2:      MOV    A,#55H     ;輸出數據55H
              PUSH   ACC
              ACALL  WRITEB
              POP    ACC
              CPL    A
              ACALL  WRITEC
              RET
OUTPUT3:      MOV    A,#0FH     ;輸出數據0FH
              PUSH   ACC
              ACALL  WRITEB
              POP    ACC
              CPL    A
              ACALL  WRITEC
              RET
OUTPUT4:      MOV    A,#0F0H   ;輸出數據0F0H
              PUSH   ACC
              ACALL  WRITEB
              POP    ACC
              CPL    A
              ACALL  WRITEC
              RET
OUTPUT5:      MOV    A,#0H   ;輸出數據0H
              PUSH   ACC
              ACALL  WRITEB
              POP    ACC
              CPL    A
              ACALL  WRITEC
              RET             
PCFIO  :  ACALL  READA ;從輸入器件U1讀取開關K1~K8的狀態數據并存入MRD中
          MOV   A,MRD
          MOV   B,A
          ACALL   WRITEB   ;將讀入的數據送器件B
          MOV   A,B
          CPL   A          ;將讀入的數據取反后送器件C
          ACALL  WRITEC
          RET
READA:   MOV    SLAW,#SLA1W    ;讀A口
          MOV    SLAR,#SLA1R
WRA:     MOV   SLA,SLAR
          MOV   NUMBYT,#1
          LCALL RDNBYT
          RET                                 
INITA:   MOV    SLAW,#SLA1W      ;初始化:應置輸入口鎖存器為高電平
         MOV    SLAR,#SLA1R
         MOV    MTD,#0FFH
         MOV    SLA,SLAW
         MOV    NUMBYT,#1
         LCALL  WRNBYT 
         RET
WRITEB: MOV    SLAW,#SLA2W      ;將數據送器件B
         MOV    SLAR,#SLA2R
         ACALL   WRBC   
         RET
WRITEC: MOV    SLAW,#SLA3W     ;將數據送器件C
         MOV    SLAR,#SLA3R
         ACALL   WRBC   
         RET             
WRBC:   MOV    MTD,A
         MOV    SLA,SLAW
         MOV    NUMBYT,#1
         LCALL  WRNBYT
         RET           
 DELAY: MOV       R7,#50  ;5s
 DL2:   MOV       R6,#100                    ;100ms         
 DL1:   MOV       R5,#250                    ;1ms假定晶振為6MHZ
 DL0:   DJNZ      R5,DL0
        DJNZ      R6,DL1
        DJNZ      R7,DL2
        RET  
;發送一個字節數據(WRBYT)子程序,該子程序是向虛擬IIC總線的數據線VSDA上發送
;一個字節數據的操作。調用本子程序前將要發送的數據送入A中。占用資源:R0,C。        
WRNBYT: MOV          R3,NUMBYT
          LCALL    STAA             ;啟動IIC總線
          MOV         A,SLA         ;發送SLAW字節
          LCALL       WRBYT
          LCALL       CACK          ;檢查應答位
          JB          F0,WRNBYT     ;非應答位則重發
          MOV         R1,#MTD
  WRDA: MOV         A,@R1
          LCALL       WRBYT
          LCALL       CACK
          JB          F0,WRNBYT
          INC         R1
          DJNZ        R3,WRDA
          LCALL       STOP
          RET
;向被控器件發送N個字節數據(WRNBYT)子程序
WRBYT:   MOV	     R0,#08H       ;8為數據長度送R0中
   WLP:  RLC         A           ;發送數據左移,使發送位入C
         JC          WR1         ;判斷發送"1"還是"0",發送"1"轉WR1
         AJMP        WR0         ;發送"0"轉WR0
  WLP1:  DJNZ         R0,WLP     ;8位是否發送完,未完轉WLP
         RET                     ;8位發送完結束
   WR1:  SETB         VSDA       ;發送"1"程序段
         SETB        VSCL  
         NOP
         NOP
         CLR        VSCL
         CLR        VSDA
         AJMP       WLP1
  WR0:   CLR        VSDA         ;發送"0"程序段
         SETB       VSCL
         NOP
         NOP
         CLR    VSCL
         AJMP   WLP1
;通用N字節接收子程序(RDNBYT)
 RDNBYT:MOV        R3,NUMBYT
        LCALL      STAA               ;發送啟動位
        MOV        A,SLA             ;發送尋址字節(讀)
        LCALL      WRBYT
        LCALL      CACK              ;檢查應答位
        JB         F0,RDNBYT         ;非正常應答時重新開始
RDN:    MOV        R1,#MRD           ;接收數據緩沖區首址MDR入R1
RDN1:   LCALL      RDBYT             ;讀入一個字節到接收數據緩沖中
        MOV        @R1,A
        DJNZ       R3,ACK            ;N節讀完否?未完轉ACK
        LCALL      MNACK             ;N個字節讀完發送非應答位
        LCALL      STOP              ;發送停止信號
        RET                         ;子程序結束
 ACK:   LCALL      MACK              ;發送應答位
        INC        R1                ;指向下一個接收數據緩沖單元
        SJMP       RDN1             ;轉讀入下一個字節數據
CACK:   SETB    VSDA                ;置VSDA為輸入方式
        SETB    VSCL                ;使VSDA上數據有效
        CLR     F0                  ;預設F0=0
        MOV     C,VSDA              ;輸入VSDA引腳狀態
        JNC     CEND                ;檢查VSDA狀態,正常應答轉CEND,且F0=0
        SETB    F0                  ;無正常應答,F0=1
CEND:  CLR     VSCL                ;子程序結束,使VSCL=0
        RET
MACK:  CLR       VSDA;發送應答位MACK子程序
        SETB      VSCL
        NOP
        NOP
        CLR       VSCL
        SETB      VSDA
	     RET
 MNACK: SETB        VSDA   ;發送非應答位 MNACK子程序
         SETB        VSCL
         NOP
         NOP
         CLR         VSCL
         CLR         VSDA
         RET
;從VSDA上接收一個字節數據(RDBYT)子程序,該子程序用來從VSDA上讀取一個字節數據.執行本程序后,從VSDA上讀取的一個字節存放在R2或A中。資源占用:R0,R2,C。
 RDBYT:  MOV	R0,#08H                ;8位數據長度如R0
   RLP:  SETB        VSDA            ;置VSDA為輸入方式
         SETB       VSCL             ;使VSDA上數據有效
         MOV        C,VSDA           ;讀入VSDA引腳狀態
         MOV        A,R2             ;讀入"0"程序段,由C拼裝入R2中
         RLC        A
         MOV        R2,A
         CLR        VSCL             ;使VSCL=0可繼續接收數據位
         DJNZ       R0,RLP           ;8位讀完否?未讀完轉RLP
         RET
STAA:    SETB	 VSDA;啟動STAA子程序
         SETB	 VSCL
         NOP  
         NOP
         CLR	 VSDA
         NOP
         NOP
         CLR   VSCL
         RET
 STOP:CLR	VSDA;停止(STOP)子程序
      SETB	VSCL
      NOP  
      NOP
      SETB	VSDA
      NOP
      NOP
      CLR       VSDA
      CLR       VSCL
      RET
END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜免费电影| 亚洲超丰满肉感bbw| 91精品午夜视频| 欧美性大战久久久久久久| 99re在线精品| 一本一道久久a久久精品| 91成人在线免费观看| 欧美在线制服丝袜| 欧美一区二区三区人| 日韩一级视频免费观看在线| 日韩精品在线看片z| 久久久久久亚洲综合| 国产婷婷色一区二区三区| 国产精品欧美久久久久无广告| 国产清纯美女被跳蛋高潮一区二区久久w | 3d动漫精品啪啪一区二区竹菊| 欧美高清www午色夜在线视频| 欧美精品久久久久久久久老牛影院| 欧美精品日韩综合在线| 精品日本一线二线三线不卡| 国产欧美日韩在线| 一区二区三区丝袜| 精品亚洲成av人在线观看| 成人激情图片网| 欧美精品一级二级| 国产人妖乱国产精品人妖| 亚洲三级小视频| 裸体歌舞表演一区二区| www.激情成人| 欧美成人乱码一区二区三区| 亚洲婷婷综合久久一本伊一区| 亚洲国产精品欧美一二99| 国精产品一区一区三区mba视频| 成人午夜免费av| 欧美精选午夜久久久乱码6080| 久久久国产午夜精品| 午夜一区二区三区在线观看| 国产裸体歌舞团一区二区| 在线观看日韩电影| 久久伊99综合婷婷久久伊| 亚洲一线二线三线视频| 国产精品一区2区| 欧美日韩视频在线第一区| 日本一区二区三区四区在线视频| 亚洲一二三区视频在线观看| 99精品在线观看视频| 日韩三级精品电影久久久| 亚洲欧美电影一区二区| 国产伦精品一区二区三区在线观看| 在线视频你懂得一区| 国产精品天天看| 日本亚洲一区二区| 91国产免费看| 国产精品久久久久影院色老大 | 欧美一区二区私人影院日本| 精品电影一区二区三区| 天天影视色香欲综合网老头| 91美女片黄在线观看91美女| 久久精品欧美日韩| 亚洲va韩国va欧美va| 色综合久久久久综合99| 久久精品夜色噜噜亚洲aⅴ| 日韩在线一二三区| 欧美亚洲动漫精品| 亚洲精品视频自拍| 国产精品888| 精品国产123| 免费的成人av| 日韩一区二区精品在线观看| 亚洲444eee在线观看| 欧美性大战久久| 一区二区三区四区在线免费观看| 99久久精品一区| 亚洲伦理在线精品| 色婷婷av一区| 亚洲高清免费视频| 欧美一区二区三区男人的天堂| 一区二区三区精品久久久| 一本久久a久久精品亚洲| 成人欧美一区二区三区小说 | 国产69精品一区二区亚洲孕妇| 精品日韩在线观看| 国产精品一区二区三区四区| 久久亚区不卡日本| 成人精品视频一区二区三区尤物| 国产夜色精品一区二区av| 国产91丝袜在线观看| 国产精品伦一区二区三级视频| 高清beeg欧美| 一区二区三区在线观看欧美| 色综合久久天天综合网| 午夜精品久久久久久久久| 日韩一区二区三区视频| 国产精品88888| 亚洲色欲色欲www在线观看| 91久久香蕉国产日韩欧美9色| 亚洲国产欧美另类丝袜| 欧美精品第1页| 国产一区二区三区精品视频| 最新国产の精品合集bt伙计| 欧美日韩一区视频| 国产精品一级片在线观看| 亚洲免费高清视频在线| 欧美精品粉嫩高潮一区二区| 国产一区二区三区国产| 一区二区三区四区精品在线视频| 欧美亚洲禁片免费| 国产精品自拍网站| 亚洲一区二区三区免费视频| 日韩欧美在线不卡| 成人av网站免费观看| 日本不卡视频在线| 国产精品女主播在线观看| 9191精品国产综合久久久久久| 国产美女一区二区| 亚洲电影欧美电影有声小说| 国产免费成人在线视频| 欧美高清视频在线高清观看mv色露露十八| 国模少妇一区二区三区| 亚洲图片一区二区| 欧美国产日韩亚洲一区| 欧美一区二区黄| 欧美性猛交xxxx乱大交退制版| 国产激情一区二区三区| 免费不卡在线观看| 一区二区久久久久久| 国产精品美女www爽爽爽| 欧美v亚洲v综合ⅴ国产v| 欧洲在线/亚洲| 色综合视频在线观看| 国产一级精品在线| 亚洲成人中文在线| 亚洲综合小说图片| 亚洲国产高清aⅴ视频| 精品国产区一区| 3d动漫精品啪啪一区二区竹菊| 91精品福利在线| 99久久99久久精品国产片果冻| 精久久久久久久久久久| 免费成人在线观看| 日本不卡视频在线| 美女国产一区二区三区| 日韩电影免费一区| 午夜视频在线观看一区二区| 亚洲一级片在线观看| 亚洲精品videosex极品| 亚洲欧美视频一区| 亚洲免费观看高清完整版在线观看熊 | 国产欧美一区二区三区在线老狼| 欧美一区二区三区男人的天堂| 欧美网站一区二区| 精品视频在线视频| 欧美日韩成人一区二区| 欧美美女一区二区在线观看| 欧美日韩高清影院| 欧美一级搡bbbb搡bbbb| 欧美精品一区男女天堂| 国产日韩欧美在线一区| 国产精品三级电影| 一区二区三区在线观看国产 | 卡一卡二国产精品| 激情都市一区二区| 国产经典欧美精品| 97精品久久久午夜一区二区三区| 色婷婷亚洲一区二区三区| 欧美午夜在线观看| 欧美一区二区网站| 久久久久久久久蜜桃| 亚洲欧洲成人精品av97| 亚洲午夜久久久久久久久电影网 | 玉米视频成人免费看| 亚洲综合999| 久久国产生活片100| 丁香婷婷综合激情五月色| 色婷婷亚洲精品| 日韩精品一区国产麻豆| 国产精品国产精品国产专区不蜜 | 欧美久久久久久久久中文字幕| 日韩三级视频在线观看| 国产精品毛片无遮挡高清| 亚洲一区二区三区中文字幕 | 884aa四虎影成人精品一区| 久久久久久久久久看片| 一区二区在线看| 精品一区二区在线看| 色综合中文综合网| 国产精品乱人伦| 午夜视频在线观看一区二区三区| 国产一区二区伦理| 欧美性欧美巨大黑白大战| 精品成a人在线观看| 亚洲精品国产第一综合99久久 | 亚洲欧美怡红院| 九九热在线视频观看这里只有精品| 懂色中文一区二区在线播放| 777精品伊人久久久久大香线蕉| 国产精品天干天干在线综合| 另类小说一区二区三区| 在线日韩av片| 国产精品国产三级国产aⅴ入口 |