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

📄 temperaturecontrol.asm

📁 proteus仿真实例大全
💻 ASM
📖 第 1 页 / 共 3 页
字号:
       mov code,#0
       lcall writeleft2
       LCALL DELAY1

       mov column4,#0            ;度
       mov pagef4,#2
       mov code,#1
       lcall writeright2
       LCALL DELAY1
       RET
DISPLAY3:
       mov column2,#16
       mov pagef2,#2
       mov code,#10
       lcall writeright
                                  ;显示预设的温度
       mov column2,#24
       mov pagef2,#2
       mov code,48H
       lcall writeright

       mov column2,#32
       mov pagef2,#2
       mov code,55H
       lcall writeright

       mov column2,#40
       mov pagef2,#2             ;.
       mov code,#11
       lcall writeright

       mov column2,#48
       mov pagef2,#2
       mov code,56H
       lcall writeright
       RET

DISPLAY4:                              ;显示"实际温度"
       mov column3,#16            ;实
       mov pagef3,#4
       mov code,#10
       lcall writeleft2
       LCALL DELAY1

       mov column3,#32           ;际
       mov pagef3,#4
       mov code,#11
       lcall writeleft2
       LCALL DELAY1

       mov column3,#48          ;温
       mov pagef3,#4
       mov code,#0
       lcall writeleft2
       LCALL DELAY1

       mov column3,#0          ;度
       mov pagef3,#4
       mov code,#1
       lcall writeright2
       LCALL DELAY1
        RET

DISPLAY5:                            ;显示实际的温度
      MOV A,29H
      MOV C,40H  ;28的位地址
      RRC A
      MOV C,41H
      RRC A
      MOV C,42H
      RRC A
      MOV C,43H
      RRC A
      MOV 51H,A
      ANL 29H,#0FH
      MOV A,29H
      MOV B,#6
      MUL AB
      MOV 50H,A

      mov a,51H
      mov b,#10
      div ab
      mov 43H,a
      mov 42H,b

      MOV A,50H
      MOV B,#10
      DIV AB
      MOV 41H,A
       MOV 40H,B

       mov column2,#16
       mov pagef2,#4
       mov code,#10
       lcall writeright

       mov column2,#24            ;实际温度
       mov pagef2,#4
       mov code,43h
       lcall writeright

       mov column2,#32
       mov pagef2,#4
       mov code,42h
       lcall writeright

       mov column2,#40
       mov pagef2,#4             ;.
       mov code,#11
       lcall writeright

       mov column2,#48
       mov pagef2,#4
       mov code,41h
       lcall writeright
       RET

DISPLAY6:
       mov column3,#24
       mov pagef3,#6             ;状
       mov code,#13
       lcall writeleft2
       LCALL DELAY1

       mov column3,#40
       mov pagef3,#6             ;态
       mov code,#14
       lcall writeleft2
       LCALL DELAY1

       mov column,#56
       mov pagef,#6             ; :
       mov code,#10
       lcall writeleft
       LCALL DELAY1

       mov column4,#0
       mov pagef4,#6             ;加
       mov code,#15
       lcall writeright2
       LCALL DELAY1

       mov column4,#16
       mov pagef4,#6             ;热
       mov code,#16
       lcall writeright2
       LCALL DELAY1

       mov column4,#32
       mov pagef4,#6             ; !
       mov code,#19
       lcall writeright2
       LCALL DELAY1
       RET

DISPLAY7:
       mov column3,#24
       mov pagef3,#6             ;状
       mov code,#13
       lcall writeleft2
       LCALL DELAY1

       mov column3,#40
       mov pagef3,#6             ;态
       mov code,#14
       lcall writeleft2
       LCALL DELAY1

       mov column,#56
       mov pagef,#6             ; :
       mov code,#10
       lcall writeleft
       LCALL DELAY1

       mov column4,#0
       mov pagef4,#6             ;降
       mov code,#17
       lcall writeright2
       LCALL DELAY1

       mov column4,#16
       mov pagef4,#6             ;温
       mov code,#0
       lcall writeright2
       LCALL DELAY1

       mov column4,#32
       mov pagef4,#6             ;!
       mov code,#19
       lcall writeright2
       LCALL DELAY1
       RET
DISPLAY8:
         mov column2,#24
         mov pagef2,#2
         mov code,48H
         lcall writeright

         LCALL DELAY
         LCALL DELAY

         mov column2,#24
         mov pagef2,#2
         mov code,#12
         lcall writeright
         RET

DISPLAY9:
         mov column2,#32
         mov pagef2,#2
         mov code,55H
         lcall writeright

         LCALL DELAY
         LCALL DELAY

         mov column2,#32
         mov pagef2,#2
         mov code,#12
         lcall writeright
         RET
DISPLAY10:
        mov column2,#48
         mov pagef2,#2
         mov code,56H
         lcall writeright

         LCALL DELAY
         LCALL DELAY

         mov column2,#48
         mov pagef2,#2
         mov code,#12
         lcall writeright
         RET

DISPLAY11:
       mov column3,#24
       mov pagef3,#6             ;状
       mov code,#13
       lcall writeleft2
       LCALL DELAY1

       mov column3,#40
       mov pagef3,#6             ;态
       mov code,#14
       lcall writeleft2
       LCALL DELAY1

       mov column,#56
       mov pagef,#6             ; :
       mov code,#10
       lcall writeleft
       LCALL DELAY1

       mov column4,#0
       mov pagef4,#6             ;降
       mov code,#20
       lcall writeright2
       LCALL DELAY1

       mov column4,#16
       mov pagef4,#6             ;温
       mov code,#21
       lcall writeright2
       LCALL DELAY1

       mov column4,#32
       mov pagef4,#6             ;!
       mov code,#19
       lcall writeright2
       LCALL DELAY1
       RET

