Đăng ký Đăng nhập
Trang chủ Báo cáo đồ án vi điều khiển...

Tài liệu Báo cáo đồ án vi điều khiển

.DOCX
35
158
78

Mô tả:

GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển Mục lục Mục lục.............................................................................................................................1 LỜI MỞ ĐẦU...................................................................................................................3 CHƯƠNG 1: TỔNG QUAN VỀ ĐỂ TÀI............................................................4 1.1. Đặt vấn đề:.................................................................................................................4 1.2. Khảo sát vấn đề:.....................................................................................................4 1.3. Các vấn đề cân giải quyết của bài toán:................................................................4 1.4. Giải pháp:...............................................................................................................4 1.5. Mục đích đề tài:.....................................................................................................5 CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG PHẦN CỨNG.......................................6 2.1. Sơ đồ khối tổng quan:............................................................................................6 2.2. Chức năng và nguyên lý hoạt động của từng khối:...............................................7 2.2.1. Khối vi điều khiển 89S52:..............................................................................7 2.2.2. Modun thời gian thực:.....................................................................................7 2.2.4. Khối hiển thị:...................................................................................................8 2.2.5. Sơ đồ mạch nguyên lý tổng thể:......................................................................9 2.3. Giới thiệu các linh kiện được sử dụng trong mạch:............................................10 2.3.1. Vi điều khiển 8051(AT89S52) :....................................................................10 2.3.2. Modun thời gian thực DS1307:....................................................................12 1. Giới thiệu IC DS1307:.....................................................................................12 2. Cấu tạo bên trong của DS1307:.......................................................................13 3. Khái quát giao diện I2C:..................................................................................14 4. Chế độ hoạt động của DS1307:.......................................................................15 2.3.3. IC ghi dịch 74HC595:...................................................................................16 1. Giới thiệu sơ đồ chân:......................................................................................16 2. Chức năng của IC 74HC595 trong mạch:.......................................................17 2.4. Thi công mạch:....................................................................................................18 2.4.1. Mạch điều khiển(CPU):................................................................................18 2.4.2. Mạch hiển thị:................................................................................................18 CHƯƠNG 3: XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN..........................................19 HỆ THỐNG....................................................................................................................19 Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 1 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển 3.1. Lưu đồ thuật toán chương trình chính:................................................................19 3.2. Lưu đồ thuật toán chương trình con:...................................................................20 3.2.1. Chương trình con write_ds1307:..................................................................20 3.2.2. Chương trình con read_ds1307:....................................................................21 3.2.3. Chương trình con ghi 1 byte vào DS1307"SEND_BYTE":........................22 3.2.4. Chương trình con đọc 1 byte từ DS1307"READ_BYTE":..........................23 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI...............................24 4.1. Kết luận:...............................................................................................................24 4.2. Hướng phát triển đề tài:.......................................................................................24 Tài liệu tham khảo:........................................................................................................25 PHỤ LỤC.......................................................................................................................26 [Phụ lục A-Chương trình bằng ngôn ngữ C của toàn bộ hệ thống]........................26 [Phụ lục B- Datasheet DS1307 và 74HC595]........................................................35 LỜI MỞ ĐẦU Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện tử đã ứng dụng rất nhiều trong công nghiệp. Trong lĩnh vực điều khiển, từ khi công nghệ chế tạo loại vi mạch lập trình đã đem đến các kỹ thuật điều khiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắp ráp bằng các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy, công suất tiêu thụ nhỏ. Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các thiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hằng ngày của con người như máy giặt, đồng hồ báo thức...đã giúp cho đời sống của chúng ta ngày càng hiện đại và tiện nghi hơn. Đề tài thiết kế "Lịch vạn niên điện tử " rất đa dạng và phong phú, có nhiều loại hình khác nhau dựa vào công dụng và độ phức tạp. Do tài liệu tham khảo bằng tiếng việt còn hạn chế, trình độ có hạn và kinh nghiệm trong thực tế còn non kém, nên đề tài em thực hiện chắc chắn còn nhiều thiếu sót. Vì vậy rất mong nhận được những ý kiến đóng góp, giúp đỡ chân thành của các thầy cô cũng như các bạn. SVTH Ký tên Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 2 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển CHƯƠNG 1: TỔNG QUAN VỀ ĐỂ TÀI 1.1. Đặt vấn đề: Cùng với sự phát triển của khoa học và công nghệ, các thiết bị điện tử đã, đang và se tiếp tục được ứng dụng rộng rãi và mang lại hiệu quả trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội Việc gia công, xử lý các tín hiệu điện tử đều dựa trên cơ sở nguyên lý số. Vì các thiết bị làm việc dựa trên cơ sở nguyên lý số có ưu điểm hơn hẳn so với các thiết bị làm việc dựa trên cơ sở nguyên lý tương tự, đặc biệt là trong kỹ thuật tính toán. Sự phát triễn mạnh mẽ của công nghệ điện tử đã cho ra đời nhiều vi mạch sô cỡ lớn với giá thành rẻ và khả năng lập trình cao mang lại những thay đổi lớn trong ngành điện tử. Mạch số ở những mức độ khác nhau đã đang thâm nhập trong các lĩnh vực điện tử thông dụng và chuyên nghiệp một cách nhanh chóng. Các trường kỹ thuật là nơi mạch số thâm nhập mạnh mẽ và được học sinh, sinh viên ưa chuộng do lợi ích và tính khả thi của nó. Vì thế sự hiểu biết sâu sắc về ký thuật số là không thể thiếu đối với sinh viên điện tử. Nhu cầu hiểu biết về kỹ thuật số không chỉ riêng đối với những người theo chuyên ngành điện tử mà còn đối với những cán bộ kỹ thuật khác có sử dụng thiết bị điện tử. 1.2. Khảo sát vấn đề: Hiện nay, những ứng dụng của phần cứng đươc sử dụng ngày càng nhiều và phổ biến, dạo qua con phố chúng ta có thế nhìn thấy những băng quảng cáo có sử dụng đèn led hoặc sử dụng vi xử lý để hiển thị thời gian hay nhiệt độ, Chúng trông khá đẹp mắt và tiện lợi. Trong đồ dùng gia đình cũng có rất nhiều đồ điện tử mang tính tự động như: tivi, máy vi tính... Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 3 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc Đề tài này được chọn xuất phát từ ý tưởng sử dụng IC DS1307 thời gian thực, cùng với việc mọi người cần phải biết chính xác ngày, giờ để thu xếp việc làm cho hợp lý. Với ý tưởng này, đã kết hợp lý thuyết và thực tế để làm đồ án về " thiết kế lịch vạn niên điện tử " 1.3. Các vấn đề cân giải quyết của bài toán: Bài toán xây dựng thiết kế lịch vạn niên đặt ra các yêu cầu như sau: - Lập trình thời gian thực cho AT89S52 rồi từ đó áp dụng cho ứng dụng. - Đảm bảo hiển thị đúng thời gian ngày, tháng, năm, giờ, phút, giây và nhiệt độ. - Có khả năng phát triển và mở rộng vào các ứng dụng khác trong thực tế có độ bền cao. Hệ thống chạy ổn định và giá cả hợp lý. 1.4. Giải pháp: Giải pháp đưa ra để đáp ứng yêu cầu bài toán: - Sử dụng vi điều khiển AT89S52. - Sử dụng modun thời gian thực DS1307 - Xây dựng chương trình phần mềm điều khiển. - Lập trình cho nút bấm để tăng giảm giờ, phút và ngày tháng năm dương. 1.5. Mục đích đề tài: Sự cần thiết, quan trọng cũng như tính khả thi và lợi ích của mạch số cũng như chính là lý do để chọn và thực hiện đồ án "Thiết kế lịch vạn niên" nhằm ứng dụng kiến thức đã học vào thực tế. Sử dụng modun thời gian thực DS1307 kết hợp với vi điều khiển 89S52, 89S52 có nhiệm vụ đọc/ghi(giờ, phút, giây, thứ, ngày, tháng) hiển thị lên led 7 đoạn. Sử dụng cảm biến nhiệt độ 18b20 để đo nhiệt độ môi trường và kết hợp với vi điều khiển để hiển thị nhiệt độ môi trường trên led 7 đoạn. Mục đích yêu cầu của đề tài như sau: * Mạch hiển thị chính xác giờ, phút, giây, thứ, ngày dương, tháng dương, năm dương, ngày âm, tháng âm và nhiệt độ. * Mạch chạy ổn định không bị nhiễu. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 4 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG PHẦN CỨNG 2.1. Sơ đồ khối tổng quan: Hình 2.1. Sơ đồ khối hệ thống. * Vi điều khiển 89S52: Xử lý toàn bộ mọi công việc xuất nhập thời gian, hiển thị thời gian,nhiệt độ môi trường, cài đặt thời gian. Khối xử lý gồm có vi điều khiển 89S52. * Khối modun thời gian thực: Dùng cho việc đếm thời gian thực, nhập xuất thời gian thực: thứ, ngày, tháng, năm, giờ, phút, giây. Khối thời gian thực gồm có chip thời gian thực DS131307. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 5 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc * Khối hiển thị: Dùng để hiển thị thời gian, hiển thị: thứ ngày tháng năm, giờ phút giây. Khối hiển thị dùng led 7 đoạn. * Khối điều chỉnh: Dùng để điều chỉnh thời gian ( giờ, phút, thứ, ngày, tháng, năm). Khối điều chỉnh gồm có 4 nút bấm được nối trực tiếp với vi điều khiển 89S52. Bao gồm nút ''mode'' để chọn chế độ cài đặt, nút "up" để tăng giá trị, nút "down" để giảm giá trị, nút "select" để lưu giá trị cài đặt. * Cảm biến nhiệt độ: Dùng để đo nhiệt độ môi trường và hiển thị lên led 7 đoạn thông qua vi xử lý 89S52. * IC ghi dịch 74HC595: là IC ghi dịch 8 bit kết hợp chốt dữ liệu, đầu vào nối tiếp đầu ra song song. Dùng để tiết kiệm số chân vi điều khiển. 2.2. Chức năng và nguyên lý hoạt động của từng khối: 2.2.1. Khối vi điều khiển 89S52: Hình 2.2: Sơ đồ khối vi điều khiển 8051. Sơ đồ gồm vi điều khiển AT89S52 và các bộ phận phụ như: bộ tạo dao động cho vi điều khiển(thạch anh), reset và các phần phụ khác. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 6 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc 2.2.2. Modun thời gian thực: a) b) Hình 2.3. a)Modun thời gian thực DS1307 b)Sơ đồ chân IC DS1307 Modun được kết nối với vi điều khiển thông qua 2 chân SCL và SDA với 2 chân 1.6 và 1.7 của vi điều khiển. 2.2.3. Khối điều chỉnh: Hình 2.4. Sơ đồ mạch khối điều chỉnh. Khối điều chỉnh có 4 nut gồm: nút mode để chọn chế độ cài đặt, nút up, down để tăng giảm và nút select để lưu giá trị cài đặt. Kết nối với vi điều khiển qua các chân 1.0 đến chân 1.3 2.2.4. Khối hiển thị: Sử dụng led 7 đoạn để hiển thị giờ, phút, giây, thứ, ngày, tháng, ngày âm và tháng âm. Do đó sẽ có 10 led 7 đoạn đôi để thực hiện nhiêm vụ này. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 7 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển Hình 2.5. Sơ đồ bố trí led 7 đoạn để hiển thị Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 8 Đồồ án Vi điềồu khiển 2.2.5. Sơ đồ mạch nguyên lý tổng thể: Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 9 GVHD: T.S Nguyềễn Danh Ng ọc GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển 2.3. Giới thiệu các linh kiện được sử dụng trong mạch: 2.3.1. Vi điều khiển 8051(AT89S52) : a) b) Hình 2.6: a)Chip 8051(AT89S52) b) Sơ đồ chân vi điều khiển 8051. *Vi điều khiển AT89S52 có: + 8KB ROM. + 128byte RAM. + Chế độ nạp nối tiếp. + Có 32 đường xuất nhập. *Vi điều khiển gồm có 40 chân : - Nhóm chân nguồn: + VCC: chân 40, điện áp cung cấp 5VDC + GND: chân 20( hay nối mass) - Nhóm chân dao động: gồm chân 18 và chân 19(chân XTAL1 và XTAL2), cho phép ghép nối vào mạch dao động bên trong vi điều khiển, được sử dụng đê nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định. Hình 2.7. Mạch tạo dao động cho vi điều khiển. - Chân chọn bộ nhớ chương trình: chân 31(EA/VPP) dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại. +Chân 31 nối mass: Sử dụng bộ nhớ chương trình bên ngoài vi điều khiển. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 10 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc + Chân 31 nối VCC: Sử dụng bộ nhớ (8KB) bên trong vi điều khiển. - Chân cho phép bộ nhớ chương trình PSEN:(chân 29) + PSEN là tín hiệu ngõ ra có tác dụng cho phép 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 đọc từ EROM qua bus dữ 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. - Chân ALE: (chân cho phép chốt địa chỉ- chân 30) + 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ứ 30 dù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ối chú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. - Chân RST (reset): Khi ngõ vào tín hiệu này đưa lên mức cao nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch phải tự động reset. Hình 2.8. Mạch reset được nối với vi điều khiển ở chân RST(chân 9) - Nhóm chân điều khiển vào ra: + Port 0: Từ chân 32 đến chân 39 (P0.7-P0.0). Port 0 có chức năng: trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn có bộ nhớ mở rông nó được kết hợp giữa bus địa chỉ và bus dữ liệu. + Port 1: Từ chân 1 đến chân 9 (P1.0-P1.7). Port 1 là port IO dùng cho giao tiếp với thiết bị bên ngoài nếu cần. + Port 2: Từ cân 21 đến chân 28 (P2.0-P2.7). Port 2 là một port có tác dụng kép dùng như cá đường xuất/nhập hoặc là byte cao của địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng. + Port 3: Từ chân 10 đến chân 17 (P3.0-P3.7). Port 3 là port có tác dụng kép. Các châ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: Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 11 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên Chức năng chuyển đổi RXD Ngõ vào dữ liệu nối tiếp TXD Ngõ xuất sữ liệu nối tiếp INT0 Ngõ vòa ngắt cứng thứ 0 INT1 Ngõ vào ngắt cứng thứ 1 T0 Ngõ vào Timer/Counter thứ 0 T1 Ngõ vòa Timer/Counter thứ 1 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài Hình 2.9. Bảng chức năng các chân của port 3 2.3.2. Modun thời gian thực DS1307: 1. Giới thiệu IC DS1307: a) b) Hình 2.10. a) IC DS1307 b) Sơ đồ chân IC DS1307 DS1307 là chip đông hồ thời gian thực(RTC: Real-time-clock). Khái niệm thờ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. Chip có 7 thanh 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 điều khiển ngõ ra phụ và 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ên ngoài rất đơn giản. DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân như hinh bên dưới: Các chân DS1307 được mô tả như sau : - X1 và X2: là 2 ngõ kết nối với thạch anh 32.768KHz làm nguồn dao động cho chip. - VBAT: cực dương của một nguồn 3V nuôi chip. - GND: chân mass chung cho cả pịn 3V và Vcc. -Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với i điều khiển. Chú ý: nếu Vcc không được cáo nguồn nhưng VBAT được cấp thì DS1307 vần 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 được quy định bởi các bit của thanh ghi control register (địa chỉ 0x07). Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 12 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển - SCL và SDA là đường giữ xung nhịp và đường dữ liệu của giao diện I2C mà chúng ta cần tìm hiểu. 2. Cấu tạo bên trong của DS1307: Cấu tạo bên trong của 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 I2C, con trỏ địa chỉ và các thanh ghi (hay RAM). DS1307 có tất cả 64 thanh 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 lại 56 thanh ghi còn lại bỏ trống có thể dùng để chứa biế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 (MINUTES), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR). Việc ghi giá trị từ 7 thanh ghi này tương đương với việc "cài đặt" thời gian khởi động cho RTC. Việc đọc giá trị từ 7 thanh ghi là đọc thời gian mà chip tạo ra. Thanh ghi thứ 8(CONTROL) là thanh ghi SQW/OUT (chân 6). Tuy nhiên, do chúng ta không dùng chân này nên có thể bỏ qua thanh ghi thứ 8. Hình 2.11. Cấu tạo thanh ghi của DS1307. Hinh 2.12. Tổ chức các thanh ghi thời gian. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 13 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc -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ị này. Do giá trị cao nhất của chữ số hàng chục là 5(không có 60) nên chỉ cần 3 bit 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ã 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 chip DS1307. 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ển thị giờ là: 12h và 24h, 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ủa giá 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 2 bit để mã hóa. Nếu bit thứ 6 bằng 1 thì hệ thống 12h được chọ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 bằng 0 là AM và bit thứ 5 bằng 1 là PM. Bit thứ 7 luôn bằng 0. - Thanh ghi thứ (DAY- thứ trong tuần): nằm ở địa chỉ 0x03h. Thanh ghi ngày 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 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 này mang giá trị từ 1 đến 31, chỉ có 5 bit đầu tiên có nghĩa. Các bit còn lại luôn bằng 0. - Thanh ghi tháng (MONTH): nằm ở địa chỉ 0x05h. Thanh ghi này mang giá trị từ 1 đến 12, chỉ có 4 bit đầu tiên 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 này măng 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 này được dùng để điều khiển tần số xung vuông ở ngõ ra SQW/OUT. 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ối tiếp đồng bộ do hãng điện tử Phillip Semiconductor sáng lập và xây dựng thành chuẩ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ủa thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 14 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc + Slave (chip tớ): là chip có một lần địa chỉ cố định, được gọi là 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. + SCL (Serial Clock): là đường xung giữ nhịp nối tiếp, I2C là chuẩn truyền thông 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ấy mẫ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á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 có 2 dây: SDA và SCL. SDA là đường truyền dữ liệu theo 2 hướng (từ master đến slave và ngược lại), còn lại SCL là đường truyền xung đồng hồ chỉ truyền theo 1 hướng (từ master đến slave). *Vài điều kiệu 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. + Đ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ự kiện chuyển đổ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): khi khoảng đ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 thời gian 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ệu liện tiếp từ các Slaves. Hình 2.13. Mô tả điều kiện START, STOP và REPEAT. 4. Chế độ hoạt động của DS1307: *DS1307 hoạt động ở 2 chế độ sau: - Ở chế độ slave nhận (chế độ DS1307 ghi): chuỗi dữ liệu và mỗi xung clock sẽ được nhận thông qua SDA và SCL. Sau mỗi byte được nhận thì 1 bit ACKnowlege sẽ được truyền. Các điều kiện START và STOP sẽ được nhận dạng khi bắt đầu và kết thúc 1 truyền 1 chuỗi, nhận dạng địa chỉ được thực hiện bởi phần cứng sau khi chấp nhận địa chỉ của slave và bit một chiều. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 15 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển - Chế độ slave phát (chế độ DS1307 đọc): byte đầu tiên slave nhận được tương tự như chế độ slave ghi. Tuy nhiên trong chế độ này thì bit chiều lại chỉ chiều ngược lại. Chuỗi dữ liệu được phát đi trên SDA bởi DS1307 trong khi chuỗi xung clock vào chân SCL. * Để làm việc với DS1307, ta thực hiện các bước sau: - START I2C. - Ghi: 0DxH (đây là địa chỉ của DS1307 do nhà sản xuất quy định trong giao tiếp I2C) với: x=0: ghi dữ liệu vào DS1307 x=1: Đọc dữ liệu vào DS1307 - Ghi tham số x này vào, có nghĩa là việc tiếp theo là chúng ta ghi hay đọc dữ liệu từ con DS1307 tùy vào giá trị x=0 (ghi dữ liệu) hay x=1 (đọc dữ liệu) . - Ghi vào địa chỉ thanh ghi cần ghi hoặc cần đọc - Ghi hoặc đọc dữ liệu - STOP I2C. 2.3.3. IC ghi dịch 74HC595: 1. Giới thiệu sơ đồ chân: a) b) Hình 2.14. a)IC 74HC595 b) Sơ đồ chân IC 74HC595 - Chân 14 (input): đầu vào dữ liệu nối tiếp. Tại một thời điểm xung clock chỉ đưa vào 1 bit - Các chân 15,1,2,3,4,5,6,7 (Output QA → QH): Xuất dữ liệu khi chân 13 tích cực ở mực thấp và có một xung tích cực ở sườn âm tại chân chốt 12. - Chân 13 (Output-enable): Chân cho phép tích cực ở mức thấp(0). Khi có ở mức cao tất cả các đầu ra của 74HC595 trở về trạng thái cao trở, không có đầu ra nào được cho phép. - Chân 9 (SQH): Chân dữ liệu nối tiếp. Nếu dùng nhiều 74HC595 mắc nối tiếp nhau thì chân này đưa vào đầu vào của con tiếp theo khi đã dịch đủ 8 bit. - Chân 11 (Shift clock): Chân vào xung clock. Khi có 1 xung clock tích cực ở sườn dương (từ 0 lên 1) thì 1 bit được dịch vào IC. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 16 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc - Chân 12(Latch clock): xung clock chốt dữ liệu. Khi có 1 xung clock tích cực ở sườn dương thì cho phép xuất dữ liệu trên chân output. - Chân 10(reset): Khi chân này ở mức thấp (mức 0) thì dữ liệu sẽ được xóa trên chip. Hình 2.16. Sơ đồ chưc năng của chân. 74HC595 đầu ra hoạt động ở 2 mức 0 và 1 dòng ra tầm 35mA, điện áp hoạt đông <= 7, công suất trung bình 500mW. 2. Chức năng của IC 74HC595 trong mạch: -IC ghi dịch 74HC595 dùng để tiết kiệm số chân của vi điều khiển. Sử dụng giao tiếp SPI ngõ vào nối tiếp và ngõ ra song song. -Giao tiếp SPI với IC 74HC595 gồm 3 đường: + DATA(chân 14): Dữ liệu từ MCU sẽ đưa vào chân này, dữ liệu được đưa vào theo kiểu nối tiếp. Tức dữ liệu sẽ được đẩy dồn vào các ngăn nhớ của 595. + CLK(chân 11): Đây là tín hiệu đồng bộ quá trình giao tiếp giữa MCU à IC 595. Cứ mỗi bit dữ liệu được gửi đi đồng nghĩa với việc gửi đi 1 xung clock. Tức khi có q xung tích cực ở sườn dương (từ 0 lên 1) thì 1 bit sẽ được dịch vào IC. + SCK(chân 12): Dùng để chốt dữ liệu. Khi có 1 xung tích cực ở sườn dương thì dữ liệu ở trong IC 595 sẽ được đẩy ra các chân output tương ứng, và có thể đẩy dữ liệu ra bất cứ lúc nào. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 17 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển 2.4. Thi công mạch: 2.4.1. Mạch điều khiển(CPU): Hình 2.17. Sơ đồ mạch in của mạch điều khiển. 2.4.2. Mạch hiển thị: Hình 2.18. Sơ đồ mạch in của mạch hiển thị. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 18 GVHD: T.S Nguyềễn Danh Ng ọc Đồồ án Vi điềồu khiển CHƯƠNG 3: XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN HỆ THỐNG 3.1. Lưu đồ thuật toán chương trình chính: Hình 3.1. Lưu đồ thuật toán chương trình chính. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 19 Đồồ án Vi điềồu khiển GVHD: T.S Nguyềễn Danh Ng ọc 3.2. Lưu đồ thuật toán chương trình con: 3.2.1. Chương trình con write_ds1307: Hình 3.2. Lưu đồ thuật toán chương trình con write_ds1307. Huỳnh Văn Đồ_Lớp 13CDT2_Nhóm 05 Page 20
- Xem thêm -

Tài liệu liên quan