Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dseg at 30h
- done: ds 1
- count: ds 1
- temp: ds 1
- flag: ds 1
- up_flag: ds 1
- down_flag: ds 1
- temp_value: ds 1
- TempBuffer: ds 5
- x: ds 1
- cseg at 8000h
- jmp start
- LcdRs bit P2.5
- LcdRw bit P2.6
- LcdEn bit P2.7
- DBPort equ P0
- flag1 bit P3.0
- flag2 bit P3.1
- flag3 bit P3.2
- flag4 bit P3.3
- LCD_COMMAND equ 0
- LCD_DATA equ 1
- LCD_HOMING equ 0x02
- DQ bit P1.0
- using 0
- ; FUNCTION LCD_Write (BEGIN)
- LCD_Write:
- CLR LcdEn
- MOV C, PSW.1
- MOV LcdRs,C
- CLR LcdRw
- NOP
- MOV DBPort, R0
- NOP
- SETB LcdEn
- NOP
- CLR LcdEn
- NOP
- CLR LcdRs
- SETB LcdRw
- NOP
- SETB LcdEn
- NOP
- CLR LcdEn
- RET
- ; FUNCTION LCD_Write (END)
- ; FUNCTION LCD_Initial (BEGIN)
- LCD_Initial:
- CLR LcdEn
- CLR PSW.1
- MOV R0,#038H
- LCALL LCD_Write
- CLR PSW.1
- MOV R0,#038H
- LCALL LCD_Write
- CLR PSW.1
- MOV R0,#0CH
- LCALL LCD_Write
- CLR PSW.1
- MOV R0,#01H
- LCALL LCD_Write
- CLR PSW.1
- MOV R0,#06H
- LJMP LCD_Write
- RET
- ; FUNCTION LCD_Initial (END)
- ; FUNCTION Print (BEGIN)
- ;---- Variable 'str' assigned to Register 'R1/R2/R3' ----
- Print:
- LABEL0003:
- ;LCALL LABELLABELLDPTR
- ;MOV R7,A
- MOV A, @R1
- JZ LABEL0005
- SETB PSW.1
- MOV R0, A
- LCALL LCD_Write
- inc R1
- SJMP LABEL0003
- LABEL0005:
- RET
- ; FUNCTION Print (END)
- ; FUNCTION L?0034 (BEGIN)
- label34:
- LCALL WriteOneChar
- SETB flag1
- MOV R7,#064H
- MOV R6,#00H
- ret
- ; FUNCTION L?0034 (END)
- ; FUNCTION delay (BEGIN)
- ;---- Variable 'i' assigned to Register 'R6/R7' ----
- delay:
- LABEL0006:
- MOV A,R7
- DEC R7
- MOV R4,AR6
- JNZ LABEL0031
- DEC R6
- LABEL0031:
- ORL A,R4
- JNZ LABEL0006
- RET
- ; FUNCTION delay (END)
- ; FUNCTION Init_DS18B20 (BEGIN)
- Init_DS18B20:
- SETB DQ
- MOV R7,#08H
- MOV R6,#00H
- LCALL delay
- CLR DQ
- MOV R7,#050H
- MOV R6,#00H
- LCALL delay
- SETB DQ
- MOV R7,#0EH
- MOV R6,#00H
- LCALL delay
- MOV C,DQ
- CLR A
- RLC A
- MOV x,A
- MOV R7,#014H
- MOV R6,#00H
- call delay
- ret
- ; FUNCTION Init_DS18B20 (END)
- ; FUNCTION ReadOneChar (BEGIN)
- ReadOneChar:
- ;---- Variable 'i' assigned to Register 'R5' ----
- CLR A
- ;---- Variable 'dat' assigned to Register 'R3' ----
- MOV R3,A
- MOV R5,#08H
- LABEL0010:
- CLR DQ
- MOV A,R3
- CLR C
- RRC A
- MOV R3,A
- SETB DQ
- JNB DQ,LABEL0013
- ORL AR3,#080H
- LABEL0013:
- MOV R7,#0F4H
- MOV R6,#01H
- LCALL delay
- DJNZ R5,LABEL0010
- LABEL0011:
- MOV R7,AR3
- RET
- ; FUNCTION ReadOneChar (END)
- ; FUNCTION L?0035 (BEGIN)
- L_CC:
- LCALL Init_DS18B20
- SETB flag1
- MOV R7,#0CCH
- ret
- ; FUNCTION WriteOneChar (BEGIN)
- WriteOneChar:
- ;---- Variable 'dat' assigned to Register 'R5' ----
- MOV R5,AR7
- ;---- Variable 'i' assigned to Register 'R3' ----
- MOV R3,#08H
- LABEL0015:
- CLR DQ
- MOV A,R5
- RRC A
- MOV DQ,C
- MOV R7,#0F4H
- MOV R6,#01H
- LCALL delay
- SETB DQ
- MOV A,R5
- CLR C
- RRC A
- MOV R5,A
- DJNZ R3,LABEL0015
- LABEL0018:
- RET
- ; FUNCTION WriteOneChar (END)
- ; FUNCTION ReadTemp (BEGIN)
- ReadTemp:
- ;---- Variable 'a' assigned to Register 'R2' ----
- CLR A
- MOV R2,A
- ;---- Variable 'b' assigned to Register 'R7' ----
- MOV R7,A
- LCALL L_CC
- CLR flag1
- MOV R7,#044H
- LCALL LABEL34
- CLR flag1
- LCALL L_CC
- CLR flag1
- MOV R7,#0BEH
- LCALL label34
- CLR flag1
- LCALL ReadOneChar
- MOV R2,AR7
- SETB flag1
- LCALL ReadOneChar
- CLR flag1
- MOV A,R7
- SWAP A
- ANL A,#0F0H
- MOV temp_value,A
- MOV A,R2
- ANL A,#0F0H
- SWAP A
- ANL A,#0FH
- ADD A,temp_value
- MOV temp_value,A
- RET
- ; FUNCTION ReadTemp (END)
- ; FUNCTION temp_to_str (BEGIN)
- temp_to_str:
- MOV A,temp_value
- MOV B,#0AH
- DIV AB
- ADD A,#030H
- MOV TempBuffer,A
- MOV A,temp_value
- MOV B,#0AH
- DIV AB
- MOV A,B
- ADD A,#030H
- MOV TempBuffer+01H,A
- MOV TempBuffer+02H,#0DFH
- MOV TempBuffer+03H,#043H
- CLR A
- MOV TempBuffer+04H,A
- RET
- ; FUNCTION temp_to_str (END)
- ; FUNCTION Delay1ms (BEGIN)
- ;---- Variable 'count' assigned to Register 'R6/R7' ----
- Delay1ms:
- ;---- Variable 'i' assigned to Register 'R4/R5' ----
- CLR A
- MOV R5,A
- MOV R4,A
- LABEL0021:
- CLR C
- MOV A,R5
- SUBB A,R7
- MOV A,R4
- SUBB A,R6
- JNC LABEL0027
- ;---- Variable 'j' assigned to Register 'R2/R3' ----
- CLR A
- MOV R3,A
- MOV R2,A
- LABEL0024:
- INC R3
- CJNE R3,#00H,LABEL0032
- INC R2
- LABEL0032:
- MOV A,R3
- XRL A,#078H
- ORL A,R2
- JNZ LABEL0024
- LABEL0023:
- INC R5
- CJNE R5,#00H,LABEL0033
- INC R4
- LABEL0033:
- SJMP LABEL0021
- LABEL0027:
- RET
- ; FUNCTION Delay1ms (END)
- ; FUNCTION main (BEGIN)
- start:
- LCALL LCD_Initial
- MOV x,#01H
- CLR flag1
- CLR flag2
- LABEL0028:
- LCALL ReadTemp
- LCALL temp_to_str
- ;CLR ?LCD_Write?BIT
- CLR PSW.1
- ;MOV ?LCD_Write?BYTE,#080H
- MOV R0, #080h
- LCALL LCD_Write
- MOV R1, #TempBuffer
- LCALL Print
- MOV R7,#090H
- MOV R6,#01H
- LCALL Delay1ms
- SJMP LABEL0028
- ; FUNCTION main (END)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement