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

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

?? main.asm

?? 《單片機應用系統設計與產品開發》配套源碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;===================================================================
;此程序在實際監控工程中正常運行,智能設備是ISOVELL空調
;用WAVE仿真器調試
;===================================================================

LEN_REAL      EQU       64H        ;共100字節;12*4=48字節浮點數,16字節開關量,36字節告警
      LCHK_REALL    EQU      0D0H      ;ASCII字節數為208即d0,
      LCHK_REALH    EQU       30H      ;d取反加1=3

      LEN_PARA      EQU      5CH       ;共92字節;4*8=32字節浮點數,3字節整數,36+19字節開關量
      LCHK_PARAL    EQU      0C0H       ;ASCII字節數96*2=192=
      LCHK_PARAH    EQU      40H

      LEN_SETUP     EQU      5
      LCHK_SETUPL   EQU      12H
      LCHK_SETUPH   EQU      0d0H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;位尋址區:20h-->25h即(00-->2fh)用語一些數制轉換計算,25H(28H-->2FH)用于標志
;26h-->2Ah(即30H-->57H):用于上位機通信
;2Bh-->2Fh(即58h-->7fh)用于與設備通信標志
;RAM 10H-->1FH用于上位機(即兩組寄存器)
;RAM 30H-->3FH及浮點數運算
;RAM 40H-->4FH用于設備
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PCM_STATE             EQU     2FH          ;PCM狀態
BREAK_FLAG           BIT      78H          ;協議轉換器與設備短線
STATUS_1BIT            BIT      79H          ;設備數據是否準備好
STATUS_7BIT            BIT      7FH          ;設置參數變化
SETUP_FLAG            BIT      58H         ;有命令要發送
ALLOW_MOVE_FLAG    BIT      59H
ALLOW_SEND_FLAG     BIT      5AH
ALLOW_TRANS_FLAG   BIT      5BH
PCM_ADDR             EQU     40H
TRANSID       		 EQU     41H
SENDID                 EQU     42H
SMRECE_STATE         EQU     43H
SM_CHKH               EQU    44H
SM_CHKL               EQU    45H
T3S                     EQU    46H
RSTATE_STX            EQU     3
RSTATE_STX_10H        EQU    4
RSTATE_DATABLOCK    EQU     6

CHARACTER_WORDL     EQU       55H
CHARACTER_WORDH     EQU       0AAH



           ORG      0000H
           LJMP     START
           ORG      0003H
           RETI
           ORG      000BH
           LJMP     EVENT
           ORG      0013H
           LJMP     INT
           ORG      001BH
           RETI
           ORG      0023H
           LJMP     INT_SM_RECE
           ORG      002BH
           RETI


             ORG 00A0H
;==============================================
;程序包含3個文件,通過INCLUDE包含,方便調試,修改
;==============================================
INCLUDE"PCM16C550.ASM"
      INCLUDE"SETUP1.ASM"
      INCLUDE"ISO_MATHS.ASM"

START:     CLR      CTRL_485
           MOV      SP,#50H         ;設置指針
           LCALL    SYS_DELAY     ;上電延時10MS,
           LCALL    READ_PCMADDR
           LCALL    INIT_COOL            ;寄存器初始化
           LCALL    INIT_HEAD            ;初始化協議頭部格式
           ;LCALL    CLR_RAM   
           LCALL    INITSEND
           MOV      IE,#10010110B     ;開總中斷,開放定時器2,開放串口中斷,開放中斷0
           SETB     TR0
