Bối cảnh và vấn đề nghiên cứu

Vào đầu thế kỷ 21, kỹ thuật vi xử lý và vi điều khiển phát triển mạnh mẽ và dần trở thành nền tảng cốt lõi trong các hệ thống tự động hóa cũng như thiết bị điện tử gia dụng. Tuy nhiên, theo ghi nhận thực tế của tác giả tại thời điểm năm 2003, việc tiếp cận và trang bị thực hành vi điều khiển tại các cơ sở đào tạo đại học, cao đẳng ở Việt Nam còn nhiều hạn chế về thiết bị phần cứng chuyên dụng cũng như tài liệu tham khảo. Trong chương trình đào tạo, thời lượng tiếp cận môn học vi điều khiển chỉ kéo dài 15 tiết lý thuyết và sinh viên chưa được trang bị sâu các học phần về giao tiếp máy tính với thiết bị ngoại vi.

Xuất phát từ yêu cầu tự chủ công nghệ nạp chương trình và tạo ra sản phẩm ứng dụng thực tiễn, đề tài "Thiết kế mạch nạp vi điều khiển và ứng dụng vi điều khiển làm đồng hồ báo thức" được thực hiện nhằm củng cố kiến thức nền tảng và giải quyết bài toán tự động hóa quản lý thời gian.

Nhiệm vụ và mục tiêu nghiên cứu của đồ án bao gồm:

  1. Nghiên cứu cấu trúc phần cứng, tập lệnh, hệ thống ngắt và bộ định thời của dòng vi điều khiển họ MCS-51 (trọng tâm là vi điều khiển AT89C51, AT89C52, AT89C55).
  2. Thiết kế và thi công mạch nạp vi điều khiển đa năng giao tiếp với máy tính cá nhân (PC) thông qua cổng nối tiếp COM (chuẩn RS-232).
  3. Viết phần mềm máy tính điều khiển quá trình nạp, đọc, xóa bộ nhớ Flash và kiểm tra mã checksum của vi điều khiển họ 89Cxx.
  4. Thiết kế và chế tạo sản phẩm ứng dụng: Hệ thống đồng hồ số thời gian thực kết hợp tính năng báo thức tự động 3 cấp độ, tích hợp mạch nguồn dự phòng tự sạc bằng accu để đảm bảo hoạt động liên tục khi mất điện lưới.

Đối tượng nghiên cứu chính là vi điều khiển họ MCS-51 và các mạch ghép nối ngoại vi (mạch nạp Flash, mạch hiển thị LED 7 đoạn, mạch điều chế âm thanh báo chuông, khối nguồn ổn áp và sạc accu). Phạm vi thực nghiệm được triển khai trong thời gian 8 tuần tại Bộ môn Điện tử, Khoa Điện, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.


Cơ sở lý thuyết và phương pháp

Đồ án xây dựng dựa trên nền tảng kiến trúc phần cứng của dòng vi điều khiển 8-bit họ MCS-51 do Intel phát triển và Atmel sản xuất (các biến thể bộ nhớ Flash như 89C51, 89C52, 89C55). Vi điều khiển sử dụng cấu trúc Harvard với không gian bộ nhớ chương trình (ROM/EPROM/Flash) và bộ nhớ dữ liệu (RAM) tách biệt hoàn toàn. Hệ thống cho phép mở rộng tối đa 64 KB bộ nhớ chương trình ngoài và 64 KB bộ nhớ dữ liệu ngoài.

Hệ thống lý thuyết bổ trợ bao gồm:

  • Lý thuyết truyền thông nối tiếp không đồng bộ chuẩn UART và giao tiếp RS-232 giữa máy tính và vi điều khiển thông qua các thanh ghi điều khiển SCON, bộ đệm dữ liệu SBUF, kết hợp cơ chế kiểm soát luồng phần mềm XON/XOFF.
  • Nguyên lý định thời bằng Timer/Counter phần cứng 16-bit (Timer 0 và Timer 1) và kỹ thuật quản lý ngắt (Interrupt) với 5 nguồn ngắt chuẩn và 2 mức ưu tiên.
  • Các vi mạch tích hợp phần cứng: IC định thời NE555 (tạo dao động âm tần), vi mạch công tắc tương tự CMOS CD4066 (chuyển mạch điều khiển âm lượng), IC ổn áp tuyến tính LM7805, transistor công suất H1061 và diode Zener 14V trong mạch sạc accu.

