Đăng ký Đăng nhập
Trang chủ đồ án điện điện tử thiết kế mạch đồng hồ đo thời gian thực...

Tài liệu đồ án điện điện tử thiết kế mạch đồng hồ đo thời gian thực

.DOCX
24
15
74

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA ĐIỆN – ĐIỆN TỬ Đề tài : Thiết kế mạch đồng hồ đo thời gian thực GVHD : Nhóm SVHD: Hoàng Thị Thơm Lê Văn Phi Nguyễn Anh Tuấn Trần Văn Bình Lớp : Điện – Điện tử 2 Khoa : 59 DDT-2 Nhóm :1 I. Đặt vấn đề: Đồng hồ trở nên phổ biến và đóng vai trò quan trọng trong đời sống con người, là thiết bị cần thiết mà bất kì ai cũng phải dung tới nó. Một chiếc đồng hồ cơ, xem giờ bằng cách nhìn vào kim chỉ ở vạch chia thời gian sẽ gây khó khăn cho người mới bắt đầu sử dụng. Nhưng với đồng hồ số, thời gian được hiển thị rõ ràng hơn bằng các chữ số sẽ dễ dàng hơn. Vận dụng kiến thức đã học, chúng em quyết định thực hiện thiết kế Đồng hồ đo thời gian thực đề hiển thị bộ đếm GIỜ-PHÚTGIÂY trên Led7 đoạn. Với việc dung vi mạch 89s52 giao tiếp với IC thời gian thực DS1307. IC DS1307 hoạt động ở tần số 32768kHz được nuôi bằng nguồn sự phòng 3V có thể hoạt động trong thời gian khá dài .Sau thời gian làm mô phỏng trên proteus, chúng em đã thiết kế được đồng hồ đo thời gian thực. Từ khóa :”IC 89S52”,”DS 1307”,”Đồng hồ đo thơi gian thực”. II. Giới thiệu: 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 trở nên nhỏ gọn và mềm dẻo hơn. Chúng có thể được ứng dụng trong nhiều sản phẩm khác nhau. Và dưới đây là một số đề tài thiết kế đồng hồ đo thời gian thực trong và ngoài nước mà chúng em đã tìm được: Đồ án này[1] với sự hướng dẫn của thầy Nguyễn Lê Cường đã được sử dụng chủ yếu dựa vào vi điều khiểnMà thực tế là IC ATMEGA16. Có khả năng điều chỉnh và thay đổi được thời gian. So với những mạch đồng hồ dùng họ vi điều khiển 8051 và PIC thì AVR có ưu điểm hơn là ngôn ngữ lập trình được viết bằng C thì chương trình sẽ ngắn gọn hơn, so với 8051 thì tốc độ xử lý tín hiệu nhanh hơn. So với 8051 thì giá thành của AVR đắt hơn. Việc sử dụng AVR ATMEGA16 thì với việc có nhiều tính năng và giá cả phải chăng, rẻ hơn PIC nhưng đắt hơn 8051. Đồ án này[2] với chip 8051, DS12887, và Led 7đoạn. DS 12887 chứa các giá trị giờ phút giây ngày, tháng, năm và thời gian hoạt động đúng đến năm 2100. Bộ đếm hoạt động với thời gian 10 năm nếu không có nguốn điện ngoài cung cấp. Nhưng theo em thì đối với việc mô phỏng proteus, việc sử dụng DS 1307 chạy khá ổn và phù hợp hơn với DS 12887. Đồng hồ thời gian thực RTC (Real Time Clock)[3] với việc sử dụng Led7 đoạn, với IC DS 12C887,IC ghi dịch 74HC591 và vi điều khiển PIC16F877A.Việc sử dụng DS 12C887 có thể ngắt lập trình được phục vụ cho việc cập nhật thời gian và hẹn giờ. IC 74HC591 làm tăng số lượng chân điều khiển cho vi điều khiển. Thực chất việc sử dụng PIC16F877A cho các thao tác truy cập thời gian, hiển thị và chỉnh giờ cho ứng dụng này là phí phạm, vì ứng dụng không yêu cầu thêm một chức năng phụ nào của vi điều khiển ngoài chức năng I/O. Thiết kế một dự án đồng hồ IC thời gian thực (DS 1307) bằng cách sử dụng vi mô PIC[4], với việc DS1307 dễ sử dụng, điều này làm cho kiểm soát bố trí của mạch dễ dàng hơn. Nhưng trạng thái mặc định của DS1307 không được xác định vì vậy bạn phải xóa bit CH để bắt đầu bộ dao động. Đồng hồ thời gian thực này[5] sử dụng vi điều khiển 8051, RTC IC DS1307 và P89V51RD2, sử dụng chip Dallas DS1307 với bộ vi điều khiển Philips P89V51RD2. Vi điều khiển giao tiếp với DS1307 bằng cách sử dụng giao thức truyền thông I2C. Giao diện I2C có thể hoạt động với tốc độ truyền dữ liệu lên đến 400k bit / giây. Tất cả các cài đặt liên quan đến thời gian và ngày tháng, chúng tôi đã thực hiện nó bằng cách sử dụng hai nút ấn.Tuy nhiên phụ kiện đắt tiền, phức tạp nên không phù hợp với sinh viên. Qua những bài báo đó, nhóm chúng em đã thiết kế được một Đồng hồ đo thời gian thực sử dụng IC 89S52 và DS 1307 nhằm mục đích tạo sự tiện lợi và đơn giản cho sinh viên, và giá thành hợp lí. III. Cơ sở lý thuyết: 1. Giới thiệu mạch:  Mạch đồng hồ hiển thị giờ phút giây, có khả năng lưu giờ khi mất điện.  Mạch sử dụng vi điều khiển AT89s52 và một chip thời gian thực DS 1307 hoạt động ở tần số 32768 kHz được nuôi bằng nguồn dự phòng 3v có thể hoạt động trong thời gian 5 năm khi không có nguồn điện. 2. Giới thiệu linh kiện mạch: a) Vi điều khiển 89s52: Vi điều khiển 8051 đƣợc Intel cho ra đời vào năm 1980 thuộc vi điều khiển đầu tiên của họ MCS-51. AT89S52 có các đặc trưng chuẩn như sau: - 8 Kbyte ROM - 256 byte RAM - 32 đường xuất nhập - 3 bộ định thời (đếm) 16 - bit - Một port nối tiếp song công mạch dao động và tạo xung clock trên chip. Interrupt control: điều khiển ngắt Other register: các thanh ghi khác 256 byte RAM: RAM 256 byte Time 2, 1, 0: bộ định thời 2, 1, 0 CPU: đơn vị điều khiển trung tâm Ossilator: mạch dao động Bus control: điều khiển bus I/O ports: các port xuất/nhập Serial port: port nối tiếp.[6] b) DS 1307: IC DS 1307 là IC thông dụng, cho khả năng chính xác về thời gian. Với nguồn nuôi là một pin 3V thì có thể lưu giờ khi mất điện trong vòng 5 năm.[7] Chip IC DS 1307 c) Led 7 đoạn: Ưu điểm: hiển thị rõ ràng và thu hút được sự chú ý vì có thể nhìn xa Nhược điểm: mạch điện phức tạp cần thêm các IC chốt. 3. Nguyên lý hoạt động: Khi cho điện áp qua khối nguồn cho vi điều khiển, khi đó chương trình trong vi điều khiển sẽ làm việc, đồng thời bộ tạo xung dao động tạo xung nhịp với tần số 12MHz cho VĐK hoạt động. Chế độ ghi và nhận dữ liệu của IC thời gian thực đua tới vi điều khiển, các điều kiện START và STOP đuợc nhận dạng khi bắt đầu hoặc kết thúc truyền một chuỗi, lúc này các thanh ghi của IC thời gian thực nhận giá trị thời gian thực (giờ, phút, giây, thứ, ngày, tháng, năm) và gửi đến vi điều khiển đồng thời lúc này vi điều khiển sẽ gán một giá trị tuơng đuơng giá trị thời gian thực rồi gửi ra khối hiển thị. Lúc này IC ghi dịch trong khối điều khiển sẽ gửi tín hiệu đến khối hiển thị. Các nút ấn trong khối điều khiển có nhiệm vụ điều chỉnh thời gian. Khối Reset có nhiệm vụ đua hệ thống về trạng thái ban đầu. IV. Phương pháp đề xuất: 1. Cấu trúc hệ thống: a) Linh kiện: – Tụ hóa :10uf x 1 – Tụ gốm: 22 x 2 – Tụ gốm:100nf x2 – Tu hóa: 100uf x 2 – Điện trở : +4,7k x 12 + 330 x 7 – IC 89s52 + đế x 1( chính) – IC ổn áp7805 x 1 – IC DS 1307 + đế x 1 – Transictor :A1015 x 6 – DIOT :1N4007 x 1 – Pin 3V + đế x 1 – Rào 6 x 2 – Led 7 đoạn 1 số x 6 – Phím nhấn x 4 – Thạch anh 12M x 1 – Thạch anh 32768Hz x 1 b) IC89S52: [8] – Chức năng: + Là vi điều khiển chính của mạch. + 8 KB EPROM bên trong. + 256 Byte RAM nội. + 4 Port xuất /nhập I/O 8 bít. + 3 bộ định thời 16 bit. – Sơ đồ 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 thạch anh 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. XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung clock bên trong. XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo. + 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 -Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều v RST(Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy. +Chân cho phép bộ nhớ chương trình PSEN: PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài. Chân này thường được nối với chân OE (output enable) của ROM ngoài. Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1) (Không cần kết nối chân này khi không sử dụng đến). v Chân ALE :(chân cho phép chốt địa chỉ-chân 30) Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống. *Ghi chú : khi không sử dụng có thể bỏ trống chân này . + Nhóm chân điều khiển vào/ra: Ø Port 0: gồm 8 chân (từ chân 32 đến 39) có hai chức năng: -Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt. – Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài. Ø Port 1 (P1): gồm 8 chân (từ chân 1 đến chân , chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác. Ø Port 2 (P2) : gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng: -Chức năng xuất/nhập -Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dung lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận, byte cao do P2 này đảm nhận. Ø Port 3 (P3): gồm 8 chân (từ chân 10 đến 17): Chức năng xuất/nhập Với mỗi chân có một chức năng riêng: P3.0 RxD : Ngõ vào nhận dữ liệu nối tiếp P3.1 TxD : Ngõ xuất dữ liệu nối tiếp P3.2 INT0: Ngõ vào ngắt cứng thứ 0 P3.3 INT1: Ngõ vào ngắt cứng thứ 1 P3.4 T0 : Ngõ vào của Timer/Counter thứ 0 P3.5 T1 : Ngõ vào của Timer/Counter thứ 1 P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài P1.0 T2 : Ngõ vào của Timer/Counter thứ 2 P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2. 2. Nguyên lí hoạt động: CHƯƠNG TRÌNH CHÍNH BẮẮT ĐẦẦU CHẾẮ ĐỘ = 0 KHỞI ĐỘNG RTC ĐỌC THỜI GIAN BÁO THỨC HIỂN THỊ THỜI GIAN LẾN LED 7 ĐOẠN QUÉT PHÍM NHẦẮN TẠO CHỚP TẮẮT NẾẮU CHỈNH THỜI GIAN SO SÁNH THỜI GIAN BÁO THỨC CHẾ ĐỘ = 0 HIỂN THỊ BÌNH THƯỜNG CHẾ ĐỘ = 1 GHỈNH GIÂY CHẾ ĐỘ = 2 CHỈNH PHÚT CHẾ ĐỘ = 3 CHỈNH GIỜ CHẾ ĐỘ = 4 CHỈNH PHÚT BÁO THỨC CHẾ ĐỘ = 5 CHỈNH GIỜ BÁO THỨC CTC KHỞI DỘNG ĐỌC GIÁ TRỊ GIÂY TỪ RTC SAU ĐÓ XÓA BIT TẠO GIAO ĐỘNG NẠP NGƯỢC TRỞ LẠI ĐỂ KHỞI DỘNG RTC KHOIDONGTRC: ĐỌC BYTE ĐẦẦU TIẾN TRONG RTC XÓA BIT 7 ĐỂ KÍCH HOẠT BỘ TẠO GIAO ĐỘNG TRONG RTC GHI TRỞ LẠI RTC RET CTC ĐỌC THỜI GIAN TỪ RTC DOCTG: NẠP ĐỊA CHỈ GIẦY ( R4=00H ) GOI CTC ĐỌC 1 BYTE DƯ LIỆU THEO ĐỊA CHỈ CHUYỂN GIÁ TRỊ DOC ĐƯỢC VÀO Ô NHỚ GIAY NẠP ĐỊA CHỈ PHÚT ( R4=01H ) GOI CTC ĐỌC 1 BYTE DƯ LIỆU THEO ĐỊA CHỈ CHUYỂN GIÁ TRỊ DOC ĐƯỢC VÀO Ô NHỚ PHÚT NẠP ĐỊA CHỈ GIỜ ( R4=02H ) GOI CTC ĐỌC 1 BYTE DƯ LIỆU THEO ĐỊA CHỈ CHUYỂN GIÁ TRỊ DOC ĐƯỢC VÀO Ô NHỚ GIỜ RET CTC ĐỌC 1 BYTE DƯ LIỆU THEO ĐỊA CHỈ DOCBYTE: GỌI START BIT ( STARTB ) NẠP MẢ SLAVE DS1307 CHIẾẦU ĐỌC ( A= 11010000B ) GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU ( SBYTE ) NẠP MẢ ĐỊA CHỈ WORD ( A = R4 ) GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU GỌI STOP BIT ( STOPB ) KẾẮT THÚC VIỆC GI DỊA CHỈ WORD GỌI START BIT ( STARTB ) NẠP MẢ SLAVE DS1307 CHIẾẦU ĐỌC ( A= 11010001B ) GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU ( SBYTE ) GỌI CTC DỌC 1 BYTE DỮ LIỆU CHUYỂN GIÁ TRỊ TỪ A VÀO Ô NHỚ ( MOV DH,A ) GỌI STOP BIT ( STOPB ) f RET KẾẮT THÚC VIỆC ĐỌC CTC GHI THỜI GIAN VÀO RTC NAPTG: GỌI START BIT ( STARTB ) NẠP MẢ SLAVE DS1307 CHIẾẦU GI ( A= 11010000B ) GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU ( SBYTE ) NẠP MẢ ĐỊA CHỈ WORD ( A = 00H ) GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU NẠP DỮ LIỆU GIẦY VÀO A GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU NẠP DỮ LIỆU PHÚT VÀO A GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU NẠP DỮ LIỆU GIỜ VÀO A GỌI CTC TRUYẾẦN 1 BYTE DỮ LIỆU GỌI STOP BIT ( STOPB ) KẾẮT THÚC GHI THỜI GIAN RET CTC ĐỌC 1 BYTE DƯ LIỆU RBYTE: NẠP SÔẮ LẦẦN LẶP TƯƠNG ỨNG VỚI SÔẮ BYTE ( R7 =8) BẬT BIT SCL CHUYỂN GIÁ TRỊ NHẬN ĐƯỢC TỪ SDA VÀO CỜ C XÓA BIT SCL DỊCH TRÁI CÓ CỜ C THANH GHI A GIẢM SÔẮ LẦẦN LẶP S R7 = 0 Đ GOI CTC TẠO BIT THỪA NHẬN ( ASKB ) RET CTC GHI 1 BYTE DƯ LIỆU SBYTE: NẠP SÔẮ LẦẦN LẶP TƯƠNG ỨNG VỚI SÔẮ BYTE ( R7 =8) XÓA BIT SCL CHUYỂN GIÁ TRỊ CỦA ACC.7 CHO SDA BẬT BIT SCL XÓA BIT SCL DỊCH TRÁI THANH GHI A GIẢM SÔẮ LẦẦN LẶP R7 = 0 S Đ GOI CTC TẠO BIT THỪA NHẬN ( ASKB ) RET CTC CHỈNH THỜI GIAN CHINH: TẮNG NHẦẮN S Đ TẮNG THỜI GIAN CHÔẮNG DỘI GIẢM NHẦẮN Đ GIẢM THỜI GIAN CHÔẮNG DỘI RET S CTC TĂNG GIÁ TRỊ THỜI GIAN TANGTG: NẠP LẠI R5 = 25 BẬT BITCT Đ MO = 1 TẮNG GIẦY THẾM 1 GỚI HẠN ĐẾẮN 59H S Đ MO = 2 TẮNG PHÚT THẾM 1 GỚI HẠN ĐẾẮN 59H S Đ MO = 3 TẮNG GIỜ THẾM 1 GỚI HẠN ĐẾẮN 23H S Đ MO = 4 TẮNG PHÚT BÁO THỨC GỚI HẠN 59H S Đ MO = 5 TẮNG GIỜ BÁO THỨC GỚI HẠN ĐẾẮN 23H S Đ RET CTC GIẢM GIÁ TRỊ THỜI GIAN GIAMTG : NẠP LẠI R5 = 25 BẬT BITCT Đ MO = 1 GIẢM GIẦY 1 GỚI HẠN ĐẾẮN 00H S Đ MO = 2 GIẢM PHÚT 1 GỚI HẠN ĐẾẮN 00H S Đ MO = 3 GIẢM GIỜ 1 GỚI HẠN ĐẾẮN 00H S Đ MO = 4 GIẢM PHÚT BÁO THỨC GỚI HẠN 01H S Đ MO = 5 S RET 3. Mô hình thực: GIẢM GIỜ BÁO THỨC GỚI HẠN ĐẾẮN 01H
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất