4

Click here to load reader

Phần cứng

Embed Size (px)

Citation preview

Page 1: Phần cứng

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

Page 2: Phần cứng

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

Page 3: Phần cứng

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

Page 4: Phần cứng

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.