đồng hồ
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 1
CHƯƠNG I TỔNG QUAN VỀ LÝ THUYẾT 4
I.GIỚ THIỆU VỀ 89C51 4
1.1.Giới thiệu chung 4
1.2.Cấu trúc bên trong của 8951 4
1.3.Chức năng các chân vi điều khiển 5
II.TỔNG QUAN VỀ IC DS1307( IC ĐỊNH THỜI GIAN THỰC) 7
2.1 Tổng quan về DS1307 7
2.1.1 Sơ đồ chân DS1307 7
2.1.2 Cấu tạo bên trong DS1307 8
2.2 Khái quát giao diện I2C 11
2.3 Mode (chế độ) truyền dữ liệu giữa DS1307 và AT8951 14
2.3.1 Mode Data Write (chế độ ghi dữ liệu) 14
2.3.2 Mode Data Read (chế độ dọc dữ liệu) 16
III.GIỚI THIỆU VỀ IC ADC 0804(IC CHUYỂN ĐỔI TƯƠNG TỰ - SỐ) 16
3.1.Giới thiệu chung 16
3.2.Chức năng các chân 16
IV.GIỚI THIỆU VỀ IC CẢM BIẾN NHIỆT ĐỘ LM35 19
4.1 Một số tính chất cơ bản của LM35 19
4.2 Dải nhiệt độ và sự thay đổi trở kháng theo nhiệt độ của LM35 20
V.GIỚI THIỆU VỀ IC 74 HC595 21
5.1.Giới thiệu chung 21
5.2.Chức năng các chân 21
5.3.Hoạt động của IC 74HC595 21
CHƯƠNG II: THIẾT KẾ VÀ THI CÔNG MẠCH 23
I THIẾT KẾ MẠCH NHIỆT ĐỘ 23
1.1.Sơ đồ khối 23
1.2.Sơ đồ nguyên lý và nguyên lý hoạt động 23
1.3.Nguyên lý hoạt động 24
1.4.Sơ đồ board 25
1.5.Lưu đồ thuật toán 25
1.6.Chương trình nhiệt độ 27
II THIẾT KẾ MẠCH ĐỒNG HỒ THỜI GIAN THỰC 28
2.1.Sơ đồ khối 28
2.1.Sơ đồ nguyên lý và nguyên lý hoạt động 29
Trang 22.6.Chương trình đồng hồ thời gian thực 34
III KHỐI HIỂN THỊ 44
3.1 Sơ đồ nguyên lý 44
CHƯƠNG III: KẾT LUẬN 45
I KẾT LUẬN 45
II HƯỚNG PHÁT TRIỂN 46
TÀI LIỆU THAM KHẢO 47
Trang 3LỜI NÓI ĐẦU
Trong thời đại ngày nay khi nhân loại đang trải qua những bước tiến vượt bậc về khoa học công nghệ,thì nghành điện tử cũng có những bước tiến đặc biệt quan trọng đặc biệt trong lĩnh vực vi điều khiển Các bộ vi xử lí ngày càng hoàn thiện và phát triển được
sử dụng trong hầu hết các hệ thống điều khiển tử động trong công nghiệp, khoa học kỹ thuật, cũng như trong các thiết bị dân dụng Chính nhờ vai trò chức năng vai trò của vi xử
lí đã đem lại ưu điểm, nhiều tính năng đặc biệt cho các hệ thống điều khiển thay thế con người trong công việc yêu cầu phức tạp và đòi hỏi kỹ thuật cao
Ngày nay các nhà nghiên cứu không ngừng nghiên cứu các hệ thống điều khiển và
sử dụng vi xử lí để thay thế và cũng chính vì thế đã thúc đảy vi xử lí phát triển và ngày càng hoàn thiện hơn với yêu cầu điều khiển hiện nay
Qua quá trình học tập và rèn luyện chúng em cũng đã được làm quen với một số IC vi xử
lí với những chức năng, ứng dụng rộng rãi trong thực tế.Để áp dụng tính năng đặc biệt đócủa vi xử lí vào thực tiễn thì nhóm chúng em đã nghiên cứu và thực hiện đồ án với đề tài:
“THIẾT KẾ, CHẾ TẠO LỊCH VẠN NIÊN ĐIỆN TỬ” Với mô hình này có thể giúp
chúng ta có thể điều khiển hệ thống hiển thị thời gian & ngày tháng trên LED 7đoạn Trong hệ thống này thì chúng em đã sử dụng IC 8051 là IC điều khiển chính, bởi vì 8051
có nhiều tính năng đặc biệt so với các họ vi xử lí khác nên nó được sử dụng rộng rãi trong
kỹ thuật
Để hoàn thành được đồ án này ngoài sự tìm tòi của các thành viên trong nhóm còn
có sự hướng dẫn tận tình của thầy giáo: Nguyễn Trung Thành và các bạn đã giúp đỡ
chúng em Chúng em xin chân thành cám ơn thầy cùng các bạn Tuy đã cố gắng rất nhiềunhưng do vốn kiến thức cũng như kinh nghiệm còn hạn chế nên đề tài vẫn còn thiếu sót nhiều Chúng em rất mong sự đóng góp ý kiến của thầy cùng các bạn để đề tài chúng emđược hoàn thiện hơn
Chúng em xin chân thành cảm ơn !
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Hưng Yên, Ngày tháng năm 2011 Giáo viên hướng dẫn
Nguyễn Trung Thành
Trang 5NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Hưng Yên, Ngày tháng năm 2011 Giáo viên phản biện
Trang 6CHƯƠNG I TỔNG QUAN VỀ LÝ THUYẾT
I.GIỚ THIỆU VỀ 89C51
1.1.Giới thiệu chung
IC vi điều khiển 8051(AT89C51) thuộc họ MCS51 có các đặc điểm sau:
4 port I10 8 bit
Hai bộ định thời 16bit
Giao tiếp nối tiếp
1 bộ xử lý luận lý (thao tác trên các bit đơn)
210bit được địa chỉ hoá
bộ nhân / chia 4µs
1.2.Cấu trúc bên trong của AT89C51
Hình 1:Sơ đồ khối (8051)
Trang 7Phần chính của vi điều khiển 8051(89C51) là bộ vi xử lý trung tâm (CPU: Central Processing Unit) bao gồm:
gian và logic động, có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài
Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong Các nguồn ngắt có thể là: Các biến cố ở bên ngoài, sự tràn bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp
Hai bộ định thời 16bit hoạt động như một bộ đếm
Các cổng (port0, port1, port2, port3) sử dụng vào mục đích điều khiển
Ở cổng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ làm việc độc lập với nhau Tốc độ truyền qua cổng nối tiếp có thể đặt trong vảy rộng
và được ấn định bằng một bộ định thời
Trong vi điều khiển 8051(8951) có hai thành phần quan trọng khác đó là bộ nhớ và các thanh ghi:
Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lý Khi CPU làm việc nó làm thay đổi nội dung của các thanh ghi
Trang 81.3.Chức năng các chân vi điều khiển.
Hình 2:Chức năng các chân của vi điều khiển
a Port0: Là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ
nhỏ (không dùng bộ nhớ mở rộng) có hai chức năng như các đường IO Đối với các thiết kế cỡ lớn (với bộ nhớ mở rộng) nó được kết hợp kênh giữa các bus
b Port1: Là một port I/O trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1,
P1.2 có thể dùng cho các thiết bị ngoài nếu cần Port1 không có chức năng khác,
vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài
c Port2: Là một port công dụng kép trên các chân 21-28 được dùng như các
đườ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
d Port3: là một port công dụng kép trên các chân 10-17 Các chân của port này
có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8951 như ở bảng sau:
Trang 9Bit Tên Chức năng chuyển đổi
e PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển PSEN là tín hiệu
ra trên chân 29 Nó là tín hiệu điều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho phép đọc các byte mã lệnh
PSEN sẽ ở mức thấp trong thời gian lấy 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 8951 để 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)
f ALE (Address Latch Enable):
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý
8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các bus địa chỉ và dữ liệu khi port0 đựoc dùng trong chế độ chuyển đổi của nó: vừa là bus dữ liệu vừa là bus thấp của địa chỉ, 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 port0dùng để xuất hoặc nhập dữ liểutong nửa sau chu kỳ của bộ nhớ
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng là nguồn xung nhịp cho các hệ thống Nếu xung trên 8051(8951) là 12
Trang 10ALE sẽ bị mất Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051(8951).
g EA (External Access):
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp(GND) Nếu ở mức cao, 8051(8951) thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ
mở rộng.Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8051(8951) sẽ
bị cấm và chương trình thi hành từ EPROM mở rộng Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8051(8951)
h SRT (Reset):
Ngõ vào RST trên chân 9 là ngõ Reset của 8051(8951) Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8951 đựoc tải nhữnggiá trị thích hợp để khởi động hệ thống
i Các ngõ vào bộ dao động trên chip:
8051(8951) có một bộ dao động trên chip Nó thường được nối với thạch anh giữa hai chân 18 và 19 Các tụ giữa cũng cần thiết Tần số thạch anh thông thường là 12MHz
Trang 11thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng,năm Ngoài ra DS1307 còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghitrống có thể dùng như RAM DS1307 được đọc và ghi thông qua giao diện nốitiếp I2C nên cấu tạo bên ngoài rất đơn giản DS1307 xuất hiện ở 2 gói SOIC vàDIP có 8 chân như trong hình sau.
Hình 3: Hai gói cấu tạo của chip DS1307
Các chân của DS1307 được mô tả như sau:
- X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao
động cho chip
- VBAT: cực dương của một nguồn pin 3V nuôi chip
- GND: chân mass chung cho cả pin 3V và Vcc
- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều
khiển Chú ý: nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì
DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được)
- SQW/OUT: Đây là chân tạo ngõ ra xung vuông của DS1307 có 4 chế độ
1Hz, 4.096HZ, 8.192Hz, 32.768Hz các chế độ này đuợc quy định bởi các bit củathanh ghi Control Register (địa chỉ 0x07)
- SCL và SDA là đường giữ xung nhịp và đường dữ liệu của giao diện I2C
mà chúng ta sẽ tìm hiểu sau
Trang 122.1.2 Cấu tạo bên trong DS1307
Hình 4: Sơ đồ khối bên trong chip 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ạchdao động, mạch điều khiển logic, mạch giao điện I2C, con trỏ địa chỉ và các thanh ghi(hay RAM) Do đa số các thành phần bên trong DS1307 là thành phần “cứng” nên chúng
ta không có quá nhiều việc khi sử dụng DS1307 Sử dụng DS1307 chủ yếu là ghi và đọccác thanh ghi của chip này Vì thế cần hiểu rõ 2 vấn đề cơ bản đó là cấu trúc các thanhghi và cách truy xuất các thanh ghi này thông qua giao diện I2C
Như đã trình bày, bộ nhớ DS1307 có tất cả 64 thanh ghi 8bit được đánh địa chỉ từ
0 đến 63 (từ 0x00h đến 0x3Fh) Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu là dùng chochức năng “đồng hồ”, còn lại 56 thanh ghi bỏ trống có thể được dùng chứa biến tạm như
Trang 13RAM nếu muốn Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ baogồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE),tháng (MONTH) và năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương vớiviệc “cài đặt” thời gian khởi động cho RTC Việc đọc giá từ 7 thanh ghi là quá trình đọcthời gian thực mà RTC tạo ra.
Hình 5:Tổ chức bộ nhớ trong DS1307
Vì 8 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307, chúng ta
sẽ khảo sát các thanh ghi này một cách chi tiết Trước hết hãy quan sát tổ chức theo từng
bit của các thanh ghi này trong hình sau:
Trang 14Chú ý là tất cả các giá trị thời gian lưu trong các thanh ghi theo dạng BCD(Binary-Coded Decimal).
Thanh ghi giây (SECONDS): thanh ghi này là thanh ghi đầu tiên trong bộ nhớ
của DS1307, địa chỉ của nó là 0x00 Bốn bit thấp của thanh ghi này chứa mã BCD 4-bitcủ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 nênchỉ cần 3 là đủ Bit cao nhất (bit thứ 7) trong thanh ghi này là 1 bit điều khiển có tên CH(Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vôhiệu hóa, đồng hồ không hoạt động Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từđầu
Thanh ghi phút (MINUTES): có địa chỉ 0x01h, chứa giá trị phút của đồng hồ.
Tương tự thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCDcủa phút, bit thứ 7 luôn luôn bằng 0
Thanh ghi giờ (HOURS): có thể nói đây là thanh ghi phức tạp nhất trong chip
DS1307 Thanh ghi này có địa chỉ 0x02h Trước hết 4 bit thấp của thanh ghi này đượcdùng cho chữ số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ là:12h và 24h giờ, vì vậy bit thứ 6 được dùng để xác lập hệ thống giờ Nếu bit thứ 6 = 0 thì
hệ thống 24h được chọn, khi đó 2 bit thứ 5 và thứ 4 dùng mã hóa chữ số hàng chục củagiá trị giờ Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 nên cần 2bit để mã hóa Nếu bit thứ 6 = 1 thì hệ thống 12h được chọn Với trường hợp này chỉ có 1bit thứ 4 dùng mã hóa chữ số hàng chục của giờ, bit thứ 5 chỉ buổi trong ngày (AM hoặcPM) Bit thứ 5 = 0 là AM và bit thứ 5 = 1 là PM Bit thứ 7 luôn bằng 0
Thanh ghi thứ (DAY – ngày trong tuần): nằm ở địa chỉ 0x03h Thanh ghi DAY
chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7 trong 1 tuần Vì thế, chỉ có 3bit thấp trong thanh ghi này có nghĩa Các bit còn lại luôn bằng 0
Thanh ghi ngày (DATE – ngày trong tháng): nằm ở địa chỉ 0x04h Thanh ghi
DATE mang giá trị từ 1 đến 31, chỉ có 5 bit đầu tiên là có nghĩa Các bit còn lại luônbằng 0
Thanh ghi tháng (MONTH): nằm ở địa chỉ 0x05h Thanh ghi MONTH mang giá
trị từ 1 đến 12, chỉ có 4 bit đầu tiên là có nghĩa Các bit còn lại bằng 0
Trang 15Thanh ghi năm (YEAR): nằm ở địa chỉ 0x06h Thanh ghi YEAR mang giá trị từ 0
của năm do người dùng tự thêm vào
Thanh ghi điều khiển (CONTROL REGISTER): có địa chỉ là 0x07h, thanh ghi
CONTROL REGISTER được dùng để điều khiển tần số xung vuông ở ngỏ raSQW/OUT Giá trị các bít trong thanh ghi CONTROL REGISTER được biểu diển nhưsau:
Bit 7_Output Control (OUT): dùng để kiểm soát mức logic tại SQW/OUT.
Bit 4_Square-Wave Enable (SQWE): bit này được set lên bằng 1 để tạo dao động ở
đầu ra
Bits 1 and 0_ Rate Select (RS[1:0]): 2 bit này dùng điều khiển tần số dao động ở
ngỏ ra SQW/OUT, với 4 tần số được chọn như sau:
2.2 Khái quát giao diện I2C
I2C là viết tắc của từ Inter - Integrated Circuit là một chuẩn truyền thông nốitiếp đồng bộ do hãng điện tử Philips Semiconductor sáng lập và xây dựng thành chuẩnnăm 1990
thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL
Trang 16 Slave (chip tớ): là chip có một địa chỉ cố định, được gọi bởi Master và phục vụyêu cầu từ Master.
SDA (Serial Data): là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữliệu đều được truyền trên đường này theo thứ tự từng bit một Chú ý là trongchuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền đi trước nhất
nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứmỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấymẫu (sample) Dữ liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ởmức cao trong một chu kỳ giữ nhịp, vì thế đường SDA không được đổi trạng tháikhi SCL ở mức cao (trừ điều kiện START và STOP) Chân SDA có thể được đổitrạng thái khi SCL ở mức thấp
là đường truyền dữ liệu theo 2 hướng (từ master đến slave và ngược lại), còn SCL làđường truyền xung đồng hồ chỉ truyền theo một hướng (từ master đến slave)
Trong một giao diện I2C thì có một thiết bị là chủ (master) và một thiết bị là tớ
(slave) Tại sao lại có sự phân biệt này? Đó là vì trên một giao diện I2C thì quyền điềukhiển thuộc về thiết bị chủ Thiết bị chủ nắm vai trò tạo xung đồng bộ cho toàn hệthống, khi giữa 2 thiết bị chủ/tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo ra xung đồng
bộ và quản lý đến thiết bị tớ trong suốt quá trình giao tiếp Thiết bị chủ giữ vai trò chủđộng, còn thiết bị tớ giữ vai trò bị động trong quá trình giao tiếp
- Một chủ một tớ (one master – one slave)
- Một chủ nhiều tớ (one master – multi slave)
Trang 17- Nhiều chủ nhiều tớ (Multi master – multi slave)
Vài điều kiện cần biết khi thiết lập một giao tiếp I2C:
- Điều kiện START (gọi tắt là S): Điều kiện START được thiết lập khi có một
sự chuyển đổi trạng thái từ cao xuống thấp tại SDA, khi SCL đang ở mức cao (mứccao là 1, mức thấp là 0)
- Điều kiện STOP (gọi tắt là P): Điều kiện STOP được thiết lập khi có một sựchuyển đổi trạng thái từ thấp lên cao tại SDA, khi SCL đang ở mức cao
- Điều kiện REPEAT START (bắt đầu lặp lại): Khoảng giữa điều kiện START
và STOP là khoảng bận của đường truyền, các master khác không tác động được vàođường truyền trong khoảng này Trường hợp sau khi kết thúc quá trình truyền/nhận
mà master không gởi điều kiện STOP lại gởi thêm 1 điều kiện START gọi làREPEAT START Khả năng này thường được dùng khi master muốn lấy dữ liệuliên tiếp từ các Slaves
- Bit ACK: Dùng để báo hiệu dữ liệu đã được nhận, bit ACK được tạo ra tại thời điểm xung clock thứ 9 bằng cách kéo chân SDA xuống mức thấp
- Bit NACK: Dùng để báo hiệu dữ liệu đã bị lỗi hoặc byte truyền cuối cùng, bitNACK cũng được tạo ra tại thời điểm xung clock thứ 9 bằng cách kéo chân SDA lênmức cao
Hình 6: Mô tả điều kiện START, STOP và REPEAT START
Trang 18Hình 7:Bit ACK/NACK trong giao diện I2C
Dữ liệu được truyền trên bus I2C theo từng bit, bit dữ liệu được truyền đi tại mỗi
sườn lên của xung đồng hồ trên đường dây SCL, quá trình thay đổi bit dữ liệu xảy
ra khi SCL đang ở mức thấp
Mỗi byte dữ liệu được truyền có độ dài là 8 bit Số byte có thể truyền trong mộtlần là không hạn chế Mỗi byte được truyền đi theo sau là một bit ACK, bit cótrong số lớn nhất (MSB) sẽ được truyền đi đầu tiên, các bit kế tiếp sẽ được truyền
đi lần lượt Sau 8 xung clock thì dữ liệu đã được truyền đi, ở xung clock thứ 9 thìbit ACK được truyền đi báo hiệu đã nhận đủ 8 bits Thiết bị truyền sau khi nhậnđược bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc
Trang 19Hình 8: Dữ liệu được truyền trên giao diện I2C
Một byte truyền đi có kèm theo bit ACK là điều kiện bắt buộc, nhằm đảm bảo choquá trình truyền nhận được chính xác Khi không nhận được đúng địa chỉ hay muốn kếtthúc quá trình giao tiếp, thiết bị nhận sẽ gởi một xung Not_ACK (NACK) để báo chothiết bị chủ biết Thiết bị chủ sẽ tạo ra xung STOP để kết thúc hay lặp lại một xungSTART để bắt đấu quá trình mới
2.3 Mode (chế độ) truyền dữ liệu giữa DS1307 và AT8951
Trong giao tiếp I2C giữa DS1307 và 8951 thì chip 8951 đóng vai trò là một master
và DS1307 đóng vai trò là một slave Do chỉ có một master và một chip giao tiếp với nhau nên chỉ có 2 mode (chế độ) hoạt động giao tiếp giữa 2 chip này Hai mode đó là:Data Write (từ AT8951 đến DS14307) và Data Read (từ DS1307 vào AT8951)
2.3.1 Mode Data Write (chế độ ghi dữ liệu)
Mode Data Write (chế độ truyền dữ liệu từ master đến slave) được dùng khi xáclập giá trị ban đầu cho các thanh ghi thời gian hoặc dùng để canh chỉnh thời gian cho chipDS1307.Cấu trúc truyền dữ liệu trong mode Data Write được mô tả như hình sau:
Hình 9: Chế độ data write
Trước hết hãy nói về địa chỉ SLA (Slave Address) của chip DS1307 trongmạng I2C, trên mạng I2C mỗi thiết bị sẽ có một địa chỉ riêng gọi là SLA SLA được tínhtheo lý thuyết chuẩn I2C sẽ có giá trị tối đa là 128 (do có 128 thiết bị trong 1 mạng I2C)
Trang 201101000b (68h).Do SLA của DS1307 cố định nên trong 1 mạng I2C sẽ không thể tồn tạicùng lúc 2 chip này.
Quan sát hình trên ta thấy, đầu tiên master (AT8951) sẽ gởi điều kiệnSTART đến Slave (DS1307), tiếp theo sau master sẽ là 7 bit địa chỉ SLA của slave (cốđịnh là: 1101000b) Do chế độ này là Data Write nên bit W = 0 và sẽ được gởi kèm sauSLA.Bit ACK (A) được slave trả về cho master sau mỗi quá trình giao tiếp
Tiếp theo sau địa chỉ SLA sẽ là 1 byte chứa địa chỉ của thanh ghi cần truycập (Word Address) Cần phân biệt địa chỉ của thanh ghi cần truy cập và địa chỉ SLA.Như đã đề cập trên, địa chỉ của thanh ghi cần truy cập sẽ được lưu trong thanh ghi địa chỉ(hay con trỏ địa chỉ), vì vậy byte dữ liệu đầu tiên sẽ được chứa trong thanh ghi địa chỉ củaDS1307
Sau byte địa chỉ thanh ghi là một dãy các byte dữ liệu được ghi vào bộ nhớcủa DS1307 Byte dữ liệu đầu tiên sẽ được ghi vào thanh ghi có địa chỉ được chỉ định bởiWord Address, sau khi ghi xong 1 byte thì Word Address tự động tăng nên các byte tiếptheo sẽ được ghi liên tiếp vào DS1307 ở các thanh ghi kế sau Số lượng bytes dữ liệu cần
trình ghi kết thúc khi master phát ra điều kiện STOP
Chú ý: Sau khi ghi thành công 1 byte thì DS1307 sẽ trả lời lại bằng một bit ACK.
Nếu như byte được ghi vào là byte cuối cùng thì DS1307 sẽ trả lời lại bằng 1 bitNot_ACK (NACK)
Nếu sau khi gởi byte Word Address, master không gởi các byte dữ liệu mà gởiliền điều kiện STOP thì không có thanh ghi nào được ghi Trường hợp này được dùng đểset địa chỉ Word Address để phục vụ cho quá trình đọc
2.3.2 Mode Data Read (chế độ dọc dữ liệu)
Mode Data Read (chế độ truyền dữ liệu từ salve về master) được sử dụng khi đọcthời gian thực từ DS1307 về AT8951.Cấu trúc truyền dữ liệu trong mode Data Writeđược mô tả như hình sau:
Trang 21Hình 10: Chế độ Data Read
Nguyên tắt truyền trong chế độ Data Read cơ bản cũng giống như trong truyền chế
độ Data Write Trong chế độ Data Read bit R = 1 sẽ được gởi kèm sau 7 bit SLA Sau đóliên tiếp các byte dữ liệu được truyền từ DS1307 đến AT8951 Điểm khác biệt trong cách
bố trí dữ liệu của chế độ này so với chế độ Data Write là không có byte địa chỉ thanh ghi
dữ liệu nào được gởi đến Tất cả các byte theo sau SLA+R đều là dữ liệu đọc từ bộ nhớcủa DS1307
Lưu ý: dữ liệu được đọc tại thanh ghi được chỉ định bởi con trỏ địa chỉ, vì vậy
muốn đọc chính xác dữ liệu từ một địa chỉ nào đó, chúng ta cần thực hiện quá trình ghigiá trị cho con trỏ định địa chỉ trước khi thực hiên quá trình đọc Để ghi giá trị vào contrỏ định địa chỉ chúng ta sẽ gọi chương trình Data Write với chỉ 1 byte được ghi sauSLA+W như phần chú ý ở trên
III GIỚI THIỆU VỀ IC ADC 0804(IC CHUYỂN ĐỔI TƯƠNG TỰ - SỐ)
3.1.Giới thiệu chung
-Chip ADC0804 là bộ 1.Giới thiệu chung chuyển đổi tương tự số thuộc họ ADC800 của hãng Natinal Semiconductor Chíp này cũng được nhiều hãng khác sản xuất.Chíp có điện áo nuôi -5V và độ phân giải 8 bit Ngoài độ phân giải thì thời gain 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 đượ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 gín 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
Trang 223.2.Chức năng các chân
Hình 11: Sơ đồ chân của ADC
sử dụng để kích hoạt Chip ADC0804 Để truy cập ADC0804 thì chân này phải ởmức thấp
đầu vào tương tự thành số nhị phân và giữu nó ở một thanh ghi trong RD được sửdụng để có dữ liệu đã được chuyển đổi tới đầu ra của ADC0804
Khi CS = 0 nếu có 1 xung cao xuống thấp áp đén chân RD thì dữ liệu ra dạng số 8bít đượ đưa đến các chân dữ liệu (DB0- DB7)
ADC để bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WD tạo ra xung cao xuốngthấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin về
số nhị phân 8 bit Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạxuống thấp
sử dụng để tạo thòi gian Tuy nhiên ADC0804 cũng có 1 bộ 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ớivới 1 tụ điện và 1 điện trở Khi đó tần số được xác định như sau:
Trang 23f 1,1RC1
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à 110s
Đây là chân đầu ra tích cực mức thấp Bình thường nó ở trạng thái cao vàkhi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệuđược chuyển đổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, ta đặt CS = 0 vàgửi một xung cao 0 xuống - thấp tới chân RDlấy dữ liệu ra của 804
Chân V in (+) và V in (-).
Đâ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ư đầu vào tương tự đượcchuyển đổi về dạng số
Bảng 3.6.1: Điện áp Vref/2 liên hệ với dải Vin
- Khi Vref/2 hở thì đo được ở đó khoảng 2,5V
- Kích thước bước (độ phân dải) là sự thay đổi nhỏ nhất mà ADC có thểphân biệt được
Các chân dữ liệu D0 - D7 (D7 là bít cao nhất MSB và D0 là bít thấp nhất
Trang 24dữ liệu được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RDbị đưaxuống thấp Để tính điện áp đầu ra ta có thể sử dụng công thức sau:
D kichthuocVin buoc
out
Với Dout là đầu ra dữ liệu số (dạng thập phân) Vin là điện áp đầu vào tương tự và
độ phân dải là sự thay đổi nhỏ nhất được tính như là (2 Vref/2) chia cho 256 đốivới ADC 8 bít
IV.GIỚI THIỆU VỀ IC CẢM BIẾN NHIỆT ĐỘ LM35
Để đo nhiệt độ được chính xác cần phải có một đầu dò thích hợp Đầu dò là một cảmbiến nhiệt độ có nhiệm vụ vận chuyển từ nhiệt độ qua tín hiệu điện Có rất nhiều loại cảmbiến như đã giới thiệu ở chương II Nhưng dựa vào lý thuyết và thực tế của mạch cầnthiết kế ta dùng phương pháp đo bằng IC cảm biến nhiệt độ Các IC cảm biến nhiệt độ có
độ chính xác cao, dễ tìm và giá thành rẻ Một trong số đó là IC LM35, là loại thông dụngtrên thị trường hiện nay, đồng thời nó có những đặc tính làm việc phù hợp với thiết kế chitiết của mạch
4.1 Một số tính chất cơ bản của LM35
Hình 12: Sơ đồ kết nối ADC với LM35
- LM35 có độ biến thiên theo nhiệt độ: 10mV/1ºC
Trang 25- Độ chính xác cao, tính năng cảm biến nhiệt độ rất nhạy, ở nhiệt độ 25ºC nó có sai sốkhông quá 1% Với tầm đo từ 0ºC - 128ºC, tín hiệu ngõ ra tuyến tính liên tục vớinhững thay đổi của tín hiệu ngõ vào.
- Thông số kỹ thuật:
Tiêu tán công suất thấp
Dòng làm việc từ 400μA – 5mA.A – 5mA
Tầm biến thiên điện áp tương ứng với nhiệt độ từ 0ºC - 100ºC là 1V
4.2 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áng nhưng đáp ứng của nó không tuyến tính
Bảng 3.6.2: Trở kháng của bộ cảm biến nhiệt theo nhiệt độ.
Trang 2650 3.893
Bảng 3.6.3: Hướng dẫn chọn loạt các cảm biến nhiệt họ LM35
o CP: ngõ vào xung clock tác động ở mức cao
2 Tổ chức bên trong IC74LS374
Sơ đồ cấu tạo của 74LS374
74HC
Trang 27Bảng trạng thái của 74LS374
Ngõ vào cho phép ( OE )
Ngõ vào xung Clock (CP)
Data inputs D0 –D7
Data outputs Q0 – Q7