A digital temperature sensor
 
Temperature detector:

ORG 0000H
ADC_RD               EQU P2.0             
ADC_WR              EQU P2.1             
ADC_INTR EQU P2.2
MYDATA              EQU P0
RAM_ADDR EQU 30H
ASCI_RSULT EQU 50H
MOV      P0,#0FFH
MOV P1,#00H   
MOV P3,#00H


                                ACALL LCD_INIT
                                SETB ADC_INTR
                                ACALL WRITE
BACK:    CLR         ADC_WR             
                                SETB ADC_WR  
HERE:    JB            ADC_INTR,HERE               
                                CLR         ADC_RD              
                                MOV      A,MYDATA         
                                SETB ADC_RD    
                                MOV A,MYDATA
                                MOV P1,A
                               
                                ACALL CONVERSION
                                ACALL DELAY
                                SJMP BACK




DELAY:  MOV R1,#05H
A1:                         MOV R2,#55H
A2:                         DJNZ R2,A2
                                DJNZ R1,A1
                                RET



LCD_INIT:            MOV      A,#38H
                                                ACALL COMMAND
                                                ACALL DELAY
                                                MOV      A,#0CH
                                                ACALL COMMAND
                                                ACALL DELAY
                                                MOV      A,#01H
                                                ACALL COMMAND
                                                ACALL DELAY
                                                MOV      A,#06H
                                                ACALL COMMAND
                                                ACALL DELAY
                                                MOV      A,#80H
                                                ACALL COMMAND
                                                ACALL DELAY
                                                RET


WRITE:
MOV A,#'T'
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,#'E'
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,#'M'
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,#'P'
ACALL DATA_DISPLAY
ACALL DELAY

MOV A,#':'
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,#88h
ACALL COMMAND
ACALL DELAY
MOV A,#0DFH
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,#89h
ACALL COMMAND
ACALL DELAY
MOV A,#'C'
ACALL DATA_DISPLAY
ACALL DELAY
RET


COMMAND:ACALL           READY
                                                MOV      P1,A
                                                CLR         P2.3
                                                CLR         P2.4
                                                SETB P2.5
                                                NOP
                                                NOP
                                                NOP
                                                CLR         P2.5
                                                RET

DATA_DISPLAY:ACALL    READY
                                                MOV      P1,A
                                                SETB      P2.3
                                                CLR         P2.4
                                                SETB P2.5
                                                NOP
                                                NOP
                                                NOP
                                                CLR         P2.5
                                                RET


READY: SETB      P1.7      
CLR         P2.3
SETB      P2.4
BACK1: CLR         P2.5
ACALL   DELAY  
SETB      P2.5
JB            P1.7,BACK1
RET



CONVERSION:
mov r0,#RAM_ADDR
mov a,p1
mov b,#10
div ab
mov @r0,b
inc r0
mov b,#10
div ab
mov @r0,b
inc r0
mov @r0,a
MOV R0,#RAM_ADDR
MOV R1,#ASCI_RSULT
MOV R2,#3
BACKk: MOV A,@R0
ORL A,#30H
MOV @R1,A
INC R0
INC R1
DJNZ R2,BACKk
MOV A,#85H
ACALL COMMAND
ACALL DELAY
MOV A,52H
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,51H
ACALL DATA_DISPLAY
ACALL DELAY
MOV A,50H
ACALL DATA_DISPLAY
ACALL DELAY
RET

                END


CLICK HERE TO SEE CIRCUIT DIAGRAM

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Microcontroller Projects -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -