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

Khóa luận tốt nghiệp "Thiết kế và thi công mạch tính tiền xăng dầu dùng vi điều khiển 8951" do sinh viên Trần Tấn Thạnh (MSSV: 98101252) và Nguyễn Ngọc Thái Hoà (MSSV: 98101189), lớp 98KĐĐ, thực hiện dưới sự hướng dẫn của cán bộ hướng dẫn Nguyễn Ngô Lâm tại Bộ môn Điện tử, Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, hoàn thành vào tháng 03 năm 2003.

Lý do chọn đề tài và bối cảnh thực tiễn

Trong quá trình vận hành trạm cấp phát nhiên liệu tại Việt Nam vào thời điểm nghiên cứu, các trụ bơm xăng dầu tồn tại ba thế hệ công nghệ chính:

  1. Trụ bơm cơ khí truyền thống: Hoạt động dựa trên hệ thống truyền động cơ khí gồm trục vít và bánh răng. Thiết bị có kết cấu cồng kềnh, trọng lượng lớn, vận hành phức tạp khi nhân viên phải quay cần gạt để trả các chữ số đo lường về mức 0 thủ công trước mỗi lần bơm. Quá trình ma sát làm bánh răng hao mòn theo thời gian, gây sai lệch thể tích và giảm độ chính xác của phép đo.
  2. Trụ bơm điện tử thế hệ cũ: Sử dụng các mạch logic rời rạc để cải thiện độ chính xác (sai số từ 0,1% đến 1%), tự động hóa việc định lượng theo số lít hoặc số tiền cài đặt trước và hỗ trợ thiết lập lại (reset) điện tử. Tuy nhiên, mạch điện thế hệ này tồn tại hạn chế lớn: kết cấu mạch phức tạp, chưa tích hợp khả năng lưu trữ số liệu thống kê tổng tiền và tổng lượng nhiên liệu bán được trong ngày, đồng thời cơ chế tự động dừng theo ngưỡng cài đặt còn kém linh hoạt.
  3. Giải pháp ứng dụng vi điều khiển: Sự phát triển của các dòng vi điều khiển đơn chip (như họ MCS-51) cung cấp khả năng tích hợp bộ xử lý trung tâm, bộ nhớ và các cổng vào/ra trên cùng một chip với chi phí thấp và tính năng gọn nhẹ. Nhóm tác giả lựa chọn vi điều khiển AT89C51 để xây dựng hệ thống tính tiền xăng dầu tự động nhằm nâng cao độ chính xác, thu gọn thể tích mạch phần cứng và bổ sung các tính năng quản lý bảo mật doanh thu.

Mục tiêu và nhiệm vụ nghiên cứu

Văn bản xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Nghiên cứu khảo sát nguyên tắc hoạt động cơ - thủy lực của trạm bơm xăng dầu thực tế (cơ chế hoạt động của van đóng/mở, van một chiều áp suất, cò bơm tay cầm và bộ cảm biến lưu lượng cánh quạt).
  2. Nghiên cứu cấu trúc phần cứng, tổ chức bộ nhớ, tập lệnh và các khối chức năng (Timer, Interrupt, I/O Port) của vi điều khiển AT89C51/8051.
  3. Thiết kế sơ đồ nguyên lý và thi công phần cứng các khối: khối vi điều khiển trung tâm, khối tạo xung cảm biến (dùng LED hồng ngoại, photodiode và IC 555), khối hiển thị (LED 7 đoạn, IC giải mã 74LS47, IC quét 74154, IC chốt 74573), khối bàn phím ma trận và khối điều khiển động cơ qua rơ-le.
  4. Xây dựng giải thuật và lập trình toàn bộ chương trình điều khiển hệ thống bằng hợp ngữ (Assembly MCS-51), tích hợp các chế độ bơm tự do, bơm cài đặt trước số tiền, bơm cài đặt trước số lít, chế độ phím chức năng định mức và tính năng lưu trữ, bảo mật dữ liệu bán hàng.
  5. Thử nghiệm trên bo mạch thử nghiệm (Textboard), tiến hành thi công mạch in thực tế và đánh giá sai số vận hành.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Mạch điện tử tự động hóa quá trình đo thể tích, tính toán tiền theo đơn giá và điều khiển đóng/ngắt cấp phát nhiên liệu dựa trên vi điều khiển AT89C51.
  • Phạm vi kỹ thuật: Đề tài giới hạn tập trung giải quyết phần mạch điện tử điều khiển và xử lý tín hiệu logic. Trong mô hình thực nghiệm của khóa luận, nhóm tác giả sử dụng bộ tạo xung quang điện mô phỏng tín hiệu lưu lượng và dùng bóng đèn điện một chiều (DC) thông qua rơ-le đóng/ngắt để đại diện cho động cơ bơm thực tế; các cơ cấu cơ khí, van áp suất và đường ống dẫn thủy lực được xem như đã đạt chuẩn kỹ thuật.
  • Phạm vi thời gian: Đề tài được triển khai trong thời gian 16 tuần, từ khâu nhận nhiệm vụ, nghiên cứu lý thuyết, lắp ráp phần cứng, viết chương trình hợp ngữ đến khi hoàn tất nghiệm thu vào tháng 03/2003.

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

Khung lý thuyết và nguyên tắc kỹ thuật

Nghiên cứu vận dụng lý thuyết điều khiển nhúng trên nền tảng vi điều khiển họ MCS-51 và nguyên lý đo lường thủy lực trong ngành xăng dầu:

  • Cơ chế thủy lực trạm bơm xăng: Hệ thống cơ sở gồm động cơ hút nhiên liệu lên bồn chuẩn bị. Van điện từ $X$ mở khi cuộn hút được cấp điện qua công tắc tải $S_5$ gắn ở tay cầm; van $X'$ mở cơ khí thông qua lực bóp cò; hai van cơ khí một chiều $Y$ và $Z$ hoạt động dựa trên mức chênh lệch áp suất. Cảm biến đo thể tích sử dụng cơ cấu cánh quạt $Q$, hệ thống thanh truyền $T$ và bánh xe $B$ để chuyển đổi dòng chảy nhiên liệu thành số vòng quay cơ học tương ứng với các độ phân giải thể tích (1/10 lít, 1/100 lít hoặc 1/1000 lít).
  • Kiến trúc phần cứng vi điều khiển 8051/8951: Cấu trúc Harvard với không gian bộ nhớ chương trình và bộ nhớ dữ liệu độc lập. Bộ nhớ trong gồm 4 Kbyte ROM Flash (ở AT89C51) và 128 byte RAM nội (chia thành 4 bank thanh ghi $R_0-R_7$, vùng RAM định địa chỉ bit từ $20H$ đến $2FH$, và vùng RAM đa dụng từ $30H$ đến $7FH$).
  • Hệ thống thanh ghi chức năng đặc biệt (SFR):
    • Thanh ghi chế độ Timer TMOD ($89H$) và điều khiển Timer TCON ($88H$): Cài đặt Timer 1 hoạt động ở Mode 1 (bộ đếm 16-bit) để đếm các xung sườn âm nhận từ chân ngoài $P3.5$ ($T_1$).
    • Hệ thống ngắt: Thanh ghi cho phép ngắt IE ($A8H$) và mức ưu tiên ngắt IP ($B8H$). Khóa luận cấu hình chân ngắt ngoài $INT1$ ($P3.3$) để tiếp nhận lệnh yêu cầu xóa dữ liệu tổng tích lũy.

Phương pháp nghiên cứu

Khóa luận kết hợp đồng thời ba phương pháp kỹ thuật thực nghiệm:

  1. Phương pháp nghiên cứu tài liệu: Thu thập, phân tích tài liệu kỹ thuật từ các sổ tay linh kiện bán dẫn, vi điều khiển của hãng Intel, Atmel, Motorola; tài liệu lập trình hợp ngữ MCS-51; thông tin tra cứu trên mạng Internet và đĩa CD kỹ thuật.
  2. Phương pháp quan sát thực địa: Khảo sát trực tiếp cơ cấu cơ khí, chu trình cấp phát nhiên liệu và giao diện thao tác người dùng tại các trạm bơm xăng dầu đang vận hành trên địa bàn Thành phố Hồ Chí Minh.
  3. Phương pháp thực nghiệm kỹ thuật: Thiết kế từng khối chức năng riêng lẻ, thực hiện lắp ráp và đo đạc dạng sóng xung trên Textboard. Toàn bộ mã điều khiển được viết bằng hợp ngữ, nạp trực tiếp vào chip AT89C51 qua mạch nạp chuyên dụng để kiểm tra tính đúng đắn trước khi làm mạch in hoàn chỉnh.

Kế hoạch tiến độ thực hiện

Quá trình nghiên cứu được phân bổ trong 16 tuần:

  • Tuần 1: Xác định tên đề tài, thu thập tài liệu ban đầu.
  • Tuần 2 - 3: Phân tích nhiệm vụ, khảo sát nguyên lý trạm xăng, lựa chọn phương án kỹ thuật tối ưu.
  • Tuần 4 - 8: Thiết kế sơ đồ nguyên lý, lập trình hợp ngữ và kiểm thử từng module chức năng trên Textboard.
  • Tuần 9: Thi công mạch in phần cứng, hàn linh kiện và kiểm tra hoạt động toàn hệ thống; lập đề cương chi tiết.
  • Tuần 10 - 14: Viết thuyết minh khóa luận.
  • Tuần 15 - 16: Hiệu chỉnh báo cáo theo hướng dẫn của giảng viên, in ấn và nghiệm thu.

Thiết kế và triển khai

Phân tích và lựa chọn phương án thiết kế

Khóa luận đã so sánh ba phương án kỹ thuật để xác định giải pháp phù hợp nhất:

Tiêu chí kỹ thuật Phương án 1: Trụ bơm cơ khí Phương án 2: Mạch số rời rạc Phương án 3: Vi điều khiển AT89C51 (Lựa chọn)
Độ chính xác Thấp, sai số tăng theo độ mòn cơ khí Cao (0,1% - 1%) Cao (0,1% - 1%), xung đếm đồng bộ
Kích thước, trọng lượng Rất cồng kềnh, khối lượng lớn Cồng kềnh do nhiều IC số kết hợp Rất gọn nhẹ, tích hợp cao trên một bo mạch
Khả năng cài đặt trước Cơ cấu bánh răng giới hạn Có mạch hẹn nhớ tự động ngắt Linh hoạt: cài đặt theo tiền, lít, phím tắt
Quản lý dữ liệu bán hàng Không lưu trữ được Không có chức năng lưu trữ tổng Tự động cộng dồn, lưu RAM nội, bảo mật mật mã
Thao tác vận hành Phải quay cần trả số về 0 thủ công Tự động reset bằng điện tử Tự động hóa hoàn toàn qua bàn phím ma trận

Chương trình điều khiển của hệ thống không vượt quá dung lượng 4 Kbyte ROM nội, do đó việc lựa chọn AT89C51 không cần sử dụng thêm bộ nhớ EPROM/RAM ngoài, giúp tối giản đường dây mạch in và giảm chi phí sản xuất.

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

+-------------------------------------------------------------+
|                      KHỐI NGUỒN (LM7805)                    |
|             (Cấp nguồn ổn áp +5VDC riêng biệt)              |
+------------------------------+------------------------------+
                               |
                               v
+------------------+   +-------------------+   +------------------+
| KHỐI BÀN PHÍM    |   | KHỐI ĐIỀU KHIỂN   |   | BỘ PHÁT HIỆN     |
| (Ma trận 4x4     |-->| TRUNG TÂM         |<--| XUNG             |
| & phím mở rộng)  |   | (AT89C51)         |   | (LED quang + 555)|
+------------------+   +---------+---------+   +------------------+
                                 |
                 +---------------+---------------+
                 |                               |
                 v                               v
       +------------------+            +-------------------+
       | KHỐI HIỂN THỊ    |            | KHỐI CHẤP HÀNH    |
       | (14 LED 7 đoạn,  |            | (Mạch Darlington  |
       | 74LS47, SN74154, |            | & Rơ-le điều      |
       | 74LS573)         |            | khiển Motor)      |
       +------------------+            +-------------------+

Hệ thống được cấu thành từ 6 khối mạch chi tiết:

  1. Khối điều khiển trung tâm (CPU): Sử dụng IC AT89C51 chạy dao động thạch anh tần số $12\text{ MHz}$ (tương ứng chu kỳ máy $1\ \mu\text{s}$). Mạch reset sử dụng cấu hình $R-C$ ($R = 8,2\text{ k}\Omega$, tụ hóa $10\ \mu\text{F}$) nối vào chân $9$ (RST).
  2. Khối phát hiện xung lưu lượng:
    • Sử dụng một đĩa đục lỗ gắn đồng trục động cơ cắt ngang qua khe hở giữa nguồn phát và bộ thu quang điện.
    • Phát hồng ngoại: LED hồng ngoại phát sóng bước sóng $\lambda = 900 \pm 20\text{ nm}$. Cài đặt dòng định mức qua LED $I_F = 10\text{ mA}$ và điện áp thuận $V_F = 1,3\text{ V}$. Điện trở hạn dòng tính toán: $$R = \frac{V_{CC} - V_F}{I_F} = \frac{5 - 1,3}{10 \times 10^{-3}} = 370\ \Omega \quad \Rightarrow \text{chọn } R = 390\ \Omega$$
    • Thu hồng ngoại: Photodiode thu có bước sóng nhạy $\lambda_P = 900\text{ nm}$. Mắc điện trở kéo $R = 330\text{ k}\Omega$ để khi bị che khuất, điện áp ngõ vào đạt xấp xỉ $1,8\text{ V}$ (lớn hơn ngưỡng $1/3\ V_{CC} \approx 1,67\text{ V}$).
    • Sửa dạng xung (IC 555): Đấu nối theo mạch đa hài đơn ổn (monostable). Tín hiệu từ Photodiode kích vào chân số 2. Khi có xung âm kích hoạt, chân số 3 xuất xung dương chuẩn có độ rộng: $$t_w = 1,1 \times R_A \times C = 1,1 \times (1 \times 10^3) \times (1 \times 10^{-6}) = 1,1\text{ ms}$$ Độ rộng $1,1\text{ ms}$ đảm bảo thời gian xung nhỏ hơn khoảng thời gian giữa hai lần đục lỗ liên tiếp, đưa trực tiếp vào chân $T_1$ ($P3.5$) của AT89C51.
  3. Khối hiển thị:
    • Gồm 14 LED 7 đoạn loại Anode chung (CA): 4 LED hiển thị đơn giá, 4 LED hiển thị số lít (độ phân giải tối đa $99,99$ lít), và 6 LED hiển thị tổng số tiền.
    • Hiển thị đơn giá: Dữ liệu đơn giá được chốt cố định qua 4 IC chốt 8-bit 74LS573 điều khiển bởi nửa byte thấp của Port 2 ($P2.0 - P2.3$).
    • Hiển thị số lít và số tiền: Áp dụng giải pháp quét LED để tiết kiệm cổng I/O. Nửa byte cao Port 0 ($P0.4 - P0.7$) đưa vào IC giải mã 74LS47 giải mã BCD sang mã 7 đoạn. Nửa byte thấp Port 0 ($P0.0 - P0.3$) đưa vào IC giải mã 4 sang 16 (SN74154) để kích mở lần lượt 10 LED qua các Transistor PNP đệm dòng loại A1015 (chế độ bão hòa, điện trở chân B $R_B = 4,7\text{ k}\Omega$). Điện trở hạn dòng mỗi thanh LED chọn $R = 270\ \Omega$ (cho dòng mỗi đoạn $15\text{ mA}$, sụt áp trên đoạn $1,6\text{ V}$).
  4. Khối bàn phím:
    • Ma trận 16 phím ($4 \times 4$) kết nối trực tiếp với Port 1 ($P1.0 - P1.3$ quét hàng, $P1.4 - P1.7$ nhận cột).
    • 4 phím chức năng mở rộng đấu nối qua các đường $P3.0, P3.1, P3.2, P3.3$ gồm: phím chọn mức định sẵn ($F1, F2$), phím dấu nhân/chia, và phím xóa ký tự (Del).
    • Phím $D$ đóng vai trò công tắc Start/Stop (thay cho cò bơm). Phím $E$ dùng để tra cứu tổng doanh thu. Phím ENTER dùng để xác nhận dữ liệu và kết thúc chu trình bơm.
  5. Khối điều khiển động cơ:
    • Tín hiệu điều khiển xuất ra từ chân $P3.7$ qua điện trở cực gốc $R_B = 10\text{ k}\Omega$ điều khiển cặp Transistor NPN loại C828 mắc theo cấu hình Darlington (tổng hệ số khuếch đại dòng $\beta_1 \beta_2 = 100 \times 100 = 10.000$).
    • Cặp Darlington đóng/ngắt cuộn dây của Rơ-le $5\text{ V}/2\text{ A}$ (điện trở cuộn dây $100\ \Omega$, dòng làm việc $40\text{ mA}$). Một Diode mắc song song ngược với cuộn dây nhằm triệt tiêu sức điện động cảm ứng, bảo vệ transistor không bị đánh thủng.
  6. Khối nguồn nuôi:
    • Hệ thống sử dụng biến áp sắt từ hạ áp từ lưới điện $220\text{ VAC}$ xuống $6\text{ VAC}/3\text{ A}$, chỉnh lưu cầu và làm phẳng qua tụ lọc.
    • Sử dụng hai IC ổn áp LM7805 vỏ kim loại TO-3 có gắn cánh tản nhiệt để tạo ra hai đường nguồn $+5\text{ VDC}$ ($\pm 10%$) riêng biệt: một nhánh cấp cho vi điều khiển và khối tạo xung; một nhánh cấp riêng cho khối hiển thị nhằm chống sụt áp khi các LED quét đồng thời. Tổng dòng tải cực đại tính toán: $$I_{\text{tổng}} = 160\text{ (CPU)} + 300\text{ (4 IC 573)} + 13\text{ (7447)} + 56\text{ (74154)} + 1120\text{ (14 LED)} + 12\text{ (555)} + 40\text{ (Relay)} = 1696\text{ mA} \approx 1,7\text{ A}$$ (Văn bản tính mức công suất danh định $1476\text{ mA}$, đáp ứng tốt trong định mức cung cấp của biến áp $3\text{ A}$ và 2 IC LM7805 1A).

Thiết kế phần mềm và thuật toán điều khiển

Chương trình được phát triển hoàn toàn bằng hợp ngữ cho vi điều khiển 8051 với các khối chức năng chính:

  • Khởi tạo hệ thống: Cấu hình Timer 1 hoạt động ở chế độ Counter 16-bit, xóa cờ, nạp giá trị ban đầu cho các thanh ghi hiển thị đơn giá 0000, kích hoạt ngắt ngoài $INT1$.
  • Xử lý quét phím và chống rung (Debounce): Xuất giá trị $0FH$ ra Port 1, đọc lại trạng thái logic. Khi phát hiện phím nhấn, chương trình tạo độ trễ vài mili-giây (ms) để loại bỏ rung cơ học, sau đó đọc lại nhằm xác nhận tính hợp lệ trước khi tra bảng mã phím.
  • Thuật toán bảo mật đơn giá: Người vận hành bắt buộc phải nhập đúng mật mã lưu sẵn. Nếu nhập sai, hệ thống yêu cầu nhấn Del để nhập lại. Quá trình nhập đơn giá không cho phép nhập chữ số 0 đầu tiên. Sau khi nhập đủ 4 chữ số, nhấn ENTER để xuất xung chốt dữ liệu vào 4 IC 74LS573.
  • Thuật toán quy đổi và tính toán:
    • Chế độ bơm thường (Phím A): Đọc giá trị 16-bit từ Timer 1, chia giải mã thành số BCD đưa ra hiển thị trên 4 LED thể tích. Nhân số lít đo được với đơn giá để tính ra số tiền tương ứng, cập nhật liên tục lên 6 LED tiền. Tự động ngắt khi đếm đạt ngưỡng $99,99$ lít.
    • Chế độ cài đặt số tiền (Phím B): Nhập số tiền từ bàn phím (yêu cầu từ 4 chữ số trở lên), chương trình gọi hàm chia số tiền cho đơn giá để tính ngược ra số lít giới hạn cần ngắt. Khi bơm đạt ngưỡng số lít này, chân $P3.7$ tự động ngắt rơ-le.
    • Chế độ cài đặt số lít (Phím C): Nhận số lít đặt trước, đếm xung Counter đến khi trùng khớp thì dừng động cơ.
  • Tích lũy dữ liệu và ngắt xóa: Nhấn phím ENTER sau mỗi phiên bơm để cộng dồn thể tích và thành tiền vào các ô nhớ định vị trong RAM nội. Khi cần xem doanh thu, nhấn phím $E$. Để xóa dữ liệu tổng, người quản lý ấn nút xóa kích hoạt ngắt $INT1$ và phải nhập chính xác mật mã bảo mật thì vi điều khiển mới thiết lập các ô nhớ RAM về 0.

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

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

Chương I trình bày tổng quan về đề tài:

  • Đặt vấn đề về tính cấp thiết của việc tự động hóa các thao tác cân, đo, đong, đếm trong đời sống hàng ngày nhằm loại bỏ sai sót và giảm nhẹ sức lao động con người.
  • Khẳng định tầm quan trọng của việc đưa môn học vi điều khiển và lập trình hợp ngữ vào chương trình đào tạo kỹ thuật tại các trường đại học.
  • Xác định giới hạn đề tài ở việc mô phỏng xử lý phần điện (dùng bộ tạo xung giả lập và bóng đèn DC thay động cơ thực tế).
  • Khảo sát sơ đồ nguyên lý cơ - thủy lực của cột bơm xăng dầu thực tế: phân tích hoạt động phối hợp của van điện từ $X$, van một chiều $Y$, $Z$, công tắc phụ $S_5$, cần bóp tay cầm và cơ cấu cánh quạt đo thể tích $Q$.

Chương II: Giới thiệu một số linh kiện

Chương II hệ thống hóa toàn bộ lý thuyết phần cứng làm nền tảng cho việc thiết kế:

  • Khảo sát lịch sử phát triển vi điều khiển từ TMS1000 (1971), 8048 (1976) đến họ 8-bit MCS-51 (1980).
  • Trình bày sơ đồ chân, cấu trúc CPU, thanh ghi tích lũy $A$, $B$, từ trạng thái chương trình PSW, con trỏ ngăn xếp SP, và con trỏ dữ liệu DPTR.
  • Chi tiết về phân bổ bộ nhớ: 128 byte RAM nội (chia các bank thanh ghi, RAM định địa chỉ bit, RAM đa dụng) và các thanh ghi chức năng đặc biệt SFR.
  • Khảo sát hoạt động của 2 bộ định thời 16-bit (Timer 0, Timer 1) qua các thanh ghi TMOD, TCON ở 4 chế độ hoạt động (Mode 0, Mode 1, Mode 2 tự nạp lại, Mode 3 tách timer).
  • Phân tích cổng nối tiếp UART (thanh ghi SBUF, SCON, các chế độ tốc độ baud) và cấu trúc 5 nguồn ngắt (2 ngắt ngoài, 2 ngắt timer, 1 ngắt cổng nối tiếp) qua các thanh ghi IE, IP.
  • Khảo sát cấu tạo và nguyên lý của IC định thời 555, đi-ốt phát quang hồng ngoại và Photodiode thu sóng quang học.

Chương III: Thiết kế

Chương III trình bày quá trình tính toán và thiết kế sơ đồ nguyên lý:

  • Đưa ra và phân tích 3 phương án thiết kế (cơ khí, mạch điện tử rời rạc, vi điều khiển AT89C51), đi đến quyết định chọn phương án 3.
  • Xây dựng sơ đồ khối toàn hệ thống và thuyết minh nguyên lý phối hợp giữa khối xử lý trung tâm, bàn phím, hiển thị, tạo xung, khối nguồn và khối điều khiển động cơ.
  • Tính toán giá trị linh kiện chi tiết: điện trở hạn dòng LED hồng ngoại ($R = 390\ \Omega$), điện trở phân áp Photodiode ($R = 330\text{ k}\Omega$), hằng số thời gian mạch đơn ổn 555 ($t_w = 1,1\text{ ms}$ với $R_A = 1\text{ k}\Omega, C = 1\ \mu\text{F}$).
  • Thiết kế mạch hiển thị ghép nối 14 LED 7 đoạn dùng phương pháp kết hợp chốt dữ liệu (74LS573) cho đơn giá và quét LED giải mã (74LS47 và SN74154) cho hàng tiền, hàng lít.
  • Thiết kế mạch điều khiển tải qua tầng khuếch đại Darlington Transistor C828 và rơ-le $5\text{ V}/2\text{ A}$.
  • Tính toán phụ tải khối nguồn, chọn lựa biến áp $6\text{ VAC}/3\text{ A}$ kết hợp IC ổn áp LM7805 vỏ kim loại TO-3.

Chương IV: Phần mềm điều khiển

Chương IV trình bày toàn bộ kiến trúc phần mềm và lưu đồ giải thuật:

  • Thiết lập chu trình hoạt động của chương trình chính sau reset hệ thống.
  • Xây dựng lưu đồ giải thuật cho các phân đoạn chức năng độc lập:
    • Lưu đồ giải thuật chương trình quét và nhận dạng phím ma trận.
    • Lưu đồ giải thuật chương trình nhập và thay đổi đơn giá có kiểm tra mật mã.
    • Lưu đồ giải thuật cho chế độ đếm bình thường (bơm tự do).
    • Lưu đồ giải thuật cho chế độ nhập số tiền cần bơm và tự động ngắt.
    • Lưu đồ giải thuật cho chế độ nhập số lít cài đặt trước.
    • Lưu đồ chương trình hiển thị tổng doanh thu và chương trình phục vụ ngắt ngoài $INT1$ xóa bộ nhớ RAM nội.
  • Toàn văn mã nguồn điều khiển viết bằng hợp ngữ MCS-51 thực thi trên phần cứng đã thiết kế.

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

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

  1. Hoàn thiện thiết kế và thi công phần cứng: Nhóm tác giả đã chế tạo thành công bo mạch điều khiển hoạt động ổn định với vi điều khiển AT89C51, tích hợp đầy đủ các khối chức năng giao tiếp hiển thị 14 LED 7 đoạn, bàn phím ma trận, cảm biến xung quang điện và mạch điều khiển công suất rơ-le.
  2. Tham số kỹ thuật đo đạc thực tế:
    • Thời gian tồn tại của xung chuẩn do mạch đơn ổn IC 555 tạo ra đạt chính xác $t_w = 1,1\text{ ms}$, đáp ứng tiêu chuẩn nhận xung kích cạnh xuống tại chân Timer 1 ($P3.5$).
    • Dòng tiêu thụ thực tế đo đạc của toàn bộ hệ thống ở chế độ quét sáng tối đa đạt xấp xỉ $1,48\text{ A}$, nguồn cấp ổn định $+5\text{ VDC} \pm 10%$.
    • Tần số đáp ứng của hệ thống đảm bảo đo lường chính xác với sai số dưới $1%$.
    • Giới hạn thể tích hiển thị đơn lẻ đạt tối đa $99,99$ lít với độ trễ phản hồi ngắt bơm tức thời.
  3. Chức năng điều khiển và vận hành:
    • Thực hiện đầy đủ 3 chế độ cấp phát: bơm tự do (phím $A$), bơm định mức tiền (phím $B$), và bơm định mức thể tích (phím $C$).
    • Cung cấp phím công tắc $D$ thay thế chức năng bóp cò cơ khí, cho phép tạm dừng và tiếp tục cấp phát linh hoạt.
    • Quản lý bảo mật: Thiết lập cơ chế xác thực mật mã khi thay đổi đơn giá xăng dầu và khi thực hiện xóa số liệu lưu trữ doanh thu trong RAM nội.

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

  • Khóa luận đã chuyển đổi thành công nguyên lý đo lường xăng dầu từ hệ thống cơ khí và mạch rời cồng kềnh sang cấu trúc nhúng trên vi điều khiển 8-bit, giúp thu nhỏ diện tích mạch in, hạ giá thành linh kiện và tiết kiệm điện năng.
  • Tự động hóa hoàn toàn phép tính nhân giữa thể tích và đơn giá theo thời gian thực mà không cần người bán phải tính toán thủ công.
  • Đưa ra giải pháp mạch quét kết hợp chốt hiển thị tối ưu, giải quyết triệt để vấn đề hạn chế số lượng chân vào/ra (I/O) trên dòng vi điều khiển 40 chân.
  • Tài liệu đóng góp tập hợp các lưu đồ giải thuật hợp ngữ hoàn chỉnh về xử lý ma trận phím, thuật toán chia/nhân số lớn và giao tiếp ngoại vi cho sinh viên chuyên ngành kỹ thuật điện tử tham khảo.

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

