Click here to load reader
Upload
ngocan-huynh
View
31
Download
2
Embed Size (px)
Citation preview
XTAL218
XTAL119
ALE30
EA31
PSEN29
RST9
P0.0/AD039
P0.1/AD138
P0.2/AD237
P0.3/AD336
P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P1.0/T21
P1.1/T2EX2
P1.2/ECI3
P1.3/CEX04
P1.4/CEX15
P1.5/CEX26
P1.6/CEX37
P1.7/CEX48
P3.0/RXD10
P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17
P3.6/WR16
P3.5/T115
P2.7/A1528
P2.0/A821
P2.1/A922
P2.2/A1023
P2.3/A1124
P2.4/A1225
P2.5/A1326
P2.6/A1427
U1
AT89C51RD2
C1
30p
C2
30p
X1CRYSTAL
R18.3k
VCC
C310u
R2100
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E6
RW
5
RS
4
VSS
1VDD
2VEE
3
LCD1LM016L
RV11k
27.0
DQ
2VCC
3
GND
1
U2DS18B20
UP DOWN
ENTER CLEAR
PHẦN CỨNG:
Đề tài: Đọc nhiệt độ từ DS1820 và hiển thị kết quả lên LCD, nếu nhiệt độ vượt quá một nhiệt độ cài đặt nào đó thì xuất dữ liệu cảnh báo ra led đơn hoặc LCD tại vị trí khác.
Có thể cài đặt được nhiệt độ ngưỡng từ phím nhấn.
Em nhờ mọi người kiểm tra dùm em xem phần cứng của bọn em có còn thiếu sót gì không mà khi bọn em viết code thì nó không thấy chạy khi mô phỏng bằng proteus.
Code:
ORG 0
DB0 EQU P1.0
DB1 EQU P1.1
DB2 EQU P1.2
DB3 EQU P1.3
DB4 EQU P1.4
DB5 EQU P1.5
DB6 EQU P1.6
DB7 EQU P1.7
E EQU P3.7
RS EQU P3.6
RW EQU P3.5
DATA1 EQU P1
;-------------------
MOV A,#31H
CALL INIT_LCD
;hiển thị số 1 ra lcd
CALL WRITE_TEXT
JMP EXIT
;-----------------------------
WAIT_LCD: ;KIEM TRA TRANG THAI BAN CUA LCD
CLR E ;TAO CANH LEN BAT DAU CHO LENH LCD
CLR RS ;CHON CHE DO GOI LENH
SETB RW ;CHON CHE DO DOC DATA
MOV DATA,#0FFH ;CHON DATA INPUT
SETB E ;TAO CANH LEN
MOV A,DATA ;DOC GIA TRI VE
JB ACC.7,WAIT_LCD ;NEU DB7=1,LCD VAN BAN
CLR RW ;TAT RW CHO CAC LENH LCD KE
RET
INIT_LCD: ;KHOI DONG LCD
SETB E ;TAO CANH XUONG BAT DAU LENH LCD
CLR RS ;CHON CHE DO GOI LENH
MOV DATA,#38H ;CHON BUS 8 BITS,FONTS KY TU 5x8,2 HANG
CLR E ;TAO CANH XUONG TREN E
LCALL WAIT_LCD ;CHO DEN KHI LCD HET BAN
SETB E ;TAO CANH XUONG, BAT DAU LENH LCD
CLR RS ;CHON CHE DO GOI LENH
MOV DATA,#0EH ;LCD ON,CURSOR OFF
CLR E ;TAO CANH XUONG
LCALL WAIT_LCD ;CHO DEN KHI LCD HET BAN
SETB E ;TAO CANH XUONG BAT DAU LENH LCD
CLR RS ;CHON CHE DO GOI LENH
MOV P1,#06H ;VI TRI CURSOR TU DONG DICH SANG PHAI KHI ;CO KY TU DUOC GUI
CLR E ;TAO CANH XUONG TREN E
LCALL WAIT_LCD ;CHO DEN KHI LCD HET BAN
RET
CLR_LCD: ;XOA MAN HINH HIEN THI
SETB E
CLR RS
MOV DATA,#01H
CLR E
LCALL WAIT_LCD
RET
WRITE_TEXT: ;GHI TEXT RA MAN HINH
SETB E
SETB RS
MOV DATA,A
CLR E
LCALL WAIT_LCD
RET
EXIT: NOP
END
; khi viết code và biên dịch ra mã “.hex” thì bọn em thấy nó báo lỗi ở từ khóa “DATA”.
;cô cho em hỏi liệu thay từ khóa “DATA” thành “P1” liệu có được không.