Bài báo trình bày quá trình thiết kế và thi công mạch đồng hồ thời gian thực (RTC- RealTime Clock) tự động báo giờ vào và ra tiết học sử dụng vi điều khiển PIC. Mạch hiển thị giờ, phút, giây, thứ, ngày, tháng, năm và nhiệt độ bằng Led 7 đoạn. Dữ liệu thời gian được đọc từ IC thời gian thực DS12C887; dữ liệu nhiệt độ được đọc từ IC cảm biến nhiệt độ LM35. Quá trình đọc dữ liệu và hiển thị thời gian nhiệt độ được điều khiển bởi vi điều khiển PIC16F877A.
Trang 1Tạp chí Khoa học và Giáo dục, Trường Đại học Sư phạm Huế
ISSN 1859-1612, Số 03(31)/2013: tr 35-40
NGUYỄN TÚ HÀ Trường Đại học Sư phạm - Đại học Huế
Tóm tắt: Bài báo trình bày quá trình thiết kế và thi công mạch đồng hồ thời
gian thực (RTC- RealTime Clock) tự động báo giờ vào và ra tiết học sử dụng
vi điều khiển PIC Mạch hiển thị giờ, phút, giây, thứ, ngày, tháng, năm và
nhiệt độ bằng Led 7 đoạn Dữ liệu thời gian được đọc từ IC thời gian thực
DS12C887; dữ liệu nhiệt độ được đọc từ IC cảm biến nhiệt độ LM35 Quá
trình đọc dữ liệu và hiển thị thời gian nhiệt độ được điều khiển bởi vi điều
khiển PIC16F877A
Từ khóa: Vi điều khiển PIC, đồng hồ thời gian thực
1 ĐẶT VẤN ĐỀ
Kỹ thuật vi điều khiển hiện nay phát triển rất mạnh mẽ, nó được ứng dụng vào rất nhiều lĩnh vực từ trong đời sống sinh hoạt hàng ngày (mạch quang báo, mạch chống trộm, khóa số, tủ lạnh, ti vi) cho tới các lĩnh vực trong công nghiệp cũng như trong quân sự
Do có nhiều ưu điểm như nhỏ gọn, khả năng lập trình để điều khiển theo ý muốn, giá thành thấp, có khả năng xử lí được nhiều công việc nên vi điều khiển trở thành linh kiện không thể thiếu được trong các thiết bị phục vụ con người chúng ta
Họ vi điểu khiển PIC là một trong những họ vi điều khiển mới sau này, có rất nhiều ưu điểm vượt trội so với các họ vi điều khiển trước đó Hiện nay, các trường kỹ thuật đã bắt đầu đưa họ vi điều khiển PIC vào giảng dạy và thực hành cũng như ứng dụng trong các
đề tài khoa học (đặc biệt trong các cuộc thi ROBOCON sử dụng rất nhiều) Vì vậy, việc nghiên cứu và ứng dụng họ vi điều khiển PIC là vấn đề cấp thiết cần được quan tâm Hiện nay đã có một số trường học sử dụng mạch tự động báo giờ học Việc sử dụng mạch này giúp cho các trường học tiết kiệm được công cử người trực theo dõi giờ để bấm chuông báo giờ vào, ra tiết học Tuy nhiên vẫn còn rất nhiều trường vẫn chưa lắp đặt mạch báo giờ tự động này và các mạch tự động báo giờ thực tế hiện nay chủ yếu sử dụng các linh kiện, vi điều khiển đơn giản nên gây khó khăn cho việc mở rộng thiết kế, thi công Từ nhu cầu thực tế đó, cần đến mạch đồng hồ thời gian thực và tự động báo giờ học sử dụng vi điều khiển PIC với ưu điểm tiết kiệm kinh phí, nâng cao độ chính
xác, ổn định trong việc báo giờ học và tiện lợi khi sử dụng
2 GIỚI THIỆU VI ĐIỀU KHIỂN PIC
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer"
Họ vi điều khiển này được sử dụng rộng rãi vì có các ưu điểm:[1]Dễ dàng tìm mua tại thị trường Việt Nam với giá thành không quá đắt; có đầy đủ các tính năng của một vi
Trang 2điều khiển khi hoạt động độc lập; sự hỗ trợ của nhà sản xuất về trình biên dịch, các công
cụ lập trình, nạp chương trình từ đơn giản đến phức tạp; các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển; PIC là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051
Ngoài ra số lượng người sử dụng họ vi điều khiển PIC hiện nay tại Việt Nam cũng như trên thế giới rất rộng rãi Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn
Hình 1 Sơ đồ chân của vi điều khiển PIC16F874A/16F877A
PIC sử dụng tập lệnh RISC Tập lệnh bao gồm các lệnh tính toán trên các thanh ghi, với các hằng số, hoặc các vị trí bộ nhớ, cũng như có các lệnh điều kiện, lệnh nhảy/gọi hàm,
và các lệnh để quay trở về, nó cũng có các tính năng phần cứng khác như ngắt hoặc sleep (chế độ hoạt động tiết kiệm điện) Microchip cung cấp môi trường lập trình MPLAB, nó bao gồm phần mềm mô phỏng và trình dịch ASM Một số công ty khác xây dựng các trình dịch C, Basic, Pascal cho PIC [1]
Để nạp chương trình cho PIC, ta có thể sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip hoặc các mạch nạp khác được thiết kế dành cho từng loại vi điều khiển PIC
Trong bài báo này, chúng tôi lựa chọn sử dụng PIC16F877A Đây là vi điều khiển thuộc
họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte Số PORT I/O là 5 với 33 pin I/O [2]
Trang 33 THIẾT KẾ MẠCH ĐỒNG HỒ THỜI GIAN THỰC RTC
Đây là ứng dụng sử dụng vi điều khiển PIC để thiết kế một đồng hồ điện tử treo tường
có các chức năng sau:
- Hiển thị giờ, phút, giây; thứ, ngày, tháng, năm; nhiệt độ;
- Điều chỉnh được giờ, phút, giây, thứ, ngày, tháng, năm;
- Hẹn giờ để báo chuông giờ vào/ra tiết học theo yêu cầu
* Sơ đồ khối của mạch RTC:
Hình 2 Sơ đồ khối mạch RTC
Khối điều khiển sẽ đọc dữ liệu thời gian và nhiệt độ; sau đó sẽ hiển thị lên Led 7 đoạn Đồng thời, mạch điều khiển luôn kiểm tra tín hiệu từ nút bấm để điều chỉnh thời gian hoặc hẹn giờ
3.1 Khối hiệu chỉnh nút bấm - Khối đo nhiệt độ
Mạch sử dụng 4 nút bấm để điều chỉnh đồng hồ gồm: nút chỉnh giờ, nút hẹn giờ, nút tăng, nút giảm (Hình 3)
LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius [2] Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35 (Hình 4)
Trang 43.2 Khối hiển thị
Mạch sử dụng 16 LED 7 đoạn để hiển thị thời gian giờ, phút, giây, thứ, ngày, tháng, năm và nhiệt độ Để điều khiển các LED 7 đoạn, chúng tôi kết nối PORT D với các chân DATA của LED 7 đoạn và sử dụng IC giải mã 74LS154 kết hợp với Transistor để điều khiển sáng LED (Hình 5)
Hình 5 Sơ đồ nguyên lý mạch hiển thị LED 7 đoạn
3.3 Khối thời gian thực
Dữ liệu thời gian sẽ được cập nhật từ IC thời gian thực DS12C887 Đây là IC thời gian thực được sản xuất bởi hãng Dallas với một vài đặc tính cơ bản sau: [2]
- Chứa các giá trị thời gian giây, phút, giờ, thứ, ngày, tháng, năm với 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;
- Các hệ thống bên trong bao gồm hệ thống thời gian thực, nguồn nội bằng Lithium
và bộ tạo dao động với bộ chia tần số đính kèm cho phép lập trình được Ngoài ra còn hỗ trợ các ngắt phục vụ cho quá trình xử lí thông tin của hệ thống bên ngoài DS12C887 gồm 24 chân và có thể được chia làm 3 nhóm như sau:
- Nhóm chân DATA: bao gồm các chân AD7:AD0 Đây là các chân mà DS12C887
dùng để đưa dữ liệu ra hay nhận dữ liệu vào;
- Nhóm chân điều khiển giao tiếp BUS: bao gồm các chân MOT, AS, DS, R/W với
các chức năng phụ thuộc vào việc lựa chọn chế độ giao tiếp BUS theo chuẩn của Intel (MOT=1) hay Motorola (MOT= 0);
- Nhóm chân chức năng: bao gồm các chân RESET (dùng để reset IC), IRQ (chân tác
động của các ngắt trong DS12C887) và chân SQW (chân tạo sóng vuông ngõ ra)
3.4 Khối báo giờ
Khối báo giờ sẽ thực hiện chức năng đổ chuông để báo giờ vào và ra tiết học Dựa vào thời gian quy định tiết học của trường, vi điều khiển PIC sẽ so sánh thời gian thực và thời gian vào và ra tiết học Nếu thời gian giống nhau thì sẽ điều khiển đổ chuông để báo giờ
Trang 53.5 Khối điều khiển
Khối điều khiển là mạch gồm vi điều khiển PIC 16F877A và các cổng kết nối để giao tiếp với các khối khác (Hình 6)
Hình 6 Sơ đồ nguyên lý mạch điều khiển
4 XÂY DỰNG CHƯƠNG TRÌNH CHO PIC
Dựa vào thiết kế phần cứng, nguyên lý làm việc của mạch, chúng tôi sử dụng phần mềm CCS viết chương trình nạp cho PIC để điều khiển mạch [3] Lưu đồ chương trình chính được thực hiện như sau:
Hình 7 Lưu đồ chương trình chính
Trang 65 KẾT QUẢ
Sau quá trình thiết kế và thi công mạch, chúng tôi đã hoàn thành đồng hồ thời gian thực
có chức năng tự động báo giờ học như hình 8 Đồng hồ có thể hiển thị chính xác thời gian và nhiệt độ, ngoài ra còn có chức năng tự động báo giờ học mỗi khi vào/ra tiết học
Hình 8 Đồng hồ thời gian thực tự động báo giờ học
6 KẾT LUẬN
Mạch đồng hồ thời gian thực và tự động báo giờ học sử dụng vi điều khiển PIC và IC chuyên dụng DS12C887 cho ta độ chính xác tuyệt đối về thời gian thực, hoạt động ổn định, linh hoạt Mạch có thể áp dụng rộng rãi cho các trường học hay các cơ quan tổ chức có nhu cầu tự động báo giờ
Để sản phẩm này thêm phong phú và tăng hiệu quả sử dụng thì cần phải phát triển thêm các chức năng: hiển thị được ngày, tháng, năm âm lịch; sử dụng LED ma trận để hiển thị đẹp hơn; thay đổi phương pháp điều khiển từ xa bằng Remote,
TÀI LIỆU THAM KHẢO
[1] Website Diễn đàn điện tử (2012) Cơ bản về vi điều khiển và PIC, truy cập ngày
20/08/2012, link: http://www.picvietnam.com
74LS154, truy cập ngày 25/09/2012, link: http://www.alldatasheet.com
[3] Ngô Diên Tập (2006) Vi điều khiển với lập trình C, NXB Khoa học kỹ thuật
Title: DESIGNING AND IMPLEMENTING THE REAL TIME CLOCK CIRCUIT THAT
MICROCONTROLLER
Abstract: In this paper, we show the process of design and implementation of the real time
clock circuit that automatically alarms the beginning and the end of the school time using the PIC microcontroller This circuit displays hour, minute second, day of week, day, month, year and temperature using LED 7- segment The data of time is received from realtime DS12C887
IC, and the data of temperature is received from the thermal sensor LM35 IC The process of data analysis and display are controlled by the PIC16F877A microcontroller
Keywords: PIC Microcontroller, RTC- RealTime Clock
ThS NGUYỄN TÚ HÀ
Khoa Vật lý, Trường Đại học Sư phạm - Đại học Huế, Email: nguyentuha82@gmail.com