1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án Thiết kế, chế tạo đồng hồ số vạn niên

102 1,6K 15

Đ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 102
Dung lượng 2,24 MB

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

Nội dung

LỜI CẢM ƠN Đầu tiên em xin gửi lời cảm ơn đến Ban Giám Hiệu trường Đại Học Sư Phạm Kỹ Thuật Hưng Yên đã cho em một môi trường học tập tốt, cũng như tạo điều kiện thuận lợi để chúng em có thể phát huy được khả năng của mình. Qua thời gian nghiên cứu và thực hiện, đến nay đồ án tốt nghiệp với đề tài: “Thiết kế, chế tạo đồng hồ số vạn niên ” do giảng viên Nguyễn Thị Nhung hướng dẫn đã được hoàn thiện. Trong suốt thời gian nghiên cứu, chúng em đã gặp không ít khó khăn và đã nhận được nhiều sự giúp đỡ nhiệt thành và quý báu của cô, chúng em bày tỏ lòng biết ơn sâu sắc tới Giảng Viên Nguyễn Thị Nhung đã tin tưởng giao đồ án, chỉ đạo và tận tình hướng dẫn chúng em trong suốt quá trình thực hiện đồ án tốt nghiệp này. Chúng em xin được bày tỏ lòng cảm ơn chân thành tới các quý ThầyCô giáo trong khoa Điện Điện tử trường Đại Học Sư Phạm Kỹ Thuật Hưng Yên đã tận tình chỉ dạy và truyền đạt những kiến thức quý báu để chúng em có thể hoàn thành đồ án này, đồng thời đó cũng là một hành trang đáng quý đề chúng em có thể tiếp bước trên con đường sự Để hoàn thành đồ án tốt nghiệp này cũng có sự đóng góp không nhỏ của các bạn sinh viên lớp ĐTK7, chúng tôi xin cảm ơn các bạn rất nhiều.

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Giáo viên hướng dẫn

Nguyễn Thị Nhung

Trang 2

NHẬN XÉT, ĐÁNH GIÁ CỦA GIÁO VIÊN PHẢN BIỆN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Chữ ký của giáo viên phản biện Hưng yên, ngày … .tháng…… năm 201

Trang 3

LỜI CẢM ƠN

Đầu tiên em xin gửi lời cảm ơn đến Ban Giám Hiệu trường Đại Học Sư Phạm KỹThuật Hưng Yên đã cho em một môi trường học tập tốt, cũng như tạo điều kiện thuậnlợi để chúng em có thể phát huy được khả năng của mình

Qua thời gian nghiên cứu và thực hiện, đến nay đồ án tốt nghiệp với đề tài:

“Thiết kế, chế tạo đồng hồ số vạn niên ” do giảng viên Nguyễn Thị Nhung hướngdẫn đã được hoàn thiện Trong suốt thời gian nghiên cứu, chúng em đã gặp không ítkhó khăn và đã nhận được nhiều sự giúp đỡ nhiệt thành và quý báu của cô, chúng embày tỏ lòng biết ơn sâu sắc tới Giảng Viên Nguyễn Thị Nhung đã tin tưởng giao đồ

án, chỉ đạo và tận tình hướng dẫn chúng em trong suốt quá trình thực hiện đồ án tốtnghiệp này

Chúng em xin được bày tỏ lòng cảm ơn chân thành tới các quý Thầy/Cô giáotrong khoa Điện - Điện tử trường Đại Học Sư Phạm Kỹ Thuật Hưng Yên đã tận tìnhchỉ dạy và truyền đạt những kiến thức quý báu để chúng em có thể hoàn thành đồ ánnày, đồng thời đó cũng là một hành trang đáng quý đề chúng em có thể tiếp bước trêncon đường sự nghiệp sau này

Để hoàn thành đồ án tốt nghiệp này cũng có sự đóng góp không nhỏ của các bạnsinh viên lớp ĐTK7, chúng tôi xin cảm ơn các bạn rất nhiều

Chúng em xin chân hành cảm ơn!

Trang 4

LỜI NÓI ĐẦU

Trong thời đại hiện nay, với tốc độ phát triển nhanh chóng của các ngành côngnghiệp hiện đại như : cơ khí, động lực….Thì ngành điện - điện tử cũng đóng một vaitrò rất quan trọng Ngành điện tử đã xâm nhập vào cuộc sống con người khá sớm, từnhững thiết bị đơn giản như: đèn chiếu sáng, radio,… Đến những máy móc phức tạp

và ứng dụng công nghệ cao như: hệ thống rada, hệ thống camera, robot,… Tất cảđều được ứng dụng rộng rãi và góp phần hiệu quả giải phóng sức lao động chân taycủa con người, đưa con người hướng tới một thế giới công nghệ ngày càng hiện đại

và tinh vi hơn

Ngành điện tử đã ảnh hưởng không nhỏ đến cuộc sống của con người Vì thếcon người không ngừng nổ lực, phát huy, nghiên cứu cho ra đời những thiết bị khôngnhững phục vụ cho cuộc sống hằng ngày mà còn hỗ trợ cho nhiều lĩnh vực khác Đặcbiệt hiện nay trong lĩnh vực vi xử lý, những ứng dụng của nó đã mang lại hiệu quảrất thiết thực trong cuộc sống như : quang báo điện tử, lịch vạn niên, điều khiển tốc

độ động cơ, hệ thống đếm sản phẩm….Là sinh viên chuyên nghành điện tử côngnghiệp, để vận dụng những kiến thức chuyên ngành đã học tăng cường vốn hiểu biếtcủa bản thân về lĩnh vực mình quan tâm chúng em đã quyết định chọn đề tài “Thiết

kế, chế tạo đồng hồ số vạn niên” để làm đồ án tốt nghiệp của mình Để qua đó thểhiện được một phần mô hình ứng dụng kiến thức đã học vào phục vụ cuộc sống, giađình, xã hội…

Bằng những kiến thức đã đạt được trong quá trình học tập tại nhà trường vànhững tìm hiểu nghiên cứu bên ngoài cùng với sự nỗ lực của bản thân, mỗi sinh viêntrong nhóm của chúng em đã cố gắng hết sức mình để hoàn thành những ý tưởngthiết kế cũng như yêu cầu đặt ra của đề tài tốt nghiệp So với thời gian học tập tạitrường thì đó là thành quả của quá trình học tập cùng với những thành công ban đầutrước khi tốt nghiệp ra trường Nhóm chúng em đã cố gắng nỗ lực hết mình trongsuốt thời gian thực hiện đề tài này nhưng với lượng kiến thức và thời gian cho phépnên đồ án còn nhiều thiếu sót Nhóm chúng em mong nhận được nhiều sự đóng góp ýkiến của quý thầy cô và các bạn về đề tài này cũng như hướng mở rộng, phát triển để

