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

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

?? pcm16c550.asm

?? 《單片機應用系統設計與產品開發(fā)》配套源碼
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;位尋址區(qū):20h-->25h即(00-->2fh)用語一些數制轉換計算,25H(28H-->2FH)用于標志
;26h-->2Ah(即30H-->57H):用于上位機通信
;2Bh-->2Fh(即58h-->7fh)用于與設備通信標志
;RAM 10H-->1FH用于上位機(即兩組寄存器)
;RAM 30H-->3FH及浮點數運算
;RAM 40H-->4FH用于設備
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



       RECE_PC_OK_FLAG     BIT         30H
       T1M_FLAG            BIT         31H

       communicate_state   EQU        11H
       REG_H_BYTE          EQU        12H
       FIFO_LEN            EQU        REG_H_BYTE
       LENGTH              EQU        13H
       CMD_STATE           EQU        14H
       POINTL              EQU        15H
       POINTH              EQU        16H
       REG_CHK2L           EQU        17H
       REG_CHK2H           EQU        18H
       T1M                 EQU        1AH
       _3S_                EQU        1BH

       STATE_SOI       EQU        1
       STATE_VERH      EQU        2
       STATE_VERL      EQU        3
       STATE_ADRH      EQU        4
       STATE_ADRL      EQU        5
       STATE_CMD1H     EQU        6
       STATE_CMD1L     EQU        7
       STATE_CMD2H     EQU        8
       STATE_CMD2L     EQU        9
       STATE_LENCHK    EQU        10
       STATE_LENH      EQU        11
       STATE_LENM      EQU        12
       STATE_LENL      EQU        13
       STATE_DATAH     EQU        14
       STATE_DATAL     EQU        15
       STATE_CHKSUM1H  EQU        16
       STATE_CHKSUM1L  EQU        17
       STATE_CHKSUM2H  EQU        18
       STATE_CHKSUM2L  EQU        19
       STATE_EOI       EQU        20
       STATE_OTHER     EQU        21
       STATE_SEND      EQU        22
       STATE_SEND_OVER EQU        23

       CMD2_REAL    EQU     41H
       CMD2_PARA    EQU     46H
       CMD2_SETUP   EQU     45H
       CMD2_OTHER   EQU     47H




      BUFFER2       EQU      0010H         ;暫存接收上位機的COMMANDINFO數據,設置時接收到的浮點數
      DATA_BUFFER   EQU      0600H         ;接收下位機信息緩存
      BCD_BUFFER    EQU      0700H
      DATA_BUFFER0  EQU      0300H
      ADDR_PARA     EQU      2000H-150
      ADDR_REAL     EQU      2000H
      HEAD_REAL     EQU      3000H
      HEAD_PARA     EQU      5000H
      HEAD_SETUP    EQU      6000H


      reset_ace    equ      p1.2
      ctrl_485     equ      p1.1
      ACE_PORT     EQU      8000H
      IER          EQU      8001H
      IIR          EQU      8002H
      FCR          EQU      8002H
      LCR          EQU      8003H
      LSR          EQU      8005H
      lsb          equ      8000h
      msb          equ      8001h

 ;******************************************
 ;單片機工作寄存器初始化,
 ;*****************************************

 INIT_COOL: MOV      PCON,#80H    ;SMOD=0
            MOV      SCON,#50H   ;串口以方式2工作
            MOV      TMOD,#21H   ;定時器0、1分別為方式4.8
            MOV      TH1,#0f4H   ;定時器1溢出率
            MOV      TL1,#0f4H   ;設置定時器、使串口波特率為2.4/S
            MOV      TCON,#40H   ;定時器1啟動、定時器0為電平觸發(fā)方式
            MOV      TH0,#04CH
            MOV      TL0,#00H
            MOV      IP,#04H     ;外中斷優(yōu)先機高,其次串口,再次定時器0
            CLR      RS0                 ;選工作寄存器組
            CLR      RS1


;************************************************
;一些寄存器,標志的初始化的初始化
;**************************************************

           CLR      SETUP_FLAG          ;設置標志
           CLR      ALLOW_SEND_FLAG
           CLR      ALLOW_TRANS_FLAG
           CLR      ALLOW_MOVE_FLAG
           CLR      RECE_PC_OK_FLAG
           MOV      T3S,#60
           MOV      _3S_,#60
           MOV      T1M,#20
           MOV      SMRECE_STATE,#RSTATE_STX_10H
           MOV      communicate_state,#STATE_SOI
;*****************************************
;16C550初始化
;*****************************************
 ACE_INIT: setb      reset_ace            ;SETB      P1.2
           NOP
           NOP
           NOP
           CLR      RESET_ACE
           MOV      DPTR,#lcr         ;線控制寄存器地址
           MOV      A,#80H            ;置除數鎖存器位
           MOVX     @DPTR,A           ;除數鎖寸器DLAB置1,以下設置波特率
           MOV      DPTR,#lsb         ;除數低位
           MOV      A,#06H            ;
           MOVX     @DPTR,A           ;
           MOV      A,#00H            ;
           MOV      DPTR,#msb         ;除數高位
           MOVX     @DPTR,A           ;
           MOV      DPTR,#lcr         ;線控制寄存器地址
           MOV      A,#03H            ;串行字符長8位,1位停止位
           MOVX     @DPTR,A           ;設置通信數據格式,8位數據位,1位停止位
           nop
           MOV      DPTR,#fcr         ;FIFO控制寄存器地址
           MOV      A,#07H            ;FIFO允許,接收,發(fā)送FIFO復位,1字節(jié)的觸發(fā)電平
           MOVX     @DPTR,A
           MOV      DPTR,#ier         ;中斷允許寄存器地址
           MOV      A,#01H            ;開放接收中斷,暫時關發(fā)送
           MOVX     @DPTR,A           ;
           RET
;========================================================================================
;讀取地址,地址為1字節(jié),高半字節(jié)為1,低半字節(jié)有撥碼開關設定
;========================================================================================
READ_PCMADDR:  MOV    A,P1
               SWAP   A
               ANL    A,#0FH
               ADD    A,#0F0H           ; 地址以高位為F
               MOV    PCM_ADDR,A
               RET
;**************************************************************************************
;通信服務程序,看門狗信號清零,與主程序看門狗信號高電平形成變化電平而喂狗
;程序產生允許發(fā)送信號,使發(fā)送程序每過3S發(fā)送一幀命令給智能設備,
;程序中中產生的分鐘標志用來判斷協議轉換器是否與上位機是否失去聯系,而判斷485總線是否斷開
;*******************************************************************************************
EVENT:          PUSH    ACC
                PUSH    PSW
                CLR     P1.3
                MOV     TL0,#01
                MOV     TH0,#4CH

TIM3S:          DJNZ    T3S,TIME             ;3S到
                MOV     T3S,#60
                SETB    ALLOW_SEND_FLAG

TIME:           DJNZ    _3S_,ABCD
                MOV     _3S_,#60

                DJNZ    T1M,ABCD             ;1分到
                MOV     T1M,#20
                CLR     EA
                SETB    RESET_ACE
                CLR     CTRL_485
                MOV     P0,#0FFH
                MOV     P1,#11111101B
                MOV     P2,#0FFH
                MOV     P3,#0FFH
                PUSH    00
                PUSH    00
                RETI

ABCD:           POP     PSW
                POP     ACC
                RETI

   ;*******************************
   ;將發(fā)送的A解釋為ASCII碼
   ;A入口  A出口
   ;*******************************
   ASCII:  CLR   C
           CJNE  A,#0AH,ASC1
           ADD   A,#37H
           RET
   ASC1:   JC    ASC2
           ADD   A,#37H
           RET
   ASC2:   ADD   A,#30H
           RET
;*******************************
   ;將ASCII碼還原為16進制數字
   ;A入口  A出口
   ;*******************************
HEX:    CLR   C
        CJNE  A,#41H,HE1
        SUBB  A,#37H
        RET
HE1:    JC    HE2
        SUBB  A,#37H
        RET
HE2:    CLR   C
        SUBB  A,#30H
        RET
;====================================================
;16c550中斷程序
;=================================================
INT:         PUSH     A    ;保護現場
             PUSH     B
             PUSH     DPL
             PUSH     DPH

             PUSH     PSW
             SETB     RS1               ;選工作寄存器
             CLR      RS0
             nop
             MOV     DPTR,#LSR
             MOVX    A,@DPTR
             JB      ACC.7,INT_LSR_ERROR
             MOV     DPTR,#iir             ;讀中斷識別寄存器
             MOVX    A,@DPTR
             ANL     A,#0FH
             XRL     A,#2                   ;與零異或為零是發(fā)送中斷
             JNZ     INT_RECE
             LJMP    INT_SEND               ;跳轉到發(fā)送程序

INT_LSR_ERROR:SETB   RESET_ACE
              CLR    CTRL_485               ;
              LCALL  ACE_INIT
              LJMP   INT_RETURN

INT_RECE:    MOV     DPTR,#LSR
             MOVX    A,@DPTR
             JB      ACC.0,INT_R0
             LJMP    INT_LSR_ERROR

INT_R0:      MOV     DPTR,#ace_port               ;讀數
             MOVX    A,@DPTR
             MOV     B,A                         ;暫存保護
             MOV     A,communicate_state

RECE_SOI:    CJNE    A,#STATE_SOI,RECE_VERH   ;接收其始位
             MOV     A,B
             CJNE    A,#7EH,RS
             MOV     REG_CHK2L,#0
             MOV     REG_CHK2H,#0
             MOV     POINTL,#LOW(BUFFER2)
             MOV     POINTH,#HIGH(BUFFER2)
             CLR     RECE_PC_OK_FLAG
             MOV     communicate_state,#STATE_VERH
RS:          LJMP    INT_RETURN

RECE_VERH:   CJNE    A,#STATE_VERH,RECE_VERL ;接收版本號高字節(jié)
             MOV     A,B
             CJNE    A,#32H,RV_ERROR
             MOV     A,B
             LCALL   INT_CHKSUM
             MOV     communicate_state,#STATE_VERL
             LJMP    INT_RETURN
RV_ERROR:    MOV     COMMUNICATE_STATE,#STATE_SOI
             LJMP    INT_RETURN

RECE_VERL:   CJNE    A,#STATE_VERL,RECE_ADRH ;接收版本號低字節(jié)
             MOV     A,B
             CJNE    A,#30H,RV_ERROR
             MOV     A,B
             LCALL   INT_CHKSUM
             MOV     communicate_state,#STATE_ADRH
             LJMP    INT_RETURN


RECE_ADRH:   CJNE    A,#STATE_ADRH,RECE_ADRL ;接收地址號高字節(jié)

             MOV     A,B
             LCALL   INT_CHKSUM
             MOV     A,B
             LCALL   HEX
             SWAP    A
             MOV     REG_H_BYTE,A
             MOV     communicate_state,#STATE_ADRL
             LJMP    INT_RETURN

RECE_ADRL:  CJNE     A,#STATE_ADRL,RECE_CMD1H ;接收版本號低字節(jié)

            MOV      A,B
            LCALL    INT_CHKSUM
            MOV      A,B
            LCALL    HEX
            ADD      A,REG_H_BYTE
            XRL      A,PCM_ADDR
            JZ       RA_RIGHT
            MOV      communicate_state,#STATE_SOI
            LJMP     INT_RETURN

