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

📄 tempreature_led.asm

📁 51单片机程序
💻 ASM
字号:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:MOV DPTR,#TABLE
DISPLAY:ACALL CMU   ;调用温度子程序
        SJMP DISPLAY
  CMU:ACALL RESET  ;复位
      MOV A,#4EH    ;写存储器命令
      ACALL WRITE
      MOV A,#00H     ;写0字节数据
      ACALL WRITE
      MOV A,#00H     ;写1字节数据
      ACALL WRITE
      MOV A,#00H      ;写2字节数据
      ACALL WRITE
      MOV A,#00H       ;写3字节数据
      ACALL WRITE
      MOV A,#7FH       ;给配置寄存器赋值
      ACALL WRITE
      ;ACALL DELAY500US
      ACALL RESET  ;复位
      MOV A,#44H      ;启动温度转换
      ACALL WRITE
      ;ACALL DELAY500US
      ;ACALL DELAY500US
      ;ACALL DELAY500US
      ;ACALL DELAY500US
      ;ACALL TIMER1
      ;ACALL DELAY500US
      ACALL RESET         ;复位
      MOV A,#0BEH          ;读存储器命令
      ACALL WRITE
      ACALL READ           ;数据采集
      MOV A,30H            ;数据处理及显示
      SWAP A
      ANL  A,#0FH
      MOV 32H,A
      MOV A,31H
      ANL A,#0F0H
      ORL A,32H
      MOV B,#100
      DIV AB
      MOVC A,@A+DPTR
      MOV P0,A
      MOV P2,#08H
      ACALL DELAY500US
      MOV A,B
      MOV B,#10
      DIV AB
      MOVC A,@A+DPTR
      MOV P0,A
      MOV P2,#04
      ACALL DELAY500US
      XCH A,B
      MOVC A,@A+DPTR
      ORL A,#80H
      MOV P0,A
      MOV P2,#02
      ACALL DELAY500US
      MOV A,30H
      ANL A,#0FH
      MOV B,#10
      DIV AB
      MOVC A,@A+DPTR
      MOV P0,A
      MOV P2,#01H
      ACALL DELAY500US
      MOV P2,#0
      RET
TIMER1:MOV R4,#03H  ;查询子程序判断转换是否结束
  TIM1:CLR P1.0
       NOP
       NOP
       NOP
       NOP
       SETB P1.0
       JB P1.0,$
       NOP
       NOP
       
       JNB P1.0,$
       MOV R5,#1EH
       DJNZ R5,$
       DJNZ R4,TIM1
       MOV R4,#08H
  TIM2:CLR P1.0
       NOP
       NOP
       SETB P1.0
       JNB P1.0,$
       MOV R5,#1EH
       DJNZ R5,$
       JNB P1.0,$
       DJNZ R4,TIM2
       RET
RESET:CLR P1.0            ;复位程序
      ACALL DELAY500US
      SETB P1.0
      JB P1.0,$
      ACALL DELAY300US
      MOV A,#0CCH
      ACALL WRITE
      RET
WRITE:MOV 64H,#8           ;写命令
   W1:CLR C
      RRC A
      CLR P1.0
      NOP
      NOP
      NOP
      NOP
      MOV P1.0,C
      MOV 65H,#3BH
      DJNZ 65H,$
      SETB P1.0
      DJNZ 64H,W1
      NOP
      RET
READ:MOV 66H,#8                   ;读命令
     MOV R0,#30H
     MOV 68H,#2
 RE1:SETB P1.0
     NOP
     NOP
     CLR P1.0
     NOP
     NOP
     NOP
     NOP
     SETB P1.0
     MOV 69H,#10H
     DJNZ 69H,$
     MOV C,P1.0
     MOV 69H,#10H
     DJNZ 69H,$
     RRC A
     DJNZ 66H,RE1
     MOV @R0,A
     INC R0
     MOV 66H,#4
     DJNZ 68H,RE1
     RET
READ_ROM:MOV 6AH,#8                 ;读rom
         MOV R0,#33H
         MOV 6BH,#8
 RE1_ROM:SETB P1.0
         NOP
         NOP
         CLR P1.0
         NOP
         NOP
         NOP
         NOP
         SETB P1.0
         MOV 69H,#10
         DJNZ 69H,$
         MOV C,P1.0
         RRC A
         DJNZ 6AH,RE1_ROM
         MOV @R0,A
         INC R0
         MOV 6AH,#8
         DJNZ 6BH,RE1
         RET
DELAY500US:MOV 60H,#5
DEL1:MOV 61H,#100
     DJNZ 61H,$
     DJNZ 60H,DEL1
     RET
DELAY300US:MOV 62H,#3
     DEL2:MOV 63H,#100
          DJNZ 63H,$
          DJNZ 62H,DEL2
          RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

⌨️ 快捷键说明

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