-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprDHTtoLCD.a51
124 lines (115 loc) · 4.34 KB
/
prDHTtoLCD.a51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#ifndef __PRDHTTOLCD_A51__
#define __PRDHTTOLCD_A51__
$NOMOD51
$INCLUDE (.\include\AT89x52.H)
$INCLUDE (.\include\definitions.h)
//-------------------------------------------------------------------------
PUBLIC prDHTtoLCD
EXTRN code(lcdputchar)
EXTRN code(lcdhome)
EXTRN code(lcdsdda)
EXTRN code(bintolcd)
EXTRN code(bintobcd)
EXTRN data(INS_H_HI)
EXTRN bit(INS_VALIDVAL)
//-------------------------------------------------------------------------
NAME PRDHTTOLCD
PRDHTTOLCD_CODE SEGMENT CODE
/**************************************************************************
/* prDHTtoLCD *
/* Print DHT datas to LCD *
/* *
**************************************************************************/
RSEG PRDHTTOLCD_CODE
USING 0
prDHTtoLCD:
MOV A,LCD_LINE0 //set cursor position
CALL lcdsdda
hom1: MOV A,#00h //homéro
CALL lcdputchar
MOV A,#'1'
CALL lcdputchar
MOV A,#':'
JNB INS_VALIDVAL,qm1
MOV A,INS_H_HI+2 //temp HI
CALL bintolcd
MOV A,#'.'
CAll lcdputchar
MOV A,INS_H_HI+3 //temp decimal
CALL bintobcd
ANL A,#00001111b
ADD A,#30H
CALL lcdputchar
JMP hom2
qm1: CALL errDHT
hom2:
MOV A,#LCD_LINE0+10d
CALL lcdsdda
MOV A,#00h //homéro
CALL lcdputchar
MOV A,#'2'
CALL lcdputchar
MOV A,#':'
JNB INS_VALIDVAL+1,qm2
MOV A,INS_H_HI+5+2 //temp HI
CALL bintolcd
MOV A,#'.'
CAll lcdputchar
MOV A,INS_H_HI+5+3 //temp decimal
CALL bintobcd
ANL A,#00001111b
ADD A,#30H
CALL lcdputchar
JMP hum1
qm2: CALL errDHT
hum1: MOV A,#LCD_LINE1
CALL lcdsdda
MOV A,#'H'
CALL lcdputchar
MOV A,#'1'
CALL lcdputchar
MOV A,#':'
JNB INS_VALIDVAL,qm3
MOV A,INS_H_HI //Humidity HI
CALL bintolcd
MOV A,#'.'
CAll lcdputchar
MOV A,INS_H_HI+1 //humidity decimal
CALL bintobcd
ANL A,#00001111b
ADD A,#30H
CALL lcdputchar
JMP hum2
qm3: CALL errDHT
hum2: MOV A,#LCD_LINE1+10d
CALL lcdsdda
MOV A,#'H'
CALL lcdputchar
MOV A,#'2'
CALL lcdputchar
MOV A,#':'
JNB INS_VALIDVAL+1,qm4
MOV A,INS_H_HI+5 //Humidity HI
CALL bintolcd
MOV A,#'.'
CAll lcdputchar
MOV A,INS_H_HI+5+1 //humidity decimal
CALL bintobcd
ANL A,#00001111b
ADD A,#30H
CALL lcdputchar
JMP vege
qm4: CALL errDHT
vege:
RET
errDHT: MOV A,#'?'
CALL lcdputchar
MOV A,#'?'
CALL lcdputchar
MOV A,#'.'
CALL lcdputchar
MOV A,#'?'
CALL lcdputchar
RET
END
#endif