RA_RIGHT:   MOV      communicate_state,#STATE_CMD1H
            LJMP     INT_RETURN

RECE_CMD1H: CJNE    A,#STATE_CMD1H,RECE_CMD1L ;接收命令1高字節(jié)

            MOV     A,B
            CJNE    A,#44H,RCH_ERROR
            MOV     A,B
            LCALL   INT_CHKSUM
            MOV     communicate_state,#STATE_CMD1L
            LJMP    INT_RETURN

RCH_ERROR:  MOV     COMMUNICATE_STATE,#STATE_SOI
            LJMP    INT_RETURN

RECE_CMD1L: CJNE     A,#STATE_CMD1L,RECE_CMD2H ;接收命令1低字節(jié)

            MOV      A,B
            LCALL    INT_CHKSUM
            MOV      A,B
            CJNE     A,#30H,RCH_ERROR
            MOV      communicate_state,#STATE_CMD2H
            LJMP     INT_RETURN


RECE_CMD2H: CJNE    A,#STATE_CMD2H,RECE_CMD2L ;接收命令2高字節(jié)

            MOV     A,B

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最近中文字幕一区二区三区| 裸体歌舞表演一区二区| 亚洲一区二区欧美激情| 韩国精品主播一区二区在线观看| 99久久国产免费看| 精品久久久久久久久久久久久久久| 中文字幕一区二区三中文字幕| 免费观看在线综合色| 91蝌蚪国产九色| 国产三级精品三级在线专区| 日产国产欧美视频一区精品 | 亚洲香肠在线观看| 国产一区91精品张津瑜| 91.com在线观看| 一区二区三区国产精品| 精品国产一区二区在线观看| 一区二区免费看| 成人av网站在线观看免费| 欧美tickling网站挠脚心| 视频在线在亚洲| 欧美私模裸体表演在线观看| 亚洲欧美中日韩| 成人av片在线观看| 国产欧美一区二区精品性| 美腿丝袜亚洲一区| 日韩一区二区免费视频| 婷婷一区二区三区| 欧美伦理影视网| 天天做天天摸天天爽国产一区| 在线视频国产一区| 亚洲综合视频在线观看| 在线精品视频一区二区| 亚洲精品国产一区二区精华液| av在线播放成人| 亚洲欧美视频在线观看视频| 99久久精品99国产精品 | 国产精品资源网| 久久品道一品道久久精品| 精品一区二区免费在线观看| 精品国产乱子伦一区| 国产精品99久久久久久久vr | 亚洲精品免费电影| 日本精品裸体写真集在线观看| 亚洲日本青草视频在线怡红院| 91久久香蕉国产日韩欧美9色| 洋洋成人永久网站入口| 欧美色电影在线| 久久成人麻豆午夜电影| 久久综合99re88久久爱| 不卡视频一二三| 亚洲午夜免费福利视频| 91精品国产福利| 国产伦精品一区二区三区免费迷 | 亚洲综合免费观看高清完整版 | 99国产精品视频免费观看| 亚洲欧洲av色图| 欧美日韩一区二区三区在线看| 日韩1区2区日韩1区2区| 久久久久久久免费视频了| 972aa.com艺术欧美| 午夜电影一区二区三区| 精品国产一区二区三区四区四| 成人精品免费看| 亚洲主播在线观看| 日韩欧美123| 99国产精品久久久| 日韩av中文在线观看| 欧美国产丝袜视频| 欧美色涩在线第一页| 国产一区二区三区黄视频 | 日韩精品五月天| 国产色综合一区| 欧美色图在线观看| 国产一区二区在线观看免费| 一区二区日韩电影| 2021国产精品久久精品| 色屁屁一区二区| 国产美女在线精品| 性做久久久久久| 国产精品灌醉下药二区| 欧美一级欧美三级| 色综合中文字幕国产 | 激情伊人五月天久久综合| 亚洲天堂a在线| 欧美xxxxxxxxx| 色就色 综合激情| 国产一区二区美女| 亚洲成人午夜影院| 国产精品天干天干在观线| 91精品国产色综合久久ai换脸| 成人动漫在线一区| 国产在线看一区| 免费看日韩精品| 亚洲成人一区二区| 亚洲美女免费在线| 中文字幕欧美日本乱码一线二线| 制服.丝袜.亚洲.中文.综合| 在线免费观看视频一区| 成人av电影免费在线播放| 久久se这里有精品| 日韩黄色片在线观看| 亚洲综合在线电影| 亚洲精品乱码久久久久久| 国产精品免费丝袜| 久久久久久久久久美女| 日韩精品一区在线| 884aa四虎影成人精品一区| 一本大道av伊人久久综合| av动漫一区二区| 福利一区二区在线观看| 国产一区二区伦理片| 九色综合狠狠综合久久| 久久精品国产精品青草| 麻豆一区二区在线| 美女视频黄久久| 裸体一区二区三区| 久久精品国产亚洲一区二区三区 | 九一九一国产精品| 秋霞av亚洲一区二区三| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费成人在线观看视频| 久久99精品久久久久婷婷| 久久国产成人午夜av影院| 日本不卡一二三| 精品中文字幕一区二区小辣椒| 久久99精品网久久| 国产精品1区2区3区| 丁香婷婷综合色啪| 99精品视频免费在线观看| 日本乱码高清不卡字幕| 欧美日韩国产一区| 日韩午夜激情免费电影| 欧美精品一区二区三区在线| 日本一区二区三区电影| 亚洲视频 欧洲视频| 亚洲无人区一区| 免费在线看成人av| 国产乱码一区二区三区| 99视频精品全部免费在线| 91国模大尺度私拍在线视频| 欧美天堂亚洲电影院在线播放| 91麻豆精品91久久久久久清纯| 精品久久国产字幕高潮| 国产精品免费久久久久| 国产成人av影院| 一本一道久久a久久精品 | 婷婷综合在线观看| 精品一区二区三区在线观看| 处破女av一区二区| 欧美色图激情小说| 国产偷国产偷亚洲高清人白洁| 1000精品久久久久久久久| 午夜成人免费视频| 国产伦精品一区二区三区免费| 96av麻豆蜜桃一区二区| 日韩欧美一区二区三区在线| 国产精品亲子伦对白| 婷婷综合五月天| 成人精品一区二区三区中文字幕| 欧美三级三级三级| 3d动漫精品啪啪| 国产精品九色蝌蚪自拍| 日本美女视频一区二区| 91麻豆福利精品推荐| 欧美变态凌虐bdsm| 亚洲一卡二卡三卡四卡无卡久久| 久久av中文字幕片| 欧美中文字幕亚洲一区二区va在线| 精品国产成人系列| 亚洲图片欧美色图| 大美女一区二区三区| 日韩精品中文字幕在线不卡尤物| 国产精品久久久久久久久免费樱桃| 美女尤物国产一区| 欧美三级视频在线| 中文字幕一区二区三区不卡在线| 精品一区二区三区免费播放| 91国产视频在线观看| 中文字幕亚洲区| 国产精品一区二区在线观看网站| 偷拍与自拍一区| 91理论电影在线观看| 国产婷婷色一区二区三区四区| 久久国产精品99久久久久久老狼 | 99久久国产综合精品女不卡| 2021国产精品久久精品| 蜜臀99久久精品久久久久久软件| 欧洲精品在线观看| 亚洲激情自拍视频| 成人深夜视频在线观看| 久久人人爽人人爽| 极品美女销魂一区二区三区| 欧美肥大bbwbbw高潮| 亚洲无人区一区| 欧美亚男人的天堂| 亚洲午夜久久久久| 欧美日韩久久久| 五月天欧美精品| 欧美日韩色一区| 亚洲成人激情社区|