Giới thiệu dự án

Ngành bán lẻ xăng dầu tại các thị trường đang phát triển đòi hỏi tính minh bạch, tốc độ phục vụ nhanh và độ tin cậy cơ điện tử cao. Trong giai đoạn chuyển giao công nghệ từ các trụ bơm cơ khí truyền thống sang hệ thống đo lường tự động, nhu cầu tự động hóa khâu đo lường thể tích và quy đổi tài chính theo thời gian thực trở thành điều kiện tiên quyết đối với các doanh nghiệp phân phối nhiên liệu.

+-----------------------------------------------------------------------+
|                 HỆ THỐNG ĐO VÀ TÍNH TIỀN TỰ ĐỘNG                     |
|                                                                       |
|  [ Bộ Cảm Biến Xung ] ---> [ Khối Xử Lý Trung Tâm ] ---> [ Hiển Thị ]  |
|     (Hồng ngoại/NE555)           (AT89C51 @ 12MHz)         (14x LED 7) |
|                                          |                            |
|                                          v                            |
|                               [ Điều Khiển Động Cơ ]                  |
|                                  (Relay + Van X/Y/Z)                  |
+-----------------------------------------------------------------------+

Vấn đề thực tiễn và điểm nghẽn kỹ thuật

Các trạm bơm xăng dầu sử dụng công nghệ cơ khí cũ bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Hao mòn cơ khí và sai số tích lũy: Cơ cấu truyền động bánh răng trục vít sau thời gian vận hành chịu ma sát lớn, dẫn đến hiện tượng trượt bước và sai số đo lường vượt ngưỡng cho phép ($\pm 1% - 2%$).
  • Thao tác thủ công, năng suất thấp: Nhân viên phải gạt cần trả số cơ học về $0000$ sau mỗi lần bơm, gây chậm trễ trong giờ cao điểm.
  • Rủi ro thất thoát và gian lận: Thiếu cơ chế bảo mật điện tử cho phép can thiệp đơn giá hoặc xóa dữ liệu tổng doanh thu mà không có kiểm soát phân quyền.
  • Không hỗ trợ bán tự động: Người vận hành không thể cài đặt trước định mức theo số tiền hoặc số lít cố định, dễ dẫn đến tràn bình hoặc thừa/thiếu tiền thối.

Mục tiêu dự án

  1. Thiết kế khối xử lý trung tâm: Ứng dụng vi điều khiển 8-bit AT89C51 hoạt động ở tần số thạch anh $12\text{ MHz}$, tiếp nhận và xử lý tín hiệu xung cảm biến lưu lượng với chu kỳ lệnh $1\ \mu\text{s}$.
  2. Chuẩn hóa module tạo và chuẩn dạng xung: Xây dựng mạch cảm biến quang điện kết hợp IC định thời NE555 cấu hình đa hài đơn ổn, tạo xung vuông biên độ chuẩn $5\text{V}$, độ rộng xung $t_w = 1.1\text{ ms}$.
  3. Phát triển thuật toán điều khiển đa chế độ: Hỗ trợ 3 chế độ vận hành chính: Bơm tự do (Phím A), Bơm cài đặt trước số tiền (Phím B), Bơm cài đặt trước số lít (Phím C), cùng các phím chức năng định mức nhanh (F1, F2).
  4. Bảo mật và lưu trữ thống kê: Thiết lập hệ thống mã khóa PIN bảo vệ thao tác nhập đơn giá mới và reset ô nhớ lưu trữ tổng doanh thu / tổng thể tích tích lũy trong RAM nội.
  5. Tối ưu hóa mạch hiển thị động: Thiết kế module hiển thị $14$ LED 7 đoạn (4 LED đơn giá, 4 LED số lít, 6 LED thành tiền) kết hợp giữa kỹ thuật chốt tĩnh (74LS573) và quét ma trận động (74LS154).

Giải pháp kỹ thuật và kết quả kỳ vọng

Dự án áp dụng phương pháp nhúng vi điều khiển chuyên dụng họ MCS-51, giao tiếp ngoại vi qua tập lệnh Assembly tối ưu hóa từng byte bộ nhớ. Kết quả đo kiểm thực nghiệm hướng tới:

  • Sai số định lượng lưu lượng: $< 0.5%$.
  • Thời gian trễ ngắt động cơ khi đạt ngưỡng cài đặt: $< 5\text{ ms}$.
  • Tổng công suất tiêu thụ toàn mạch ở chế độ tải tối đa: $I_{\text{max}} \approx 1.48\text{ A}$ trên đường nguồn ổn áp $5\text{VDC}$.

Phạm vi và giới hạn

Hệ thống tập trung hoàn thiện phần mạch điện tử điều khiển, thuật toán đo lường, tính toán và bảo vệ. Khối đo lưu lượng cơ học thực tế (orifice/cánh quạt) được mô phỏng chính xác qua đĩa đục lỗ quay gắn trục động cơ kết hợp cảm biến thu-phát hồng ngoại.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Để xác định cấu trúc phần cứng tối ưu, dự án thực hiện so sánh kỹ thuật giữa 3 thế hệ công nghệ định lượng xăng dầu:

Tiêu chí so sánh Cây bơm cơ khí truyền thống Mạch số rời rạc (TTL/CMOS) Hệ thống vi điều khiển AT89C51
Độ chính xác đo lường Thấp ($\pm 1.5% - 3.0%$) do ma sát Trung bình ($\pm 0.5% - 1.0%$) Rất cao ($\le 0.5%$), đếm xung số hóa
Khả năng cài đặt trước Không hỗ trợ (phải canh mắt) Hạn chế (mạch logic cồng kềnh) Linh hoạt theo số tiền / số lít
Bảo mật đơn giá & dữ liệu Không có (niêm phong cơ học) Khóa chuyển mạch phần cứng Mã hóa mật khẩu lưu trong RAM/ROM
Độ phức tạp mạch điện Rất thấp (chỉ dùng cơ khí) Rất cao (hàng chục IC rời) Gọn nhẹ, tập trung trên một bo mạch
Chi phí bảo trì / sửa chữa Cao do mài mòn cơ học Khó sửa lỗi logic phức tạp Thấp, dễ nâng cấp qua phần mềm

Phân loại yêu cầu theo mô hình MoSCoW

  • Must have: Đếm xung thời gian thực bằng Timer/Counter; hiển thị đồng thời đơn giá, số lít, thành tiền; tự động ngắt relay động cơ khi chạm mốc cài đặt; khóa mật mã bảo vệ đơn giá.
  • Should have: Chức năng xem tổng thể tích và tổng doanh thu tích lũy; phím xóa bộ nhớ có xác thực; chống dội tiếp điểm phím cơ khí bằng thuật toán trễ.
  • Could have: Cài đặt nhanh các định mức thường dùng qua phím tắt (F1, F2); còi báo hiệu kết thúc chu trình bơm.
  • Won't have: Kết nối mạng truyền thông không dây về máy chủ trung tâm; xuất hóa đơn in nhiệt trực tiếp tại vòi.

Thiết kế hệ thống

+-----------------------------------------------------------------------------------+
|                            KIẾN TRÚC PHẦN CỨNG AT89C51                            |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|  [Bàn Phím 4x4 + Ext]                                                             |
|           |                                                                       |
|           v                                                                       |
|       Port 1 / Port 3.0-3.3                                                       |
|           |                                                                       |
|           v                                                                       |
|  +------------------+   P0.4-0.7   +-------------+  a-g  +---------------------+  |
|  |     AT89C51      | ------------>| IC 74LS47   |------>| LED 7 Đoạn Số Lít   |  |
|  |                  | (Mã BCD)     | (Giải mã 7đ)|       | (4 Digits)          |  |
|  |  Timer 1 (P3.5)  |              +-------------+       +---------------------+  |
|  |  INT1 (P3.3)     |   P0.0-0.3   +-------------+  Y0-9 |                     |  |
|  |  Relay Out (P3.7)| ------------>| IC 74LS154  |------>| LED 7 Đoạn Số Tiền  |  |
|  +------------------+ (Quét LED)   | (4 to 16)   |       | (6 Digits)          |  |
|        ^        |                  +-------------+       +---------------------+  |
|        |        |       P2.0-0.3   +-------------+  D0-7 |                     |  |
|        |        +----------------->| 4x 74LS573  |------>| LED 7 Đoạn Đơn Giá  |  |
|        |        (Chốt dữ liệu)     | (IC Chốt)   |       | (4 Digits)          |  |
|        |                           +-------------+       +---------------------+  |
|  +--------------+                                                                 |
|  | Cảm Biến     |                                                                 |
|  | Quang + NE555|                                                                 |
|  +--------------+                                                                 |
|                                                                                   |
+-----------------------------------------------------------------------------------+

Danh mục linh kiện và thông số kỹ thuật (Technology Stack)

  • Bộ vi điều khiển (MCU): Atmel AT89C51 (Kiến trúc MCS-51, 4KB Flash ROM, 128 Bytes RAM nội, 32 chân I/O chia 4 Port, 2 bộ định thời/bộ đếm 16-bit, tần số $12\text{ MHz}$).
  • Khối chuẩn dạng xung: IC NE555 kết hợp LED phát hồng ngoại ($\lambda = 900\text{ nm}, I_F = 10\text{ mA}, V_F = 1.3\text{ V}$) và Photodiode thu ($V_{BR} = 10\text{ V}, \lambda = 900\text{ nm}$).
  • Khối giải mã & hiển thị:
    • $01\times$ IC SN74154 (Bộ giải mã 4-sang-16 đường quét Anode chung).
    • $01\times$ IC 74LS47 (Giải mã BCD sang 7 đoạn cho LED Anode chung).
    • $04\times$ IC 74LS573 (Chốt dữ liệu hiển thị đơn giá 4 chữ số).
    • $14\times$ Transistor A1015 (PNP, đệm dòng quét LED).
    • $14\times$ Màn hình LED 7 đoạn Anode chung.
  • Khối chấp hành động lực: Relay $5\text{VDC} / 2\text{A}$ (Điện trở cuộn dây $100\ \Omega$), tầng đệm Darlington $2\times$ Transistor NPN C828 ($\beta \ge 100$), Diode bảo vệ dập xung ngược 1N4007.
  • Khối nguồn ổn áp: Biến áp hạ áp $220\text{VAC} \rightarrow 6\text{VAC}/3\text{A}$, cầu chỉnh lưu, tụ lọc nguồn $2200\ \mu\text{F}$, IC ổn áp tuyến tính LM7805 ($+5\text{V} \pm 5%$).

Phân bổ bản đồ bộ nhớ RAM nội (128 Bytes: 00H - 7FH)

  • 00H - 07H (Bank 0): Thanh ghi mặc định $R_0 - R_7$ dùng cho chương trình chính.
  • 08H - 0FH (Bank 1): Dành riêng cho chương trình con quét bàn phím và tính toán.
  • 20H - 2FH (Bit-Addressable RAM): Chứa các cờ trạng thái hoạt động (Cờ chạy/dừng, cờ tràn, cờ khớp giá trị).
  • 30H - 4FH: Lưu trữ giá trị đơn giá (4 bytes BCD), số lít tạm thời (4 bytes BCD), thành tiền tạm thời (6 bytes BCD).
  • 50H - 6FH: Lưu trữ tích lũy tổng số lít (6 bytes) và tổng số tiền (8 bytes).
  • 70H - 7FH: Vùng ngăn xếp hệ thống (Stack Pointer - SP khởi tạo tại 5FH hoặc 60H).

Phương pháp luận phát triển (Methodology)

Dự án được triển khai theo mô hình V-Model rút gọn dành cho hệ thống nhúng phần cứng - phần mềm kết hợp, kéo dài $16$ tuần:

Tuần 01 - 03: Khảo sát trạm bơm -> Đặc tả yêu cầu -> Thiết kế sơ đồ khối
Tuần 04 - 08: Thiết kế mạch nguyên lý -> Lập trình mô phỏng Assembly trên Textboard
Tuần 09 - 11: Thi công mạch in PCB -> Gia công cơ khí buồng tạo xung -> Hàn linh kiện
Tuần 12 - 14: Tích hợp phần cứng & Firmware -> Kiểm thử sai số & Hiệu chuẩn
Tuần 15 - 16: Đánh giá độ ổn định -> Hoàn thiện tài liệu & Báo cáo kỹ thuật

Ma trận quản lý rủi ro kỹ thuật

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Dội phím ma trận gây sai lệnh Cao Chèn thuật toán delay kiểm tra kép $20\text{ ms}$ trước khi xác nhận mã phím
Sụt áp đường nguồn khi $14$ LED cùng sáng Cao Tách 2 nhánh nguồn $5\text{V}$ riêng biệt qua tản nhiệt nhôm lớn cho LM7805
Xung ngược cuộn cảm Relay đánh thủng Transistor Nghiêm trọng Mắc Diode 1N4007 phân cực ngược song song hai đầu cuộn dây Relay
Nhiễu quang học từ ánh sáng môi trường Trung bình Đặt cảm biến trong buồng kín quang học; tính toán ngưỡng kích $V_{th} \le \frac{1}{3}V_{cc}$

Triển khai và kết quả thực nghiệm

Quá trình phát triển phần cứng và tính toán tham số

1. Tính toán mạch phân cực LED phát và cảm biến thu hồng ngoại

Điện trở hạn dòng LED phát hồng ngoại ($V_{cc} = 5\text{V}, V_D = 1.3\text{V}, I_D = 10\text{mA}$): $$R_1 = \frac{V_{cc} - V_D}{I_D} = \frac{5 - 1.3}{10 \times 10^{-3}} = 370\ \Omega \quad \Rightarrow \text{Chọn chuẩn } R_1 = 390\ \Omega$$

Điện trở phân cực cho Photodiode khi bị che khuất ($V_{\text{photo}} = 1.8\text{V} > \frac{1}{3}V_{cc} = 1.67\text{V}, I_R = 10\ \mu\text{A}$): $$R_a = \frac{V_{cc} - V_{\text{photo}}}{I_R} = \frac{5 - 1.8}{10 \times 10^{-6}} = 320\text{ k}\Omega \quad \Rightarrow \text{Chọn chuẩn } R_a = 330\text{ k}\Omega$$

Độ rộng xung ngõ ra chân 3 của NE555 khi có khe sáng đi qua ($R = 1\text{ k}\Omega, C = 1\ \mu\text{F}$): $$t_w = 1.1 \times R \times C = 1.1 \times 10^3 \times 1 \times 10^{-6} = 1.1\text{ ms}$$ Thời gian $t_w = 1.1\text{ ms}$ đảm bảo ngắn hơn khoảng thời gian giữa 2 lần che chắn liên tiếp ở tốc độ dòng chảy cực đại, ngăn ngừa mất xung đếm.

2. Tính toán tầng đệm lái Relay điều khiển động cơ

Dòng qua cuộn dây Relay ($R_{\text{relay}} = 100\ \Omega$): $$I_{\text{relay}} = \frac{V_{cc} - V_{CE(\text{sat})1} - V_{CE(\text{sat})2}}{R_{\text{relay}}} = \frac{5 - 0.2 - 0.8}{100} = 40\text{ mA}$$ Với tầng Darlington 2x C828 có hệ số khuếch đại dòng $\beta = \beta_1 \times \beta_2 = 100 \times 100 = 10000$, dòng cực nền yêu cầu để bão hòa: $$I_{B(\text{req})} = \frac{I_{\text{relay}}}{\beta} = \frac{40\text{ mA}}{10000} = 4\ \mu\text{A}$$ Dòng kích thực tế xuất từ chân $P_{3.7}$ ($V_{OH} \approx 4\text{V}, R_B = 10\text{ k}\Omega$): $$I_B = \frac{4 - 0.8 - 0.8}{10 \times 10^3} = 0.24\text{ mA} = 240\ \mu\text{A} \gg I_{B(\text{req})} \quad \Rightarrow \text{Đảm bảo bão hòa sâu tuyệt đối.}$$

+5V
 |
 +----+------------------------+
      |                        |
     [+] Cuộn Dây             --- Diode
     [|] Relay (100 Ohm)      / \ 1N4007
     [-]                      ---
      |                        |
      +----+-------------------+
           |
         |/  C828 (1)
P3.7 --[10k]--|
         |\>
           |---+
               |
             |/  C828 (2)
             |
             |\>
               |
              GND

3. Cân bằng năng lượng hệ thống nguồn

Tổng dòng điện định mức tiêu thụ toàn tải: $$I_{\text{total}} = I_{\text{MCU}} + I_{74573} + I_{7447} + I_{74154} + I_{\text{LEDs}} + I_{\text{NE555}} + I_{\text{Relay}}$$ $$I_{\text{total}} = 160\text{mA} + 75\text{mA} + 13\text{mA} + 56\text{mA} + (14 \times 80\text{mA}) + 12\text{mA} + 40\text{mA} = 1476\text{ mA} \approx 1.48\text{ A}$$ Thiết kế sử dụng biến áp $6\text{VAC}/3\text{A}$ kết hợp tản nhiệt chuyên dụng cho IC ổn áp LM7805 đảm bảo vận hành liên tục không quá nhiệt.

Thuật toán điều khiển lõi (Firmware Assembly MCS-51)

; ===================================================================
; MODULE: KHỞI TẠO BỘ ĐẾM COUNTER 1 VÀ NGẮT NGOÀI INT1
; ===================================================================
ORG 0000H
    LJMP MAIN
ORG 0013H               ; Vector ngắt ngoài INT1 (Phím xóa bộ nhớ tổng)
    LJMP ISR_CLEAR_TOTAL
ORG 0030H

MAIN:
    MOV SP, #5FH        ; Thiết lập đỉnh ngăn xếp tại 5FH
    MOV TMOD, #01010000B; Timer 1: Counter 16-bit (C/T=1), Mode 1
    MOV TCON, #00000100B; Kích hoạt ngắt ngoài INT1 tác động cạnh xuống (IT1=1)
    MOV IE, #10000100B  ; Cho phép ngắt toàn cục (EA=1) và ngắt ngoài 1 (EX1=1)
    CLR P3.7            ; Ngắt relay động cơ ban đầu (khóa van xăng)
    
    LCALL INIT_DISPLAY  ; Xóa hiển thị, đưa 4 LED đơn giá về 0000
    LCALL CHECK_PASSWORD; Bắt buộc nhập đúng mật khẩu quản trị
    LCALL INPUT_PRICE   ; Nhập đơn giá mới và chốt vào 74LS573

WAIT_MODE:
    LCALL SCAN_KEYPAD   ; Quét chọn chế độ A, B, C, E
    CJNE A, #'A', CHECK_B
    LJMP MODE_FREE_RUN  ; Chế độ đếm bình thường
CHECK_B:
    CJNE A, #'B', CHECK_C
    LJMP MODE_PRESET_MONEY ; Cài đặt trước số tiền
CHECK_C:
    CJNE A, #'C', CHECK_E
    LJMP MODE_PRESET_LITRE ; Cài đặt trước số lít
CHECK_E:
    CJNE A, #'E', WAIT_MODE
    LJMP DISP_CUMULATIVE   ; Xem tổng tích lũy

; ===================================================================
; MODULE: ĐẾM XUNG VÀ TÍNH TOÁN THỜI GIAN THỰC (MODE BƠM TỰ DO)
; ===================================================================
MODE_FREE_RUN:
    SETB P3.7           ; Mở Relay cấp nguồn động cơ/van xăng
    MOV TL1, #00H       ; Xóa thanh ghi đếm byte thấp
    MOV TH1, #00H       ; Xóa thanh ghi đếm byte cao
    SETB TR1            ; Khởi động Counter 1 đếm xung từ chân P3.5

COUNT_LOOP:
    MOV A, TL1          ; Đọc giá trị xung hiện tại
    MOV R2, A
    MOV A, TH1
    MOV R3, A           ; Cặp R3:R2 chứa số xung 16-bit
    
    LCALL PULSE_TO_BCD  ; Chuyển đổi số xung sang số lít định dạng BCD
    LCALL MULTIPLY_PRICE; Nhân BCD: Số Lít x Đơn Giá = Thành Tiền
    LCALL UPDATE_LEDS   ; Quét dữ liệu ra 10 LED (Lít + Tiền)
    
    JB P3.2, CHECK_MAX  ; Kiểm tra phím D (cò bơm / tạm dừng)
    LCALL DEBOUNCE
    JNB P3.2, STOP_PUMP ; Nếu phím D được nhấn -> Dừng bơm
CHECK_MAX:
    ; Kiểm tra giới hạn tràn màn hình hiển thị 99.99 Lít
    LCALL CHECK_OVERFLOW
    JZ COUNT_LOOP

STOP_PUMP:
    CLR TR1             ; Dừng Counter 1
    CLR P3.7            ; Ngắt Relay động cơ ngay lập tức
    LCALL ADD_TO_TOTAL  ; Cộng dồn số lít và tiền vào RAM nội
WAIT_ENTER:
    LCALL SCAN_KEYPAD
    CJNE A, #0DH, WAIT_ENTER ; Chờ nhấn phím ENTER để hoàn tất
    LJMP WAIT_MODE

Đánh giá và kiểm thử hệ thống

+-----------------------------------------------------------------------+
|                    KẾT QUẢ ĐO KIỂM THỰC NGHIỆM                         |
|                                                                       |
|  Độ trễ ngắt relay:        3.2 ms   [ĐẠT] (< 5.0 ms)                  |
|  Sai số định lượng:        0.28%    [ĐẠT] (< 0.50%)                   |
|  Độ sụt áp nguồn LED:      0.12 V   [ĐẠT] (< 0.25 V)                  |
|  Tần số đáp ứng cảm biến:  250 Hz   [ĐẠT] (> 100 Hz)                  |
+-----------------------------------------------------------------------+
  1. Kiểm thử độ chính xác định lượng: Tạo chuỗi xung chuẩn từ máy phát sóng hàm ($10\text{ Hz} - 500\text{ Hz}$) đưa vào chân $P_{3.5}$. Vi điều khiển nhận diện $100%$ số lượng xung không thất thoát ở tần số quét lên tới $250\text{ Hz}$.
  2. Kiểm thử cơ cấu đóng cắt: Đo đạc trên máy hiện sóng cho thấy thời gian từ lúc giá trị đếm bằng ngưỡng cài đặt đến khi chân $P_{3.7}$ hạ mức $0$ và Relay nhả hoàn toàn tiếp điểm là $3.2\text{ ms}$, triệt tiêu hoàn toàn hiện tượng bơm thừa nhiên liệu.
  3. Kiểm thử độ tin cậy bảo mật: Thử nghiệm $50$ kịch bản can thiệp đơn giá và reset dữ liệu. Hệ thống từ chối $100%$ các thao tác khi không nhập đúng mã xác thực $4$ chữ số.

Đổi mới và đóng góp kỹ thuật

  • Kiến trúc hiển thị lai (Hybrid Multiplexing Architecture): Thay vì sử dụng phương pháp quét thuần túy cho toàn bộ $14$ LED làm giảm độ sáng và tiêu tốn tài nguyên quét liên tục của CPU, hệ thống kết hợp $4$ IC chốt $74\text{LS}573$ giữ trạng thái tĩnh cho khối đơn giá và giải mã quét $10$ ngõ qua $74\text{LS}154$ cho khối động (Lít/Tiền). Giải pháp này giúp tiết kiệm $50%$ số chân I/O và tối ưu $40%$ thời gian xử lý của vi điều khiển.
  • Chuẩn hóa tầng tiền xử lý tín hiệu analog-số: Ứng dụng IC định thời NE555 với cấu hình đơn ổn làm bộ lọc tích cực, triệt tiêu xung gai (glitch) và hiện tượng rung tín hiệu quang học khi mép đĩa che chắn đi qua khe thu phát.
  • Thuật toán xử lý số học BCD trực tiếp: Thực hiện các phép nhân số lớn $16\text{-bit} \times 16\text{-bit}$ trên nền hợp ngữ MCS-51 thông qua phép hiệu chỉnh thập phân DA A, đảm bảo hiển thị kết quả tài chính chính xác tuyệt đối mà không gặp lỗi làm tròn dấu phẩy động.

Ứng dụng thực tế và triển khai

Khả năng ứng dụng thực tế

  • Trạm bán lẻ xăng dầu vừa và nhỏ: Lắp đặt trực tiếp vào khung trụ bơm hiện hữu để hiện đại hóa các trạm bơm cơ khí tại khu vực nông thôn, hải đảo.
  • Hệ thống cấp phát nhiên liệu nội bộ: Trang bị cho các trạm tiếp nhiên liệu của doanh nghiệp vận tải, kho bãi quân sự, công trường xây dựng nhằm giám sát chặt chẽ lưu lượng xuất kho.
  • Hệ thống định lượng chất lỏng công nghiệp: Ứng dụng trong các nhà máy hóa chất, thực phẩm cần chiết rót định mức theo thể tích cài đặt trước.
+-----------------------------------------------------------------------+
|                    LỘ TRÌNH TRIỂN KHAI CÔNG NGHIỆP                    |
|                                                                       |
|  Giai đoạn 1: Chuẩn hóa bo mạch nhúng (MCU + Màn hình + Nguồn)        |
|  Giai đoạn 2: Tích hợp cảm biến cánh quạt lưu lượng & van điện từ     |
|  Giai đoạn 3: Đóng gói vỏ chống cháy nổ chuẩn ATEX / IP65             |
|  Giai đoạn 4: Tích hợp module truyền thông RS-485 / Modbus RTU        |
+-----------------------------------------------------------------------+

Phân tích hiệu quả kinh tế (Cost-Benefit & ROI)

  • Chi phí phần cứng tự chế tạo: Dao động từ $350.000 - 450.000\text{ VNĐ}$ (tương đương $\approx 25 - 30\text{ USD}$ tại thời điểm nghiên cứu), thấp hơn $85%$ so với việc nhập khẩu cụm đầu đồng hồ tính tiền điện tử nguyên khối từ nước ngoài.
  • Thời gian hoàn vốn (ROI): Ước tính dưới $03$ tháng nhờ loại bỏ triệt để sai số thất thoát đo lường cơ học và tối ưu hóa thời gian phục vụ khách hàng trên mỗi lượt bơm.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Dữ liệu tổng lũy kế lưu trong RAM nội vi điều khiển sẽ bị xóa sạch nếu hệ thống mất hoàn toàn nguồn điện chính $220\text{VAC}$ khi không có pin nuôi dự phòng (chưa tích hợp chip nhớ bất biến EEPROM/NVRAM ngoài).
  • Bộ cảm biến quang học đĩa đục lỗ đơn kênh chưa hỗ trợ nhận diện chiều quay ngược của dòng chảy chất lỏng.

Hướng phát triển đề xuất

  1. Bổ sung bộ nhớ bất biến I2C EEPROM: Tích hợp IC nhớ ngoài $24\text{C}08 / 24\text{C}16$ để lưu trữ tự động đơn giá và nhật ký bán hàng ngay khi phát hiện tín hiệu sụt nguồn (Power-down interrupt).
  2. Nâng cấp cảm biến lưu lượng Hall kép: Sử dụng cảm biến từ trường lệch pha $90^\circ$ (Quadrature Encoder) nhằm triệt tiêu hoàn toàn sai số khi xảy ra hiện tượng dòng chảy ngược hoặc rung lắc đường ống.
  3. Mở rộng giao thức truyền thông: Phát triển cổng giao tiếp nối tiếp RS-485 chuẩn Modbus để ghép nối mạng toàn bộ các trụ bơm về máy tính quản lý trung tâm tại phòng điều hành.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Điện - Điện tử / Cơ điện tử: Cung cấp tài liệu tham khảo chi tiết về thiết kế hệ thống vi điều khiển MCS-51, kỹ thuật quét phím ma trận, quét LED 7 đoạn và phương pháp ghép nối linh kiện công suất.
  • Kỹ sư phát triển nhúng: Cung cấp kiến trúc tham chiếu mẫu về kỹ thuật tiền xử lý xung tín hiệu cơ - quang bằng IC NE555 và thuật toán số học BCD trên nền hợp ngữ tối ưu tài nguyên.
  • Doanh nghiệp và chủ trạm xăng dầu: Cung cấp giải pháp kỹ thuật với chi phí tối ưu để nâng cấp, phục hồi và tự động hóa các trụ bơm xăng dầu cũ, nâng cao năng lực quản lý và chống thất thoát tài chính.

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

1. Yêu cầu kỹ thuật tối thiểu về nguồn điện để mạch vận hành ổn định là gì?

Hệ thống yêu cầu nguồn điện lưới $220\text{VAC} \pm 10%$, qua biến áp hạ áp sang $6\text{VAC} - 9\text{VAC}$ với công suất tối thiểu $15\text{VA}$ ($3\text{A}$). Điện áp sau nắn lọc và qua IC ổn áp LM7805 phải duy trì ổn định ở mức $+5\text{VDC} \pm 5%$ với độ gợn sóng (ripple) $< 50\text{ mV}$.

2. Tần số đếm xung tối đa mà mạch có thể đáp ứng là bao nhiêu?

Với vi điều khiển AT89C51 chạy thạch anh $12\text{ MHz}$, Timer hoạt động ở chế độ Counter có thể nhận tần số xung ngõ vào tối đa bằng $1/24$ tần số dao động nội, tức xấp xỉ $500\text{ kHz}$. Tuy nhiên, do giới hạn độ rộng xung đơn ổn từ mạch NE555 ($t_w = 1.1\text{ ms}$), tần số xung làm việc tối ưu của hệ thống là $f_{\text{max}} \approx 450\text{ Hz}$, hoàn toàn đáp ứng các dòng chảy bơm xăng thương mại lên tới $60 - 80\text{ lít/phút}$.

3. Làm thế nào để chống thất thoát dữ liệu khi xảy ra sự cố mất điện lưới đột ngột?

Trong thiết kế hiện tại, cần bổ sung mạch tụ điện dung lượng lớn ($4700\ \mu\text{F}$) tại ngõ vào LM7805 kết hợp ngắt ngoài INT0 giám sát nguồn $220\text{V}$. Khi mất điện, MCU có khoảng $50\text{ ms}$ để kịp ghi giá trị lít và tiền tạm thời từ RAM vào chip nhớ ngoài EEPROM $24\text{C}04$.

4. Mạch có thể kết nối với các loại màn hình hiển thị hiện đại hơn (LCD, OLED) không?

Hoàn toàn có thể. Port 0 và Port 2 của AT89C51 có thể cấu hình lại để giao tiếp song song 8-bit với màn hình LCD 16x2 hoặc LCD 20x4 theo chuẩn điều khiển HD44780 mà không cần thay đổi cấu trúc phần cứng của khối đếm xung và khối điều khiển động cơ.

5. Chi phí gia công toàn bộ mạch điều khiển tính tiền là bao nhiêu?

Chi phí linh kiện điện tử rời (MCU AT89C51, IC 74LS47, 74LS154, 74LS573, NE555, 14 LED 7 đoạn, Relay, biến áp, linh kiện phụ trợ) gia công trên mạch in 1 lớp dao động trong khoảng $350.000 - 450.000\text{ VNĐ}$ cho một bộ điều khiển hoàn chỉnh.


Kết luận

Đề tài "Thiết kế và thi công mạch tính tiền xăng dầu dùng vi điều khiển 89C51" đã giải quyết thành công bài toán chuyển đổi số hóa và tự động hóa cho quy trình cấp phát nhiên liệu. Bằng việc kết hợp vi điều khiển AT89C51, mạch định thời NE555 và hệ thống giải mã hiển thị chuyên dụng, hệ thống đảm bảo độ chính xác đo lường cao ($< 0.5%$), tự động hóa quy trình thanh toán theo định mức, nâng cao tính bảo mật dữ liệu và giảm thiểu tối đa sự can thiệp thủ công. Đây là nền tảng kỹ thuật vững chắc để tiếp tục mở rộng phát triển thành các sản phẩm thương mại hoàn chỉnh đạt chuẩn công nghiệp trong tương lai.