Đồ án Thiết Kế và Thi Công đồng hồ số dùng At89C51 và DS 1307

Thời gian là một vấn đề hết sức quan trọng trong cuộc sống cũng như trong sản xuất, thời gian cũng là thước đo cho một sự vật sự việc nào đó chẳng hạn khi đo vận tốc của chiếc xe, sự nhanh hay chậm, . . . do đó thời gian rất cần thiết. Từ xa xưa các nhà khoa học đã phát minh ra rất nhiều vật để đo được thời gian mà họ gọi là ĐỒNG HỒ, cũng từ đó mà có rất nhiều công trình nghiên cứu về chiếc đồng hồ, có rất nhiều loại đồng hồ và theo từng thời kỳ mà có nhiều tên gọi khác nhau, và theo sự phát triển của khoa học đã cho ra những chiếc ĐỒNG HỒ vô cùng tinh vi. Đồng hồ mặt trời Đồng hồ nước Đồng hồ cát Đồng hồ lò xo (hay gọi là đồng hồ cơ ) Đồng hồ số (đang thịnh hành ngày nay) Đồng thời ĐỒNG HỒ còn là trang sức đeo tay có thể là kim loại, da hoặc cao cấp hơn đó là bằng vàng . . .

doc76 trang | Chia sẻ: ngtr9097 | Ngày: 16/05/2013 | Lượt xem: 4140 | Lượt tải: 28download
Bạn đang xem nội dung tài liệu Đồ án Thiết Kế và Thi Công đồng hồ số dùng At89C51 và DS 1307, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Lời cảm ơn Em xin bày tỏ lòng biết ơn chân thành và sâu sắc đến Ban giám hiệu nhà trường và toàn thể các thầy (cô)trong trường đã giúp em có những kiến thức cơ bản và đặc biệt là thầy (cô)của khoa Điện – Điện Tử của trường CĐ Kinh Tế - Công Nghệ TP.HCM đã truyền đạt kiến thức chuyên nghành và tạo điều kiện để cho em hoàn thành chuyên đề tốt nghiệp này. Và đây cũng là hành trang chuẩn bị cho em bước vào đời. Em xin cám ơn cô NGUYỄN THỊ PHƯƠNG HÀ ( giáo viên hướng dẫn ) đã giúp đỡ và chỉ bảo tận tình cho em trong suốt quá trình làm luận văn. Tp. HCM, ngày tháng năm 2011 Sinh viên Mục lục DANH SÁCH BẢNG VẼ VÀ HÌNH Hình 1: Sơ đồ phần cứng 7 Hình 2 : Sơ đồ nguyên lí chi tiết 8 Hình 3: Sơ đồ chân 89C51 13 Hình 4: Mạch dao động cho Vi Xử Lí 15 Hình 5: Cấu trúc bộ nhớ AT89C51 16 Hình 6: Cơ chế hoạt động của DS1307 29 Hình 7: Sơ đồ khối DS1307 31 Hình 8: Địa chỉ RAM và RTC 32 Hình 9: Tần số sóng vuông ở chân SQWE 34 Hình 10: Chế độ ghi dữ liệu lên DS1307 35 Hình 11: Chế độ đọc dữ liệu từ DS1307 36 Hình 12: Led anode chung 39 Hình 13: Led Cathode chung 41 Hình 14: Sơ đồ chân IC 74HC138 44 Hình 15: Mạch điều khiển thiết kế trên Protues 7.6 48 Hình 16: Mạch hiển thị thiết kế trên Protues 7.6 49 Hình 17: Sơ đồ mạch nguồn 50 Hình 18: Mạch mô phỏng trên Protues 7.6 51 Hình 19: Sơ đồ mạch in 52 Hình 20: Lưu đồ giải thuật cho chương trình chính 54 Hình 21: Lưu đồ giải thuật quét nút nhấn 55 CHƯƠNG I : GIỚI THIỆU ĐỀ TÀI GIỚI THIỆU ĐỀ TÀI Đặt vấn đề T hời gian là một vấn đề hết sức quan trọng trong cuộc sống cũng như trong sản xuất, thời gian cũng là thước đo cho một sự vật sự việc nào đó chẳng hạn khi đo vận tốc của chiếc xe, sự nhanh hay chậm, . . . do đó thời gian rất cần thiết. Từ xa xưa các nhà khoa học đã phát minh ra rất nhiều vật để đo được thời gian mà họ gọi là ĐỒNG HỒ, cũng từ đó mà có rất nhiều công trình nghiên cứu về chiếc đồng hồ, có rất nhiều loại đồng hồ và theo từng thời kỳ mà có nhiều tên gọi khác nhau, và theo sự phát triển của khoa học đã cho ra những chiếc ĐỒNG HỒ vô cùng tinh vi. Đồng hồ mặt trời Đồng hồ nước Đồng hồ cát Đồng hồ lò xo (hay gọi là đồng hồ cơ ) Đồng hồ số (đang thịnh hành ngày nay) Đồng thời ĐỒNG HỒ còn là trang sức đeo tay có thể là kim loại, da hoặc cao cấp hơn đó là bằng vàng . . . Giải quyết vấn đề. Đây là đồng hồ số sử dụng chương trình vi xử lý 89C51 và IC READ TIME CLOCK DS1307. Mục tiêu của nhóm như sau: Phần cứng : thiết kế được mạch điện hoàn chỉnh có hiện thị giờ, phút, giây, ngày tháng, năm và thứ lên trên LED 7 đoạn. Phần mềm : Sử dụng thành thạo hợp ngữ để lập trình cho đồng hồ hiển thị, ứng dụng ngắt TIMER, ngắt ngoài. Sau khi lập trình thì thời gian chạy chính xác như mong muốn. Giới hạn đề tài trong phạm vi: hiện thị ngày, tháng, năm, thứ, giờ, phút, giây, chưa có hẹn giờ báo thức và ngày âm lịch Hình 1: Sơ đồ phần cứng Hoạt động chung của hệ thống : Khi cấp nguồn cho bộ điều khiển thì khối CPU sẽ cho đồng hồ hoạt động và hiển thị ra LED 7 đoạn. Khi ngưng cấp nguồn cho bộ điều khiển thì CPU sẽ không hoạt động. Sơ đồ nguyên lí chi tiết: Hình 2 : Sơ đồ nguyên lí chi tiết Thiết kế chi tiết : Khối hiển thị : gồm 14 Led 7 đoạn có nhiệm vụ hiển thị ngày giờ tháng năm … Khối CPU – xử lí trung tâm Để nhận, xuất, xử lí cũng như hiển thị ta cần phải có một điều khiển trung tâm. Nhận tín hiệu điều khiển từ bộ điều khiển vật lí. Xử lí tín hiệu : sau khi nhận tín hiệu từ nút nhấn, CPU sẽ xử lí và đưa ra kết quả tùy thuộc vào nút được nhấn là nút nào. Xuất tín hiệu : Vi điều khiển được ta lập trình dùng bảng dữ liệu mã BCD cho Led 7 đoạn để điều khiển và hiển thị . MSC51 là một giải pháp tốt và cũng nhằm phù hợp với yêu cầu của đề tài. Cụ thể là IC 89c51 về chức năng cũng như phần cứng phần mềm đều có thể đáp ứng tốt nhu cầu của đề tài. Việc lập trình cũng như thực hiện lắp mạch nguyên lí khi ta dùng AT89C51 cũng không khác nhiều so với các IC cùng họ MSC51. Nguyên nhân dẫn đến sự lựa chọn này là ở sự đáp ứng tốt khả năng xuất nhập của các Port ( có 4 Port ). Và ở bộ nhớ lưu trữ ROM 8k byte và RAM 256 byte. Bên cạnh đó là giá thành cũng khá là phù hợp. Khối điều khiển vật lí: Để điều khiển đồng hồ hoạt động ta dùng nút nhấn thường hở 1 tần tiếp điểm . Để nhận tín hiệu từ nút nhấn này ta dùng 2 điện trở 330Ω kéo dương giữa nút nhấn và vi điều khiển như sơ đồ nguyên lí. Phía còn lại của nút nhấn ta nối MASS. Chú ý : Ngoài các khối được kể trên thì còn một số phần khối khác ta không nhắc tới nhưng có lắp trong mạch như : Khối Reset cho vi điều khiển. Khối tạo xung cho vi điều khiển. Khối tạo nguồn 5V cho mạch. CHƯƠNG II : CƠ SỞ LÍ THUYẾT CƠ SỞ LÍ THUYẾT Giới thiệu chung về VI ĐIỀU KHIỂN 8 051 là vi điều khiển đầu tiên của họ vi điều khiển MCS51 được Intel sản xuất vào năm 1980. Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên 1 chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các tập lệnh của người lập trình, bộ vi xử lý tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và tiến hành mở một cơ cấu nào đó. Họ vi điều khiển 8051 là họ 8 bit ( data bus ) có khả năng định địa chỉ 64K bộ nhớ chương trình và 64K bộ nhớ dữ liệu. Mỗi vi điều khiển trong họ 8051 bao gồm tất cả các đặc tính chính và cộng thêm một số đặc tính khác như trong bảng sau: Bảng 1: Họ Vi Điều Khiển Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển hoạt động của Ti vi, máy giặt, đầu lọc Laser, điện thoại, lò vi ba… Trong hệ thống điều khiển tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Các hệ thống càng “thông minh” thì vi điều khiển càng trở nên quan trọng. Giới thiệu VI ĐIỀU KHIỂN 89C51 Đây là loại vi xử lí điều khiển phổ biến ở Việt Nam, 89C51 mang đầy đủ các chức năng như 8051 . Các đặc trưng của VI ĐIỀU KHIỂN. 4K bộ nhớ PLASH. 128 8 BIT RAM nội. 32 đường I/O lập trình. 2 Timer / Counter 16 bit. 6 nguồn ngắt. Cổng lập trình được. Sơ đồ chân. Hình 3: Sơ đồ chân 89C51 Mô tả các chân và port Port 0 Là một cổng xuất nhập song song cực thu hở (thiết kế cỡ nhỏ). Là bus dữ liệu và byte thấp của địa chỉ (dồn kênh) trong các thiết kế có giao tiếp với ngoại vi. Trong trường hợp này thì Port 0 đã có Pull-ups. Port 1 Là cổng xuất nhập song song có trở kéo lên ở cực thu. Port 2 Là cổng xuất nhập song song có trở kéo lên ở cực thu. Là byte cao của địa chỉ khi giao tiếp với bên ngoài. Port 3 Là cổng xuất nhập song song có trở kéo lên ở cực thu. Ngoài ra Port 3 còn có các chức năng đặc biệt như sau : Bảng 2.2 : chức năng đặc biệt của Port 3 Port Pin Chức năng đặc biệt P3.0 RXD (ngõ vào cổng nối tiếp) P3.1 TXD (ngõ ra cổng nối tiếp) P3.2 /INT0 (ngắt ngoài 0) P3.3 /INT1 (ngắt ngoài 1) P3.4 T0 (ngõ vào Timer 0) P3.5 T1 (ngõ vào Timer 1) P3.6 /WR (cho phép ghi dữ liệu ra bộ nhớ ngoài) P3.7 /RD (cho phép đọc dữ liệu từ bên ngoài) Xuất ra xung cho phép chốt byte thấp của địa chỉ trong suốt quá trình truy xuất bộ nhớ ngoài. Trong hoạt động bình thường thì ALE phát ra xung có tần số 1/6 tần số dao động thạch anh, và chúng ta có thể dùng chân này để làm xung clock hoặc định thì. Là tín hiệu điều khiển cho phép bộ nhớ chương trình mở rộng, thường được nối đến chân của EPROM để cho phép đọc các byte mã lệnh. ở mức thấp trong thời gian lấy lệnh. Với các thiết kế cỡ nhỏ thì chân này được nối lên nguồn, nếu cần truy xuất ROM ngoài thì chân này được nối mass. Định thì cho AT89C51 Tất cả các VĐK thuộc họ MCS-51 đều có mạch dao động bên trong chip, ta chỉ cần thêm thạch anh và các tụ bên ngoài 2 chân XTAL1 và XTAL2 để tạo ra nguồn xung nhịp cho MCU. Hình 4: Mạch dao động cho Vi Xử Lí Tổ chức bộ nhớ của AT89C51. Bộ nhớ được cài đặt kiến trúc Harvard, có vùng nhớ riêng cho chương trình (code) và cho dữ liệu. Hình 5: Cấu trúc bộ nhớ AT89C51 hình 6: cấu trúc RAM nội của AT89C51 Lưu ý : Bộ nhớ ROM chỉ có thể sử dụng một trong hai, tức là hoặc Internal hoặc External. Còn bộ nhớ RAM thì có thể sử dụng cùng lúc cả hai. RAM RAM trên chip gồm nhiều 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 thanh ghi, và các thanh ghi chức năng đặc biệt. Phần chi tiết về RAM xin tham khảo thêm trong tài liệu Vi xử lý, ở đây ta chỉ xem xét một số thanh ghi chức năng đặc biệt (SFR). PSW CY AC F0 RS1 RS0 OV P TMOD G1 C/1 M11 M01 G0 C/0 M10 M00 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI IE EA - - ES ET1 EX1 ET0 EX0 Giới thiệu sơ lược: Timer/Counter, Interrupt, Serial Port. Timer/Counter: Sử dụng thanh ghi TMOD và TCON để điều khiển. Có 3 chế độ hoạt động cho Timer (được chọn từ bit M1 và M0 của thanh ghi TMOD). Chế độ 0 Chế độ 1 Chế độ 2 Chế độ 3 Interrupt: Đây là chức năng rất hay của 89C51. Khi có một tín hiệu từ một nguồn ngắt nào thì chương trình sẽ tạm ngưng lệnh hiện thời để chuyển sang chương trình phục vụ ngắt. Sau khi thực hiện xong, VXL tiếp tục thực hiện chương trình đang dở dang. Sử dụng thanh ghi IE để điều khiển việc ngắt. Ta có thể ngắt từ các nguồn ngắt khác nhau như: ngắt ngoài, ngắt Timer, ngắt bằng Port nối tiếp. Ngoài ra ta còn có thể xác định thứ tự ưu tiên ngắt thông qua thanh ghi IP. IP - - - PS PT1 PX1 PT0 PX0 Serial Port : Đây là cổng I/O nối tiếp hoạt động với nhiều chế độ khác nhau. Chức năng chính là chuyển đổi song song sang nối tiếp cho dữ liệu xuất ra, và chuyển từ nối tiếp sang song song cho dữ liệu nhập vào. Để nhận và phát ký tự, trên chip có một thanh ghi phục vụ là thanh ghi SBUF, và thanh ghi điều khiển việc truyền nhận là SCON. Cổng nối tiếp có thể hoạt động ở 4 chế độ : Thanh ghi dịch 8 bit UART 8 bit, tốc độ baud thay đổi được. UART 9 bit, tốc độ baud cố định. UART 9 bit , tốc độ baud thay đổi được. Thanh ghi trong AT89C51 Bảng 2: Thanh ghi trong 8051 Tập lệnh AT89C51 Bảng 3: Các tập lệnh AT89C51 TẬP LỆNH CỦA 8051 CHIA THÀNH 5 NHÓM CHÍNH: Các lệnh số học Các lệnh logic Các lệnh chuyển dữ liệu Các lệnh x ử lý bit Các lệnh rẽ nhánh CHI TIẾT: Các lệnh số học. Gồm các lệnh Cộng (ADD), Trừ (SUBB), Nhân (MUL), Chia (DIV), tăng (INC) hoặc giảm (DEC) thanh ghi ACC, … Bảng 4: Các lệnh số học Các lệnh logic Gồm các lệnh liên quan đến logic như AND (ANL), OR (OR), XOR (XRL) hai toán hạng với nhau. Ngoài ra nhóm lệnh này có thêm các lệnh Xóa (CLR), lấy bù bit (đảo bit) (CPL), quay trái (RL), quay phải (RR), … Bảng 5: Các lệnh logic Các lệnh chuyển dữ liệu. Gồm các lệnh di chuyển nội dung toán hạng (MOV), hay di chuyển bộ nhớ dữ liệu (MOVX), các lệnh cất dữ liệu vào (PUSH) và lấy dữ liệu ra (POP) khỏi vùng STA. Bảng 6: Các lệnh chuyển dữ liệu Các lệnh xử lí bit Gồm các lệnh xóa (CLR), set bit (SETB), lấy đảo bit (CPL), di chuyển bit (MOV), lệnh nhảy bit nếu bằng 1 (JB) hoặc bằng 0 (JNB), … Bảng 7: Các lệnh xử lí bit Các lệnh rẽ nhánh Bao gồm các lệnh gọi chương trình con (ACALL, CALL, LCALL), quay về chương trình con (RET), quay về chương trình ngắt (RETI), các lệnh nhảy đến thực thi một chương trình (SJMP, LJMP, AJMP), lệnh so sánh nhảy (CJNE), giảm và nhảy nếu khác 0. Bảng 8: Các lệnh rẽ nhánh Giới thiệu về IC DS1307 TỔNG QUAN VỀ IC DS 1307 2.1 Giới thiệu chung DS 1307 IC thời gian thực là họ vi điều khiển của hãng DALASS. IC DS 1307 có một số đặc trưng cơ bản như sau: DS 1307 là IC thời gian thực với nguồn cung cấp nhỏ dung để cập nhập thời gian và ngày tháng. SRAM 56 bytes. Địa chỉ và dữ liệu được truyền nối tiếp qua 2 đường bus 2 chiều. DS 1307 có một mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự động đóng ngắt với nguồn cung cấp là 3V: DS 1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điều khiển, và 56 byte lưu trữ (dành cho người sử dụng). Khi xử lí dữ liệu từ DS 1307, họ đã tự chuyển cho ta về dạng số BCD, ví dụ như ta đọc được dữ liệu từ 0x04 (tương ứng với DAY - ngày trong tháng ) và tại 0x05 (tháng) là 0x15 và 0x11. Lưu ý đến vai trò của chân SQW/OUT. Đây là chân xung ra của DS 1307 có đến 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz… các chế độ này đuợc quy định bởi các bít của thanh ghi Control Register ( địa chỉ 0x07 ). Địa chỉ của DS1307 là 0xD0. Cơ chế hoạt động: DS1307 hoạt động với vai trò Slave trên đường bus nối tiếp. Việc truy cập được thi hành với chỉ thị start và một mã thiết bị nhất định được cung cấp bởi địa chỉ các thanh ghi. Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉ thị Stop đươc thực thi. 2.2 Cơ chế hoạt động của DS1307. Hình 6: Cơ chế hoạt động của DS1307 Vcc: nối với nguồn. X1, X2: nối với thạch anh 32,768 kHz. Vbat: đầu vào pin 3V. GND: đất. SDA: chuỗi data. SCL: dãy xung clock. SQW/OUT: xung vuông/đầu ra driver. DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời gian và ngày tháng với 56 bytes SRAM. Địa chỉ và dữ liệu được truyền nối tiếp qua 2 đường bus 2 chiều. Nó cung cấp thông tin về giờ, phút, giây, thứ, ngày, tháng, năm. Ngày cuối tháng sẽ tự động được điều chỉnh với các tháng nhỏ hơn 31 ngày, bao gồm cả việc tự động nhảy năm. Đồng hồ có thể hoạt động ở dạng 24h hoặc 12h với chỉ thị AM/PM. DS1307 có một mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự động đóng ngắt với nguồn pin cung cấp. DS 1307 hoạt động với vai trò slave trên đường bus nối tiếp. Việc truy cập được thi hành với chỉ thị START và một mã thiết bị nhất định được cung cấp bởi địa chỉ các thanh ghi. Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉ thị STOP được thực thi. Sơ đồ khối DS1307. Hình 7: Sơ đồ khối DS1307 Mô tả hoạt động của các chân: VCC, GND: Nguồn một chiều được cung cấp tới các chân này. VCC là đầu vào 5V. Khi 5V được cung cấp thì   thiết bị có thể truy cập hoàn chỉnh và dữ liệu có thể đọc và viết. Khi pin 3 V được nối tới thiết bị này và VCC nhỏ hơn 1,25Vbat thì quá trình đọc và viết không được thực thi, tuy nhiên chức năng timekeeping không bị ảnh hưởng bởi điện áp. vào thấp. Khi VCC nhỏ hơn Vbat thì RAM và timekeeper sẽ được ngắt tới nguồn cung cấp trong (thường là nguồn 1 chiều 3V). VBAT: Đầu vào pin cho bất kỳ một chuẩn pin 3V. Điện áp pin phải được giữ trong khoảng từ 2,5V đến 3V để đảm bảo cho sự hoạt động của thiết bị. SCL (serial clock input): SCL được sử dụng để đồng bộ sự chuyển dữ liệu trên đường dây nối tiếp. SDA (serial data input/out): là chân vào ra cho 2 đường dây nối tiếp. Chân SDA thiết kế theo kiểu cực máng hở, đòi hỏi phải có một điện trở kéo trong khi hoạt động. SQW/OUT(square wave/output driver)- khi được kích hoạt thì bit SQWE được thiết lập 1 chân SQW/OUT phát đi 1 trong 4 tần số (1Hz, 4kHz, 8kHz, 32kHz) . Chân này cũng được thiết kế theo kiểu cực máng hở vì vậy nó cũng cần có một điện trở kéo trong. Chân này sẽ hoạt động khi cả Vcc và VBAT được cấp. X1, X2: được nối với một thạch anh tần số 32,768kHz. Là một mạch tạo dao động ngoài, để hoạt động ổn định thì phải nối thêm 2 tụ 33pF. Cũng có DS1307 với bộ tạo dao động trong tần số 32,768kHz, với cấu hình này thì chân X1 sẽ được nối vào tín hiệu dao động trong còn chân X2 thì để hở. 2.3 Sơ đồ địa chỉ RAM và RTC. Hình 8: Địa chỉ RAM và RTC Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte thanh ghi thích hợp. Thời gian và ngày tháng được thiết lập cũng thông qua các byte thanh ghi này bằng cách viết vào đó những giá trị thích hợp. Nội dung của các thanh ghi dưới dạng mã BCD (binary coded decreaseimal). Bit 7 của thanh ghi seconds là bit clock halt (CH), khi bit này được thiết lập 1 thì dao động disable, khi nó được xoá về 0 thì dao động được enable. Chú ý: enable dao động trong suốt quá trình cấu hình thiết lập (CH=0). Thanh ghi Thời gian thực được mô tả như sau: DS1307 có thể chạy ở chế độ 24h cũng như 12h. Bit thứ 6 của thanh ghi hours là bit chọn chế độ 24h hay 12h. Khi bit này ở mức cao thì chế độ 12h được chọn. Ở chế độ 12h thì bit 5 là bit AM/PM với mức cao là PM. Ở chế độ 24h thì bit 5 là bit chỉ 20h ( từ 20h đến 23h). Trong quá trình truy cập dữ liệu, khi chỉ thị START được thực thi thì dòng thời gian được truyền tới thanh ghi thứ 2, thông tin thời gian sẽ được đọc từ thanh ghi cấp này, trong khi đó đồng hồ vẫn chạy. Trong DS1307 có một thanh ghi điều khiển để điều khiển hoạt động của chân SQW/OUT: OUT ( out put control ) : bit này điều khiển mức ra của chân SQW/OUT khi đầu ra xung vuông là disable. Nếu SQWE= 0 thì mức logic chân SQW/OUT sẽ là 1 nếu OUT=1 và OUT=0 nếu OUT=0. SQWE : bit này được thiết lập 1 sẽ enable đầu ra của bộ tạo dao động. Tần số đầu ra sóng vuông phụ thuộc vào giá trị của RS1 và RS0. Hình 9: Tần số sóng vuông ở chân SQWE DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu. Thiết bị gửi dữ liệu lên bus được gọi là bộ phát và thiết bị nhận gọi là bộ thu. Thiết bị điều khiển quá trình này gọi là master. Thiết bị nhận sự điều khiển của master gọi là slave. Các bus nhận sự điều khiển của master, là thiết bị phát ra chuỗi xung clock (SCL), master sẽ điều khiển sự truy cập bus, tạo ra các chỉ thị START và STOP. 2.4 Sự truyền dẫn dữ liệu trên chuỗi bus 2 dây: Tuỳ thuộc vào bit R/ W mà 2 loại truyền dữ liệu sẽ được thực thi: Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyền byte đầu tiên là địa chỉ của slave. Tiếp sau đó là các byte dữ liệu slave sẽ gửi lại bit thông báo đã nhận được (bit acknowledge) sau mỗi byte dữ liệu nhận được. Dữ liệu sẽ truyền từ bit có giá trị nhất (MSB). Truyền dữ liệu từ slave và master nhận: byte đầu tiên (địa chỉ của slave) được truyền tới slave bởi master. Sau đó slave sẽ gửi lại master bit acknowledge. Tiếp theo đó slave sẽ gửi các byte dữ liệu tới master. Master sẽ gửi cho slave các bit acknowledge sau mỗi byte nhận được trừ byte cuối cùng, sau khi nhận được byte cuối cùng thì bit acknowledge sẽ không được gửi. Master phát ra tất cả các chuỗi xung clock và các chỉ thị START và STOP. Sự truyền sẽ kết thúc với chỉ thị STOP hoặc chỉ thị quay vòng START. Khi chỉ thị START quay vòng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi và các bus vẫn chưa được giải phóng. Dữ liệu truyền luôn bắt đầu bằng bit MSB. 2.5 DS 1307 có thể hoạt động ở 2 chế độ sau : Chế độ slave nhận (chế độ  DS1307 ghi):chuỗi dữ liệu và chuỗi xung clock sẽ được nhận thông qua SDA và SCL. Sau mỗi byte được nhận thì 1 bit acknowledge 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 một 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 chiều. Byte địa chỉ là byte đầu tiên nhận được sau khi điều kiện START được phát ra từ master. Byte địa chỉ có chứa 7 bit địa chỉ của DS1307, là 1101000, tiếp theo đó là bit chiều (R/ w) cho phép ghi khi nó bằng 0. Sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ phát đi 1 tín hiệu acknowledge lên đường SDA. Sau khi DS1307 nhận dạng được địa chỉ và bit ghi thì master sẽ gửi một địa chỉ thanh ghi tới DS1307, tạo ra một con trỏ thanh ghi trên DS1307 và master sẽ truyền từng byte dữ liệu cho DS1307 sau mỗi bit acknowledge nhận được. Sau đó master sẽ truyền điều kiện STOP khi việc ghi hoàn thành. Hình 10: Chế độ ghi dữ liệu lên DS1307 Hình: 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 truyền ngược lại. Chuỗi dữ liệu được phát đi trên SDA bởi DS 1307 trong khi chuỗi xung clock vào chân SCL. Các điều kiện START và STOP được nhận dạng khi bắt đầu hoặc kết thúc truyền một chuỗi. Byte địa chỉ nhận được đầu tiên khi master phát đi điều kiện START. Byte địa chỉ chứa 7 bit địa chỉ của slave và 1 bit chiều cho phép đọc là 1. Sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ nhận 1 bit acknowledge trên đường SDA. Sau đó DS1307 bắt đầu gửi dữ liệu tới địa chỉ con trỏ thanh ghi thông qua con trỏthanh ghi. Nếu con trỏ thanh ghi không được viết vào trước khi chế độ đọc được thiết lập thì địa chỉ đầu tiên được đọc sẽ là địa chỉ cuối cùng chứa trong con trỏ thanh ghi. DS1307 sẽ nhận được một tín hiệu Not Acknowledge khi kết thúc quá trình đọc. Hình 11: Chế độ đọc dữ liệu từ DS1307 Giới thiệu về LED 7 đoạn TỔN
Luận văn liên quan