đồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ án đồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ án
Trang 1Mục lục
CHƯƠNG 1: TỔNG QUAN 3
1.1 Đặt vấn đề 3
1.2 Giới hạn đề tài 3
1.3 Phương pháp nghiên cứu 4
1.4 Ý nghĩa khoa học và thực tiễn: 4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 5
2.1 AT89S52 5
2.1.1 Đặc tính: 5
2.1.2 Mô tả 5
2.1.3 Sơ đồ chân 5
2.2 IC thời gian thực DS1307 8
2.2.1 Giới thiệu 8
2.2.2 Lấy thông tin về thời gian và lịch 9
2.2.3 Chi tiết các thanh ghi 9
2.3 Led 7 đoạn anode chung 12
2.3.1 Giới thiệu 12
2.3.2 Sơ đồ chân 12
2.3.3 Mã led 7 đoạn 13
2.3.4 Phương pháp quét led 14
2.4 Thạch anh 16
CHƯƠNG 3 : THIẾT KẾ VÀ THI CÔNG 18
3.1 Mạch nguyên lý 18
3.2 Sơ đồ mạch in 21
3.3 Mạch thực tế 22
CHƯƠNG 4: TỔNG KẾT 23
4.1 Ưu điểm: 23
4.2 Nhược điểm: 23
4.3 Hướng phát triển của đề tài: 23
Trang 2TÀI LIỆU THAM KHẢO: 24 PHỤ LỤC 25
Trang 3CHƯƠNG 1: TỔNG QUAN.
1.1 Đặt vấn đề
Ngày này nghành Điện Tử có vai trò rất quan trong trong cuộc sống của conngười Các hệ thống điện tử ngày nay rất đa dạng và đang thay thế các côngviệc hằng ngày của con người từ công việc đơn giản đến phức tạp như điềukhiển tín hiệu giao thông, tưới nước tự động,…Các thiết kế có hệ thống tương
tự, hệ thống số hay dùng vi điều khiển Tuy nhiên trong lĩnh vực điện tửthông minh con người thường dùng hệ thống vi điều khiển hơn hệ thôngtương tự và số bởi một số ưu điểm vượt trội mà hệ thống vi điều khiển manglại: độ tin cậy cao, giá thành thấp, dể thiết kế lấp đặt và vận hành,… Để làmđược điều đó chúng ta phải có kiến thức về vi điều khiển như hiểu được cấutrúc và tính chất của nó
Sau hơn 1 năm học tập tại Trường Đại học Trà Vinh với sự giảng dạy nhiệttình của các giáo viên trong bộ môn Điện Tử - Viễn Thông em đã quyết địnhchọn đề tài “thiết kế mạch đồng hồ số” để làm đồ án môn học 1 với mongmuốn áp dụng những kiến thức đã học vào thực tiển để phục vụ con người.1.2 Giới hạn đề tài
Đề tài đồng hồ số rất đa dạng và phong phú có nhiều loại hình khác nhau dựavào công dụng và độ phức tạp Do tài liệu tiếng Việt còn nhiều hạn chế vì vậy
đề tài này được giới hạn bởi:
Kiến thức sử dụng các linh kiện thành thạo
Kiến thức sử dụng vi điều khiển được giáo viên hướng dẫn
Lập trình vi điều khiển được giáo viên hướng dẫn
Thiết kế mạch một lớp
Trang 41.3 Phương pháp nghiên cứu.
Nghiên cứu độc lập: chủ động tìm kiếm các khái niệm về mạch đồng
hồ số ở trên mạng, giáo trình, Tự thiết kế mạch in, tìm hiểu nguyên lýhoạt động của các vi điều khiển và linh kiện
Phương pháp làm việc nhóm: cùng bạn bè tìm hiểu và giải đáp các thắcmắc về các nguyên lý hoạt động của mạch động hồ số
Tự hoàn thiện sản phẩm: để có được một mạch đồng hồ số hoạt động
ổn định phải trải qua nhiều giai đoạn, làm lại nhều lần và sự hổ trợ giáiđáp các khó khăn của giáo viên hướng dẩn
1.4 Ý nghĩa khoa học và thực tiễn:
Ý nghĩa khoa học: Đề xuất phương pháp thiết kế mạch mạch đồng hồ
số tối ưu Đề xuất phương pháp nghiên cứu và thiết kế mạch đồng hồ
số bằng các IC khác nhau
Ý nghĩa thực tiễn: Từ kết quả thực hiện đánh giá được độ ổn định vàcác yếu tố có thể xảy ra khi thực hiện Kết quả thực hiện dùng để địnhhướng thiết kế và phát triển cho những sinh viên khác thực hiện đề tài
Trang 5CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI.
2.1.3 Sơ đồ chân.
Trang 6
Hình 2.1.3.a sơ đồ chân AT89S52
- Chân 40 nối VCC, chân 20 nối GND
- Port (P0) gồm 8 chân từ 32–39 có chức năng xuất và nhập
- Riêng P0, P2 còn có chức năng kết nối bộ nhớ mở rộng
- Port 1 (P1) gồm 8 chân từ 1-8 có chức năng xuất và nhập
- Port 3 (P3) : gồm 8 chân từ 10-17 Tích hợp các chức năng đặc biệt.Xem bảng:
P3.6 WR Tín hiệu ghi dữ liệu bộ nhớ ngoài
P3.7 RD Tín hiệu đọc bộ nhớ dữ liệu ngoài
Bảng 2.1.3.b các chức năng của chân AT89S52
Trang 7- Chân Reset (RST): ngõ vào RST ở chân số 9 dùng để thiết lập trạng thái ban đầu cho VDK.
- Chân EA có chức năng chọn bộ nhớ chương trình:
+ Khi điện áp logic 1 (5V) thì VDK thực hiện lấy chương trình bộ nhớnội
+ Khi điện áp logic mức 0 (0V) thì VDK thực hiện lấy chương trình bộnhớ nội
- Chân Xtal1 và Xtal2 nằm ở vị trí 18 và 19 được nối với xung clockbên ngoài để hoạt động thường được gắn với thạch anh hay tụ để xungclock ổn định
Về cơ bản thì các chip nêu trên giống nhau, chỉ có một số tính năng được cảitiến thêm Các phiên bản về sau càng có nhiều khối tính năng đặc biệt hơn.Chúng ta xem bảng so sánh một số loại phổ biến như dưới đây
Bảng 2.1.3.c sơ đồ so sánh họ 89xx
Trang 82.2 IC thời gian thực DS1307.
2.2.1 Giới thiệu.
IC thời gian thực (RTC) DS1307 có thể đếm giờ, phút, giây, ngày, tháng,năm Giao tiếp với vi điều khiển thông qua chuẩn I2C, va đóng vai trò là slavekhi kết nối bus I2C Có thể đếm thời gian qua định dạng 24 giờ với chỉ thịAM/PM Ngoài ra bên trong chip còn có bộ dò phát hiện mất nguồn và tựđộng chuyển sang chế độ sử dọng nguồn dự phòng
2.2.1.a: Sơ đồ chân
1 X1 Kết nối thạch anh 32KHz làm nguồn dao động
3 Vbat Kết nối cực dương pin dự phòng 3V
5 SDA Chân dữ liệu khi kết nối đến bus I2C
6 SCL Chân nhận xung Clock khi kết nối bus I2C
Trang 92.2.2 Lấy thông tin về thời gian và lịch.
Bảng 1.xx là địa chỉ các thanh ghi RAM và thanh ghi RTC củaDS1307.Thanh ghi RTC có địa chỉ từ 00-07h Các thanh RAM chứa địa chỉ từ08h-3Fh
Các thông tin về thời gian và lịch thu được bằng cách đọc các byte trongthanh ghi tương ứng Thời gian và lịch được thiết lập hoặc khởi tạo bằng cáchviết các byte thích hợp Lưu ý dữ liệu thời gian chứa trong thanh ghi điều dịchtheo dạng BCD, các thứ trong tuần thay đổi lúc nửa đêm dưới dạng các con số
1 là chủ nhật, 2 là thứ 2 và tương ứng đến thứ 7 Khi lần đầu IC được cấpnguồn ghi thời gian và lịch reset về 01/01/00 01 00:00:00 (MM/DD/YY HH/MM/SS)
2.2.3 Chi tiết các thanh ghi.
Trang 10Bảng 2.2.3.a: chi tiết các thanh ghi.
Thanh ghi giây ( địa chỉ 00h): 4 bit thấp chứa hàng đơn vị, 3 bit cao chứahàng chục của giây Ngoài ra BIT 7 có tên CH, nếu bit này được thiết lậpbằng 1 thì đồng hồ không hoạt động
Thanh ghi phút ( địa chỉ 01h): 4 bit thấp chứa hàng đơn vị, 3 bit cao chứahàng chục của phút Bit này luôn thiết lập bằng 0
Thanh ghi giờ ( địa chỉ 02h): 4 bit thấp của thanh ghi chứa đơn vị của giờ, bitthứ 6 quy định chế độ 12h ( bit 6 = 1) hoặc 24h ( bit 6 = 0) Nếu ở chế độ 24hthì bit 4, bit 5 quy định hàng chục của giờ Nếu chế độ 12h thì bit 4 quy địnhhàng chục, bit 5 quy định PM là buổi chiều AM là buổi sáng
Thanh ghi thứ ( địa chỉ 03h): 3 bit đầu quy định thứ trong tuần ( 1 là Chủnhật, 2 là Thứ 2,…) các bit còn lại luôn bằng 0
Thanh ghi ngày ( địa chỉ 04h): 4 bit đầu lưu trữ hàngđơn vị của ngày, bit 4 và
5 quy định hàng chục Bit 6 và bit 7 luôn bằng 0
Thanh ghi tháng ( địa chỉ 05h): 4 bit đầu lưu trữ hàng đơn vị của tháng, bit 4quy định hàng chục Các bit còn lại bằng 0
Trang 11Thanh ghi năm ( địa chỉ 06h): 4 bit thấp lưu hàng đơn vị va 4 bit cao lưu hàngchục của năm ( từ 00-99).
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bảng 2.2.3.b: thanh ghi control
Bit 7 UOT ( Uotput Control): thanh ghi điều khiển ngõ ra Ảnh hưởng đếnchân số 7 ( chân SQW/UOT) Khi sóng vuông xuất ra chân này bị disable,nếu Bit UOT = 1 khi đó chân số 7 ở mức cao, ngược lại Bit UOT = 0 khi đóchân số 7 ở mức thấp
Bit 6: luôn đọc bằng 0
Bit 5: luôn đọc bằng 0
Bit 4 SQWE (Square – Wave Enable): khi bit này được thiết lập bằng 1, chophép xuất ra xung vuông tại chân số 7 Tần số xng vuông phụ thuộc vào chânRS0,RS1 Khi tần số xung vuông được thiết lập bằng 1Hz, các thanh ghi thờigian được cập nhật tại xuống của xung vuông Khi lần đầu khởi tạo cập nhậtthiết bị, Bit này bằng 0
Bit 1 và 0: lựa chọn tốc độ (RS[1:0]) Những Bits này điều khiển tần số sóngvuông, khi sóng vuông được phép
Trang 12Bảng 2.2.3.c: Bits điều khiển tần số sóng xung vuông.
2.3 Led 7 đoạn anode chung
2.3.1 Giới thiệu.
Led 7 đoạn là 1 linh kiện rất phổ dụng, được dùng như là 1 công cụ hiển thịđơn giản nhất Trong LED 7 thanh bao gồm ít nhất là 7 con LED mắc lại vớinhau , vì vậy mà có tên là LED 7 đoạn là vậy, 7 LED đơn được mắc sao cho
nó có thể hiển thị được các số từ 0 - 9, và 1 vài chữ cái thông dụng, để phâncách thì người ta còn dùng thêm 1 led đơn để hiển thị dấu chấm (dot)
LED 7 thanh dù có nhiều biến thể nhưng tựu chung thì cũng chỉ vẫn có 2 loại
đó là :
+ Chân Anode chung (chân + các led mắc chung lại với nhau)
+ Chân Katode chung (Chân - các led được mắc chung với nhau)
Trang 13Hình 2.3.2.b: sơ đồ chân led 7 đoạn anode chung.
LE
D C
LEDDP
Trang 14
Bảng 2.3.2.d: giải mã led 7 đoạn Anode chung
2.3.4 Phương pháp quét led.
Quét led 7 đoạn thì việc hiển thị kí tự mã lên nó khác với việc hiển thị lên 1led 7 đoạn vì nó liên quan đến việc quét tần số và thời gian hiển thị của 1 led
Cụ thể phương pháp quét hiển thị lên 2 led 7 đoạn loại anode chung, việc hiểnthị lên nhiều led 7 đoạn thông qua sơ đồ 2.3.4a,b
Sơ đồ 2.3.4.a: quét 2 led 7 đoạn
Trang 15Sơ đồ 2.3.4.b: quét 4 led 7 đoạn.
So sánh 2 giản đồ ta nhận thấy bản chất của phương pháp quét led là trongmột thời điểm chỉ có 1 led 7seg sáng Hay nói cách khác là trong một chu kì Tcác led thay nhau lần lượt sáng Điều đó sẽ làm cho việc đưa mã hiển thị raled một cách dể dàng, lập trình ngắn gọn và đở tiêu tốn nhiều công suất và viđiều khiển sẽ đãm nhận nhiệm vụ này thông qua ngôn ngữ lập trình
- Nếu quét 2 led thì 2 chân của vi điều khiển sẽ đảm nhận nhiệm vụ đóng
mở cung cấp điện cho led, 8 chân còn lại sẽ đưa data ra led
- Nếu quét 4 led thì 4 chân của vi điều khiển sẽ đảm nhận nhiệm vụ đóng
mở cung cấp điện cho led, 8 chân còn lại sẽ đưa data ra led
- Tương tự cho số led lớn hơn 4, phải đảm bảo đủ chân dùng cho vi điềukhiển và tần số quét led phù hợp
Trang 16
Sơ đồ 2.3.4.c: lưu đồ thuật toán quét 7 led trở lên
- Giải thích lưu đồ thuật toán:
+ Ban đầu gán cho số đếm có giá trị là 0 rồi tiến hành giải mã số đếm đó
+ Việc giải mã số đếm nhằm giúp chia số đếm đó thành 2 số hàng chục
và hàng đơn vị riêng biệt để cho tiện việc gọi mã hiển thị trông RAM của vi xử lý tương ứng
+ Tiếp theo ta sẻ cho hiển thị mã số hàng đơn vị và cho Led 2 sáng rồi trì hoãn 1 thời gian
+ Tiếp theo ta sẻ cho hiển thị mã số hàng chục và cho Led 1 sáng rồi trì
Trang 17Sau khi cho hiển thị xong 2 số hàng chục và hàng đơn vị thì tăng giá trịbiến đếm lên 1 đơn vị rồi so sánh giá trị biến đếm sau khi tăng với 100 nếu biến đếm chưa bằng 100 thì tiếp tục giải mã và hiển thị nếu biến đếm =100 thì ta cho biến đếm=0 và tiếp tục chu kì đếm tiếp theo
2.4 Thạch anh
Thạch anh là bộ dao động khá ổn định để tạo ra tần số dao động cho vi điềukhiển Đa số các mạch điều khiển đèn Led đều dùng thạch anh có thể làThạch anh 12Mhz, 24Mhz, 32Mhz….mỗi loại sẽ cho ra 1 xung nhịp khácnhau Thạch anh sử dụng rất rộng rãi, ứng dụng của thạch anh trong điện tử
đa phần để tạo ra tần số được ổn định vì tần số của thạch anh tạo ra rất ít bịảnh hưởng bởi nhiệt độ hơn là các mạch dao động RC….Trong vi điềukhiển bắt buộc phải có thạch anh (trừ các loại có dao động nội) vì xét chi tiếtthì VDK có CPU, timer,… CPU bao gồm các mạch logic và mạch logic muốnhoạt động cũng cần có xung clock, còn timer thì gồm các dãy FF cũng cầnphải có xung để đếm Tùy loại VDK mà bao nhiêu xung clock thì ứng với 1chu kì máy, và với mỗi xung clock VDK sẽ đi làm 1 công việc nhỏ ứng vớilệnh đang thực thi
Để chạy các câu lệnh trong ic vi điều khiển, Bạn cần tạo ra xung nhịp Tần sốxung nhịp phụ thuộc vào thạch anh gắn trên chân 18, 19 Với thạch anh12MHz, Bạn sẽ có xung nhịp 1MHz, như vậy chu kỳ lệnh sẽ là 1μs Để tăngs Để tăng
độ ổn định tần số, người ta dùng thêm 2 tụ nhỏ C6, C7 (33pF x2), tụ bù nhiệt
Điều này cho thấy bạn cũng có thể thay đổi nhịp nhấp nháy của đèn nếu dùngthạch anh có tần số khác
Trang 18CHƯƠNG 3 : THIẾT KẾ VÀ THI CÔNG
3.1 Mạch nguyên lý
Trang 19Hình 3.1.a mạch mô phỏng trên proteusNguyên lý hoạt dộng của mạch đồng hồ: Khi cấp điện áp vào các linh kiện thìchân số 5,6( lần lược là chân dữ liệu và chân xung) của DS1307 nối với ngõ vào T0 ,T1( chân đếm time/couter) của VDK sau khi nhận được tín hiệu từ DS1307 thì VDK sẽ đảm nhiệm xuất ra nguồn từ chân 34-39 nối với
transistor để kích 1 điện áp nối tới chân VCC của led 7 đoạn ( chân 3 hoặc 8)
để led 7 đoạn hiển thị được các số thì VDK phải làm thêm nhiệm vụ xuất ra các tín hiệu từ Port 2 ( chân 21-28) để hiển thị, ví dụ để hiển thị số cho led cuối cùng đó chính là led giây từ 0-9 :
//Định nghĩa tên thay thế cho Port2 của 89S52 nối với led 7 thanh như trên
Trang 20- Nút RST được nối với chân số 9 của VDK.
- Chân chuyển đổi từ giờ, phút, giây nối với chân 14 Port 3 T0
- Chân tăng số được nối với chân 15 Port 3 T1
- Chân giảm số được nối với chân 16 Port 3 WR
Lưu ý: Nên sử dụng pin dự phòng cho DS1307 nếu trong trường hợp thì DS1307 sẽ tự động chuyển đổi sang Pin dự phòng
Trang 21Bảng 3.1.b sơ đồ điều khiển.
Giải thích: Sau khi chương trình bắt đầu hoạt động hệ thống sẽ giải mã led 7 đoạn và quét led Sau đó khởi tạo đường truyền I²C và đọc thời gian thực DS
1307 hiển thị ra led 7 đoạn
Khi thời gian bắt đầu tăng và mỗi lần tăng tiến hành kiểm tra 1 lần khi thời gian lớn hơn 59 thì sẽ trở về 00 sau đó tiếp tục tăng Giờ và phút tương tự nhưgiây
Trang 233.3Mạch thực tế.
Hình 3.3 mạch đồng hồ thực tế
Trang 24CHƯƠNG 4: TỔNG KẾT.
Qua đề tài này chúng em tìm hiểu được nguyên lý hoạt động của chip
AT89S52 , mạch thời gian thực DS 1307, Led 7 đoạn,…
Hoạt động chưa ổn định so với thực tế
4.3 Hướng phát triển của đề tài:
Trong thời đại khoa học hiện đại, khi công nghệ không ngừng phát triển con người luôn bận rộn với những vấn đề xung quanh cuộc sống, để phục vụ cho con người thì việc tạo ra sản phẩm giúp cho con người tiết kiệm được thời gian là một điều cần thiết, vì vậy chúng tôi dự định tạo ra mạch đồng hồ báo thức
Không ngừng nổ lực để thực hiện những đề tài nâng cao khả năng tư duy của bản thân thì hãy quyết định mở rộng mạch đồng hồ số hiển thị giờ, phút, giây thành đồng hồ vạn niên hiển thị thêm ngày tháng năm và tích hợp hiển thị nhiệt độ,…
Trang 25TÀI LIỆU THAM KHẢO:
0-9-tren-led-7-thanh-dung-keil-c.727/
http://mcu.banlinhkien.vn/threads/co-ban-tao-ma-led-7-thanh-va-hien-thi-so-gian.html
http://www.echipkool.com/2013/03/huong-dan-lam-mach-dong-ho-thoi-https://www.slideshare.net/kythuatviengiap/vi-dieu-khien-ung-dung-at89s52http://www.hocavr.com/index.php/app/ds1307
http://arduino.vn/bai-viet/214-cach-lap-trinh-nhieu-con-led-7-doan-loai-don
Trang 26PHỤ LỤC
Code đồng hồ thời gian thực:
//DONG HO SU DUNG TIMER
//PHAN CUNG: 89c51; THACH ANH: 12MHZ ;
//SU DUNG 6 LED 7 DOAN GIO : PHUT : GIAY
/************KHAI BAO THU VIEN, DINH
Trang 27/************KHAI BAO BIEN,
MANG *******************************************
********************/
unsigned char led7_data[10] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; //Decimal to Led7seg
unsigned char t_view,time,index,F_set,B_nhay,get_t ;
unsigned char hour,sec,min;
/************KHAI BAO HAM, CHUONG TRINH
CON*********************************************** ********/void set_main(void); // Chuong trinh khoi tao main
void setup_timer(void); // Chuong trinh cai dat timer 1 va 0
void delay(unsigned int time); // Delay
void Fix_time(void); // Kiem tra va hieu chinh gia tri cua gio,phut,giayvoid Keypad(void); // Kiem tra xu ly phim nhan
void T1_ISR(void); //ngat timer 1 phuc vu nhay led
void T0_ISR(void); // Dung ngat timer 0 de quet led
/************CAC CHUONG TRINH
Trang 29unsigned char I2C_read(void)