⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tem.asm

📁 通过串口测温度的下位机(单片机2051)程序和编译好的十六进制文件,温度测量元件为DS1621.
💻 ASM
字号:
SCL     EQU     P3.5
SDA     EQU     P3.4
;LED1    EQU     P3.2;第一个数码管
;LED2    EQU     P3.3;第二个数码管
;LED3    EQU     P3.4;第三个数码管
;LED4    EQU     P3.5;第四个数码管;小数部分;
LERU    EQU     38H;
LER1    EQU     30H;存显示第一个数码管的代码
LER2    EQU     31H;存显示第二个数码管的代码
LER3    EQU     32H;存显示第三个数码管的代码
LER4    EQU     33H;存显示第四个数码管的代码
COUN1   EQU     34H;
COUN2   EQU     35H;
COUN3   EQU     36H;
DJJ     EQU     37H;
ZHENG   EQU     21H;整数部分
XIAO    EQU     22H;小数部分
TT      EQU     20H;
        ORG     00H
        LJMP    MAIN
        ORG     03H
        RETI
        ORG     0BH
        RETI
        ORG     13H
        RETI
        ORG     1BH
        RETI
        ORG     23H
        LJMP    ESL
        ORG     30H;////////////////////////
ESGOTO:
        AJMP    ESLW
ESL:    MOV     A,SBUF
        CLR     P3.7
ESL3:   CJNE    A,#0A5H,ESGOTO;
        CALL    WRITO
        CALL    WRITC
        CALL    READT
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
;        MOV     A,#"."
;        MOV     ZHENG,A
;        MOV     A,#80H
;        MOV     XIAO,A    有?

        JNB     ZHENG.7,ESLUN
        CLR     ZHENG.7
        ;MOV     A,#00H
        ;CLR     TI
        ;MOV     SBUF,A
        ;JNB     TI,$
        MOV     A,#45
        CLR     TI
        MOV     SBUF,A
        JNB     TI,$
        ;CALL    DELAY
ESLUN:        
        CALL    BCD
        MOV     A,#30H
        CJNE    A,LER1,END1;ZHENG
        SJMP    UND1
END1:
        ;MOV     A,#00H
        ;CLR     TI
        ;MOV     SBUF,A
        ;JNB     TI,$
        MOV     A,LER1
        CLR     TI
        MOV     SBUF,A
        JNB     TI,$
        CALL    DELAY
END2:
        ;MOV     A,#00H
        ;CLR     TI
        ;MOV     SBUF,A
        ;JNB     TI,$
        MOV     A,LER2;ZHENG
        CLR     TI
        MOV     SBUF,A
        JNB     TI,$
        ;CALL    DELAY
UND2:
        ;MOV     A,#00H
        ;CLR     TI
        ;MOV     SBUF,A
        ;JNB     TI,$
        MOV     A,LER3;ZHENG
        CLR     TI
        MOV     SBUF,A
        JNB     TI,$
        ;CALL    DELAY

        ;MOV     A,#00H
        ;CLR     TI
        ;MOV     SBUF,A
        ;JNB     TI,$
        MOV     A,#46;ZHENG
        CLR     TI
        MOV     SBUF,A
        JNB     TI,$
        ;CALL    DELAY

        ;MOV     A,#00H
        ;CLR     TI
        ;MOV     SBUF,A
        ;JNB     TI,$
        MOV     A,LER4;XIAO
        CLR     TI
        MOV     SBUF,A
        JNB     TI,$
        ;CALL    DELAY

ESLW:   CLR     RI
        CLR     TI
        SETB    REN
        RETI

UND1:
        MOV     A,#30H
        CJNE    A,LER2,END2
        SJMP    UND2


START_T:
        SETB    SCL
        SETB    SDA
        NOP
        CLR     SDA
        NOP
        NOP
        NOP
        NOP
        CLR     SCL
        RET


STOP_T:
        CLR     SDA
        NOP
        NOP
        SETB    SCL
        NOP
        NOP
        NOP
        NOP
        SETB    SDA
        RET


OUTBYTE_T:
        MOV     R2,#08H
        MOV     TT,A
OUTBY_LO:
        JB      TT.7,OUT_1
        CLR     SDA
        SJMP    OUTBY_N
OUT_1:
        SETB    SDA
OUTBY_N:
        MOV     A,TT
        RL      A
        MOV     TT,A
        NOP
        SETB    SCL
        NOP
        NOP
        NOP
        NOP
        CLR     SCL
        DJNZ    R2,OUTBY_LO
        SETB    SDA
        NOP
        NOP
        SETB    SCL
        NOP
        NOP
        NOP
        NOP
        CLR     SCL
        RET


ACK:
        CLR     SDA
        NOP
        NOP
        SETB    SCL
        NOP
        NOP
        NOP
        NOP
        CLR     SCL
        RET


NACK:
        SETB    SDA
        NOP
        NOP
        SETB    SCL
        NOP
        NOP
        NOP
        NOP
        CLR     SCL
        RET


INBYTE_T:
        SETB    SDA
        MOV     R2,#08H
        MOV     TT,#0FFH
INBY_LO:
        NOP
        NOP
        NOP
        NOP
        SETB    SCL
        NOP
        NOP
        MOV     A,TT
        RL      A
        MOV     TT,A
        JB      SDA,INBY_N
        CLR     TT.0
INBY_N:
        CLR     SCL
        DJNZ    R2,INBY_LO
        RET


WRITC:
        CALL    START_T
        MOV     A,#90H
        CALL    OUTBYTE_T
        MOV     A,#0EEH
        CALL    OUTBYTE_T
        CALL    STOP_T
        NOP
        NOP
        RET


WRITO:
        CALL    START_T
        MOV     A,#90H
        CALL    OUTBYTE_T
        MOV     A,#0A2H
        CALL    OUTBYTE_T
        MOV     A,#08H
        CALL    OUTBYTE_T
        CALL    STOP_T
        NOP
        NOP
        RET

READT:
        CALL    START_T
        MOV     A,#90H
        CALL    OUTBYTE_T
        MOV     A,#0AAH
        CALL    OUTBYTE_T
        CALL    START_T
        MOV     A,#91H
        CALL    OUTBYTE_T
        CALL    INBYTE_T
        MOV     ZHENG,TT
        CALL    ACK
        CALL    INBYTE_T
        MOV     XIAO,TT
        CALL    NACK
        CALL    STOP_T
        RET


BCD:
        NOP
        NOP
        MOV     A,ZHENG
        MOV     B,#0AH
        DIV     AB
        MOV     LER3,B
        MOV     B,#0AH
        DIV     AB
        MOV     LER2,B
        MOV     LER1,A
        MOV     A,#0H
        JNB     XIAO.7,BC_1
        MOV     A,#05H
BC_1:
        MOV     LER4,A
        MOV     DPTR,#NEI
        MOV     A,LER1
        MOVC    A,@A+DPTR
        MOV     LER1,A
        MOV     A,LER2
        MOVC    A,@A+DPTR
        MOV     LER2,A

        MOV     A,LER3
        MOVC    A,@A+DPTR
        MOV     LER3,A
        MOV     A,LER4
        MOVC    A,@A+DPTR
        MOV     LER4,A
        RET



























DELAY:
        MOV     DJJ,#00H
        DJNZ    DJJ,$
        NOP
        NOP
        RET

























SERL:   ;CLR EA
        MOV IE,#0
        MOV TMOD,#20H
        MOV TH1,#0F3H      ;4800    ;12
;        CLR TR1
        MOV SCON,#40H
        SETB TR1
;        CLR ET1
;        CLR ES
;        SETB PT1
;        CLR PS
SERLE:  ;CLR REN
;        MOV  A,
        MOV  PCON,#80H
;        MOV R1,#TEMP
        MOV R2,#6
;        SETB    EA
;        SETB    IT1
        CLR RI
        MOV 20H,#0
        MOV B,#0
        MOV 21H,#0
        SETB    ES
        SETB    PS
        SETB EA
        SETB REN
        RET

MAIN:
        NOP
;        MOV     IE,#00H
        MOV     SP,#50H
        MOV     P1,#0FFH
        MOV     P3,#0FFH
        MOV     COUN1,#3H
        MOV     COUN2,#0H

        CALL    SERL

        CALL    WRITO
        CALL    WRITC
        CALL    READT
START:
        NOP
        NOP
;        CALL    READT
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
;        CLR     TI
;        MOV     A,21H
;        MOV     SBUF,A
;        JNB     TI,$
;        CLR     TI
;        MOV     A,22H
;        MOV     SBUF,A
;        JNB     TI,$



        AJMP    START
        CALL    READT
        JB      ZHENG.7,UNZERO
        MOV     A,ZHENG
        CLR     XIAO.0
        CALL    BCD
;        SJMP    DISPLAY
UNZERO:
        MOV     A,ZHENG
        CPL     A
        JB      XIAO.7,UNZER1
        INC     A
UNZER1:
        MOV     ZHENG,A;MCLR     ZHENG.7
        SETB    XIAO.0
        MOV     A,ZHENG
        CALL    BCD
;DISPLAY:
;        NOP
;        MOV     P1,#0FFH
;        CLR     LED1
;        SETB    LED2
;        SETB    LED3
;        SETB    LED4
;        MOV     P1,LER1
;        CALL    DELAY
 ;       MOV     P1,#0FFH
;        CLR     LED2
;        SETB    LED1
;        SETB    LED3
;        SETB    LED4
;        MOV     P1,LER2
;        CALL    DELAY
;        MOV     P1,#0FFH
;        CLR     LED3
;        SETB    LED1
;        SETB    LED2
;        SETB    LED4
;        MOV     P1,LER3
;        CALL    DELAY
;        MOV     P1,#0FFH
;        CLR     LED4
;        SETB    LED1
;        SETB    LED2
;        SETB    LED3
;        MOV     P1,LER4
;        CALL    DELAY
;        DJNZ    COUN1,DISPLAY
;        MOV     COUN1,#3H
;        DJNZ    COUN2,DISPLAY
;        NOP
;        NOP
;        AJMP    START
NEI:
        DB      30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3FH
        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -