thiết kế đồng hồ thời gian thực

46 627 4
thiết kế đồng hồ thời gian thực

Đ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

thiết kế đồng hồ thời gian thực

MỤC LỤC LỜI NÓI ĐẦU…………………………………………. 1 LỜI CÁM ƠN……………………………………… … 2 CHƯƠNG 1: GIỚI THIỆU VÀ MÔ TẢ…………… 3 1. GIỚI THIỆU……………………………… 3 2. MÔ TẢ……………………………………… 5 CHƯƠNG 2: CƠ SƠ LÝ THUYẾT…………… … 7 1. GIỚI THIỆU VỀ I2C………………………… 7 2. IC THỜI GIAN THỰC RTC (REAL TIME CLOCK) DS1307……………………………… 8 3. GIỚI THIỆU VỀ ATMEGA 328P-PU……… 14 CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG……………. 20 1. SƠ ĐỒ NGUYÊN LÝ…………………………… 20 2. MẠCH IN……………………………………… 20 CHƯƠNG 4: : LƯU ĐỒ GIẢI THUÂT VÀ PHÂN MỀM………………………………………. 23 1. LƯU ĐỒ GIẢI THUẬT…………………………. 23 2. PHẦN MỀM…………………………………… 24 LƠI NÓI ĐẦU 1 Với sự ra đời của chip vi điều khiển đã làm cho công việc thiết kế các ứng dụng số trở nên nhỏ gọn và mềm dẻo hơn . Chúng có thể ứng dụng trong nhiều sản phẩm khác nhau . Trong đề tài thiết kế Đồng hồ thời gian thực em đã ứng dụng các tính năng sẵn có của Vi Điều Khiển cụ thể là ATMEGA 328 vào công việc thiết kế phần mềm và phần cứng để giao tiếp với IC thời gian thực DS1307 . Sau một thời gian tìm hiểu và thực hiện đề tài dưới sự hướng dẫn của Thầy Trần Văn Hoàng em đã hoàn thành đồ án. Do trình độ còn hạn chế nên chắc chắn đồ án không tránh khỏi những sai sót. Nhóm chúng em xin được các thầy sửa chữa, chỉ bảo để hoàn thiện tốt hơn. 2 CHƯƠNG I :GIỚI THIỆU VÀ MÔ TẢ 1) GIỚI THIỆU ĐỀ TÀI :  Thiết kế đồng số có thể hiển thị ngày , giờ , thứ , ngày , tháng , năm trên LCD 16x2 thông qua giao tiếp với IC DS1307.  Đồng hồ có thể tích hợp hiển thị nhiệt độ phòng thông qua cảm biến nhiệt độ LM35  Sử dụng 3 nút nhấn để chỉnh thơi gian, ngày tháng.  1 biến trở đẻ điều khiển sự tương phản của LCD 16x2.  Hình ảnh một số linh kiên: 1) Vi điều khiển atmega 328P-PU: 2) LCD 16x2 : 3 3) IC thơi gian thực DS1307: 4) Cảm biến nhiêt LM35: 2) MÔ TẢ HỆ THỐNG : 1) Giới thiệu khái quát về hệ thống :  Input: cảm biến nhiêt, tín hiệu đồng hồ thời gian thực.  User interface: LCD 16x2. 2) Sơ đồ khối phần cứng: 4 HIỂN THỊ LCD HIỂN THỊ LCD  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ị lên LCD 16x2 . Khi ngừng cấp nguồn cho bộ điều khiển thì CPU sẽ ngừng hoạt động.  Hình chụp khi đồng hồ hoạt động: 5 IC LM35 IC LM35 VI ĐIÊU KHIỂN VI ĐIÊU KHIỂN IC DS1307 IC DS1307 CHƯƠNG 2:CƠ SỞ LÍ THUYẾT 6 1) Giới thiệu giao tiếp I2C: Giao thức ưu tiên truyền thông nối tiếp được phát triển bởi Philips Semiconductor và được gọi là bus I2C. Vì nguồn gốc nó được thiết kế là để điều khiển liên thông IC (Inter-Intergrated Circuit) nên nó được đặt tên là I2C. Tất cả các chip có tích hợp và tương thích với I2C đều có thêm một giao diện tích hợp trên Chip để truyền thông trực tiếp với các thiết bị tương thích I2C khác. Việc truyền dữ liệu nối tiếp theo hai hướng 8 bit được thực thi theo 3 chế độ sau: f Chuẩn (Standard)—100 Kbits/sec f Nhanh (Fast)—400 Kbits/sec f Tốc độ cao (High speed)—3.4 Mbits/sec Đường bus thực hiện truyền thông nối tiếp I2C gồm hai đường là đường truyền dữ liệu nối tiếp SDA và đường truyền nhịp xung đồng hồ nối tiếp SCL. Vì cơ chế hoạt động là đồng bộ nên nó cần có một nhịp xung tín hiệu đồng bộ. Các thiết bị hỗ trợ I2C đều có một địa chỉ định nghĩa trước, trong đó một số bit địa chỉ là thấp có thể cấu hình. Đơn vị hoặc thiết bị khởi tạo quá trình truyền thông là đơn vị Chủ và cũng là đơn vị tạo xung nhịp đồng bộ, điều khiển cho phép kết thúc quá trình truyền. Nếu đơn vị Chủ muốn truyền thông với đơn vị khác nó sẽ gửi kèm thông tin địa chỉ của đơn vị mà nó muốn truyền trong dữ liệu truyền. Đơn vị Tớ đều được gán và đánh địa chỉ thông qua đó đơn vị Chủ có thể thiết lập truyền thông và trao đổi dữ liệu. Bus dữ liệu được thiết kế để cho phép thực hiện nhiều đơn vị Chủ và Tớ ở trên cùng Bus. Quá trình truyền thông I2C được bắt đầu bằng tín hiệu start tạo ra bởi đơn vị Chủ. Sau đó đơn vị Chủ sẽ truyền đi dữ liệu 7 bit chứa địa chỉ của đơn vị Tớ mà nó muốn truyền thông, theo thứ tự là các bit có trọng số lớn nhất MSB sẽ được truyền trước. Bit thứ tám tiếp theo sẽ chứa thông tin để xác định đơn vị Tớ sẽ thực hiện vai trò nhận (0) hay gửi (1) dữ liệu. Tiếp theo sẽ là một bit ACK xác nhận bởi đơn vị nhận đã nhận được 1 byte trước đó hay không. Đơn vị truyền 7 (gửi) sẽ truyền đi 1 byte dữ liệu bắt đầu bởi MSB. Tại điểm cuối của byte truyền, đơn vị nhận sẽ tạo ra một bit xác nhận ACK mới. Khuôn mẫu 9 bit này (gồm 8 bit dữ liệu và 1 bit xác nhận) sẽ được lặp lại nếu cần truyền tiếp byte nữa. Khi đơn vị Chủ đã trao đổi xong dữ liệu cần nó sẽ quan sát bit xác nhận ACK cuối cùng rồi sau đó sẽ tạo ra một tín hiệu dừng STOP để kết thúc quá trình truyền thông. I2C là một giao diện truyền thông đặc biệt thích hợp cho các ứng dụng truyền thông giữa các đơn vị trên cùng một bo mạch với khoảng cách ngắn và tốc độ thấp. Ví dụ như truyền thông giữa CPU với các khối chức năng trên cùng một bo mạch như EEPROM, cảm biến, đồng hồ tạo thời gian thực Hầu hết các thiết bị hỗ trợ I2C hoạt động ở tốc độ 400Kbps, một số cho phép hoạt động ở tốc độ cao vài Mbps. I2C khá đơn giản để thực thi kết nối nhiều đơn vị vì nó hỗ trợ cơ chế xác định địa chỉ. 2)IC THỜI GIAN THỰC RTC (REAL TIME CLOCK) 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 (một công ty thuộc Maxim Integrated Products). Chip này 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 ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như RAM. DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân : 8 Hai gói cấu tạo chip DS1307 9 Các chân của DS1307 được mô tả như sau: • X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip. • VBAT: cực dương của một nguồn pin 3V nuôi chip. • GND: chân mass chung cho cả pin 3V và Vcc. • Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển. Chú ý là 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: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số của xung được tạo có thể được lập trình. Như vậy chân này hầu như không liên quan đến chức năng của DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trống chân này khi nối mạch. • SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C. • Có thể kết nối DS1307 bằng một mạch điện đơn giản như trong hình 2. 10 [...]... thực chất chỉ có 8 thanh ghi đầu là dùng cho chức năng đồng hồ (tơi sẽ gọi là RTC) còn lại 56 thanh ghi bỏ trơng có thể được 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 (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời. .. Bit cao nhất, bit 7, trong thanh ghi này là 1 điều khiển có 12 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ỉ 01H, 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... 10-bit ADC channels CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG 19 1) SƠ ĐỒ NGUN LÝ: 2)MẠCH IN: Sau khi thiêt kế sơ đồ ngun lí ta chuyển sang sơ đồ mạch in 20 Sơ đồ bố trí linh kiện 21 Sơ đồ đi dây 22 CHƯƠNG 4: LƯU ĐỒ GIẢI THT VÀ PHÂN MỀM 1) LƯU ĐỒ GIẢI THUẬT: START Ghi dữ lieu vao DS1307 S Đọc dữ liệu từ DS1307 va hiển thị lên LCD S Nut2=0 Nut=0 Đ Đ Chuyển đổi mode 12h và 24h Chỉnh thời gian( ) Chinh ( ) Đ Nut1=0 S... giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời gian khởi động cho RTC Việc đọc giá từ 7 thanh ghi là đọc thời gian thực mà chip tạo ra Ví dụ, lúc khởi động chương trình, chúng ta ghi vào thanh ghi “giây” giá trị 42, sau đó 12s chúng ta đọc thanh ghi này, chúng ta thu được giá trị 54... lcd.setCursor(0, 1); lcd.print("2 chinh ngay "); if(digitalRead(nut2)==0){ delay(300); k=0; t=1; while(t==1){ chinh_ngay(); 32 } } if(digitalRead(nut1)==0){ delay(300); k=0; t=1; while(t==1){ chinh_thoigian(); } } } void chinh_thoigian(){ b=1; if(dem==0) a=7; if(dem==1) a=9; hour=0; minute=0; second=0; lcd.setCursor(0, 0); lcd.cursor(); if(dem==0) { lcd.print ("00:00:00 "); } if(dem==1) lcd.print("00:00:00 AM"); lcd.setCursor(0,... 328P-PU:  Giới thiệu khái qt:  Vi điều khiên Atmega328P-PU có các tính năng như sau:  Vi điều khiển 8 bit , có tính năng sử dụng cao , cơng suất thấp  Có 131 tập lênh theo kiến trúc RISC, chủ yếu thực hiên trong 1 chu kỳ máy  32x8 thanh ghi đa dụng  512 bytes EEPROM  1K byte Internal SRAM 14  Nhiều ngõ vào ra (I/O port )2 hướng (bi- rectional)  2 bộ timer counter 8 bit với Separate và Compare . địa chỉ. 2)IC THỜI GIAN THỰC RTC (REAL TIME CLOCK) 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. làm cho công việc thiết kế các ứng dụng số trở nên nhỏ gọn và mềm dẻo hơn . Chúng có thể ứng dụng trong nhiều sản phẩm khác nhau . Trong đề tài thiết kế Đồng hồ thời gian thực em đã ứng dụng. EEPROM, cảm biến, đồng hồ tạo thời gian thực Hầu hết các thiết bị hỗ trợ I2C hoạt động ở tốc độ 400Kbps, một số cho phép hoạt động ở tốc độ cao vài Mbps. I2C khá đơn giản để thực thi kết nối nhiều

Ngày đăng: 21/07/2015, 15:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan