Tải bản đầy đủ (.docx) (42 trang)

Đồ án Đồng hồ hiển thị thời gian thực và nhiệt độ phòng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 42 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA ĐIỆN TỬ VIỄN THÔNG

Đồ án điện tử
Đề tài: Đồng hồ hiển thị thời gian thực và nhiệt độ
phịng

Giảng viên: Ts. Nguyễn Lê Cường
Nhóm : 5
Lớp: Đ6 ĐTVT2
Khoá: 2011-2016
1
2

Lê Xuân Quyền
Nguyễn Đức Anh

3
4
5

Lê Viết Tùng
Phạm Thị Mừng
Phan Xuân Trường

Hà Nội, tháng 12 năm 2014

NHÓM 5 _ ĐTVT2

1




Mục Lục

NHÓM 5 _ ĐTVT2

2


Danh mục hình ảnh
Hình 1: Sơ đồ khối của AT89S52…………………………………………………. 6
Hình 2 - Sơ đồ chân và hình dạng thực tế của 8051 (89S52) ………………………7
Hình 3: Ảnh minh hoạ sơ đồ chân và hình dạng thực tế của LCD 16x2………...9
Hình 4: Sơ đồ chân của DS1307………………………………………………..15
Hình 5: Sơ đồ khối bên trong DS1307……………………………………….....15
Hình 6: Tổ chức bộ nhớ của DS1307…………………………………………..16
Hình 7: Sơ đồ chân và hình dạng thực tế của IC ADC0804…………………...19
Hình 8: Sơ đồ chân LM35 dạng TO-92………………………………………..23
Hình 9: Sơ đồ nguyên lý………………………………………………………..24
Hình 10: Sơ đồ chân linh kiện………………………………………………….25
Hình 11: Sơ đồ mạch in………………………………………………………...26
Hình 11: Hình ảnh mạch thực tế………………………………………………..26
Hình 12: Hình ảnh mặt sau của mạch khi đã hàn……………………………….27

Danh mục bảng biểu
Bảng 1: Chức năng của P3…………………………………………………………..8
Bảng 2: Mô tả các chân của LCD………………………………………………10
Bảng 3: Một số mã lệnh thường gặp của LCD…………………………………12
Bảng 4: Tổ chức các thanh ghi thời gian……………………………………….17
Bảng 5: Quan hệ điện áp Vref/2 với Vin……………………………………….22


Lời mở đầu
Bộ vi điều khiển (Micro-controller) là mạch tích hợp trên một chip có thể lập
trình được, dùng để điều khiển hoạt động của hệ thống. Bộ vi điều khiển tiến hành


đọc, lưu trữ thông tin, xử lý thông tin, đo lường thời gian và tiến hành đọc mở một
cơ cấu nào đó. Người lập trình có thể sử dụng nhiều ngơn ngữ lập trình cho vi điều
khiển và có thể lập trình cho vi điều khiển theo ý định và mục đích của mình. Do
đó các ứng dụng của vi điều khiển rất là đa dạng.
Hiện nay kỹ thuật vi điều khiển rất phát triển, nó được ứng dụng vào rất
nhiều lĩnh vực như: sản xuất công nghiệp, tự động hoá, trong đời sống và nhiều
lĩnh vực khác. Cùng với sự phát triển nhanh chóng của khoa học kỹ thuật, cơng
nghệ chế tạo vi mạch tích hợp thay đổi từng ngày từng giờ nhằm đáp ứng yêu cầu
sản xuất công nghiệp về tính chun dụng hố, tối ưu (thời gian, khơng gian, giá
thành), bảo mật và tính chủ động trong cơng việc… ngày càng địi hỏi khắt khe.
Việc đưa ra công nghệ mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những
yêu cầu trên là hoàn toàn cấp thiết mang tính thực tế cao.
Mặc dù ứng dụng của vi điều khiển rất đa dạng và phức tạp nhưng chúng em
chỉ đề cập tới một ứng dụng đơn giản của vi điều khiển là: “Đồng hồ đo thời gian
thực có hiển thị nhiệt độ trên LCD”. Mục đích mà đề tài hướng đến đó là thử
nghiệm cũng như tìm hiểu thực tế về các vấn đề vi điều khiển đã học trên lớp .
Trong quá trình thiết kế và ứng dụng có nhiều vấn đề có thể chưa được như
mong muốn. Vì vậy, chúng em rất mong được sự góp ý của thầy cơ và các bạn để
đề tài của chúng em ngày càng hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!

Phần 1. Cơ sở lý thuyết
I.
1.


Tổng quan về họ vi điều khiển 8051 ( 89S52).
Giới thiệu chung.


89S52 là một họ vi điều khiển 8 bit (8051 là một bộ xử lý 8 bit có nghĩa
là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8
bit được chia ra thành các dữ liệu 8 bit để cho xử lý). 8051 được chế tạo theo
công nghệ CMOS chất lượng cao, công suất thấp với 4 KB PEROM (Flash
Programeable and erasable read only memory).
Các đặc điểm của 8951 đời đầu được tóm tắt như sau:
4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới 1000 chu kỳ.
- Tần số hoat động từ 0 Hz đến 24 MHz.
3 mức khóa bộ nhớ lập trình.
- 2 bộ Timer/Counter 16 bit.
- 128 Byte RAM nội.
4 Port xuất/nhập (I/O) 8 bit.
Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngoài.
- 64 KB vùng nhớ dữ liệu ngoài.
- Xử lý Boolean (hoạt động trên bit đơn).
- 210 vị trí nhớ có thể định vị bit.
- 4µs cho hoạt động nhân hoặc chia .
2. Sơ đồ khối và sơ đồ chân của AT89C51


Hình 1: Sơ đồ khối của AT89S52


Hình 2 - Sơ đồ chân và hình dạng thực tế của 8051 (89S52)



Port 0 (P0.0 - P0.7 hay chân 32 - 39):
Ngoài chức năng xuất nhập ra, port 0 còn là bus đa hợp dữ liệu và địa chỉ
(AD0- AD7), chức năng này sẽ được sử dụng khi AT89C51 giao tiếp với thiết bị
ngồi có kiến trúc bus.
Port 1 (P1.0 - P1.7 hay chân 1 - 8):
Có chức năng xuất nhập theo bit và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7
được dùng để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 được dùng cho bộ
Timer2.
- Port 2 (P2.0 - P2.7 hay chân 21 - 28):
Là một port có cơng dụng kép. Là đường xuất nhập hoặc là byte cao của bus
địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng.
- Port 3 (P3.0 - P3.7 hay chân 10 - 17):
Mỗi chân trên port 3 ngoài chức năng xuất nhập ra cịn có một số chức năng
đặc biệt sau:
-

Bảng 1: Chức năng của P3

RST (Reset - chân 9):
Mức tích cực của chân này là mức 1, để reset ta phải đưa
mức 1 (5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy (tương đương
2µs đối với thạch anh 12MHz).
- XTAL 1, XTAL 2 (Chân 18,19):
AT89S52 có một bộ dao động trên chip, nó thường được nối với một bộ dao
động thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.
-



EA (External Access - chân 31):
EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức
cao, bộ vi điều khiển thi hành chương trình từ ROM nội. Nếu ở mức thấp,
chương trình chỉ được thi hành từ bộ nhớ mở rộng.
- ALE (Address Latch Enable - chân 30):
ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của
chu kỳ bộ nhớ. Sau đó các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa
chu kỳ sau của bộ nhớ.
- PSEN (Program Store Enable - chân 29):
PSEN là chân điều khiển để cho phép bộ nhớ chương trình mở rộng và
thường được nối với đến chân /OE (Output Enable) của một EPROM để cho
phép đọc các bytes mã lệnh. PSEN sẽ ở mức thấp trong thời gian đọc lệnh. Các
mã nhị phân của chương trình được đọc từ EPROM qua Bus và được chốt vào
thanh ghi lệnh của bộ vi điều khiển để giải mã lệnh. Khi thi hành chương trình
trong ROM nội, PSEN sẽ ở mức thụ động (mức cao).
- Vcc, GND:
AT89S52 dùng nguồn một chiều có dải điện áp từ 4V - 5.5V được cấp qua
chân 40 (Vcc) và chân 20 (GND).
II. Màn hình LCD 16x2
-

Hiện nay trên thị trường có rất nhiều loại LCD với các mẫu mã và hình
dạng khác nhau. Dựa vào kích cỡ và hiển thị ta có thể chia LCD làm thành 2
loại chính là hiển thị kí tự và hiển thị đồ hoạ.
Loại hiển thị ký tự (character LCD) có các kích cỡ: 16x1, 16x2, 16x4…mỗi
ký tự được tạo thành bởi một ma trận các điểm sáng kích thước 5x7 hoặc 5x10
điểm ảnh.
1. Cấu tạo LCD

Hình 3: Ảnh minh hoạ sơ đồ chân và hình dạng thực tế của LCD 16x2

LCD được chúng em sử dụng là loại có 16 chân, chức năng của các chân
được cho trong bảng 3.
Bảng 2: Mô tả các chân của LCD


Chân

Ký hiệu

I/O

Mô tả

1

Vss

-

Đất

2

Vcc

-

Dương nguồn 5V

3


Vee

-

Cấp nguồn cho vi điều khiển

4

RS

I

5

R/W

I

6

E

I/O

RS= 0 chọn thanh ghi lệnh. RS= 1
chon thanh ghi dữ liệu.
R /W = 1 đọc dữ liệu. R/W = 0 ghi
dữ liệu
Cho phép


7

DB0

I/O

Các bit dữ liệu

8

DB1

I/O

Các bit dữ liệu

9

BD2

I/O

Các bit dữ liệu

10

DB3

I/O


Các bit dữ liệu

11

DB4

I/O

Các bit dữ liệu

12

DB5

I/O

Các bit dữ liệu

13

DB6

I/O

Các bit dữ liệu

14

DB7


I/O

Các bit dữ liệu

Chức năng các chân của LCD
Chân Vcc, Vss và Vee.
Cấp dương nguồn 5V và đất tương ứng thì Vee được dùng để điều khiển độ
tương phản của LCD.
2.
-

Các chân chọn thanh ghi RS (Register select).
Có hai thanh ghi rất quan trọng bên trong LCD, chân RS được dùng để chọn
các thanh ghi này như sau: RS = 0 thì thanh ghi mã lệnh được chọn để cho phép
người dùng gửi đến một lệnh như xố màn hình, con trỏ về đầu dịng… Nếu
-


RS= 1 thì thanh ghi dữ liệu được chọn cho phép người dùng gửi dữ liệu cần
hiển thị trên LCD.
- Chân đọc/ghi (R/W)
Đầu đọc/ghi cho phép người dùng ghi thông tin trên LCD. Khi R/W = 0 thì ghi,
R/W = 1 thì đọc.
- Chân cho phép E (Enable)
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên
chân của nó, khi dữ liệu được cấp đến chân dữ liệu thì một xung từ cao xuống
thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân chốt dữ liệu.
Xung này phải rộng tối thiểu 450ns.
- Chân D0 – D7

Đây là 8 chân dữ liệu 8 bit, được dùng để gửi thông tin lên LCD hoặc đọc
nội dung của các thanh ghi trên LCD.
Để hiển thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các
chữ cái từ A đến Z, a đến z và các con số từ 0 đến 9 đến các chân này khi RS=1.
Cũng có các mã lệnh mà có thể gửi đến LCD để xố màn hình hoặc đưa con
trỏ về đầu dịng hoặc nhấp nháy con trỏ.
Dùng RS = 0 để kiểm tra bit cờ bận để xem LCD có sẵn sang nhận thơng tin
hay khơng. Cờ bận là D7 và có thể được đọc khi R/W = 1 và RS = 0 như sau:
+ Nếu R/W = 1, RS = 0 thì D7 =1 (cờ bận bằng 1) thì LCD bận bởi các công
việc bên trong và sẽ không nhận bất kỳ thơng tin mới nào. Khi D7 = 0 thì LCD
sẵn sàng nhận thông tin mới. Chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ
dữ liệu nào lên LCD.
3. Bảng mã lệnh của LCD
Với mỗi lệnh, LCD cần một khoảng thời gian để hoàn tất, thời gian này có
thể khá lâu đối với tốc độ cuarMPU, nên ta cần kiểm tra cờ BF hoặc đợi (delay)
cho LCD thực thi xong lệnh hiện hành mới có thể ra lệnh tiếp theo.
Địa chỉ của RAM sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnh ghi vào
RAM. (Điều này giúp chương trình ngắn hơn)
Các lệnh của LCD có thể chia thành 4 nhóm như sau:
- Các lệnh về kiểu hiển thị
Ví dụ: Kiểu hiển thị (1 hàng/2 hàng), chiều dài dữ liệu (8 bit/4 bit),…
- Chỉ định địa chỉ RAM nội.
- Nhóm lệnh truyền dữ liệu trong RAM nội
- Các lệnh còn lại.
Bảng 3: Một số mã lệnh thường gặp của LCD


Mã HEX

Lệnh đến các thanh ghi của LCD


1

Xố màn hình hiển thị

2

Trở về đầu dòng

4

Giảm con trỏ (Con trỏ dịch sang trái)

6

Tăng con trỏ (con trỏ dịch sang phải)

5

Dịch hiển thị sang phải

7

Dịch hiển thị sang trái

8

Tắt con trỏ, tắt hiển thị

A


Tắt hiển thị, bật con trỏ

C

Bật hiển thị, tắt con trỏ

E

Bật hiển thị, nhấp nháy con trỏ

F

Tắt con trỏ, nhấp nháy con trỏ

10

Dịch vị trí con trỏ sang trái

14

Dịch vị trí con trỏ sang phải

18

Dịch tồn bộ hiển thị sang trái

1C

Dịch toàn bộ hiển sang phải


80

Ép con trỏ về đầu dòng thứ nhất

C0

Ép con trỏ về đầu dòng thứ hai

38

Hai dòng và ma trận 5x7

III. IC hiển thị thời gian thực DS1307
1. Giới thiệu chung về DS1307
IC thời gian thực là họ vi điều khiển của hãng Dalat. DS1307 có một số đặc
trưng cơ bản sau:
- DS1307 là IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật thời
gian ngày tháng.
- SRAM: 56 bytes.


Địa chỉ và dữ liệu được truyền nối tiếp qua 2 đường bus 2 chiều.
DS1307 có một mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự
động đóng ngắt với nguồn cấp 3V:
+ DS1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điều khiển và
56 byte lưu trữ (dành cho người dùng).
+ Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng BCD, ví dụ như
ta đọc được dữ liệu từ địa chỉ 0x04 (tương ứng với Day- ngày trong tháng) và
tại 0x05 (tháng) là 0x15, 0x11.

+ Lưu ý đến vai trò của chân SQW/OUT. Đây là chân cho xung ra của DS1307
có 4 chế độ 1 Hz, 4.096 Hz, 8.192 Hz, 32.768 Hz…các chế độ này được quy
định bởi các bit thanh ghi Control Register (địa chỉ 0x07).
+ Địa chỉ của DS1307 là 0xD0.
- Cơ chế hoạt động: DS1307 hoạt động với vai trò slave trên đường bus nối
tiếp. việc truy cập được thi hành với các chỉ thị start và một mã thiết bị nhất
định được cung cấp bởi địa chỉ các thanh ghi. Tiếp theo đó các thanh ghi sẽ
được truy cập liên tục đến khi chỉ thị stop được thực thi.
2. Cơ chế hoạt động và chức năng của DS1307
Các chân của DS1307:
- Vcc: nối với nguồn.
- X1, X2: nối với thạch anh 32,768 kHz.
- Vbat: đầu vào pin 3V.
- GND: nối đất.
- SDA: chuỗi data.
- SQW/OUT: dãy xung clock.
• DS1307 là một Ic thời gian thực với nguồn caapsnhor, dùng để caapj nhật
thời gian và ngày tháng với 56 bytes SRAM. Địa chỉ và dữ liệu được truyền
nối tiếp qua 2 đường bus 2 chiều. No cung cấp thông tin về giờ, phút, giây,
thứ, ngày, tháng, năm. Ngày cuối tháng sẽ được tự động điều chỉnh với các
tháng nhỏ hơn 31 ngày, bao gồm cả việc tự động nhảy năm. Đồng hồ có thể
hoạt động ở dạng 24h.
• DS1307 hoạt đọng với vai trò slave trên đường hoặc 12h chỉ thị AM/PM.
DS1307 có một mạch cảm biến điện áp dùng để dị các điện áp lỗi và tự
động đóng ngắt với nguồn pin cung cấp, bus nối tiếp. Việc truy cập được thi
hành với chỉ thị START và một mã thiết bị nhất định được cung cấp bởi địa
chỉ các thanh ghi. Tiếp theo các thanh ghi sẽ được truy cập liên tục cho đến
khi chỉ thị STOP được thực thi.
 Mô tả hoạt động của các chân:
-



-

-

-

-

Vcc, GND: nguồn một chiều được cung cấp vào các chân này. Vcc là đầu
vào 5V. Khi nguồn 5V được cung cấp thì thiết bị có thể truy cập hồn chỉnh
và dữ liệu có thể đọc và ghi. Khi pin 3V được nối tới thiết bị và Vcc nhỏ hơn
1,25 Vbat thì q trình đọc và ghi khơng được thực thi, tuy nhiên chức năng
timekeeping không bị ảnh hưởng bởi điện áp vào thấp. Khi Vcc nhỏ hơn
Vbat thì RAM và timekeeper sẽ được ngắt tới nguồn cấp trong (thường là
nguồn 1 chiều 3V).
Vbat: Đầu vào pin cho bất kỳ một chuản pin 3V. Điện áp pin phải được giữa
trong khoảng từ 2,5V đến 3V để ddamr bảo cho sự hoạt động của thiết bị.
SCL (Serial Clock Input): SCL được sử dụng để đồng bộ sự chuyển dữ liệu
trên đường dây nối tiếp.
SDA (Serial Data Input/Output): là chần vào ra cho 2 đường dây nối tiếp.
Chân SDA thiết kế theo kiểu cực máng hở, địi hỏi phải có một điện trở kéo
trong khi hoạt động.
SQW/OUT (Square Wave/Output Driver): Khi được kích hoạt thì bit SQWE
được thiết lập 1 chân SQW/OUT phát đi 1 trong 4 tần số (1 HZ, 4kHz,
8kHz, 32kHz). Chân này được thiết kế theo kiểu cực máng hở vì vậy nó cần
một điện trở kéo trong. Chân này hoạt động khi cả Vcc và Vbat được cấp.
X1, X2: được nối với thạch anh tần số 32,768 kHz, với ccaaufs hình này thì
chân X1 sẽ được nối vào tín hiệu dao động trong cịn X2 thì để hở.


Hình 4: Sơ đồ chân của DS1307


Hình 5: Sơ đồ khối bên trong DS1307
Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn,
mạch dao động, mạch điều khiển logic, mạch giao diện IC, con trỏ địa chỉ và
các thanh ghi (hay RAM).
3. Sơ đồ địa chỉ RAM và RTC
Bộ nhớ DS1307 có tất cả 64 thnh ghi 8 bit được đánh địa chỉ từ 0 đến 63 (từ
00H đến 3FH theo hệ Hexa). Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu là
dùng cho chức năng “đồng hồ” (RTC) còn 56 thanh ghi bỏ trống có thể chứa
biến tạm như RAM. Bảy Thanh ghi đầu chứa thông tin về thời gian của đồng hồ
bao gồm: giây (SECONDS), phút(MINUTES), giờ (HOURS),thứ(DAY),
ngày(DATE), tháng(MONTH), năm(YEAR).
Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte
thanh ghi thích hợp. Thời gian và ngày tháng được thiết lập cũng thông qua các
byte thanh ghi này bằng cách viết vào đó những giat trị thích hợp. Nội dung của
các thanh ghi dưới dạng mã BCD. Bít 7 của thanh ghi seconds là bit clock halt
(CH), khi bit này được thiết lập 1 thì dao động vơ hiệu hố, khi nó được xố về
0 thì dao động được thiết lập.


Chú ý: Enable dao động trong suốt quá trình cấu hình thiết lập (CH=0). Thanh
ghi thời gian thực được mơ tả như sau:

Hình 6: Tổ chức bộ nhớ của DS1307

Bảng 4: Tổ chức các thanh ghi thời gian



Thanh ghi giây (SECONDS): thanh ghi này là thanh ghi đầu tiên trong bộ nhớ
của DS1307, địa chỉ là 0x00. Bốn bit thấp của thanh ghi này chứa mã BCD 4bit của chữ số hàng đơn vị của giá trị giây. Do giá trị cao nhất của chữ số hàng
chục là 5 (khơng có giây 60) nên chỉ cần 3 bit là có thể mã hố được.
Thanh ghi phút (MINUTES): có địa chỉ 01H, chứa giá trị phút của đồng hồ.
Tương tự như thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng
để lưu mã BCD của phut, bit 7 ln bằng 0.
Thanh ghi giờ (HOURS): có địa chỉ 02H. Bốn bit thấp của thanh ghi này được
dùng chochữ số hàng đơn vị của giờ. Do DS1307 có thể chạy ở chế độ 24h
cũng như 12h. Bit thứ 6 của thanh ghi hours là bít chọn chế độ 24h hay 12h.
Khi bit này ở múc cao thì chế độ 12h được chọn. Ở chế độ 12h thì bit 5 là bit
AM/PM với mức cao là PM. Ở chế độ 24h thì bit 5 là bit chỉ 20h (từ 20h đến
23h). Bit 7 luôn bằng 0.
Thanh ghi thứ (DAY): nằm ở địa chỉ 03H. Thanh ghi DAY chỉ mang giá trị từ 1
đến 7 tương ứng từ Chủ Nhật đến thứ 7 trong tuần. Vì thế chỉ có 3 bit thấp trong
thanh ghi này có nghĩa.
Các thanh ghi cịn lại có cấu trúc tương tự, DATE chứa ngày trong tháng (từ
1 đến 31), MONTH chứa tháng (từ 1 đến 12) và YEAR chứa năm (từ 00 đến
99). Trong DS1307 chỉ dùng cho 100 năm, nên giá trị năm chỉ có 2 chữ số,
phaand đầu của năm do người dùng tự thêm vào.
Ngoài các thanh ghi này trong bộ nhớ DS1307 cồn có một thanh ghi khác
nằm riêng gọi là con trỏ địa chỉ.
• Trong q trình truy cập dữ liệu, khi chỉ thị START được thực thi thì dịng
thời gian được chuyển tới thanh ghi thứ 2, thơng tin thời gian sẽ được đọc từ
thanh ghi thứ cấp này, trong khi đó đồng hồ vẫn tiếp tục chạy. Trong
DS1307 có một thanh ghi điều khiển để điều khiển hoạt động của chân
SQW/OUT:
- OUT (Output control): bit này điều khiển mức ra của chân SQW/OUT khi
đầu ra xung vuông ngắt. Nếu SQWE = 0 thì mức logic ở chân SQW/OUT sẽ
là 1 nếu OUT = 1 và SQW/OUT = 0 khi OUT = 0.

- SQWE (Square wave enable): bit này được thiết lập 1 sẽ kích hoạt đầu ra
của bộ tạo dao động. Tần số đầu ra của sóng vuông phụ thuộc vào giá trị của
RS1 và RS0.
DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu. Thiết bị gửi dữ
liệu lên bus được gọi là bộ phát và thiết bị nhận dữ liệu gọi là bộ thu. Thiết bị
điều khiển quá trình này gọi là master. Thiết bị nhận sự điều khiển của master


gọi là slave. Các bus nhận điều khiển của master, là thiết bị phát ra xung clock
(SCL), master sẽ điều khiển sự truy cập bus, tạo ra các chỉ thị START và STOP.
4. Sự truyền nhận dữ liệu trên chuỗi bus 2 dây
Tuỳ thuộc vào bit R/W mà 2 loại truyền dữ liệu sẽ được thực thi:
- Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyên byte đầu
tiên là địa chỉ của slave. Tiếp sau đó là các byte dữ liệu, slave sẽ gửi lại bit
thông báo đã nhận được (bit acknowledge) sau mỗi một byte dữ liệu nhận
được, dữ liệu sẽ được truyền từ bit có giá trị thấp (MSB).
- Truyền dữ liệu từ slave và master nhận: byte đầu tiên (địa chỉ của slave)
được truyền tới slave bởi master. Sau đó slave sẽ gửi lại master bit
acknowledge. Tiếp theo đó slave sẽ gửi các byte dữ liệu tới master. Master
sẽ gửi lại cho slave các bit acknowledge sau mỗi byte nhận được trừ byte
cuối cùng. Sauk hi nhận được byte cuối cùng thì bit acknowledge sẽ không
được gửi lại.
Master phát ra tất cả các chuỗi xung clockvaf các chỉ thị START và STOP.
Sự truyền sẽ kết thúc với chỉ thị STOP hoặc chỉ thị quay vịng START. Khi chỉ
thị START quay vịng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi và các
bus vẫn chưa được giải phóng. Dữ liệu ln ln được bắt đầu bằng bit MSB.
IV. IC ADC 0804
Bộ chuyển đổi ADC là bộ chuyển đổi tín hiệu ở dạng tương tự sang dạng
số để có thể làm việc được với CPU.
Các máy tính số sử dụng các giá trị nhị phân, nhưng trong thế giới vật lý thì

mọi đại lượng ở dạng tương tự (liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng),
độ ẩm và vận tốc và một số ít những đại lượng vật lý của thế giới thực mà ta
gặp hằng ngày. Một đại lượng vật lý được chuyển về dòng điện hoặc điện áp
qua một thiết bị được gọi là các bộ biến đổi. Các bộ biến đổi cũng có thể coi
như các bộ cảm biến. Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh
sáng và nhiều đại lượng tự nhiên khác nhưng chúng đều cho ra các tín hiệu
dạng dịng điện hoặc điên áp ở dạng liên tục. Do vậy, ta cần một bộ chuyển đổi
tương tự số sao cho bộ vi điều khiển có thể đọc được chúng. Một chip ADC
được sử dụng rộng rãi là ADC0804.


Hình 7: Sơ đồ chân và hình dạng thực tế của IC ADC0804
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng
National Semiconductor. Chip này cũng được nhiều hãng khác sản xuất. Chip
có điện áp ni +5V và độ phân giải 8 bit. Ngoài độ phân giải thì thời gian
chuyển đổi cũng là một tham số quan trọng khi đánh giá bộ ADC. Thời gian
chuyển đổi được định nghĩa 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. Đối với ADC0804 thì thời gian chuyển đổi phụ
thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN và khơng bé hơn
110µs. Các chân khác của ADC0804 có chức năng như sau:
-

CS (Chip select): Chân số 1, là chân chọn chip, đầu vào tích cực mức thấp
được sử dụng để kích hoạt Chip ADC0804. Để truy cập tới ADC0804 thì chân

-

này phải được đặt ở mức thấp.
RD (Read): Chân số 2, là chân nhận tín hiệu vào tích cực ở mức thấp. Các bộ
chuyển đổi của 0804 sẽ chuyển đổi đầu vào tương tự thành số nhị phân và giữ

nó ở một thanh ghi trong. Chân RD được sử dụng để cho phép đưa dữ liệu đã
được chyển đổi tới đầu ra của ADC0804. Khi CS = 0 nếu có một xung cao


xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân
-

dữ liệu (DB0 – DB7).
WR (Write): Chân số 3, đây là chân vào tích cực mức thấp được dùng báo cho
ADC biết để bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao
xuống thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương
tự Vin thành số nhị phân 8 bit. Khi việc chuyển đổi hồn tất thì chân INTR được

-

ADC hạ xuống thấp.
CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngoài
được sử dụng để tạo thời gian. Tuy nhiên ADC0804 c ũng có một bộ tạo xung
đồng hồ riêng. Để dùng đồng hồ riêng thì các chân CLK IN và CLK R (chân
số 19) được nối với một tụ điện và một điện trở. Khi đó tần số được xác định
bằng biểu thức:

F =

1
1.1RC

Với R = 10 kΩ, C = 150 pF , tần số f = 606 kHz , thời gian chuyển đổi 110
µs
-


Ngắt INTR (Interupt): Chân số 5, là chân ra tích cực mức thấp. Bình thường
chân này ở trạng thái cao và khi việc chuyển đổi tương tự số hồn tất thì nó
chuyển xuống mức thấp để báo cho CPU biết là dữ liệu chuyển đổi sẵn sàng
để lấy đi. Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao

-

xuống thấp tới chân RD để đưa dữ liệu ra.
Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai,
trong đó Vin = Vin(+) – Vin(-). Thông thường Vin(-) được nối tới đất và

-

Vin(+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi về dạng số.
Vcc: Chân số 20, là chân nguồn ni +5V. Chân này cịn được dùng làm điện
áp tham chiếu khi đầu vào Vref/2 để hở.


-

Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham
chiếu. Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong
dải 0 đến +5V. Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến
V in khác với dải 0 đến +5V. Chân V ref/2 được dùng để thực hiện các điện áp
đầu ra khác 0 đến +5V.

Bảng 5: Quan hệ điện áp Vref/2 với Vin

-


Vref/2 (V)

Vin (V)

Hở

0–5

5/256 = 19.53

2.0

0–4

4/256 = 15.62

1.5

0–3

3/256 = 11.71

1.28

0 – 2.56

2.56/256 = 10

1.0


0–2

2/256 = 7.81

0.5

0–1

1/256 = 3.90

Kích thước bước (mV)

D0 - D7: D0 - D7, chân số 18 – 11, là các chân ra dữ liệu số (D7 là bit cao
nhất MSB và D0 là bit thấp nhất LSB). Các chân này được đệm ba trạng thái
và dữ liệu đã được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RD


đưa xuống mức thấp. Để tính điện áp đầu ra ta tính theo cơng thức sau:
Dout = Vin / Kích thước bước.

V. IC cảm biến LM35
Đây là cảm biến nhiệt tích hợp với độ chính xác cao của hãng National
Semiconductor. Điện áp đầu ra của nó tỉ lệ tuyến tính với nhiệt độ theo thang
độ Celsius. Điện áp ngõ ra thay đổi 10mV (điện áp bước) cho mỗi sự thay đổi
1oC. Chúng khơng u cầu cân chỉnh ngồi.
LM35 có 4 dạng: TO-46, SO-8, TO-92, TO-220. Nhưng thường dùng nhất
là dạng TO-92 như hình dưới.

Hình 8: Sơ đồ chân LM35 dạng TO-92



Đặc điểm cơ bản của LM35:
-

Điện áp nguồn từ -0.2V đến +35V.
Điện áp ra từ -1V đến +6V.
Dải nhiệt độ đo được từ -55°C đến +150°C.
Điện áp đầu ra thay đổi 10mV mỗi khi có sự thay đổi 1°C.

Phần 2. Thiết kế sản phẩm
I . Sơ đồ nguyên lý


Hình 9: Sơ đồ ngun lý
Mạch này gồm có 4 khối chính:
-

Khối nguồn: Tạo nguồn 5V ni vi điều khiển và các thiết bị trong mạch, linh
kiện chính trong khối là IC 7805.
Khối điều khiển: Bao gồm vi điều khiển 89S52 và các phím bấm điều khiển các
chế độ hoạt động của mạch.


-

Khối cảm biến: bao gồm IC cảm biến nhiệt LM35, IC hiển thị thời gian thực
DS1307, IC ADC 0804.
Khối hiển thị: màn hình LCD 16x2, các Led đơn, và loa.
II.

Mạch in

Hình 10: Sơ đồ chân linh kiện


×