;================================================================================
;主程序由4個子程序和2個中斷程序組成,發送子程序完成對智能設備發送命令,讀取設備的數據放在指定
;地址的RAM空間,復制子程序將讀取的數據轉移到另外空間的RAM,轉化程序將設備的數據轉化成電總協議
;的數據塊,即DATAINFO部分,MAINLOOPPCDATA程序將轉化成DATAINFO部分的數據加上SOI,ADR,CID,; CHUKSUM,等,形成發送給上位機的符合電總協議的數據包
;======================================================================================
MAIN:     LCALL    MainLoopSend  ; 發送程序,只管發送
           LCALL    MainLoopCopy  ; 復制校驗程序
           LCALL    MainLoopTrans  ; 數據格式轉化整理程序
           LCALL    MainLoopPcData ; 將整理好的數據加形成完整的電總協議
           SETB     P1.3
           AJMP     MAIN
   ;======================================================================
   ;這里看門狗沒有采取取反的形式喂狗,而是給固定高電平SETB  P1.3,在定時器里采用了
;CLR   P1.3 兩者結合喂狗,所以如果只有主程序循環,而不能進入中斷,或者進入中斷,
;不能退出,多將引起復位
   ;=======================================================================
  
;==========================================================================
;發送一個字節給智能設備,包括發送填充字
;==============================================================================
SEND_BYTE: CJNE   A,#10H,SB10
           JNB    TI,$
           CLR    TI
           MOV    SBUF,A
           JNB    TI,$
           CLR    TI
           MOV    SBUF,A
           RET
SB10:      JNB    TI,$
           CLR    TI
           MOV    SBUF,A
           RET
;============================================
;根據智能設備協議,形成和校驗,
;============================================
SM_CHKSUM: CLR      C
           ADD      A,SM_CHKL     ;形成和校驗
           MOV      SM_CHKL,A
           MOV      A,SM_CHKH
           ADDC     A,#0
           MOV      SM_CHKH,A
           RET
;======================================================================================
;發送命令給智能設備,ALLOW_SEND_FLAG在正常情況下是由定時器沒3S鐘產生一次,
;=====================================================================================
MAINLOOPSEND:JBC     ALLOW_SEND_FLAG,S2SETUP
             RET

S2SETUP:     JNB     SETUP_FLAG,S2SET
             LJMP    SETUP
             RET

INITSEND:    MOV     SENDID,#0
S2SET:       MOV     A,SENDID        ;根據SENDID發送第幾條命令
             MOV     DPTR,#ADDR_TABLE
             MOVC    A,@A+DPTR
             MOV     DPTR,#REALTIM01
             CLR     C
             ADD     A,DPL
             MOV     DPL,A
             MOV     A,DPH
             ADDC    A,#0
             MOV     DPH,A
             LCALL   SEND2SM
             RET


;============================================
;發送完整的一包命令
;============================================
SEND2SM:   CLR    ES                  ;關中斷,
           MOV    R6,DPL
           MOV    R7,DPH
           LCALL  SEND_FRAM_HEAD
           MOV    SM_CHKL,#0
           MOV    SM_CHKH,#0
           MOV    DPL,R6
           MOV    DPH,R7
           CLR    A
           MOVC   A,@A+DPTR
           MOV    R2,A                            ;循環次數
S2SM:      INC    DPTR
           CLR    A
           MOVC   A,@A+DPTR
           CJNE   A,#CHARACTER_WORDH,SCW
           MOV    A,R4
           AJMP   S2S
SCW:       CJNE   A,#CHARACTER_WORDL,S2S
           MOV    A,R3
S2S:       LCALL  SEND_BYTE
           LCALL  SM_CHKSUM
           DJNZ   R2,S2SM
           CLR    C
           MOV    A,SM_CHKL
           CPL    A
           ADD    A,#1
           MOV    SM_CHKL,A
           MOV    A,SM_CHKH
           CPL    A
           ADDC   A,#0
           LCALL  SEND_BYTE
           MOV    A,SM_CHKL
           LCALL  SEND_BYTE
           MOV    A,#10H
           JNB    TI,$
           CLR    TI
           MOV    SBUF,A
           MOV    A,#03H
           LCALL  SEND_BYTE
           JNB    TI,$
           CLR    TI
           CLR    RI
           SETB   ES
           MOV    SMRECE_STATE,#RSTATE_STX_10H
           RET