Hạn chế của đề tài

Dựa trên phạm vi và các điều kiện thực hiện được ghi nhận trong văn bản:

  • Tính chất mô hình thí nghiệm: Đề tài chỉ tập trung xử lý phần mạch điện tử, chưa kết nối trực tiếp với đường ống thủy lực, vòi bơm áp lực cao và van điện từ thực tế ngoài hiện trường; hệ thống mới sử dụng bộ tạo xung đĩa quay quang học giả lập và tải bóng đèn DC qua rơ-le.
  • Giới hạn hiển thị và dung tích: Khối hiển thị số lít chỉ thiết kế 4 LED 7 đoạn, do đó thể tích tối đa cho một phiên bơm bị giới hạn ở mức $99,99$ lít, chưa đáp ứng các nhu cầu bơm khối lượng lớn cho xe bồn hoặc tàu thuyền.
  • Dung lượng lưu trữ tạm thời: Số liệu tổng doanh thu và thể tích được lưu trên RAM nội của vi điều khiển AT89C51. Mặc dù lệnh reset không làm thay đổi RAM nội, nhưng nếu xảy ra sự cố mất nguồn hoàn toàn, dữ liệu lưu trữ sẽ bị mất do không có pin dự phòng (battery backup) hoặc bộ nhớ bất biến (EEPROM).

Hướng phát triển đề tài

Văn bản xác định các định hướng nâng cấp trong tương lai:

  • Mở rộng giao tiếp với bộ nhớ lưu trữ ngoài không bay hơi (như EEPROM chuẩn I2C dòng 24Cxx) nhằm đảm bảo dữ liệu bán hàng an toàn tuyệt đối khi mất điện lưới.
  • Tích hợp cổng truyền thông nối tiếp RS-232/UART để truyền số liệu thống kê về máy vi tính trung tâm, cho phép người quản lý giám sát nhiều trụ bơm xăng cùng lúc.
  • Lắp đặt thêm máy in nhiệt mini để in hóa đơn thanh toán trực tiếp cho khách hàng sau mỗi phiên bơm.
  • Nâng cấp cơ cấu cảm biến lưu lượng thực tế và thiết kế mạch công suất đóng/ngắt trực tiếp cho các van điện từ cao áp và động cơ bơm công nghiệp ba pha.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo kỹ thuật hữu ích đối với:

  • Sinh viên ngành Kỹ thuật Điện - Điện tử, Tự động hóa và Cơ điện tử: Cung cấp tài liệu mẫu mực về thiết kế hệ thống nhúng từ khâu tính toán lý thuyết linh kiện bán dẫn cơ bản đến thi công mạch in thực tế.
  • Người nghiên cứu kiến trúc MCS-51 và lập trình hợp ngữ (Assembly): Các chương trình con quét ma trận phím chống nảy, giải mã hiển thị LED 7 đoạn, thuật toán nhân/chia nhiều byte và xử lý ngắt ngoài được trình bày chi tiết bằng lưu đồ và dòng lệnh hợp ngữ, có thể ứng dụng trực tiếp cho các đề tài đo lường, đếm sản phẩm hoặc định lượng tự động.
  • Các phần nội dung đáng tham khảo nhất:
    • Chương II: Phần tổng hợp chi tiết cấu trúc phần cứng, bản đồ bộ nhớ RAM nội và cách thiết lập các thanh ghi TMOD, TCON, IE, IP.
    • Mục III.4 & III.5 (Chương III): Phương pháp tính toán điện trở phân cực cho Transistor A1015, Transistor Darlington C828, mạch đơn ổn IC 555 và giải pháp ghép nối kết hợp giữa 74LS573, 74LS47 và SN74154.
    • Chương IV: Hệ thống lưu đồ giải thuật cho các chế độ làm việc và cơ chế bảo mật mật mã trong hệ thống nhúng.

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

1. Tại sao khóa luận chọn IC vi điều khiển AT89C51 thay vì bộ vi xử lý chuyên dụng?

Văn bản chỉ rõ bộ vi xử lý (Microprocessor) thuần túy chỉ chứa CPU, khi thiết kế hệ thống bắt buộc phải ghép nối thêm bộ nhớ dữ liệu (RAM ngoài), bộ nhớ chương trình (EPROM ngoài) và các chip quản lý vào/ra ngoại vi, dẫn đến cấu trúc mạch cồng kềnh, phức tạp và chỉ phù hợp cho hệ thống lớn. Trong khi đó, vi điều khiển AT89C51 tích hợp sẵn CPU, 4 Kbyte ROM Flash, 128 byte RAM nội và 4 cổng I/O trên một chip duy nhất, dung lượng hoàn toàn đáp ứng đủ chương trình điều khiển của cột bơm mà không cần mở rộng bộ nhớ ngoài, giúp mạch in nhỏ gọn, giảm chi phí và nâng cao tính ổn định.

