当前位置:首页 > 温度显示器设计
温度显示器设计
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
共分享92篇相关文档