;===========================================================================
;發送每幀多一樣的命令起始部分
;==========================================================================
SEND_FRAM_HEAD:MOV    R2,#10
               MOV    DPTR,#FRAM_HEAD
               SETB   TI
SFH:           CLR    A
               MOVC   A,@A+DPTR
               JNB    TI,$
               CLR    TI
               MOV    SBUF,A
               INC    DPTR
               DJNZ   R2,SFH
               RET

;==============================================================================
;發送給ISOVELL空調的所有命令表格
;==============================================================================
 ADDR_TABLE:   DB    0 1*8 2*8 3*8 4*8 5*8 6*8 7*8 8*8 9*8 10*8 11*8 12*8 13*8 14*8 15*8 16*8 17*8 18*8 19*8 20*8 21*8 22*8 23*8 24*8 25*8 26*8 27*8 28*8

 FRAM_HEAD:    DB    10H 02H 01H  01H  01H  0FFH  00H  00H   00H  0FFH

 REALTIM01:    DB    07H 01H 85H 82H  81H  25H  82H   82H
 REALTIM02:    DB    07H 01H 84H 82H  81H  24H  82H   82H
 REALTIM05:    DB    07H 01H 88H 80H  81H  28H  80H   8AH
 REALTIM06:    DB    07H 01H 82H 41H  01H  22H  41H   10H
 REALTIM07:    DB    07H 01H 82H 41H  8BH  22H  41H   8EH
 REALTIM08:    DB    07H 01H 82H 41H  95H  22H  41H   98H
 REALTIM09:    DB    07H 01H 82H 41H  9FH  22H  41H   0A5H
 REALTIM10:    DB    07H 01H 82H 41H  0A9h 22H  41H   0ABH
 REALTIM11:    DB    07H 01H 82H 41H  0B2H 22H  41H   0B5H
 REALTIM12:    DB    07H 01H 82H 41H  0BCH 22H  41H   0BEH
 REALTIM13:    DB    07H 01H 82H 41H  0D1H 22H  41H   0D4H
 REALTIM14:    DB    07H 01H 82H 41H  0DAH 22H  41H   0DCH
 REALTIM15:    DB    07H 01H 82H 41H  0DEH 22H  41H   0E1H
 REALTIM16:    DB    07H 01H 83H 0C0H 81H  23H  0C0H  82H
 PARADATA1:    DB    07H 01H 84H 00H  81H  24H  00H   82H
 PARADATA2:    DB    07H 01H 85H 00H  81H  25H  00H   82H
 PARADATA3:    DB    07H 01H 85H 00H  8AH  25H  00H   8CH
 PARADATA4:    DB    07H 01H 84H 00H  8AH  24H  00H   8BH
 PARADATA6:    DB    07H 01H 82H 00H  81H  22H  00H   83H
 PARADATA7:    DB    07H 01H 82H 01H  8BH  22H  01H   8EH
 PARADATA8:    DB    07H 01H 82H 01H  95H  22H  01H   98H
 PARADATA9:    DB    07H 01H 82H 01H  9FH  22H  01H   0A5H
 PARADATA10:   DB    07H 01H 82H 01H  0A9H 22H  01H   0ABH
 PARADATA11:   DB    07H 01H 82H 01H  0B2H 22H  01H   0B5H
 PARADATA12:   DB    07H 01H 82H 01H  0BCH 22H  01H   0BEH
 PARADATA13:   DB    07H 01H 82H 01H  0D1H 22H  01H   0D4H
 PARADATA14:   DB    07H 01H 82H 01H  0DAH 22H  01H   0DCH
 PARADATA15:   DB    07H 01H 82H 01H  0DEH 22H  01H   0E1H
 PARADATA16:   DB    07H 01H 82H 01H  01H  22H  01H   13H

 SETUPPARA0:   DB    06H 01H 64H 00H  81H  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA1:   DB    06H 01H 65H 00H  81H  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA2:   DB    06H 01H 65H 00H  82H  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA3:   DB    06H 01H 65H 00H  8AH  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA4:   DB    06H 01H 65H 00H  8BH  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA5:   DB    06H 01H 65H 00H  8CH  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA6:   DB    06H 01H 64H 00H  8AH  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA7:   DB    06H 01H 64H 00H  8BH  CHARACTER_WORDH CHARACTER_WORDL   00H
 SETUPPARA8:   DB    05H 01H 62H 00H  81H  CHARACTER_WORDL  00H   00H
 SETUPPARA9:   DB    05H 01H 62H 00H  82H  CHARACTER_WORDL  00H   00H
 SETUPPARAA:   DB    05H 01H 62H 00H  83H  CHARACTER_WORDL  00H   00H
 SETUPPARAB:   DB    05H 01H 62H 00H  9BH  CHARACTER_WORDL  00H   00H
 SETUPPARAC:   DB    05H 01H 63H 0C0H 81H  CHARACTER_WORDL  00H   00H
;===============================================================
; 單片機自身UART中斷,只接收,將接收的數據放在R6,R7所指的程序空間
;利用SWITCH  CASE的語句形式,每次接收協議中相應的一個字節,接收完成后
;置可以復制的標志ALLOW_MOVE_FLAG
;================================================================
INT_SM_RECE: PUSH     A
             PUSH     B
             PUSH     DPL
             PUSH     DPH
             PUSH     PSW
             SETB     RS0
             CLR      RS1
             JBC      RI,SMRECE_RESPONSE

 INT_SM_RETURN:POP    PSW
             POP      DPH
             POP      DPL
             POP      B
             POP      A
             RETI
SMRECE_RESPONSE:
             MOV      A,SBUF
             MOV      B,A
             CLR      BREAK_FLAG
             MOV      T3S,#60
             SETB     P3.5
             MOV      A,SMRECE_STATE

R_STX_10H:   CJNE     A,#RSTATE_STX_10H,R_STX
             MOV      A,B
             CJNE     A,#10H,INT_SM_RETURN
             MOV      SMRECE_STATE,#RSTATE_STX
             MOV      SM_CHKL,#0
             MOV      SM_CHKH,#0
             AJMP     INT_SM_RETURN

R_STX:       CJNE     A,#RSTATE_STX,R_DATABLOCK
             MOV      A,B
             CJNE     A,#02H,R_STX_ERROR
             MOV      SMRECE_STATE,#RSTATE_DATABLOCK
             MOV      R6,#LOW(DATA_BUFFER0-15)
             MOV      R7,#HIGH(DATA_BUFFER0-15)
             LJMP     INT_SM_RETURN
R_STX_ERROR: MOV      SMRECE_STATE,#RSTATE_STX_10H
             LJMP     INT_SM_RETURN

R_DATABLOCK: CJNE     A,#RSTATE_DATABLOCK,R_STX_ERROR
             MOV      A,B
             CJNE     A,#10H,R_DATAB
             JNB      RI,$
             CLR      RI
             MOV      A,SBUF
             CJNE     A,#03H,R_DATAB
             MOV      SMRECE_STATE,RSTATE_STX_10H
             SETB     ALLOW_MOVE_FLAG
             CLR      P3.5
             LJMP     INT_SM_RETURN
R_DATAB:     MOV      DPL,R6
             MOV      DPH,R7
             MOVX     @DPTR,A
             INC      DPTR
             MOV      R6,DPL
             MOV      R7,DPH
             LJMP     INT_SM_RETURN

;======================================================================
復制子程序,將智能設備的數據移走,因為接收程序讀取的數據放在指定的地方,為了防止被覆蓋
;所以要盡快移走
;======================================================================
MAINLOOPCOPY:JBC     ALLOW_MOVE_FLAG,MD
             RET
MD_RETURN:   SETB    ALLOW_SEND_FLAG    ;設置的應答簡單處理
             RET
MD:          MOV     DPTR,#DATA_BUFFER0-6
             MOVX    A,@DPTR
             MOV     R2,A
             ANL     A,#0F0H
             SWAP    A
             CJNE    A,#8,MD_RETURN         ;=E是設置,不做處理
             MOV     DPTR,#DATA_BUFFER0-4
             MOVX    A,@DPTR
             MOV     B,A
             MOV     DPTR,#DATA_BUFFER0-1
             MOVX    A,@DPTR
             CLR     C
             SUBB    A,B
             INC     A
             XCH     A,R2
             JB      ACC.3,ACCOUNT4
             JB      ACC.2,ACCOUNT2
             JB      ACC.1,ACCOUNT1
             RET
ACCOUNT4:    MOV      A,R2
             RL       A
             RL       A
             AJMP     BYTE_LENTH
ACCOUNT2:    MOV      A,R2
             RL       A
             AJMP     BYTE_LENTH
ACCOUNT1:    MOV      A,R2
  BYTE_LENTH:ADD     A,#7
             MOV     R2,A           ;R2:LENGTH
             MOV     R3,#0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777精品伊人久久久久大香线蕉| 欧美精品在线视频| 色综合激情久久| 91精品国产乱| 一区二区三区精品在线| 国产999精品久久久久久绿帽| 欧美午夜一区二区三区| 中文av字幕一区| 麻豆精品在线观看| 在线观看日韩高清av| 国产免费成人在线视频| 日本特黄久久久高潮 | 最好看的中文字幕久久| 极品瑜伽女神91| 欧美群妇大交群中文字幕| 91国内精品野花午夜精品| 国产精品视频你懂的| 国产自产v一区二区三区c| 亚洲国产欧美一区二区三区丁香婷| 男男视频亚洲欧美| 欧美日产在线观看| 一区二区三区不卡视频| 99久久伊人网影院| 久久久久久久久99精品| 久久99久久99小草精品免视看| 欧美日韩视频不卡| 亚洲一区二区三区在线播放| 色综合久久88色综合天天| 成人免费在线视频| 91香蕉视频黄| 亚洲日本va午夜在线影院| 91色婷婷久久久久合中文| 国产精品第四页| 91麻豆免费看| 一区二区不卡在线播放| 日韩免费在线观看| 久久综合av免费| 激情欧美一区二区| 久久婷婷成人综合色| 国产麻豆一精品一av一免费| 久久夜色精品国产欧美乱极品| 韩日精品视频一区| 欧美日韩国产片| 美女在线一区二区| 久久午夜羞羞影院免费观看| 国产成人综合网站| 国产精品国产馆在线真实露脸| 91亚洲大成网污www| 夜夜嗨av一区二区三区四季av| 在线观看网站黄不卡| 亚洲国产精品麻豆| 欧美α欧美αv大片| 国产成人精品亚洲午夜麻豆| 亚洲欧洲韩国日本视频| 在线观看日韩av先锋影音电影院| 午夜日韩在线观看| 精品伦理精品一区| 99久久综合精品| 亚洲高清视频的网址| 日韩精品一区二区三区在线播放| 2021中文字幕一区亚洲| 成人视屏免费看| 中文字幕视频一区| 欧美另类久久久品| 国产福利91精品一区| 亚洲人成网站在线| 久久蜜桃av一区二区天堂| 成人黄色免费短视频| 午夜精品久久久久久久久久| 久久一区二区三区四区| 日本道精品一区二区三区| 免费欧美日韩国产三级电影| 国产精品久久久久久户外露出 | 五月天久久比比资源色| 精品国产1区2区3区| 99国内精品久久| 久久精品二区亚洲w码| 亚洲欧美一区二区不卡| 精品嫩草影院久久| 91国模大尺度私拍在线视频| 激情综合色播五月| 不卡在线视频中文字幕| 色国产综合视频| 久久精品国产一区二区三区免费看| 欧美高清在线精品一区| 在线观看91av| 99九九99九九九视频精品| 日本女人一区二区三区| 亚洲色图视频网站| 久久婷婷成人综合色| 欧美日本不卡视频| 99国产欧美久久久精品| 久88久久88久久久| 亚洲成av人在线观看| 国产精品少妇自拍| 精品国产免费一区二区三区四区| 91丝袜美腿高跟国产极品老师 | 日韩精品中文字幕一区 | 亚洲天堂av一区| 久久婷婷国产综合精品青草| 欧美一区二区精品在线| 欧美在线不卡一区| 91麻豆123| 94色蜜桃网一区二区三区| 国产高清精品在线| 久久精品国产99国产| 日韩高清在线电影| 午夜精品福利在线| 五月天中文字幕一区二区| 亚洲自拍偷拍综合| 亚洲一区二区三区不卡国产欧美| 亚洲欧美区自拍先锋| 中文字幕亚洲区| 亚洲欧美国产毛片在线| 亚洲免费av高清| 亚洲精品国产一区二区精华液| 中文字幕一区日韩精品欧美| 国产精品对白交换视频| 亚洲少妇屁股交4| 一区二区成人在线| 午夜视频在线观看一区二区三区| 亚洲影院免费观看| 亚洲444eee在线观看| 日韩 欧美一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 美女www一区二区| 国产在线播精品第三| 国产黄色精品网站| 99综合电影在线视频| 色老汉一区二区三区| 欧美日韩亚洲综合一区二区三区| 欧美日韩黄色影视| 日韩欧美亚洲一区二区| 国产偷国产偷亚洲高清人白洁 | 欧美日韩精品一区二区三区蜜桃 | 日韩欧美你懂的| 欧美高清在线一区| 亚洲精品欧美在线| 丝袜国产日韩另类美女| 精品一区二区三区的国产在线播放| 国产一区激情在线| 91丨九色porny丨蝌蚪| 欧美日韩国产精品成人| 久久这里都是精品| 亚洲欧洲另类国产综合| 日韩电影一区二区三区四区| 国产丶欧美丶日本不卡视频| 色域天天综合网| 欧美xfplay| 久久这里只精品最新地址| 久久不见久久见免费视频7| 国产在线麻豆精品观看| 久久精品免费观看| 夜夜嗨av一区二区三区四季av| 日本中文字幕一区二区有限公司| 麻豆国产精品官网| 91视频观看免费| 日韩视频免费观看高清完整版在线观看 | 色噜噜狠狠色综合中国| 欧美一区二区视频网站| 国产精品欧美经典| 丝袜美腿亚洲一区二区图片| 高清国产一区二区| 欧美高清一级片在线| 国产精品国产三级国产aⅴ原创| 丝袜诱惑亚洲看片| 99久久免费视频.com| 日韩欧美一二三四区| 亚洲精品国产无套在线观| 久久天天做天天爱综合色| 亚洲精品少妇30p| 欧美一卡2卡三卡4卡5免费| 亚洲高清久久久| 91精品国产综合久久精品| 国产美女久久久久| 久久久av毛片精品| 亚洲高清免费一级二级三级| 亚洲视频在线一区观看| 麻豆91免费看| 欧美日韩和欧美的一区二区| 中文字幕一区二区三区在线播放| 麻豆91精品91久久久的内涵| 在线观看日韩电影| 国产精品国产三级国产三级人妇| 免费黄网站欧美| 欧美卡1卡2卡| 亚洲高清一区二区三区| 色屁屁一区二区| 亚洲四区在线观看| 国产二区国产一区在线观看 | 亚洲成人av电影| 色94色欧美sute亚洲线路一ni| 日本一区免费视频| 国产成人高清视频| 欧美国产在线观看| 国产电影精品久久禁18| 国产亚洲精品aa| 大胆欧美人体老妇| 欧美成人a在线| 国产精品另类一区|