DISPLAY:
       mov column2,#24
       mov pagef2,#2
       mov code,48H
       lcall writeright

       mov column2,#32
       mov pagef2,#2
       mov code,55H
       lcall writeright

       mov column2,#40
       mov pagef2,#2             ;.
       mov code,#11
       lcall writeright

       mov column2,#48
       mov pagef2,#2
       mov code,56H
       lcall writeright

      MOV A,29H
      MOV C,40H  ;28的位地址
      RRC A
      MOV C,41H
      RRC A
      MOV C,42H
      RRC A
      MOV C,43H
      RRC A
      MOV 51H,A
      ANL 29H,#0FH
      MOV A,29H
      MOV B,#6
      MUL AB
      MOV 50H,A

      mov a,51H
      mov b,#10
      div ab
      mov 43H,a
      mov 42H,b

      MOV A,50H
      MOV B,#10
      DIV AB
      MOV 41H,A
      MOV 40H,B

       mov column2,#24            ;实际温度
       mov pagef2,#4
       mov code,43h
       lcall writeright

       mov column2,#32
       mov pagef2,#4
       mov code,42h
       lcall writeright

       mov column2,#40
       mov pagef2,#4             ;.
       mov code,#11
       lcall writeright

       mov column2,#48
       mov pagef2,#4
       mov code,41h
       lcall writeright
       RET


;***********************DS18B20复位初始化子程序***********


INIT_1820:
      SETB P3.1
      NOP
      CLR P3.1;主机发出延时537微秒的复位低脉冲
      MOV R1,#3
TSR1: MOV R0,#107
      DJNZ R0,$
      DJNZ R1,TSR1
      SETB P3.1       ;然后拉高数据线
      NOP
      NOP
      NOP
      MOV R0,#25H
TSR2: JNB P3.1,TSR3  ;等待DS18B20回应
      DJNZ R0,TSR2
      LJMP TSR4      ; 延时
TSR3: SETB FLAG1     ; 置标志位,表示DS1820存在

      LJMP TSR5
TSR4: CLR FLAG1      ; 清标志位,表示DS1820不存在

      LJMP TSR7
TSR5: MOV R0,#117
TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间
TSR7: SETB P3.1
      RET    ; 读出转换后的温度值



;***********************读温度子程序*****************
GET_TEMPER:
      SETB P3.1
      LCALL INIT_1820;先复位DS18B20
      JB FLAG1,TSS2

      RET ; 判断DS1820是否存在?若DS18B20不存在则返回
TSS2:
      MOV A,#0CCH ; 跳过ROM匹配
      LCALL WRITE_1820
      MOV A,#44H ; 发出温度转换命令
      LCALL WRITE_1820;通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒
      LCALL DISPLAY
      LCALL INIT_1820;准备读温度前先复位
      MOV A,#0CCH ; 跳过ROM匹配
      LCALL WRITE_1820
      MOV A,#0BEH ; 发出读温度命令
      LCALL WRITE_1820
      LCALL READ_18200
      RET

;*************************写命令子程序**********
WRITE_1820:
      MOV R2,#8
      CLR C
WR1:  CLR P3.1
      MOV R3,#6
      DJNZ R3,$
      RRC A
      MOV P3.1,C

      MOV R3,#23
      DJNZ R3,$
      SETB P3.1
      NOP
      DJNZ R2,WR1
      SETB P3.1
      RET


;***********************读命令子程序***********
READ_18200:
      MOV R4,#2
      MOV R1,#29H
RE00: MOV R2,#8
RE01: CLR C
      SETB P3.1
      NOP
      NOP
      CLR P3.1
      NOP
      NOP
      NOP
      SETB P3.1
      MOV R3,#9
RE10: DJNZ R3,RE10
      MOV C,P3.1
      MOV R3,#23
RE20: DJNZ R3,RE20
      RRC A
      DJNZ R2,RE01
      MOV @R1,A
      DEC R1
      DJNZ R4,RE00
      RET


;**********************左半屏写入数字子程序**************8
writeleft:
mov dptr,#table1
push column
mov cpage,#2
mov ccolumn,#0
mov a,pagef
anl a,#07h
orl a,#0b8h            ;页地址,第0页
mov com,a
lcall prm0

mov a,column
anl a,#3fh
orl a,#40h             ;列地址,第0列
mov com,a
lcall prm0

mov a,code
mov b,#16
mul ab
add a,dpl
mov dpl,a
mov a,b
addc a,dph
mov dph,a

lp1:
mov a,#00h
movc a,@a+dptr
mov dat,a
lcall prm1
inc ccolumn
mov a,ccolumn
inc dptr
cjne a,#8,lp1
dec cpage
inc pagef
mov a,cpage
jz over1
mov a,pagef
anl a,#07h
orl a,#0b8h
mov com,a
lcall prm0
pop column
mov a,column
anl a,#3fh
orl a,#40h
mov com,a
lcall prm0
mov ccolumn,#0
ljmp lp1
over1:
ret

;************右半屏写入数字子程序*******************
writeright:
mov dptr,#table1
push column2
mov cpage2,#2
mov ccolumn2,#0
mov a,pagef2
anl a,#07h
orl a,#0b8h
mov com,a
lcall prr0

⌨️ 快捷键说明

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