2. Nguyên lý tạo và chuẩn hóa xung lưu lượng trong mô hình thực nghiệm được thực hiện như thế nào?

Mô hình sử dụng cơ cấu cảm biến quang học gồm một LED hồng ngoại phát sóng ($\lambda = 900\text{ nm}$) và một Photodiode thu, ở giữa là đĩa đục lỗ gắn với trục động cơ. Khi đĩa quay, các lỗ cản làm ngắt quãng tia hồng ngoại, tạo ra các biến thiên điện áp trên Photodiode. Tín hiệu này được đưa vào chân số 2 của IC định thời 555 mắc theo cấu hình mạch đa hài đơn ổn. Với các thông số $R_A = 1\text{ k}\Omega$ và $C = 1\ \mu\text{F}$, IC 555 tạo ra các xung vuông chuẩn ở chân số 3 có độ rộng cố định $t_w = 1,1\text{ ms}$, đưa trực tiếp vào chân $P3.5$ ($T_1$) của AT89C51 để vi điều khiển đếm xung theo cơ chế Counter.

3. Hệ thống giải quyết bài toán thiếu chân I/O khi phải điều khiển tới 14 LED 7 đoạn như thế nào?

Để điều khiển 14 LED 7 đoạn mà vẫn tiết kiệm cổng vi điều khiển:

  • Đối với 4 LED hiển thị đơn giá cố định: Sử dụng 4 IC chốt 74LS573 nối với chân $P2.0 - P2.3$, chỉ nạp dữ liệu một lần khi cài đặt hoặc thay đổi đơn giá rồi khóa chốt.
  • Đối với 10 LED hiển thị số lít và số tiền liên tục thay đổi: Sử dụng phương pháp quét LED. Nửa byte cao Port 0 ($P0.4 - P0.7$) cấp dữ liệu BCD cho IC 74LS47 để giải mã sang 7 thanh LED; nửa byte thấp Port 0 ($P0.0 - P0.3$) đưa vào IC giải mã 4 sang 16 (SN74154) để kích mở lần lượt từng LED qua các Transistor đệm dòng PNP A1015.

4. Cơ chế bảo mật dữ liệu đơn giá và số liệu doanh thu trong hệ thống hoạt động ra sao?

Hệ thống thiết lập hàng rào bảo mật bằng mật mã phần mềm:

  • Muốn nhập hoặc thay đổi đơn giá xăng dầu, người thao tác phải nhập chính xác mật mã từ bàn phím. Nếu nhập sai, hệ thống từ chối cho phép sửa đổi và phải bấm phím Del để nhập lại từ đầu; chương trình cũng ngăn chặn việc nhập chữ số 0 đầu tiên.
  • Khi cần xóa toàn bộ số liệu tổng doanh thu và tổng số lít đã tích lũy trong RAM nội, người quản lý bấm nút xóa nối vào chân ngắt ngoài $INT1$ ($P3.3$) và bắt buộc phải nhập đúng mật mã xác thực thì chương trình phục vụ ngắt (ISR) mới thực hiện thao tác xóa dữ liệu về 0.

5. Phím D trên bàn phím đảm nhiệm vai trò gì trong quá trình vận hành?

Phím $D$ được thiết kế để thay thế chức năng của cò bóp trên tay cầm bơm thực tế và hoạt động ở chế độ Start/Stop. Sau khi người dùng đã lựa chọn xong chế độ bơm (bơm tự do qua phím $A$, đặt tiền qua phím $B$, đặt lít qua phím $C$), nhấn phím $D$ lần thứ nhất để kích hoạt rơ-le cho động cơ bơm hoạt động (xăng chảy). Nếu muốn tạm dừng giữa chừng, nhấn phím $D$ lần thứ hai; muốn tiếp tục bơm thì nhấn tiếp phím $D$. Khi hệ thống đạt đến ngưỡng cài đặt trước, máy sẽ tự động ngắt rơ-le và chờ người vận hành nhấn ENTER để ghi nhận dữ liệu vào RAM nội.


Kết luận

Khóa luận tốt nghiệp của sinh viên Trần Tấn Thạnh và Nguyễn Ngọc Thái Hoà đã giải quyết thành công bài toán tự động hóa đo lường và tính tiền nhiên liệu bằng việc ứng dụng vi điều khiển 8-bit AT89C51. Công trình kết hợp hài hòa giữa cơ sở lý thuyết vi xử lý, kỹ thuật thiết kế mạch số - tương tự và lập trình hợp ngữ nhằm tạo ra một hệ thống điều khiển có độ chính xác cao, kết cấu gọn nhẹ, chi phí thấp và hỗ trợ nhiều chế độ cấp phát linh hoạt. Toàn bộ tính toán phần cứng, lưu đồ giải thuật và mô hình thực nghiệm được nhóm tác giả xây dựng chi tiết, tạo lập nguồn tài liệu kỹ thuật có giá trị tham khảo thiết thực cho các nghiên cứu ứng dụng vi điều khiển trong tự động hóa công nghiệp.