1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD

46 85 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD

Trang 1

BỘ CÔNG THƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Độc Lập - Tự Do - Hạnh - Phúc

ĐỀ TÀI :

Xây dựng ứng dụng tưới nước tự động theo nhiệt độ và có hẹn giờ

 Khi nhiệt độ cao thì tới nước Đo nhiệt độ sử dụng LM35 hiện thị lên LCD

 Hẹn thời gian tưới nước Thời gian thực hiển thị lên LCD Việc chỉnh giờ có thể thực hiện bằng các nút bấm điều chỉnh

Trang 2

Mục lục

Mục lục 2

CHƯƠNG 1: Tổng quan về Vi xử lý trong Đo lường và Điều khiển 4

1.1 Cấu trúc của 8051 4

1.2 Các ngoại vi của 8051 7

1.2.1 Nguồn cho 8051 hoạt động 7

1.2.2 Mạch dao động và Reset 7

1.2.3 Các ngoại vi của 8051 8

CHƯƠNG 2: Tổng quan về mạch điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD 9

2.1 Mạch đo nhiệt độ sử dụng LM35 và ADC0804 9

2.1.1 Nguyên lý một số linh kiện phục vụ cho công việc đo lường 9

2.1.2 Bộ chuyển đối ADC0804 11

2.1.3 Nguyên lý đo và chuyển đổi tương tự/số của ADC 14

2.1.4 Cách ghép nối 15

2.2 Mạch thời gian thực DS1307 16

2.2.1 Cấu trúc sơ đồ chân DS1307 16

2.2.2 Giới thiệu giao tiếp I2C 17

2.2.3 Ghép nối DS1307 với vi điều khiển 21

2.3 Khối hiển thị LCD 22

2.3.1 Các bước điều khiển LCD 22

CHƯƠNG 3: Xây dựng ứng dụng trên cơ sở 8051 24

3.1 Lưu đồ thuật toán 24

3.1.1 Thuật toán khởi động động cơ “ khoiđongdc()”: theo chế độ thời gian 25

3.1.2 Thuật toán Theo chế độ nhiệt độ 26

3.1.3 Thuật toán điều khiển bằng tay 27

3.2 Chương trình điều khiển 28

3.3 Kết quả mô phỏng, thiết kế mạch nguyên lý và Thực nghiệm trên mạch thực 40

3.3.1 Mạch mô phỏng dùng proteus 40

3.3.2 Sơ đồ mạch in 41

CHƯƠNG 4: KẾT LUẬN 42

Trang 3

CHƯƠNG 1: Tổng quan về Vi xử lý trong Đo

lường và Điều khiển

1.1 Cấu trúc của 8051

Hình 1.1 : Cấu trúc 8051

 OSC: Bộ phát xung nhịp đồng bộ cho hệ thống, max: 24Mhz -> quyếtđịnh tốc độ xử lý của 8051 (liên quan đến thời gian/lệnh, Timer,Interrupt sau này), ngày nay 128 Mhz (ARM)

 ROM: Bộ nhớ chương trình 4K (lưu các mã lệnh của chương trình),ngày nay lên tới 128K: AVR 128, 1M: STM32F4 -> không cần quáquan tâm)

 RAM: Bộ nhớ dữ liệu 128 byte (lưu trữ dữ liệu tạm thời, thanh ghi đặcbiệt), ngày nay lên tới 4K: AVR 128, 192K: STM32F4

 Timer/Counter: Bộ đếm thời gian/bộ đếm xung

 Interrupt Control: khối điều khiển ngắt

 BUS Control: khối điều khiển các Bus địa chỉ (Address Bus), Bus dữliệu (Address Data), Bus điều khiển (Control Bus)

 I/O Port: Cổng vào/ra (P0, P1, P2, P3: 8 bit ~ 8 chân)

 Serial port: Cổng truyền thông nối tiếp

Trang 4

Sơ đồ khối và ý nghĩa các chân của 8051:

Hình 1.2 : Sơ đồ chân 8051

Vi điều khiển 8051 có 4 cổng vào\ra là: P0, P1, P2 và P3

 P 0 (32-39): Port 0 là port xuất nhập 8-bit hai chiều

 P 1(1-8): Port 1 là port xuất nhập 8-bit hai chiều

 P 2 là port xuất nhập 8-bit hai chiều

 P 3 là Port xuất nhập 8-bit hai chiều Port 3 cũng còn làm các chức năngkhác của AT89C51 Các chức năng này được liệt kê như sau:

- P3.0 RxD Ngõ vào Port nối tiếp

- P3.1 TxD Ngõ ra Port nối tiếp

Trang 5

- P3.2 Ngõ vào ngắt ngoài 0

- P3.3 Ngõ vào ngắt ngoài 1

- P3.4 T0 Ngõ vào bên ngoài của bộ định thời 1

- P3.5 T1 Ngõ vào bên ngoài của bộ định thời 0

- P3.6 Điều khiển ghi bộ nhớ dữ liệu ngoài

- P3.7 Điều khiển đọc bộ nhớ dữ liệu ngoài

Các chân khác của 8051:

Vcc (chân 40): Chân cung cấp điện (5V)

 GND (chân 20): Chân nối đất (0V)

 Ngõ vào reset (chân 9) Mức cao trên chân này trong 2 chu kỳ máy trongkhi bộ dao động đang hoat động sẽ reset 8051

 Mạch reset tác động bằng tay và tự động reset khi khởi động máy

 X1 và X2 (chân 18,19) là hai ngõ vào được cấu hình để dùng như một

bộ dao động trên chip

 EA (chân 31): External Access

- EA nối mass chỉ định rằng code lưu trên bộ nhớ ngoài

- PSEN & ALE dùng cho ROM ngoài

- Với 8051, 8031, 8032 thì /EA nối Vcc

- “/”: chỉ định tác động mức thấp

 PSEN (chân 29): Program Store Enable

Output, cho phép truy xuất bộ nhớ chương trình ngoàiNối tới chân /OE của ROM/EPROM

Khi thực thi chương trình ở ROM nội, /PSEN được giữ ở mức 1

 ALE (pin 30):Address Latch Enable

- Là chân output cho phép chốt địa chỉ để giải đa hợp

(demultiplexing) bus dữ liệu và bus địa chỉ

- ALE xuất tín hiệu để chốt địa chỉ (byte thấp địa chỉ 16-bit) vào 1

thanh ghi ngoài trong suốt nửa đầu của chu kỳ bộ nhớ(memory cycle) Trong nửa chu kỳ bộ nhớ còn lại, P0 sẽ xuất/nhập

dữ liệu

- ALE có f=1/6fclock

- Có 1 ngoại lệ: trong thời gian thực thi lệnh MOVX, một xung ALE

bị bỏ qua

Trang 6

1.2 Các ngoại vi của 8051

1.2.1 Nguồn cho 8051 hoạt động

1.2.2 Mạch dao động và Reset

Chú ý :

Chân 31 (EA/VPP) của VĐK 8051: Khi thiết kế mạch vi điều khiển

không sử dụng bộ nhớ ngoài để chứa chương trình (code) thực thi, cầnnối chân (EA/VPP) này lên nguồn dương (5V) Đây là chân chọn bộnhớ lưu giữ chương trình thực thi của vi điều khiển Khi nối lên +5V là

đã chọn thực thi chương trình từ bộ nhớ flash bên trong VĐK

Trở treo cho PORT P0: Đối với VĐK 8051, khi sử dụng chân của port

P0 để điều khiển thì phải sử dụng trở treo cho các chân port P0.Thường sử dụng trở băng 10k cho 8 chân của port P0

Đưa ra các chân mạch nạp: Đây không phải là điều kiện để mạch

hoạt động, nhưng thiết kế mạch nên vẽ thêm các chân mạch nạp để

Trang 7

trong quá trình test code sẽ nạp trực tiếp onboard (chỉ dùng được vớidòng 89S có hỗ trợ chuẩn nạp ISP) sẽ tiện lợi hơn rất nhiều là khi cácbạn cứ phải tháo chip ra vào, dễ làm gãy chân chip.

 Giao tiếp với màn hình LCD

 Ghép nối với ADC 0804

 Ghép nối với DAC 0808

 Điều khiển động cơ bước

 Ma trận LED

 Các cảm biến

Trang 8

Nhiệt độmôi trường MẠCH ĐIỆN Khối hiển thị

Khối điều khiển

CHƯƠNG 2: Tổng quan về mạch điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307,

LM35 hiển thị LCD

2.1 Mạch đo nhiệt độ sử dụng LM35 và ADC0804

Hình 2.4 : Sơ đồ khối mô đo nhiệt độ

2.1.1 Nguyên lý một số linh kiện phục vụ cho công việc đo lường.

2.1.1.1.Cảm biến nhiệt độ LM35

Hình 2.5 : LM35

IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt đo chuyểnthành tín hiệu điện dưới dạng dòng điện hay điện áp Dựa vào đặc tính rấtnhạy của các bán dẫn với nhiệt độ tạo ra điện áp hoặc dòng điện, tỉ lệ thuậnvới nhiệt độ tuyệt đối Đo tín hiệu điện ta biết được giá trị của nhiệt độ cần

đo Sự tác động của nhiệt độ tạo ra điện tích tự do và các lổ trống trong chất

Trang 9

bán dẫn Bằng sự phá vỡ các phân tử, bứt các electron thành dạng tự do dichuyển qua vùng cấu trúc mạng tinh thể tạo sự xuất hiện các lỗ trống Làmcho tỉ lệ điện tử tự do và lổ trống tăng lên theo qui luật hàm mũ với nhiệt độ.

Hình 2.6: Sơ đồ chân LM35 2.1.1.2.Các đặc điểm và tính chất quan trọng của LM35

 LM35 là 1 bộ cảm biến tích hợp nó có thể được dùng để đo nhiệt độ vớitín hiệu đầu ra tỉ lệ với nhiệt độ Celsius

 LM35 cho phép đo nhiệt độ chính xác hơn nhiều so với nhiệt trở, cặpnhiệt điện …

 Là bộ cảm biến được chỉ định và không phải là đối tượng của quá trìnhOxy hoá …

 LM35 tạo ra một điện áp cao mà không cần khuếch đại

 Hệ số thang chia độ là 0,01V/1 0C (tức độ biến thiên theo nhiệt độ) Nókhông yêu cầu sự kiểm tra bên ngoài hay sắp xếp và duy trì độ chính xácbằng tại nhiệt độ phòng (25 oC) và trên dãy nhiệt độ từ

 Đặc tính quan trọng khác của LM35DZ là nó chịu đựng dòng tối thiểu60μA từ nguồn cung cấp của nó Đặc biệt khi ta nung bộ cảm biến dẫnđến nhiệt độ tăng lên trong môi trường chân không ít hơn 0,1

 Đặc tính điện với dải đo từ 0 đến 150 độ C

 Theo thông số nhà sản xuất LM35DZ, quan hệ giữa nhiệt độ và điện ápngõ ra như sau:

 Dòng điện đầu ra khoảng 10mA

2.1.1.3.Dải nhiệt độ và sự thay đổi trở kháng theo nhiệt độ của LM35

Các bộ biến đổi (Transducer) chuyển đổi các đại lượng vật lý ví dụnhư nhiệt độ, cường độ ánh sáng, lưu tốc và tốc độ thành các tín hiệu điện phụthuộc vào bộ biến đổi mà đầu ra có thể là tín hiệu dạng điện áp, dòng, trởkháng hay dung kháng Ví dụ, nhiệt độ được biến đổi thành về các tín hiệuđiện sử dụng một bộ biến đổi gọi là Thermistor (bộ cảm biến nhiệt), một bộcảm biến nhiệt đáp ứng sự thay đổi nhiệt độ bằng cách thay đổi trở khángnhưng đáp ứng của nó không tuyến tính

Trang 10

Trở kháng của bộ cảm biến nhiệt theo nhiệt độ.

Nhiệt độ (0C) Trở kháng của cảm biến (k)

Hướng dẫn chọn loạt các cảm biến nhiệt họ LM35

Mã sản phẩm Dải nhiệt độ Độ chính xác Đầu ra

2.1.2 Bộ chuyển đối ADC0804

Chíp ADC 0804 là bộ chuyển đổi tương tự sang số trong họ các loạtADC 0800 từ hãng National Semiconductor Nó cũng được nhiều hãng khácsản xuất, làm việc với +5V và có độ phân giải là 8 bít Ngoài độ phân giải thìthời gian chuyển đổi cũng là một yếu tố quan trọng khác khi đánh giá một bộADC Thời gian chuyển đổi được định nghĩa như là thời gian mà bộ ADC cần

để chuyển một đầu vào tương tự thành một số nhị phân Trong ADC 0804 thờigian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ được cấp tới chânCLK và CLK IN nhưng không thể nhanh hơn 110s

2.1.2.1.Các chân của ADC 804

Hình 2.7 : Sơ đồ chân ADC804

Trang 11

 Chân - chọn chíp: Là một đầu vào tích cực mức thấp được sử dụng

để kích hoạt chíp ADC 804 Để truy cập ADC 0804 thì chân này phải ởmức thấp

 Chân (đọc): Đây là một tín hiệu đầu vào được tích cực mức thấp

Các bộ ADC chuyển đổi đầu vào tương tự thành số nhị phân tươngđương với nó và giữ nó trong một thanh ghi trong được sử dụng đểnhận dữ liệu được chuyển đổi ở đầu ra của ADC 804 Khi CS = 0 nếumột xung cao - xuống - thấp được áp đến chân thì đầu ra số 8 bítđược hiển diện ở các chân dữ liệu D0 - D7 Chân cũng được coinhư cho phép đầu ra

 Chân ghi (thực ra tên chính xác là “Bắt đầu chuyển đổi”) Đây là

chân đầu vào tích cực mức thấp được dùng để báo cho ADC 804 bắtđầu quá trình chuyển đổi Nếu CS = 0 khi tạo ra xung thấp - lên -cao thì bộ ADC 804 bắt đầu chuyển đổi giá trị đầu vào tương tự Vin về

số nhị phân 8 bít Lượng thời gian cần thiết để chuyển đổi thay đổi phụthuộc vào tần số đưa đến chân CLK IN và CLK R Khi việc chuyển đổi

dữ liệu được hoàn tất thì chân INTR được ép xuống thấp bởiADC0804

 Chân CLK IN và CLK R

Chân CLK IN là một chân đầu vào được nối tới một nguồn đồng

hồ ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian Tuy nhiên

804 cũng có một bộ tạo xung đồng hồ Để sử dụng bộ tạo xung đồng hồtrong (cũng còn được gọi là bộ tạo đồng hồ riêng) của 804 thì các chânCLK IN và CLK R được nối tới một tụ điện và một điện trở như chỉ ratrên hình 3.6.1 Trong trường hợp này tần số đồng hồ được xác địnhbằng biểu thức:

Giá trị tiêu biểu của các đại lượng trên là R = 10k và C= 150pF và tần

số nhận được là f = 606kHz và thời gian chuyển đổi sẽ mất là 110s

 Chân ngắt (ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi’)

Đây là chân đầu ra tích cực mức thấp Bình thường nó ở trạngthái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo choCPU biết là dữ liệu được chuyển đổi sẵn sàng để lấy đi Sau khi xuống thấp, ta đặt CS = 0 và gửi một xung cao - xuống - thấp tới chânlấy dữ liệu ra của adc0804

1

f 

INTR

INTR RD

Trang 12

Đây là các đầu vào tương tự vi sai mà Vin = Vin (+) - Vin (-).Thông thường Vin (-) được nối xuống đất và Vin (+) được dùng như đầuvào tương tự được chuyển đổi về dạng số.

Trang 13

2.1.3 Nguyên lý đo và chuyển đổi tương tự/số của ADC

Khi nhiệt độ môi trường thay đổi làm cho trở kháng của cảm biếnLM35 thay đổi dẫn đến điện áp đầu vào Vin của ADC thay đổi Điện áp Vin

vào ADC sẽ được so sánh với Ud của ADC Ud có thể thay đổi từ 0V đến2(Vref/2)

Ban đầu Ud = 0, nếu Vin > Ud khi đó Ud sẽ được cộng thêm một giá trị

là , trong đó :

đồng thời giá trị bộ đếm tăng thêm 1 Quá trình so sánh cứ như vậyđến khi nào Ud =Vin thì dừng Khi đó giá trị của bộ đếm chính là giá trị thậpphân Giá trị thập phân này sẽ được đưa qua một bộ giải mã, giải mã ra nhịphân rồi đưa ra các chân AD0 – AD7

Đánh giá độ chính xác của phép đo

Khả năng tự làm nóng của LM35 trong không khí là 0,1oC

Cảm biến LM35 có hệ số nhiệt là 10mV/oC, do đó sai số về nhiệt

độ của LM35 sẽ là 0,5oC Khi đó điện áp đầu vào Vin sẽ được làm tròn lênhoặc xuống Khi Vin đi vào so sánh với điện áp Ud của ADC, ta nhận thấy rằngmức điện áp của ADC là 10mV nên sai số mà nó gây ra là 0,5mV tương ứngvới giá trị nhiệt độ là 0,5oC

Vậy sai số tổng cộng của hệ thống là 1.1oC

Do vậy nhiệt độ thưc tế của ta sẽ là : treal = tđo 1,1 oC

Phương pháp mà ta dùng ở đây là phương pháp vi phân bậc thang.

Quy đổi về 1ADC= 1 o C

Độ chính xác của ADC0804 bị giới hạn bởi tần số lấy mẫu (thường là600->640KHz) và số bít của dữ liệu đầu ra (8 bít) tương ứng với tối đa là 256mức điện áp có thể chuyển đổi và so sánh,ngoài ra điện áp đưa vào chân Vref/2

cũng quyết định điện áp vi phân bậc thang trong phép chuyển đổi củaADC.Nếu điện áp đưa vào chân này là 1.28 V thì điện áp so sánh max là2x1.28= 2.56 V kết hợp với dải nhiệt độ chuyển đổi của LM35DZ là từ 0-

>100oC ( vẫn nhở hơn 255) nên mỗi bước điện áp ứng với2.56/256=10mV.Điện áp Vref/2 càng lớn thì bước điện áp bậc thang càng lớn

Trang 14

do đó độ chính xác của phép đo càng nhỏ hay nói cách khác ta mắc phải mộtsai số lớn hơn

Để tăng độ chính xác của phép đo lên ta có thể dùng một cảm biến khác

có độ chính xác cao hơn, có thể giảm điện áp đưa vào chân Vref/2 để giảm bướcđiện áp vi phân bậc thang của ADC, Tuy nhiên, khi bước điện áp của ADC vàcảm biến không đồng nhất thì sẽ gây khó khăn cho quá trình xử lý dữ liệu đưa

ra khâu hiển thị hoặc có thể gây ra sai số Tùy thuộc vào phép hiện thị màngười ta có thể đặt giá trị điện áp cho chân Vref/2 sao cho hợp lý

2.1.4 Cách ghép nối

2.1.4.1.Ghép nối LM35 với ADC0804

Trang 15

2.1.4.2.Ghép nối giữa ADC0804 và 8051

5 1

2 3

Trang 16

2.2 Mạch thời gian thực DS1307

2.2.1 Cấu trúc sơ đồ chân DS1307

DS1307 là chip thời gian thực hay RTC (Read time clock) Đây là một

IC tích hợp cho thời gian bởi vì tính chính xác về thời gian tuyệt đối cho thờigian: Thứ, ngày, tháng, năm, giờ, phút, giây DS1307 là chế tạo bởi Dallas.Chip này có 7 thanh ghi 8 bit mỗi thanh ghi này chứa: Thứ, ngày, tháng, năm,giờ, phút, giây Ngoài ra DS1307 còn chứa 1 thanh ghi điều khiển ngõ ra phụ

và 56 thanh ghi trống các thanh ghi này có thể dùng như là RAM DS1307được đọc thông qua chuẩn truyền thông I2C nên do đó để đọc được và ghi từDS1307 thông qua chuẩn truyền thông này Do nó được giao tiếp chuẩn I2Cnên cấu tạo bên ngoài nó rất đơn giản

+ Vbat là nguồn nuôi cho chip Nguồn này từ ( 2V- 3.5V) ta lấy pin có nguồn

3V Đây là nguồn cho chip hoạt động liên tục khi không có nguồn Vcc mà DS1307 vẫn hoạt động theo thời gian

+ Vcc là nguồn cho giao tiếp I2C Điện áp cung cấp là 5V chuẩn và được

dùng chung với vi xử lý Nếu mà Vcc không có mà Vbat có thì DS1307 vẫn hoạt động bình thường nhưng mà không ghi và đọc được dữ liệu

+ GND là nguồn Mass chung cho cả Vcc và Vbat

+ SQW/OUT là một ngõ ra phụ tạo xung dao động (xung vuông) Chân này

tôi nghĩ không ảnh hưởng đến thời gian thực nên chúng ta không sử dụng chân này trong thời gian thực và bỏ trống chân này!

Trang 17

+ SCL và SDA là hai bus dữ liệu của DS1307 Thông tin truyền và ghi đều

được truyền qua 2 đường truyền này theo chuẩn I2C

Các địa chỉ thanh ghi:

2.2.2 Giới thiệu giao tiếp I2C

 I2C là chuẩn giao tiếp nối tiếp sử dụng 2 dây phát triển bởiPhilips

 I2C được ứng dụng rất nhiều trong tất cả các thiết bị do lường,cảm biến, module, VDK, IC thời gian thực, EEPROM24Cxx

 Để giao tiếp được với các thiết bị trên ta phải kết nối chúng vớinhau qua 2 dây là SDA (dữ liệu 2 chiều) và SCL (xung nhịp)

 I2C cho phép tất cả các thiết bị có I2C nối chung đường giao tiếptức là VD có 3 thiết bị có I2C thì có thể dùng chung 2 dây giaotiếp SDA và SCL vì tất cả các thiết bị I2C đều phải có 1 địa chỉriêng theo mối quan hệ Chủ-Tớ (Master-Slave)

 8051 không tích hợp sẵn I2C, phải lập trình riêng

I2C sử dụng hai đường truyền tín hiệu:

 Một đường xung nhịp đồng hồ(SCL) chỉ do Master phát đi( thông thường ở 100kHz và 400kHz Mức cao nhất là 1Mhz và3.4MHz)

 Một đường dữ liệu(SDA) theo 2 hướng

 SCL và SDA luôn được kéo lên nguồn bằng một điện trở kéo lên

có giá trị xấp xỉ 4,7 KOhm (có thể dao động trong khoảng1KOhm đến 4.7 Kohm

Trang 18

Dữ liệu được truyền trên bus I2C theo từng bit, bit dữ liệu đượctruyền đi tại mỗi sườn lên của xung clock trên SCL

Quá trình thay đổi bit dữ liệu xảy ra khi SCL ở mức thấp

Các bước truyền nhận dữ liệu I2C

B1: Trạm chủ xác định thiết bị cần giao tiếp và chế độ giao tiếp là read

hay là write, việc này được thực hiện bằng cách gửi 7bit địa chỉ thiết bị vàthêm bit cuối cùng, 0 nếu read và 1 nếu write

B2: Reset chế độ bằng cách thực hiện liên tiếp việc start và stop B3: Gửi địa chỉ thanh ghi cần truy nhập của thiết bị cũng như chế độ

read hay write

Trang 19

B4: Gửi hoặc nhận 1byte dữ liệu Sau khi truyền 1byte dữ liệu, bên

nhận đc dữ liệu sẽ gửi lại 1bit ACK để xác nhận đã nhận được dữ liệu và tiếptục truyền hoặc bit NACK để báo nhận đc dữ liệu nhưng kết thúc quá trìnhtruyền

2.2.2.1.Code lập trình I2C:

void start_i2c() {

int i;

for(i=0;i<8;i++) {

SCL=0;

Trang 20

return dat;

} unsigned char read_i2c(void) {

bit rb_bit;

unsigned char i,dat;

dat=0x00;

for(i=0;i<8;i++) {

unsigned int ret;

Trang 21

return ret;

} void set_ds1307() {

hour=read_ds1307(HOUR);

min=read_ds1307(MIN);

sec=read_ds1307(SEC);

} void get_date() {

Trang 22

2.3 Khối hiển thị LCD

Hình 2.9 : LCD 16x4

Chức năng chân LCD

 VSS: tương đương với GND - cực âm

 VDD: tương đương với VCC - cực dương (5V)

 Constrast Voltage (Vo): điều khiển độ sáng màn hình

 Register Select (RS): điều khiển địa chỉ nào sẽ được ghi dữ liệu

 Read/Write (RW): Bạn sẽ đọc (read mode) hay ghi (write mode)

dữ liệu? Nó sẽ phụ thuộc vào bạn gửi giá trị gì vào

 Enable pin: Cho phép ghi vào LCD

 D0 - D7: 8 chân dư liệu, mỗi chân sẽ có giá trị HIGH hoặc LOWnếu bạn đang ở chế độ đọc (read mode) và nó sẽ nhận giá trịHIGH hoặc LOW nếu đang ở chế độ ghi (write mode)

 Backlight (Backlight Anode (+) và Backlight Cathode (-)): Tắt bậtđèn màn hình LCD.Các lệnh cơ bản trong LCD

Các lệnh cơ bản trong LCD

Mã lệnh Chức năng

0x00 Turn on LCD

0x01 Xóa màn hình

0x02 Di chuyển con trỏ về đầu màn hình

0x06 Tự động di chuyển con trỏ sang vị trí kế tiếp khi xuất ra LCD

1 ký tự0x0C Bật hiện thị và tắ con trỏ

0x0E Bật hiện thị và bật con trỏ

0xB0 Đưa con trỏ ra đầu dòng 1

Trang 23

0xC0 Đưa con trỏ ra đầu dòng 2

0x38 Giao tiếp 8 bit

0x28 Giao tiếp 4 bit

2.3.1 Các bước điều khiển LCD

 Bước 0 : Chuẩn bị phần cứng Dùng tuốc vít hay cái gì bạn cóxoay biến trở 5 K điều chỉnh độ tương phản của LCD Xoay chođến khi các ô vuông(các điểm ảnh) của LCD hiện lên thì xoayngược biến trở lại 1 chút

 Bước 1 : Khởi tạo cho LCD

 Bước 2 : Gán các giá trị cho các bit điều khiển các chânRS,RW,EN cho phù hợp với các chế độ : Hiển thị kí tự lên LCDhay Thực hiện 1 lệnh của LCD

 Bước 3: Xuất byte dữ liệu ra cổng điều khiển 8 bit dữ liệu củaLCD

 Bước 4: Kiểm tra cờ bận xem LCD sẵn sàng nhận dữ liệu mớichưa

 Bước 5: Quay vòng lại bước 1

Ngày đăng: 03/08/2020, 22:06

HÌNH ẢNH LIÊN QUAN

Hình 1. 1: Cấu trúc 8051 - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
Hình 1. 1: Cấu trúc 8051 (Trang 3)
Hình 1. 2: Sơ đồ chân 8051 - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
Hình 1. 2: Sơ đồ chân 8051 (Trang 4)
Hình 2. 4: Sơ đồ khối mô đo nhiệt độ - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
Hình 2. 4: Sơ đồ khối mô đo nhiệt độ (Trang 8)
Hình 2. 7: Sơ đồ chân ADC804 - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
Hình 2. 7: Sơ đồ chân ADC804 (Trang 10)
Hình 2.8 :Mạch DS1307 - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
Hình 2.8 Mạch DS1307 (Trang 16)
Hình 2.9 : LCD 16x4 - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
Hình 2.9 LCD 16x4 (Trang 22)
0x01 Xóa màn hình - Điều khiển tưới nước theo nhiệt độ và thời gian sử dụng DS1307, LM35 hiển thị LCD
0x01 Xóa màn hình (Trang 22)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w