温度显示器设计 联系客服

发布时间 : 星期五 文章温度显示器设计更新完毕开始阅读d8e123b5e53a580217fcfe34

温度显示器设计

RP14.7kVCC1C222pFVCCC322pFX11911.0592MHz2345678U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD3938373635343332212223242526272810111213141516177126453U2ABCDBI/RBORBILT74LS47QAQBQCQDQEQFQG1312111091514C122UF18XTAL2L1L2L3L4L5L6L79RSTR110kVCC293031VCCPSENALEEAR210kR310kVCCVCCGND12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51DQL1L2L3L4L5L6L7R74.7k321U3VCCDQGNDDS18B2024.0 图6 温度显示的仿真结果 4 结束语

利用功能强大的Proteus软件提供的元件库设计硬件电路及软硬件仿真,实现了液晶温度显示器的仿真设计。该显示器电路结构简洁,可靠性高,成本低。通过Proteus的前期仿真提高了液晶温度显示器的设计效率,缩短了开发周期,降低了设计成本,保证了设计的合理性和可靠性。

6

附录

附录

DQ BIT P3.7 ; 1 wire line swpHequ 0d2H swpLequ 0ffH

WDLSB DATA 30H ; WDMSB DATA 31H ;

;*************************************************************** ORG 0000H LJMP MAIN ORG 000BH

LJMP TMR0 ; Timer0 isr

;******************************************************** ; Timer0 Interrupt Service Routine TMR0: MOV TH0,#swpH MOV TL0,#swpL JB 21H,DSL MOV P0,42H

ORL P0,#00100000B SJMP EXIT DSL:

MOV P0,43H

ORL P0,#00010000B EXIT:

CPL 21H RETI ; Main program MAIN: TOINIT:

CLR EA

MOV TMOD,#01H MOV TH0,#swpH MOV TL0,#swpL SETB EA SETB ET0 SETB TR0

;*********************************************************** ;

MOV R2,#2 MOV R0,#42H ; OVER:

MOV @R0,#00H;

7

附录

INC R0 DJNZ R2,OVER

LOOP:

LCALL DSWD ; SJMP LOOP

;********************************************************** ; Read a temperature from the DS18B20 DSWD:

LCALL RSTSNR ; Init of the DS18B20 JNB F0,KEND MOV R0,#0CCH

LCALL SEND_BYTE MOV R0,#44H

LCALL SEND_BYTE ; Send a Convert Command SETB EA

MOV 48H,#1 SS2:

MOV 49H,#255 SS1:

MOV 4AH,#255 SS0:

DJNZ 4AH,SS0 DJNZ 49H,SS1 DJNZ 48H,SS2

CLR EA

LCALL RSTSNR JNB F0,KEND

MOV R0,#0CCH LCALL SEND_BYTE

MOV R0,#0BEH

LCALL SEND_BYTE ; Send Read Scratchpad command LCALL READ_BYTE ; Read the low byte from scratchpad MOV WDLSB,A ; Save the temperature (low byte) LCALL READ_BYTE ; Read the high byte from scratchpad MOV WDMSB,A ; Save the temperature (high byte) LCALL TRANS12 KEND: SETB EA RET

;********************************************************** ;

TRANS12:

8

附录

MOV A,30H ANL A,#0F0H MOV 3AH,A MOV A,31H ANL A,#0FH ORL A,3AH SWAP A

MOV B,#10 DIV AB ;MOV 42H,A

MOV 43H,B ; MOV b,#10 DIV ab

MOV 42H,B MOV 41H,A RET

;************************************************* ; Send a byte to the 1 wire line SEND_BYTE: ;

MOV A,R0 MOV R5,#8 SEN3: CLR C RRC A JC SEN1

LCALL WRITE_0 SJMP SEN2

SEN1: LCALL WRITE_1 SEN2: DJNZ R5,SEN3 ; RET

;************************************************* ; Read a byte from the 1 wire line READ_BYTE:

MOV R5,#8 READ1: LCALL READ RRC A DJNZ R5,READ1 ; MOV R0,A RET

;************************************************* ; Reset 1 wire line

RSTSNR: SETB DQ NOP NOP

CLR DQ

9