đề tài hoàn thiện hơn

Trang 5

MỤC LỤC

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1

NHẬN XÉT, ĐÁNH GIÁ CỦA GIÁO VIÊN PHẢN BIỆN 2

LỜI CẢM ƠN 3

LỜI NÓI ĐẦU 4

DANH MỤC HÌNH VẼ 6

DANH MỤC BẢNG BIỂU 8

DANH MỤC TỪ VIẾT TẮT 9

CHƯƠNG I : CƠ SỞ LÝ THUYẾT 10

1 1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52 10

1.1.1 Tổng quan về 89S52 10

1.1.2 Mô tả chân 89S52 12

1.1.3 Tổ chức bộ nhớ bên trong 89S52 14

1.2 TỔNG QUAN VỀ IC DS1307( IC ĐỊNH THỜI GIAN THỰC) 20

1.2.1 Sơ đồ chân DS1307 20

1.2.2 Cấu tạo bên trong DS1307 21

1.2.3 Khái quát giao diện I2C 24

1.2.4 Chế độ truyền dữ liệu giữa DS1307 và AT89S52 28

1.3 GIỚI THIỆU IC 74HC154 30

1.3.1 Giới thiệu về IC 74HC154 30

1.3.2 Nguyên tắc hoạt động của IC 74HC154 31

1.4 IC CẢM BIẾN NHIỆT DS18B20 32

1.4.1 Khái quát về IC DS18B20 32

1.4.2 Thanh ghi dữ liệu 33

1.4.3 Trao đổi dữ liệu giữa vi điều khiển và DS1820 34

1.4.4 Cách đọc giá trị nhiệt độ 35

1.5 IC ĐỆM ĐẢO ULN 2803 36

Trang 6

1.5.2 Thông số kỹ thuật của ULN 2803 37

1.6 Tổng quan về led 7thanh 37

1.6.1 Giới thiệu led 7thanh 37

1.6.2 Các phương pháp điều khiển 39

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 44

2.1 Sơ đồ khối toàn hệ thống 44

2.2 Nguyên lý hoạt động của từng khối 44

2.2.1.Khối nguồn 45

2.2.2.Khối phím bấm 45

2.2.3.Khối điều khiển 46

2.2.4.Khối hiển thị 47

2.2.5.Khối nhiệt độ 48

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 49

3.1 Sơ đồ thuật toán cho chương trình 49

3.2 Sơ đồ mạch board 55

KẾT LUẬN 58

Tài liệu tham khảo 60

PHỤ LỤC 61

1 Phần mềm đồng hồ thời gian thực 61

2 Phần mềm đo nhiệt độ 100

Trang 7

DANH MỤC HÌNH VẼ

Hình 1.1: Sơ đồ khối AT89S52 11

Hình 1.2: Sơ đồ chân 89S52 12

Hình 1.3: Hình dạng cấu tạo của chip DS1307 21

Hình 1.4: Sơ đồ khối bên trong của DS1307 22

Hình 1.5: Tổ chức bộ nhớ trong của DS1307 23

Hình 1.6: Đường truyền dữ liệu của I2C 26

Hình 1.7: Mô tả điều kiện Start, Stop và Repeat 27

Hình 1.8: Bit ACK/NACK trong giao diện I2C 27

Hình 1.9 : Giữ liệu được truyền trên giao diện I2C 28

Hình 1.10 : Chế độ ghi dữ liệu 29

Hình 1.11: Chế độ đọc dữ liệu 30

Hình 1.12: Sơ đồ chân IC 74HC154 .31

Hình 1.13: Sơ đồ bên trong 74HC154 31

Hình 1.14: Hình dạng bên ngoài của DS 18B20 33

Hình 1.15: Tổ chức bộ nhớ của DS18B20 34

Hình 1.16: Sơ đồ chân của ULN 2803 37

Hình 1.17: Sơ đồ cấu tạo 1 kênh đệm dòng của ULN 2803 38

Hình 1.18: Cấu tạo và hình dạng led 7 thanh 39

Hình 1.19: Điều khiển led bằng phương pháp trực tiếp qua vi điều khiển 40

Hình 1.20: Điều khiển led bằng phương pháp trực tiếp qua IC giải mã 41

Hình 1.21: Phương pháp quét Led 41

Hình 1.22: Phương pháp chốt 44

Hình 3.1: Lưu đồ thuật toán cho thời gian 50

Hình 3.2: Lưu đồ thuật toán cho nhiệt độ 50

Hình 3.3: Lưu đồ thuật toán ghi 1 byte vào DS1307“SEND_BYTE” 51

Hình 3.4: Lưu đồ thuật toán đọc 1 byte từ DS1307“READ_BYTE” 52

Hình 3.5: Lưu đồ thuật toán “READ_CLOCK” 53

Hình 3.6: Lưu đồ thuật toán “WRITE_CLOCK” 54

Hình 3.7: Lưu đồ thuật toán hiển thị led 55

Hình 3.8: Sơ đồ board mạch điều khiển 56

Hình 3.9: Sơ đồ board mạch nhiệt độ 57

Hình 3.10: Sơ đồ board mạch hiển thị 58

Hình 3.11: Sơ đồ board mạch bàn phím 58

Trang 8

DANH MỤC BẢNG BIỂU

Bảng 1.1: Các chức năng chuyển đổi của cổng P3 13

Bảng 1.2: Tổ chức bộ nhớ bên trong của 89S52 15

Bảng 1.3: Thanh ghi trạng thái chương trình 16

Bảng 1.4: Bảng Bank thanh ghi 17

Bảng 1.5: Bảng thanh ghi IP 19

Bảng 1.6: Bảng thanh ghi IE 19

Bảng 1.7: Các cờ ngắt 20

Bảng 1.8: Các vectơ ngắt 20

Bảng 1.9 : Tổ chức theo từng bit của bộ nhớ 23

Bảng 1.10: Bảng tần số dao động của ngõ ra SQW/OUT 25

Bảng 1.11: Bảng chức năng của IC 74HC154 32

Bảng 1.12: Bảng đọc giá trị nhiệt độ 37

Trang 9

DANH MỤC TỪ VIẾT TẮT

IC : Integrated Circuit

RAM : Random Access Memory

ROM : Read Only Memory

EPROM : Erasable Programmable read Only Memory

PSEN : Program Store Enable

ALE : Address Latch Enable

EA : External Access

RST : Reset

I/O port : Input/Output port

SFR : Secial Function Regiter

PSW : Proram Status Word

BCD : Binary Code Decimal

I2C : Inter – Integrated Cỉcuit

SDA : Serial Data

SCL : Serial Clock

SLA : Slave Address

Trang 10

CHƯƠNG I : CƠ SỞ LÝ THUYẾT

1 1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52

mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt chophép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển AT89S52 cung cấpnhững đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập trình nhanh(EPROM), 128 byte RAM, 32 đường I/O, 3 TIMER/COUNTER 16 Bit, 5 vectơ ngắt

có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xungClock và bộ dao động ON-CHIP Các đặc điểm của chip AT89S52 được tóm tắt nhưsau:

• 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá

• Tần số hoạt động từ: 0Hz đến 24 MHz

• 3 mức khóa bộ nhớ lập trình

• 3 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

• 4µs cho hoạt động nhân hoặc chia

Trang 11

Sơ đồ khối của AT89S52

Hình 1.1: Sơ đồ khối AT89S52

Trang 12

1.1.2 Mô tả chân 89S52

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

Chức năng của các chân 89S52 :

Port 0 : từ chân 39 đến chân 32 (P0.0 - P0.7) Port có 2 chức năng : Trong cácthiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đốivới thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và dữ liệu

Port 1 : từ chân 1 đến chân 8 (P1.0 - P1.7) Port 1 là port IO dùng cho giao tiếpvới thiết bị bên ngoài nếu cần, các chức năng khác : T2, T2EX, MOSI, MISO, SCK.Trong đó:

T2 và T2EX dùng cho Timer/Counter

Bit MOSI, MISO, SCK dùng để truyền dữ liệu theo chuẩn SPI đồng thời cóchức năng kết nối với mạch nạp chương trình

Port 2 : từ chân 21 đến chân 28 (P2.0-P2.7) Port 2 là một port có tác dụng képdù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 bịdùng bộ nhớ mở rộng

Port3 : Từ chân 10 đến chân 17 (P3.0-P3.7).Port 3 là port có tác dụng kép Cácchân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến cácđặc tính đặc biệt của 89S52 như ở bảng sau:

Trang 13

Bit Tên Chức năng chuyển đổiP3.0

P3.1P3.2P3.3P3.4P3.5P3.6P3.7

RXDTXDINT0INT1T0T1WRRD

Ngõ vào dữ liệu nối tiếpNgõ xuất dữ liệu nối tiếpNgõ vào ngắt cứng thứ 0Ngõ vào ngắt cứng thứ 1Ngõ vào TIMER/COUNTER THỨ 0Ngõ vào TIMER/COUNTER THỨ 1Tín hiệu ghi dữ liệu nên bộ nhớ ngoàiTín hiệu đọc bộ nhớ dữ liệu ngoài

Bảng 1.1: Các chức năng chuyển đổi của cổng P3

PSEN (Program store enable):

PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng

và thường được nối đến chân OE của EPROM cho phép đọc các byte mã lệnh PSEN

ở mức thấp trong thời gian 89S52 lấy lệnh Các mã lệnh của chương trình đọc từEPROM qua bus giữ liệu, được chốt vào thanh ghi lệnh bên trong 89S52 để giải mãlệnh Khi 89S52 thi hành chương trình trong ROM nội PSEN ở mức cao

ALE (Address Latch Enable):

Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữliệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nốichúng với IC chốt

Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò làđịa chỉ thấp nên chốt địa chỉ hoàn toàn tự động

EA (External Access):

Tín hiệu vào EA (chân 31) Nếu ở mức 1, 89S52 thi hành chương trình từ ROMnội Nếu ở mức 0, 89S52 thi hành chương trình từ bộ nhớ mở rộng Chân EA đượclấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52

RST (Reset):

Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghibên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điệnmạch phải tự động Reset

Trang 14

Bộ tạo dao động được tích hợp bên trong 89S52.Khi sử dụng 89S52, người ta chỉcần nối thêm thạch anh và các tụ Tần số thạch anh tùy thuộc vào mục đích của người

sử dụng giá trị tụ thường được chọn là 33p

1.1.3 Tổ chức bộ nhớ bên trong 89S52

Bộ nhớ trong 89S52 bao gồm ROM và RAM RAM trong 89S52 bao gồm nhiềuthành phần: Phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanhghi và các thanh ghi chức năng đặc biệt AT89S52 có bộ nhớ được tổ chức theo cấutrúc Harvard: Có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Chươngtrình và dữ liệu có thể chứa bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài

Bảng 1.2: Tổ chức bộ nhớ bên trong của 89S52

Trang 15

RAM bên trong AT89S52 được phân chia như sau:

● Các bank thanh ghi có địa chỉ từ 00H đến 1FH

● RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH

b RAM có thể định địa chỉ bit

Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đadụng (truy xuất mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử

lý bit

c Các bank thanh ghi

Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h –07h,bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh Các bank thanhghi này được đại diện bằng các thanh ghi từ R0 đến R7 Sau khi khởi động thì hệthống bank 0 được chọn sử dụng Do có 4 bank thanh ghi nên tại một thời điểm chỉ

có một bank thanh ghi được truy xuất bởi các thanh ghi R0 đến R7 Việc thay đổibank thanh ghi được thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW)

d Các thanh ghi có chức năng đặc biệt

Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip vìvậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình vàthanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0 đếnR7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function Register) ởvùng trên của RAM nội từ địa chỉ 80H đến 0FFH

Sau đây là một vài thanh ghi đặc biệt thường được sử dụng :

٭٭ Thanh ghi trạng thái chương trình (PSW: Program Status Word)

Trang 16

Bảng 1.3: Thanh ghi trạng thái chương trình

Chức năng từng bit trạng thái chương trình

- Cờ Carry CY (Carry Flag):

Cờ nhớ thường được dùng cho các lệnh toán học: C = 1 nếu phép toán cộng có sựtràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn vàphép trừ không có mượn

- Cờ Carry phụ AC (Auxiliary Carry Flag):

Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được set nếukết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH – 0FH Ngược lại AC = 0

- Cờ 0 (Flag 0):

Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng

- Những bit chọn bank thanh ghi truy xuất:

RS1 và RS0 quyết định dãy thanh ghi tích cực Chúng được xóa sau khi reset hệthống và được thay đổi bởi phần mềm khi cần thiết

Tùy theo RS1,RS0 sẽ được chọn Bank tích cực tương ứng

Bảng 1.4: Bảng Bank thanh ghi

Trang 17

- Cờ tràn OV (Over Flag):

Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học

- Bit Parity (P):

Bit tự động được set hay clear ở mỗi chu kỳ máy để lập Parity chẵn với thanh ghi

A Sự đếm các bit trong một thanh ghi A cộng với bit Parity luôn chẵn Ví dụ A chứa10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo thành số chẵn BitParity thường được dùng trong sự kết hợp với những thủ tục của Port nối tiếp để tạo

ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu

● Thanh ghi TIMER

Vi điều khiển 89S52 có 3 timer 16 bit, mỗi timer có 4 cách làm việc Người ta sửdụng các timer để:

- Định khoảng thời gian

- Đếm sự kiện

- Tạo tốc độ baud cho port nối tiếp trong 89S52

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở nhữngkhoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình đểthực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện racác ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer

để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung)

● Thanh ghi ngắt (INTERRUPT)

Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thờichương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điềukhiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết

sự kiện đó trong khi một chương trình khác đang thực thi

- Tổ chức ngắt của 89S52:

Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 3 ngắt từ timer và 1 ngắt port nối tiếp.Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phéptừng cái một bằng phần mềm Mức độ ưu tiên của các ngắt được lưu trong thanh ghi

IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép chọn mức ưu tiên chocác ngắt (giá trị thanh ghi IP khi reset là 00h)

Trang 18

Bit Kí

hiệu

Địa chỉbit

Mô tả

IP.5 ET20 BDH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 2

IP.4 ES BCH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại cổng nối tiếpIP.3 ET1 BBH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 1

IP.2 EX1 BAH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại ngắt ngoài 1IP.1 ET0 B9H Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 0

IP.0 EX0 B8H Chọn mức ưu tiên cao (=1) hay thấp (=0) tại ngắt ngoài 0

Bảng 1.5: Bảng thanh ghi IP

- Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có mức ưu tiên cao hơn sẽ được phục vụtrước

- Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên được thực hiện

từ cao đến thấp như sau : ngắt ngoài 0 – timer 0 – ngắt ngoài 1 –timer 1 – cổng nốitiếp – timer 2

- Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà có một ngắt xảy

ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy một chương trìnhkhác có mức ưu tiên cao hơn

- Cho phép và cấm ngắt:

Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặc biệt

có định địa chỉ bit IE ( Interrupt Enable : cho phép ngắt ) ở địa chỉ

IE.5 ET2 ADH Cho phép ngắt từ timer 2

IE.4 ES ACH Cho phép ngắt port nối tiếp

IE.3 ET1 ABH Cho phép ngắt từ timer 1

IE.2 EX1 AAH Cho phép ngắt ngoài 1

IE.1 ET0 A9H Cho phép ngắt từ timer 0

IE.0 EX0 A8H Cho phép ngắt ngoài 0

Bảng 1.6: Bảng thanh ghi IE

- Các cờ ngắt:

Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên mứccao để xác nhận ngắt

Trang 19

Ngắt Cờ Thanh ghi SFR và vị trí bit

Trang 20

1.2 TỔNG QUAN VỀ IC DS1307( IC ĐỊNH THỜI GIAN THỰC)

1.2.1 Sơ đồ chân DS1307

DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệmthời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sửdụng, tính bằng giây, phút, giờ…DS1307 là một sản phẩm của Dallas Semiconductor(một công ty thuộc Maxim Integrated Products) Chip này có 7 thanh ghi 8-bit chứathời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm Ngoài ra DS1307còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng nhưRAM DS1307 được đọc và ghi thông qua giao diện nối tiếp I2C nên cấu tạo bênngoài rất đơn giản DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân như trong hìnhsau

Hình 1.3: Hình dạng 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.768 KHz 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.096 HZ, 8.192 Hz, 32.768 Hz các chế độ này đuợc quy định bởi các bit của thanh 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

Trang 21

1.2.2 Cấu tạo bên trong DS1307

Hình 1.4: Sơ đồ khối bên trong của DS1307Cấ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 thanhghi (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à đọc cá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 thanh ghi và cách truy xuất các thanh ghi này thông qua giao diện I2CNhư đã trình bày, bộ nhớ DS1307 có tất cả 64 thanh ghi 8 bit đượ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 cho chức năng “đồng hồ”, còn lại 56 thanh ghi bỏ trống có thể được dùng chứabiến tạm như RAM nếu muốn Bảy thanh ghi đầu tiên chứa thông tin về thời gian củađồng hồ bao gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY),

Trang 22

tương đương với việc “cài đặt” thời gian khởi động cho RTC Việc đọc giá trị từ 7thanh ghi là quá trình đọc thời gian thực mà RTC tạo ra.

Hình 1.5: Tổ chức bộ nhớ trong của 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ứctheo từng bit của các thanh ghi này trong hình sau:

Bảng 1.9 : Tổ chức theo từng bit của bộ nhớChú ý 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)

Trang 23

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-bit 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 nên chỉ cần 3 là đủ Bit cao nhất (bit thứ 7) trong thanh ghi này là 1 bit điềukhiể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ảireset 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ãBCD củ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 chipDS1307 Thanh ghi này có địa chỉ 0x02h Trước hết 4 bit thấp của thanh ghi nàyđược dùng cho chữ số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiểnthị giờ là: 12h và 24h giờ, vì vậy bit thứ 6 được dùng để xác lập hệ thống giờ Nếubit thứ 6 = 0 thì hệ thống 24h được chọn, khi đó 2 bit thứ 5 và thứ 4 dùng mã hóachữ số hàng chục của giá trị giờ Do giá trị lớn nhất của chữ số hàng chục trongtrường hợp này là 2 nên cần 2 bit để mã hóa Nếu bit thứ 6 = 1 thì hệ thống 12h đượcchọn Với trường hợp này chỉ có 1 bit 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ặc PM) 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 DAYchỉ 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ó 3 bit 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 ghiDATE 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

Thanh ghi năm (YEAR): nằm ở địa chỉ 0x06h Thanh ghi YEAR mang giá trị từ

0 đến 99 Chip DS1307 chỉ dùng cho 100 năm, nên giá trị năm chỉ có 2 chữ số, phầnđầu 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

Trang 24

SQW/OUT Giá trị các bít trong thanh ghi CONTROL REGISTER được biểudiễn như sau:

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

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:

Bảng 1.10: Bảng tần số dao động của ngõ ra SQW/OUT

1.2.3 Khái quát giao diện I2C

 I2C là viết tắt 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ànhchuẩn năm 1990

 Các khái niệm cơ bản trong giao diện I2C:

 Master (chip chủ): là chip khởi động quá trình truyền nhận, phát đi địa chỉ củathiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL

 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àtrong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền đi trước nhất

Trang 25

 SCL (Serial Clock): là đường xung giữ nhịp nối tiếp I2C là chuẩn truyềnthông nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trìnhtruyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đườngSDA sẽ được lấy mẫu (sample) Dữ liệu nối tiếp trên đường SDA được lấymẫu khi đường SCL ở mức cao trong một chu kỳ giữ nhịp, vì thế đường SDAkhông được đổi trạng thái khi SCL ở mức cao (trừ điều kiện START vàSTOP) Chân SDA có thể được đổi trạng thái khi SCL ở mức thấp.

 Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL).SDA là đường truyền dữ liệu theo 2 hướng (từ master đến slave và ngược lại), cònSCL là đường truyền xung đồng hồ chỉ truyền theo một hướng (từ master

đến slave)

Hình 1.6: Đường truyền dữ liệu của I2C

 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ều khiể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 giaotiếp

 Một giao diện I2C có thể hoạt động ở nhiều chế độ khác nhau:

 Một chủ một tớ (one master – one slave)

 Một chủ nhiều tớ (one master – multi slave)

 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:

Trang 26

- Đ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

Hình 1.7: Mô tả điều kiện Start, Stop và Repeat

- Bit ACK: dùng để báo hiệu dữ liệu đã được nhận, bit ACK được tạo ra tạithờ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,bit NACK cũng được tạo ra tại thời điểm xung clock thứ 9 bằng cách kéo chânSDA lên mức cao

Hình 1.8: Bit ACK/NACK trong giao diện I2C

 Định dạng dữ liệu truyền:

Trang 27

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 rakhi 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ó tr ọng

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ầnlượ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 bitACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc

Hình 1.9 : Giữ liệu được truyền trên giao diện I2CMột byte truyền đi có kèm theo bit ACK là điều kiện bắt buộc, nhằm đảm bảocho quá trình truyền nhận được chính xác Khi không nhận được đúng địa chỉ haymuốn kết thúc quá trình giao tiếp, thiết bị nhận sẽ gởi một xung Not_ACK (NACK)

để báo cho thiết bị chủ biết Thiết bị chủ sẽ tạo ra xung STOP để kết thúc hay lặp lạimột xung START để bắt đấu quá trình mới

1.2.4 Chế độ truyền dữ liệu giữa DS1307 và AT89S52

Trong giao tiếp I2C giữa DS1307 và AT8952 thì chip AT8952 đó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 chipgiao 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ừ AT8952 đến DS1307) và Data Read (từ DS1307 vàoAT8952)

Trang 28

a Chế độ ghi dữ liệu

Chế độ ghi dữ liệu được dùng khi xác lập giá trị ban đầu cho các thanh ghi thờigian hoặc dùng để canh chỉnh thời gian cho chip DS1307 Cấu trúc truyền dữ liệutrong chế độ ghi dữ liệu được mô tả như hình sau:

Hình 1.10 : Chế độ ghi dữ liệu

 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 đượctính theo lý thuyết chuẩn I2C sẽ có giá trị tối đa là 128 (do có 128 thiết bị trong 1mạng I2C) Chip DS1307 là một Slave nên cũng có một địa chỉ SLA, giá trị này đượcset cố định là 1101000b (68h) Do SLA của DS1307 cố định nên trong 1 mạng I2C sẽkhông thể tồn tại cùng lúc 2 chip này

 Quan sát hình trên ta thấy, đầu tiên master (AT8952) 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à ghi dữ liệu nên bit W = 0 và sẽ được gởikèm sau SLA 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 thanhghi địa chỉ (hay con trỏ địa chỉ), vì vậy byte dữ liệu đầu tiên sẽ được chứa trongthanh ghi địa chỉ của DS1307

 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ỉ địnhbởi Word Address, sau khi ghi xong 1 byte thì Word Address tự động tăng nên cácbyte tiếp theo sẽ được ghi liên tiếp vào DS1307 ở các thanh ghi kế sau Số lượngbyte dữ liệu cần ghi do master quyết định và không được vượt quá dung lượng bộnhớ của DS1307 Quá trình ghi kết thúc khi master phát ra điều kiện STOP

Trang 29

Chú ý: Sau khi ghi thành công 1 byte thì DS1307 sẽ trả lời lại bằng một bitACK Nếu như byte được ghi vào là byte cuối cùng thì DS1307 sẽ trả lời lại bằng 1bit Not_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 đượcdùng để set địa chỉ Word Address để phục vụ cho quá trình đọc

b Chế độ đọc dữ liệu

Chế độ đọc dữ liệu được sử dụng khi đọc thời gian thực từ DS1307 vềAT89S52.Cấu trúc truyền dữ liệu trong mode Data Write được mô tả như hình sau:

Hình 1.11: Chế độ đọc dữ liệuNguyên tắc truyền trong chế độ đọc dữ liệu cơ bản cũng giống như trongtruyền chế độ Data Write Trong chế độ đọc dữ kiệu bit R = 1 sẽ được gởi kèm sau 7bit SLA Sau đó liên tiếp các byte dữ liệu được truyền từ DS1307 đến AT8952 Điểmkhác biệt trong cách bố trí dữ liệu của chế độ này so với chế độ ghi dữ liệu 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

1.3 GIỚI THIỆU IC 74HC154

1.3.1 Giới thiệu về IC 74HC154.

- IC 74HC154 là loại IC dùng để giải mã, giải đa hợp với các tính năng chính.Giải đa hợp có 16 đường ngõ ra Giả mã nhị phân 4 bit đầu vào thành 16 đườngngõ ra tương ứng Hai ngõ vào cho phép khóa hoặc m Ở rộng chân của I C

Trang 30

Hình 1.12: Sơ đồ chân IC 74HC154 Hình 1.13: Sơ đồ bên trong 74HC154Chức năng các chân của IC 74HC154:

● Chân 24, 12 (VCC, GND) dùng để cấp nguồn cho IC hoạt động

● Chân 18, 19 (E1,E2) các ngõ vào cho phép IC hoạt động trong một thời điểmchỉ có 1 IC hoạt động, IC bị cấm hoạt động thì tất cả các ngõ ra đều ở mứclogic cao

● Chân 23, 22, 21, 20 (A0, A1, A2, A3) Các ngõ vào quy định trạng thái ngõ ra

● Chân 1 - 11, 13 - 17 (Y0 - Y15) Các ngõ ra của IC

Tùy thuộc vào trạng thái của các đường địa chỉ mà ta có ngõ ra tương ứng, khi cả haingõ vào E1, E2 ở mức logic thấp thì IC hoạt động bình thường, tại một thời điểm chỉ

có một ngõ ra ở mức logic thấp, tất cả các ngõ còn lại đều ở mức cao

1.3.2 Nguyên tắc hoạt động của IC 74HC154.

Trang 31

Bảng 1.11: Bảng chức năng của IC 74HC154Dựa vào bảng trạng thái ta thấy: Chỉ cần chân E1,E2 ở trạng thái cấm (khôngcho phép IC hoạt động) thì tất cả ngõ ra của IC 74HC154 đều ở mức cao bất chấptrạng thái ở các chân địa chỉ (A0, A1, A2, A3), Chẳng hạn như khi chân E1 ở mứclogic cao thì tất cả các ngõ ra của IC đều ở mức logic cao bất chấp trạng thái củacác chân còn lại như E2, A0, A1, A2, A3.Và khi chân E2 ở mức cao thì cũng tương tựnhư thế.

Khi các đường địa chỉ vào từ 00h-07H thì mức logic thấp duy nhất ở ngõ ra sẽ dichuyển từ ngõ ra (00_07)

Trang 32

1.4 IC CẢM BIẾN NHIỆT DS18B20

1.4.1 Khái quát về IC DS18B20

Hình 1.14: Hình dạng bên ngoài của DS 18B20

Mô tả tính năng của DS1820 :

DS1820 là nhiệt kế số có độ phân giải 9-12bit giao tiếp với vi điều khiển trungtâm thông qua 1 dây duy nhất ( 1 wire communication)

DS1820 hoạt động với điện áp từ 3V-5.5V có thể được cấp nguồn qua chân chân trao đổi dữ liệu

Nó có thể đo nhiệt độ trong tầm -55° C – 125°C Với khoảng nhiệt độ từ -10° C +85°C độ chính xác ±0.5 °C Mỗi DS1820 có một Serial code 64bit duy nhất, điềunày cho phép kết nối nhiều IC trên cùng đường bus Dòng tiêu thụ tại chế độ nghỉcực nhỏ

-Nếu cấu hình cho DS18B20 theo 9,10,11,12 bit thì ta có độ chính xác tương ứng

là : 0.5°C , 0.25°C ,0.125°C, 0.0625°C.Theo mặc định của nhà sản xuất nếu chúng takhông cấu hình chế độ chuyển đổi thì nó sẽ tự cấu hình là 12bit Khi bắt đầu chuyểnđổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi chuyển đổi xong thì ởmức cao.Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi nào chuyển đổixong nhiệt độ

Chuẩn 1 wire có những đặc điểm sau :

Trang 33

1.4.2 Thanh ghi dữ liệu

Mỗi IC DS1820 có một mã 64bit riêng biệt bao gồm: 8 bit Family code, 48bit serial code và 8 bit CRC code được lưu trong Rom Các giá trị này giúp phânbiệt giữa các IC với nhau trên cùng 1 bus Giá trị Family code của DS1820 là28h và giá trị CRC là kết quả của quá trình kiểm tra 56 bit trước đó

Tổ chức bộ nhớ Scratchpad: Bộ nhớ DS1820 bao gồm 9 thanh ghi 8bit

Hình 1.15: Tổ chức bộ nhớ của DS18B20Byte 0 và 1 lưu giá trị nhiệt độ chuyển đổi

Byte 2 và 3 lưu giá trị ngưỡng nhiệt độ ( giá trị này được lưu khi mất điện)

Byte 4 là thanh ghi cấu hình cho hoạt động của DS1820

Byte 5,6 và 7 không sử dụng

Byte 8 là thanh ghi chỉ đọc lưu giá trị CRC từ byte 0 đến byte 7

Dữ liệu trong byte 2,3,4 được ghi thông qua lệnh Write Scratchpad [4Eh] và dữliệu được truyền đến

DS1820 với bit LSB của byte 2, sau khi ghi dữ liệu có thể được đọc lại thông qualệnh Read Scratchpad [BEh], và khi đọc Scratchpad thì bit LSB của byte 0 sẽ đượcgửi đi trước tất cả các byte đều được đọc, nhưng chỉ ghi được byte 2,3 và 4 Để

Trang 34

[48h] đến DS1820 Và dữ liệu từ EPROM cũng có thể được chuyển vào thanh ghiTH,TL thông qua lệnh Recall E2 [B8h].

1.4.3 Trao đổi dữ liệu giữa vi điều khiển và DS1820

a Khởi tạo

Quá trình khởi tạo bao gồm 1 xung reset do vi điều khiển master gửi đến slaveDS1820, sau đó là xung presence từ DS1820 gửi đến vi điều khiển, để chỉ ra sự hiệndiện của vi điều khiển và DS1820, quá trình hoạt động trao đổi dữ liệu có thể bắtđầu

b Lệnh điều khiển ROM.

Các lệnh này làm việc với 64 bit serial code ROM, lệnh này được phát ra sau quátrình khởi tạo Lệnh cho phép vi điều khiển biết có bao nhiêu thiết bị và thiết bị loại

gì trên bus

c Lệnh điều khiển DS18B20.

Sau khi vi điều khiển định địa chỉ thiết bị cần giao tiếp thông qua các lệnh ROM,

vi điều khiển sẽ gửi các lệnh điều khiển hoạt động của DS1820 Những lệnh này chophép vi điều khiển ghi và đọc dữ liệu từ bộ nhờ Scratchpad của DS1820, bắt đầu quátrình chuyển đổi nhiệt độ, và xác định chế độ cấp nguồn

Có 5 lệnh điều khiển ROM:

SEARCH ROM [F0h]: Khi hệ thống bắt đầu hoạt động, thì vi điều khiển sửdụng lệnh này để kiểm tra code ROM của tất cả các thiết bị có trên bus chophép vi điều khiển biết được số thiết bị và loại của thiết bị trên bus Nếutrên bus chỉ có 1 thiết bị thì có thể sử dụng lệnh Read_ROM thay cho lệnhSearch_ROM Sau mỗi quá trình Search_ROM thì cần phải quay lại quátrình khởi tạo để reset hệ thống

 READ ROM [33h]: Lệnh này được sử dụng khi chỉ có 1 thiết bị trên bus.Lệnh này cho phép vi điều khiển đọc 64bit ROM code của thiết bị Nếu trênbus có nhiều thiết bị thì lệnh này sẽ gây ra sự xung đột bus dữ liệu giữa cácthiết bị

 MATCH ROM [55h]: Lệnh này theo sau bởi 64 bit ROM code cho phép viđiều khiển định địa chỉ thiết bị cần giao tiếp Chỉ thiết bị có ROM code phùhợp sẽ trả lời, các thiết bị còn lại sẽ đợi xung reset tiếp theo

 SKIP ROM [CCh]: Lệnh này cho phép vi điều khiển gửi đồng thời đến tất

cả các thiết bị trên bus mà không cần bất cứ thông tin nào về ROM Code

Trang 35

Ví dụ, muốn gửi lệnh Convert_T đến tất cả các thiết bị trên bus, thì đầu tiên

ta gửi lệnh Skip_ROM sau đó tiếp theo là gửi lệnh Convert_T Tương tựnhư vậy, nếu theo sau lệnh Skip_ROM là lệnh Read_Scratchpad thì dữ liệutrên DS1820 được đọc về, và lưu ý rằng lệnh này chỉ thực hiện được khitrên bus có 1 thiết bị, nếu trên bus có nhiều thiết bị thì sẽ gây ra xung độtbus

 ALARM SEARCH [ECh]: Lệnh này gần giống với lệnh Search_ROM,nhưng lệnh này chỉ tác động đến thiết bị mà cờ alarm được bật lên sẽ trả lời.Lệnh này cho phép xác định các thiết bị mà ở đó nhiệt độ đo được vượt quangưỡng nhiệt độ, và sau khi lệnh này được thực thi thì vi điều khiển phảilập lại quá trình khởi tạo quay lại bước 1

1.4.4 Cách đọc giá trị nhiệt độ

Bên trong DS1820 sẽ có bộ chuyển đổi giá trị nhiệt độ sang giá trị số và được lưutrong các thanh thi ở bộ nhớ scratchpad Độ phân giải nhiệt độ đó có thể được cấuhình ở chế độ 9 bit, 10 bit, 11 bit, 12 bit Ở chế độ mặc định thì DS1820 hoạt động ở

độ phân giải 12 bit

Để bắt đầu quá trình đọc nhiệt độ, và chuyển đổi từ giá trị tương tự sang giá trị

số thì vi điều khiển gửi lệnh Convert T [44h], sau khi chuyển đổi xong thì giá trịnhiệt độ sẽ được lưu trong 2 thanh ghi nhiệt độ ở bộ nhớ scratchpad và IC trở vềtrạng thái nghỉ

Nhiệt độ được lưu bên trong DS1820 được tính ở nhiệt độ Celcius nếu tính ởnhiệt độ Fahrenheit cần phải xây dựng thêm bảng chuyển đổi nhiệt độ Giá trị nhiệt

độ lưu trong bộ nhớ gồm 2 byte - 16bit : số âm sẽ được lưu dưới dạng bù 2

Bit cao nhất là bit dấu (S) nếu S=0 thì giá trị nhiệt độ dương và S=1 thì giá trịnhiệt độ âm

Nếu cấu hình độ phân giải là 12bit thì tất cả các bit đều được sử dụng Nếu độphân giải 11bit thì bit 0 không được sử dụng Tương tự nếu cấu hình là 10bit thì bit1,0 không được sử dụng, nếu cấu hình là 9 bit thì bit 2, 1, 0 không được sử dụng

Trang 36

Nhiệt độ Đầu ra số (nhị phân) Đầu ra số (Hex)+ 125°C 0000 0111 1101 0000 07D0H+ 85°C 0000 0101 0101 0000 0550H+ 25.0625°C 0000 0001 1001 0001 0191H+ 10.125°C 0000 0000 1010 0010 00A2H+ 0.5°C 0000 0000 0000 1000 0008H

0.5°C 1111 1111 1111 1000 FFF8H 10.125°C 1111 1111 0101 1110 FF5EH 25.0625°C 1111 1110 0110 1111 FF6FH

55°C 1111 1100 1001 0000 FC90H

Bảng 1.12: Bảng đọc giá trị nhiệt độNhiệt độ sau khi được lưu vào trong 2 thanh ghi bộ nhớ sẽ được so sánh với 2thanh ghi ngưỡng nhiệt độ TH và TL Các giá trị ngưỡng nhiệt độ do người dùng quyđịnh, và nó sẽ không thay đổi khi mất điện

Như vậy chỉ có phần nguyên, các bit 11-4 của giá trị nhiệt độ được so sánh vớithanh ghi ngưỡng Nếu giá trị nhiệt độ đọc về nhỏ hơn mức TL hoặc lớn hơn mức THthì cờ báo quá nhiệt sẽ được bật lên, và nó sẽ thay đổi ở mỗi quá trình đọc nhiệt độ

Vi điều khiển có thể kiểm tra trạng thái quá nhiệt bằng lệnh Alarm Search [ECh]

1.5 IC ĐỆM ĐẢO ULN 2803

1.5.1 Sơ đồ chân

Hình 1.16: Sơ đồ chân của ULN 2803

Trang 37

- Chân 9, 10 là chân cấp nguồn.

- Chân từ 1-8 là các chân ngõ vào

- Chân từ 11-18 là các chân ngõ ra đảo

Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy nàycủa chuỗi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức thấp như :TTL, CMOS hoặc PMOS/NMOS

ULN 2803 được thiết kế phù hợp với chuẩn TTL

1.5.2 Thông số kỹ thuật của ULN 2803

● Dòng điện ngõ vào khoảng 25mA

● Điện áp ngõ vào khoảng 0.5 V - 30V

● Dòng điện ngõ ra tối đa 500mA

● Điện áp ngõ ra tối đa 50V

● Điện áp cung cấp 5V – 12V

● Đệm 8 kênh riêng biệt

● Đầu ra đảo

Hình 1.17: Sơ đồ cấu tạo 1 kênh đệm dòng của ULN 2803

1.6 Tổng quan về led 7thanh

1.6.1 Giới thiệu led 7thanh

LED 7 thanh được dùng nhiều trong các mạch hiển thị thông báo, hiển thị số, kí

tự đơn giản LED 7 được cấu tạo từ các LED đơn sắp xếp theo các thanh nét để cóthể biểu diễn các chữ số hoặc các kí tự đơn giản như từ số 0 đến 9 và A đến F chả

Trang 38

được ghép và được đặt tên bằng các chữ cái a g và có một dấu chấm dp ( dấu chấmnày có thể sáng và tắt tùy theo yêu cầu) được cấu tạo bởi 1 LED đơn Qua đó người

ta chỉ cần 8 bit tương ứng với 8 LED đơn để điều khiển được và hiển thị số từ 0 đến

9 và các kí tự từ A đến F

Hình 1.18: Cấu tạo và hình dạng led 7 thanh

Ở trên là hình dạng LED 7 ngoài thực tế, trong mạch nguyên lý và cấu tạo.Cấu tạo của LED chúng ta nhìn trên rất đơn giản chúng chỉ gồm các LED đơn đượcxếp lại với nhau thành hình như trên hình vẽ Các LED đơn này chỉ chung nhau Anothoặc Katot và riêng nhau các chân còn lại Nhiệm vụ của chúng ta là cho sáng cácLED đơn đó để cho nó thành số hay kí tự đơn giản

Hiện nay LED 7 được sản xuất theo 2 kiểu là Anot chung và Katot chung, đượcđiều khiển làm việc tương tự như bơm dòng hay nuốt dòng của các LED đơn có trongLED7 (Thường hay thiết kế theo kiểu bơm dòng cho LED) Thông thường trong cácmạch thiết kế thực tế người thiết kế thường hay sử dụng loại Anot chung Phươngpháp ghép nối là cấp dòng, đảo trạng thái thông qua đệm Led

Để ghép nối với LED7 có thể có nhiều cách, nhưng phải đảm bảo sao có thể điềukhiển tắt mở riêng từng LED đơn trong đó để tạo ra các số và các ký tự mongmuốn.Các IC điều khiển đều khó khả năng sinh dòng kém tức là dòng đầu ra của cácchân IC nhỏ hơn khả năng nuốt dòng Do vậy, nếu ghép nối trực tiếp các led với các

Trang 39

chân cổng IC thì loại Anode chung là thích hợp hơn cả Cần phải chú ý dòng dồn về

IC quá mức chịu được thì cũng không được vì làm nóng và chết IC điều khiển

Trang 40

1.6.2 Các phương pháp điều khiển

a Điều khiển trực tiếp

● Dùng trực tiếp các chân điều khiển (vi xử lý)

Hình 1.19: Điều khiển led bằng phương pháp trực tiếp qua vi điều khiển

Đối với cách này thì nhìn thì rất tốn chân của vi xử lý Và dòng của LED sẽ dồntất cả về vi xử lý Nếu một hệ thống lớn thì cách này không ổn vì ảnh hưởng đến vi

xử lý và nhiều dòng dồn về vi xử lý sẽ làm vi xử lý nóng và dẫn tới chết ( chúng tatưởng tượng xem nếu mà hệ thống nhiều phần điều khiển từ các chân vi xử lý mà tất

cả các tải điều khiển dồn trực tiếp dòng về vi xử lý thì lúc đó dòng trong 1 thời điểmkhá lớn vượt quá ngưỡng cho phép của vi xử lý Dòng mà vi xử lý chịu đựng đượccũng khá nhỏ đâu dưới 100mA ) Các này chỉ dùng được hệ thống điều khiển ít,mạch dùng vi xử lý khá đơn giản như hiện thị LED, đếm số từ 0 đến 9 chẳng hạn

● Dùng IC giải mã BCD sang LED 7 thanh

Sử dụng IC giải mã 7447 để giả mã từ mã BCD sang mã LED7 Đối với cách nàythì trông rất ổn Vừa tiếp kiệm được chân vi xử lý và tránh được dòng dồn về vi xử lý(dòng ở đây được dồn về 7447) Đây là cách mà người thiết kế thường dùng trongcác hệ thống cần đến hiển thị

Ngày đăng: 12/02/2015, 16:44

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối của AT89S52 - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Sơ đồ kh ối của AT89S52 (Trang 10)
Hình 1.2: Sơ đồ chân 89S52 - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.2 Sơ đồ chân 89S52 (Trang 11)
Bảng 1.1: Các chức năng chuyển đổi của cổng P3 - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Bảng 1.1 Các chức năng chuyển đổi của cổng P3 (Trang 12)
Bảng 1.2: Tổ chức bộ nhớ bên trong của 89S52 - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Bảng 1.2 Tổ chức bộ nhớ bên trong của 89S52 (Trang 13)
Bảng 1.3: Thanh ghi trạng thái chương trình - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Bảng 1.3 Thanh ghi trạng thái chương trình (Trang 15)
Bảng 1.7: Các cờ ngắt - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Bảng 1.7 Các cờ ngắt (Trang 18)
Hình 1.4: Sơ đồ khối bên trong của DS1307 - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.4 Sơ đồ khối bên trong của DS1307 (Trang 21)
Bảng 1.9 : Tổ chức theo từng bit của bộ nhớ - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Bảng 1.9 Tổ chức theo từng bit của bộ nhớ (Trang 22)
Hình 1.7: Mô tả điều kiện Start, Stop và Repeat - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.7 Mô tả điều kiện Start, Stop và Repeat (Trang 26)
Hình 1.9 : Giữ liệu được truyền trên giao diện I2C - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.9 Giữ liệu được truyền trên giao diện I2C (Trang 27)
Bảng 1.12: Bảng đọc giá trị nhiệt độ - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Bảng 1.12 Bảng đọc giá trị nhiệt độ (Trang 36)
Hình 1.19: Điều khiển led bằng phương pháp trực tiếp qua vi điều khiển - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.19 Điều khiển led bằng phương pháp trực tiếp qua vi điều khiển (Trang 39)
Hình 1.20:  Điều khiển led bằng phương pháp trực tiếp qua IC giải mã - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.20 Điều khiển led bằng phương pháp trực tiếp qua IC giải mã (Trang 40)
Hình 1.21: Phương pháp quét Led - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.21 Phương pháp quét Led (Trang 40)
Hình 1.22: Phương pháp chốt - Đồ án Thiết kế, chế tạo đồng hồ số vạn niên
Hình 1.22 Phương pháp chốt (Trang 43)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w