单片机编程-四位温度计

 四位温度计 程序

 

 

WEI1 EQU P2.0

WEI2 EQU P2.1

WEI3 EQU P2.2

WEI4 EQU P2.3

DUAN EQU P1

ST   EQU P3.0            ;定义几位信号

OE   EQU P3.1

EOC  EQU P3.2

CLK  EQU P3.3

TEMP EQU 30H

DT1 EQU 31H         ;温度显示位四位数据

DT2 EQU 32H

DT3 EQU 33H

DT4  EQU 34H

ORG 0000H

SJMP MAIN

ORG 000BH

AJMP CLOCKT               ;定时0器中断

ORG 0030H

INIT :MOV TMOD,#01H

MOV TH0,#0FCH

MOV TL0,#18H

SETB EA

SETB ET0

SETB TR0

SETB EOC

CLR ST

SETB OE

SETB ST

RET

MAIN:ACALL INIT

M2:

JB EOC,CHULI

CLR ST

M0: MOV R5,#10  ;显示10次,采集一次数据

M1:  ACALL DISP

DJNZ R5,M1

SJMP M2

 

DISP:MOV DPTR,#TAB0          ;显示数据消隐

     MOV A,DT1

CJNE A,#0,DI0       ;首位为0消隐

MOV A,#10

DI0: SETB WEI1

MOVC A,@A+DPTR

     MOV DUAN,A

ACALL DELAY

CLR WEI1

CJNE A,#0FFH,DI1

MOV A,DT2

CJNE A,#0,DI3       ;首位为0且第二位也为0消隐

MOV A,#10

SJMP DI3

DI1: MOV A,DT2

DI3: SETB WEI2

MOVC A,@A+DPTR

     MOV DUAN,A

ACALL DELAY

CLR WEI2

     MOV DPTR,#TAB1

SETB WEI3

MOV A,DT3

MOVC A,@A+DPTR

     MOV DUAN,A

ACALL DELAY

CLR WEI3

MOV DPTR,#TAB0

SETB WEI4

MOV A,DT4

MOVC A,@A+DPTR

     MOV DUAN,A

ACALL DELAY

CLR WEI4

RET

 

 

CHULI:SETB OE            ;处理采集的数据温度从0到102度

      MOV TEMP,P0           ;1个LSB为0.4°

 MOV A,TEMP        ;分别取出个,十,百位的值分别放入30h,31h,32h,33h内

 MOV B,#100       ;如250 2 5 0分别存放

 DIV AB

 MOV DT2,A

 MOV A,B

 MOV B,#10

 DIV AB

 MOV DT3,A

 MOV DT4,B

          ;进行温度转换,*4

 MOV DT1,#00H

 MOV R3,#3

 MOV R1,#34H

CHU1: MOV A,@R1

 MOV B,#4

 MUL AB

 MOV @R1,A

 DEC R1

 DJNZ R3,CHU1

      MOV R3,#3

 MOV R1,#34H

CHU2: MOV A,@R1

 MOV B,#10

 DIV AB

 MOV @R1,B

 DEC R1

 ADD A,@R1

 MOV @R1,A

 DJNZ R3,CHU2

 SETB ST

      AJMP M0

 RET

 

CLOCKT:MOV TH0,#0FCH

  MOV TL0,#18H

  CPL CLK

  RETI

DELAY:MOV R6,#5

D1:   MOV R7,#248

      DJNZ R7,$

 DJNZ R6,D1

 RET

 

TAB0:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H,0ffH;不带小数点的共阳编码,下面是带小数点的

TAB1:DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H,0ffH ;

END

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值