Phương pháp nghiên cứu được tác giả áp dụng gồm:

  • Phương pháp thu thập và phân tích tài liệu: Nghiên cứu bảng thông số kỹ thuật (datasheet) của các dòng vi điều khiển 89Cxx, vi mạch số, sơ đồ ghép nối ngoại vi và các công trình khóa luận trước đó.
  • Phương pháp quan sát: Khảo sát hoạt động thực tế của các ngõ xuất/nhập trên máy tính PC (cổng máy in LPT, cổng nối tiếp COM) và các cơ chế cảnh báo của đồng hồ điện tử thông dụng.
  • Phương pháp thực nghiệm phần cứng: Sử dụng máy tính cá nhân, bảng cắm thử nghiệm (testboard), đồng hồ đo vạn năng VOM và linh kiện bán dẫn để lắp ráp, đo kiểm dạng sóng và hoàn thiện bảng mạch in (PCB).
  • Phương pháp lập trình kết hợp: Xây dựng chương trình điều khiển nạp trên máy tính bằng ngôn ngữ C kết hợp nhúng Assembly (ASM EQU); xây dựng chương trình điều khiển đồng hồ thời gian thực hoàn toàn bằng hợp ngữ Assembly 8051.

Nội dung chính theo từng chương

Chương 1: Dẫn nhập

Chương này trình bày lý do chọn đề tài, phân tích tầm quan trọng của công nghệ vi điều khiển trong tự động hóa và quản lý thời gian cá nhân hoặc công cộng. Tác giả giới hạn phạm vi đề tài vào việc thiết kế mạch nạp cho 3 dòng chip phổ biến (8951, 8952, 8955) và thi công mô hình đồng hồ báo thức. Kế hoạch thực hiện được phân bổ chi tiết trong 8 tuần:

  • Tuần 1: Nhận đề tài, lập đề cương tổng quát và thu thập tài liệu.
  • Tuần 2: Lập đề cương chi tiết.
  • Tuần 3 đến 6: Triển khai đề cương, thiết kế phần cứng, lập trình phần mềm và thi công mạch.
  • Tuần 7: Soạn thảo thuyết minh, chỉnh sửa và in ấn.
  • Tuần 8: Dự phòng và nghiệm thu đồ án.

Chương 2: Khảo sát vi điều khiển họ MCS-51

Chương 2 cung cấp khảo sát toàn diện về kiến trúc phần cứng và tập lệnh của vi điều khiển 8951:

  • Cấu trúc phần cứng: Bộ nhớ Flash nội 4 KB, RAM nội 128 byte, 4 port xuất/nhập 8-bit (P0 đến P3), 2 bộ Timer 16-bit, giao tiếp nối tiếp UART, xử lý biến cờ đơn (Boolean processor), hỗ trợ 210 vị trí nhớ định vị bit.
  • Sơ đồ 40 chân và chức năng: Mô tả chi tiết 24 chân có tác dụng kép, các chân điều khiển chuyên dụng gồm PSEN (chân 29 - cho phép đọc bộ nhớ chương trình ngoài), ALE (chân 30 - chốt địa chỉ byte thấp và tạo xung lập trình), EA (chân 31 - chọn bộ nhớ nội/ngoại và chân cấp áp nạp $V_{PP}$ 12V/21V), RST (chân 9 - ngõ vào reset hệ thống), các chân thạch anh XTAL1, XTAL2 sử dụng dao động 12 MHz.
  • Tổ chức bộ nhớ RAM nội: Bản đồ bộ nhớ dữ liệu từ 00H đến 7FH và vùng thanh ghi chức năng đặc biệt (SFR) từ 80H đến FFH.
Phân vùng RAM nội Dải địa chỉ Chức năng chính
Bank thanh ghi 0 – 3 00H – 1FH Gồm 4 dãy thanh ghi R0 – R7 (32 byte), chọn bank qua bit RS1, RS0 của PSW
RAM định vị bit 20H – 2FH Gồm 16 byte (128 bit định vị độc lập, dải địa chỉ bit 00H – 7FH)
RAM đa dụng 30H – 7FH Gồm 80 byte dành cho lưu trữ dữ liệu tạm thời và ngăn xếp (Stack)
Thanh ghi chức năng đặc biệt (SFR) 80H – FFH 21 thanh ghi điều khiển phần cứng (ACC, B, PSW, SP, DPTR, P0-P3, TCON, TMOD, IE, IP, SCON, SBUF, PCON)
  • Tập lệnh và chế độ định vị: Phân loại 255 lệnh hợp ngữ thành 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte qua 8 chế độ định vị (thanh ghi, trực tiếp, gián tiếp, tức thời, tương đối, tuyệt đối, dài và theo chỉ số).
  • Hoạt động của Timer và Ngắt: Phân tích 4 chế độ hoạt động của Timer (Mode 0: 13-bit, Mode 1: 16-bit, Mode 2: tự nạp 8-bit, Mode 3: phân chia Timer 0 thành hai bộ đếm 8-bit riêng biệt); tổ chức 5 nguồn ngắt với bảng địa chỉ vector ngắt chuẩn: Reset (0000H), Ngắt ngoài 0 (0003H), Ngắt Timer 0 (000BH), Ngắt ngoài 1 (0013H), Ngắt Timer 1 (001BH), Ngắt cổng nối tiếp (0023H).

Chương 3: Giao tiếp máy tính

Trình bày các phương thức kết nối ngoại vi từ máy vi tính:

  • Giao tiếp qua khe cắm mở rộng (Slot-card ISA/PCI).
  • Giao tiếp qua cổng song song máy in (LPT/Centronics).
  • Giao tiếp qua cổng nối tiếp COM (RS-232) và phân tích ưu điểm tiết kiệm dây dẫn, độ tin cậy cao của chuẩn truyền thông này khi kết nối với vi mạch nạp.
  • Giới thiệu môi trường lập trình hợp ngữ và cấu trúc liên kết phần cứng máy tính.

Chương 4: Mạch nạp 8951/8952/8955 giao tiếp với máy tính

Nội dung chương 4 tập trung vào quy trình thiết kế phần cứng và phần mềm mạch nạp vi điều khiển:

  • Nguyên lý hoạt động và lưu đồ giải thuật: Xây dựng thuật toán đọc nhận dạng chip (Signature byte), xóa toàn bộ chip (Erase), ghi dữ liệu bộ nhớ Flash (Write) và kiểm tra lại dữ liệu (Verify/Read).
  • Chương trình nạp trên máy tính: Viết bằng C, triển khai các hàm điều khiển mức logic các chân lập trình và cấp xung /PROG độ rộng 10 ms, chuyển đổi điện áp $V_{PP}$ giữa 5V và 12V. Chương trình tự động nhận diện dung lượng Flash: 89C51 (4 KB), 89C52 (8 KB), 89C55 (20 KB).
  • Thi công phần cứng: Cung cấp sơ đồ nguyên lý, bản vẽ mạch in lớp trên, sơ đồ bố trí linh kiện và hướng dẫn thao tác kết nối qua cổng COM1/COM2 với tốc độ baud 9600.

Chương 5: Thiết kế đồng hồ báo thức

Phân tích chi tiết thiết kế sản phẩm ứng dụng:

  • Lựa chọn phương án: So sánh ba giải pháp (sử dụng EPROM rời, sử dụng bộ vi xử lý và sử dụng vi điều khiển tích hợp). Giải pháp sử dụng vi điều khiển 8951 được lựa chọn nhờ ưu điểm mạch điện tinh gọn, linh hoạt trong lập trình và tiết kiệm chi phí phần cứng.
  • Thiết kế phần cứng: Chia thành 5 khối chức năng chính gồm khối điều khiển (AT89C51, thạch anh 12 MHz), khối hiển thị (7 LED 7 đoạn Anode chung quét qua transistor PNP ở Port 0, xuất mã đoạn ở Port 1), khối điều chỉnh (2 nút bấm kết nối vào ngắt ngoài INT0, INT1), khối báo hiệu (IC 555 kết hợp IC 4066 điều chế biên độ và tần số cho loa 8Ω) và khối nguồn (LM7805 kết hợp mạch sạc và chuyển nguồn tự động accu 12V dùng transistor H1061).
  • Thiết kế phần mềm: Phân bổ vùng nhớ RAM nội để lưu trữ dữ liệu thời gian, thiết lập ngắt định thời Timer 0 tạo xung chuẩn 1 giây, ngắt ngoài xử lý cài đặt thời gian và thuật toán quét hiển thị LED.

Chương 6: Kết luận và hướng phát triển

Đánh giá tổng kết các mục tiêu đã hoàn thành của hệ thống mạch nạp và đồng hồ báo thức; đề xuất các hướng mở rộng ứng dụng trong chuông báo tự động cho cơ quan, trường học và cải tiến giao tiếp phần cứng.


Thiết kế và triển khai

1. Thiết kế phần cứng hệ thống

+-----------------------------------------------------------------------------------+
|                              MÁY TÍNH CÁ NHÂN (PC)                                |
|             Phần mềm điều khiển nạp (Giao tiếp COM, 9600 Baud, XON/XOFF)          |
+-----------------------------------------+-----------------------------------------+
                                          | Chuẩn RS-232
                                          v
+-----------------------------------------------------------------------------------+
|                        MẠCH NẠP ĐA NĂNG (8951 / 8952 / 8955)                      |
|  - Chân P1, P2: Bus địa chỉ               - Chân P0: Bus dữ liệu (Flash byte)     |
|  - Chân P2.6, P2.7, P3.6, P3.7: Mã lệnh   - Chân ALE/PROG: Xung lập trình 10 ms   |
|  - Điều khiển chuyển mạch điện áp: Vpp = 5V (Đọc/Xóa) / Vpp = 12V (Ghi Flash)     |
+-----------------------------------------------------------------------------------+
                                          |
                                          | Nạp mã máy (Hex file)
                                          v
+-----------------------------------------------------------------------------------+
|                       MẠCH ĐỒNG HỒ BÁO THỨC ĐIỆN TỬ (AT89C51)                     |
|                                                                                   |
|  +-----------------------+     +-----------------------+     +-----------------+  |
|  |    KHỐI ĐIỀU CHỈNH    |     |  VI ĐIỀU KHIỂN CHÍNH  |     | KHỐI HIỂN THỊ   |  |
|  | - INT1 (P3.3): Mode   |---->|        AT89C51        |---->| - P0: Quét LED  |  |
|  | - INT0 (P3.2): Tăng   |     |   (Thạch anh 12 MHz)  |     | - P1: Mã đoạn   |  |
|  +-----------------------+     +-----------+-----------+     +-----------------+  |
|                                            |                                      |
|                                            v (P3.5, P3.6, P3.7)                   |
|  +-----------------------------------------------------------------------------+  |
|  | KHỐI BÁO HIỆU: IC 555 (Tạo xung) + IC 4066 (Chuyển mạch RB1, RB2) + Loa 8Ω  |  |
|  | - Mode 1: 30s, Biên độ V1, Tần số f1     - Mode 2: 30s, Biên độ 2V1, Tần số f1 |  |
|  | - Mode 3: 30s, Biên độ 2V1, Tần số 2f1                                      |  |
|  +-----------------------------------------------------------------------------+  |
|                                            ^                                      |
|                                            | Cấp nguồn +5V                        |
|  +-----------------------------------------+-----------------------------------+  |
|  | KHỐI NGUỒN LIÊN TỤC: LM7805 (5V, 1A) + Sạc tự ngắt H1061/Zener 14V + Accu 12V |  |
|  | Tổng dòng tiêu thụ hệ thống: 181 mA (8951: 160mA, CD4066: 15mA, NE555: 6mA)   |  |
|  +-----------------------------------------------------------------------------+  |
+-----------------------------------------------------------------------------------+

Kiến trúc mạch nạp vi điều khiển

Mạch nạp kết nối với máy vi tính qua cổng COM. Các đường dữ liệu và tín hiệu điều khiển được phối ghép trực tiếp tới đế cắm vi điều khiển cần nạp:

  • Cấp địa chỉ thông qua Port 1 và nửa dưới Port 2.
  • Truyền nhận dữ liệu qua Port 0.
  • Điều khiển trạng thái chân lập trình: P2.6, P2.7, P3.6, P3.7.
  • Khối nguồn mạch nạp cung cấp điện áp kép: điện áp logic 5V và điện áp lập trình $V_{PP} = 12\text{V}$ điều khiển bằng phần mềm.

Khối điều khiển và hiển thị đồng hồ

  • Khối trung tâm: Vi điều khiển AT89C51 vận hành với thạch anh 12 MHz.
  • Khối hiển thị: Bao gồm 7 LED 7 đoạn loại Anode chung và 2 LED đơn (tạo ký hiệu HG báo trạng thái hẹn giờ):
    • Port 0 (P0.0 – P0.6): Xuất mã quét cực B của transistor PNP, kích dẫn nguồn anode cho từng LED tương ứng (FCH, FAH, F6H, EEH, DEH, BEH, 7EH).
    • Port 1 (P1.0 – P1.7): Xuất dữ liệu mã 7 đoạn điều khiển các đoạn a, b, c, d, e, f, g và dấu chấm dp. Mức logic 0 làm sáng thanh LED, mức 1 làm tắt.
  • Khối điều chỉnh: Sử dụng 2 nút nhấn kết nối vào các chân ngắt ngoài:
    • Nút chọn mode kết nối chân INT1 (P3.3): Chuyển tuần tự qua 5 chế độ: Mode 1 (chỉnh giây), Mode 2 (chỉnh phút), Mode 3 (chỉnh giờ), Mode 4 (chỉnh thứ), Mode 5 (cài đặt giờ hẹn).
    • Nút hiệu chỉnh kết nối chân INT0 (P3.2): Tăng giá trị thời gian tương ứng với chế độ đang chọn. Port 2 (P2.0 – P2.4) xuất tín hiệu làm sáng LED chỉ thị mode đang kích hoạt.

Khối báo hiệu âm thanh 3 cấp độ

Khối báo chuông kích hoạt khi công tắc P3.5 ở mức logic 0 và thời gian thực trùng khớp với thời gian cài đặt. Mạch sử dụng IC định thời NE555 tạo xung âm tần kết hợp vi mạch chuyển mạch tương tự CD4066 để thay đổi điện trở định thiên cực B ($R_{B1}$ và $R_{B2}$) của transistor kích loa 8Ω:

  • Giai đoạn 1: Chuông reo trong 30 giây đầu với biên độ $V_1$, tần số âm tần $f_1$.
  • Giai đoạn 2: Nếu người dùng không tắt chuông, hệ thống tiếp tục báo 30 giây tiếp theo với biên độ tăng gấp đôi ($V_2 = 2V_1$), giữ nguyên tần số $f_1$.
  • Giai đoạn 3: Nếu vẫn chưa tắt chuông, chuông reo tiếp 30 giây với biên độ $V_2$ và tần số âm thanh tăng gấp đôi ($f_2 = 2f_1$).

Khối nguồn và mạch sạc accu dự phòng

Hệ thống sử dụng IC ổn áp LM7805 cho điện áp ra chuẩn 5V, dòng điện tải tối đa 1A. Tổng dòng tiêu thụ của toàn hệ thống được tính toán theo thông số kỹ thuật các linh kiện: $$I_{tong} = I_{8951} + I_{555} + I_{4066} = 160\text{ mA} + 6\text{ mA} + 15\text{ mA} = 181\text{ mA}$$ Dòng danh định 1A của LM7805 hoàn toàn đáp ứng mức tiêu thụ 181 mA của mạch.

Mạch sạc tự động cho accu 12V sử dụng transistor công suất H1061 kết hợp diode Zener có điện áp đánh thủng $V_Z = 14\text{V}$. Điện áp nạp tới hạn cho accu được xác định: $$V_A = V_Z - (V_{BE} + V_D) = 14\text{V} - (0{,}7\text{V} + 0{,}7\text{V}) = 12{,}6\text{V}$$ Khi điện áp lưới bình thường, điện thế sau khối nắn lớn hơn điện thế accu ($V_B > V_A$), hệ thống cấp nguồn trực tiếp qua LM7805 và mạch sạc ngắt khi accu đầy ($12{,}6\text{V}$). Khi mất điện lưới, accu tự động phóng điện duy trì hoạt động cho hệ thống mà không làm gián đoạn thời gian thực.


2. Thiết kế phần mềm và giải thuật

Phần mềm mạch nạp (Ngôn ngữ C)

Chương trình nạp trên PC thực thi vòng lặp nhận lệnh với tốc độ 9600 baud. Lưu đồ giải thuật gồm các bước tuần tự:

  1. Đọc mã nhận dạng chip qua lệnh signature() tại địa chỉ 0x31 để xác định loại vi điều khiển (0x51, 0x52, 0x55) và gán biến đếm dung lượng bytes tương ứng (4096, 8192, 20480 byte).
  2. Xóa chip (erase()): Đặt các bit điều khiển P2.6=1, P2.7=0, P3.6=0, P3.7=0, kéo $V_{PP} = 12\text{V}$ và phát xung âm tại chân /PROG trong 10 ms.
  3. Nạp dữ liệu (write()): Đọc từng byte từ tệp Hex, truyền địa chỉ qua P1 và P2, xuất dữ liệu qua P0, tạo xung lập trình và kiểm soát tốc độ truyền bằng mã điều khiển XON/XOFF.
  4. Kiểm tra mã kiểm tra (printchksum()): Cộng dồn giá trị tất cả các byte trong Flash để đối soát với tệp gốc.

Phần mềm đồng hồ báo thức (Ngôn ngữ Assembly)

Hệ thống sử dụng các vùng nhớ RAM nội để quản lý biến và trạng thái:

Địa chỉ RAM Tên biến / Định nghĩa Chức năng chi tiết
10H GIAY Lưu trữ giá trị giây thời gian thực (0 – 59)
11H PHUT Lưu trữ giá trị phút thời gian thực (0 – 59)
12H GIO Lưu trữ giá trị giờ thời gian thực (0 – 23)
13H THU Lưu trữ giá trị thứ trong tuần (2 – 8 / Chủ nhật)
14H RESHOUR Lưu trữ giá trị giờ cài đặt báo thức
15H RESMIN Lưu trữ giá trị phút cài đặt báo thức
16H RESSEC Lưu trữ giá trị giây cài đặt báo thức
20H – 26H Vùng đệm hiển thị Lưu mã 7 đoạn của đơn vị giây, chục giây, đơn vị phút, chục phút, đơn vị giờ, chục giờ, thứ
0500H – 0509H Bảng tra mã LED Lưu 10 byte mã 7 đoạn tương ứng từ số 0 đến số 9
Bdngat Biến đếm ngắt Timer 0 Đếm đủ số lần tràn Timer 0 để tạo chu kỳ chuẩn đúng 1 giây
Bdmode Biến đếm chế độ Lưu chỉ số mode cài đặt từ 1 đến 5 điều khiển bởi nút bấm INT1

Chương trình chính (MAIN) đặt tại địa chỉ 0000H, khởi tạo con trỏ ngăn xếp SP tại 30H, cấu hình các cờ ngắt và nạp giá trị hiển thị ban đầu 2 00. 00. Chương trình con phục vụ ngắt Timer 0 tại địa chỉ 000BH chịu trách nhiệm cập nhật thời gian thực mỗi giây, sau đó đối chiếu với vùng nhớ hẹn giờ (14H – 16H) để gọi chương trình con RINGBELL khi thỏa mãn điều kiện.


Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  • Chế tạo thành công mạch nạp phần cứng hỗ trợ 3 dòng vi điều khiển chuẩn của Atmel (AT89C51, AT89C52, AT89C55), kết nối ổn định với máy tính qua cổng nối tiếp COM ở tốc độ 9600 baud.
  • Xây dựng hoàn chỉnh chương trình máy tính bằng ngôn ngữ C cho phép nhận dạng chip tự động, xóa Flash, nạp mã Hex và xác thực toàn vẹn bằng mã checksum với thời gian nạp đáp ứng thông số xung lập trình chuẩn 10 ms.
  • Thi công hoàn thiện mạch đồng hồ số sử dụng AT89C51, hiển thị đầy đủ thứ, giờ, phút, giây trên 7 LED 7 đoạn quét động, tích hợp 2 LED báo chế độ hẹn giờ.
  • Hiện thực hóa thuật toán báo thức 3 giai đoạn tự động tăng âm lượng và tần số âm thanh bằng sự kết hợp giữa vi điều khiển, IC 555 và IC chuyển mạch 4066.
  • Thiết kế thành công mạch nguồn liên tục dự phòng bằng accu 12V với ngưỡng ngắt nạp tự động chính xác ở $12{,}6\text{V}$, duy trì hoạt động của hệ thống khi nguồn điện lưới bị gián đoạn.

Đóng góp của đề tài

Đồ án mang lại giải pháp tự chủ thiết bị nạp vi điều khiển giá thành thấp, giải quyết trực tiếp nhu cầu nghiên cứu, thực hành và học tập của sinh viên trong điều kiện phòng thí nghiệm nhà trường năm 2003 còn thiếu thốn trang thiết bị chuyên dụng. Đồng thời, tài liệu cung cấp một quy trình mẫu từ khâu khảo sát lý thuyết vi điều khiển, thiết kế mạch nguyên lý, vẽ mạch in, thi công phần cứng đến lập trình kết hợp giữa ngôn ngữ bậc cao (C) và hợp ngữ (Assembly).


Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế:
    • Do thời gian thực hiện giới hạn trong 8 tuần và kiến thức ban đầu về giao tiếp ngoại vi của sinh viên còn hạn chế, mạch nạp mới chỉ hỗ trợ nạp qua giao tiếp nối tiếp COM cho họ 89Cxx mà chưa mở rộng sang các chuẩn giao tiếp hiện đại hơn hoặc các dòng vi điều khiển khác như PIC, AVR.
    • Mạch đồng hồ sử dụng nhiều linh kiện rời và mạch quét LED truyền thống nên kích thước phần cứng còn tương đối cồng kềnh.
  • Hướng phát triển được tác giả đề xuất:
    • Phát triển mở rộng hệ thống đồng hồ báo giờ thành hệ thống chuông báo tự động cho trường học hoặc cơ quan với nhiều mốc thời gian trong ngày.
    • Nâng cấp phần cứng mạch nạp để hỗ trợ thêm các dòng vi điều khiển mới và tối ưu giao diện điều khiển trên máy tính.

Giá trị tham khảo

Tài liệu là nguồn tham khảo hữu ích cho:

  • Sinh viên ngành Kỹ thuật Điện - Điện tử, Tự động hóa, Cơ điện tử khi thực hiện đồ án môn học vi xử lý, đồ án tốt nghiệp liên quan đến vi điều khiển họ 8051.
  • Người học cần tài liệu hướng dẫn chi tiết về cấu trúc phần cứng MCS-51, bản đồ thanh ghi chức năng đặc biệt SFR, tập lệnh hợp ngữ Assembly và kỹ thuật lập trình Timer/Ngắt.
  • Kỹ sư thiết kế phần cứng tham khảo giải pháp mạch quét LED 7 đoạn tiết kiệm chân I/O, mạch điều chế âm thanh qua IC 555/4066 và mạch sạc accu tự động ngắt bằng transistor công suất.

Câu hỏi thường gặp

1. Mạch nạp trong đồ án hỗ trợ nạp chương trình cho những dòng vi điều khiển nào và sử dụng cổng giao tiếp nào với máy tính?
Mạch nạp được thiết kế chuyên dụng cho 3 dòng vi điều khiển bộ nhớ Flash của Atmel gồm AT89C51 (4 KB), AT89C52 (8 KB) và AT89C55 (20 KB). Mạch giao tiếp với máy tính thông qua cổng nối tiếp COM (chuẩn RS-232, COM1 hoặc COM2) với tốc độ truyền 9600 baud.

2. Cơ chế chuông báo thức của đồng hồ hoạt động theo các giai đoạn cụ thể như thế nào?
Khi thời gian thực trùng với giờ hẹn và chân P3.5 cho phép báo chuông (P3.5 = 0), chuông sẽ reo theo 3 giai đoạn:

  • Giai đoạn 1: Reo trong 30 giây với biên độ $V_1$ và tần số âm tần $f_1$.
  • Giai đoạn 2: Nếu không tắt, reo tiếp 30 giây với biên độ tăng gấp đôi ($V_2 = 2V_1$), tần số giữ nguyên $f_1$.
  • Giai đoạn 3: Nếu vẫn chưa tắt, chuông tiếp tục reo với biên độ $V_2$ và tần số tăng gấp đôi ($f_2 = 2f_1$).

3. Khối nguồn của đồng hồ xử lý tình huống mất điện lưới như thế nào và điện áp sạc cho accu được tính toán ra sao?
Khối nguồn tích hợp một bộ sạc và accu dự phòng 12V song song với bộ ổn áp LM7805. Mạch sạc dùng transistor H1061 và diode Zener 14V, tự động ngắt khi điện thế accu đạt ngưỡng $V_A = 14\text{V} - (0{,}7\text{V} + 0{,}7\text{V}) = 12{,}6\text{V}$. Khi mất điện lưới, nguồn từ accu tự động cấp cho mạch để giữ cho đồng hồ chạy liên tục mà không bị sai lệch thời gian.

4. Dữ liệu thời gian thực và thời gian hẹn giờ được phân bổ tại các ô nhớ RAM nội nào trong vi điều khiển 8951?

  • Dữ liệu thời gian thực được lưu tại: 10H (giây), 11H (phút), 12H (giờ), 13H (thứ).
  • Dữ liệu thời gian hẹn giờ được lưu tại: 14H (giờ hẹn), 15H (phút hẹn), 16H (giây hẹn).
  • Vùng đệm giải mã hiển thị LED 7 đoạn được phân bổ từ 20H đến 26H.

5. Phương pháp quét hiển thị LED 7 đoạn được thực hiện thông qua các port nào của vi điều khiển AT89C51?
Vi điều khiển sử dụng phương pháp quét động với 7 LED 7 đoạn Anode chung: Port 0 (P0.0 – P0.6) xuất mã quét điều khiển cực B của 7 transistor PNP để cấp nguồn cho từng LED; Port 1 (P1.0 – P1.7) xuất mã 7 đoạn tương ứng với các thanh a, b, c, d, e, f, g, dp để hiển thị chữ số.


Kết luận

Đồ án tốt nghiệp của sinh viên Phan Quang Thịnh đã hoàn thành trọn vẹn cả hai mục tiêu nghiên cứu: thiết kế chế tạo mạch nạp đa năng cho họ vi điều khiển AT89Cxx qua cổng COM và xây dựng thành công ứng dụng đồng hồ báo thức số có nguồn dự phòng accu. Hệ thống kết hợp chặt chẽ giữa phần cứng điều khiển ngoại vi và phần mềm lập trình (C trên máy tính, Assembly trên vi điều khiển), đáp ứng chính xác các yêu cầu kỹ thuật về định thời, quét hiển thị và cảnh báo âm thanh đa cấp. Đề tài là công trình kỹ thuật thực nghiệm có giá trị thực tiễn cao, đóng góp một tài liệu tham khảo hoàn chỉnh cho sinh viên chuyên ngành Điện tử - Tự động hóa trong việc học tập và làm chủ công nghệ vi điều khiển họ 8051.