Hình 4.8: Lưu đồ giải thuật chính cho vi điều khiển
Giải thích lưu đồ:
Ban đầu khi bật công tắc nguồn, máy sẽ kiểm tra chúng ta có nhấn nút START/STOP hay chưa, nếu chưa nhấn thì máy sẽ tiếp tục ở trạng thái chờ. Nếu ở trạng thái chờ khoảng 5 – 10 giây, máy sẽ bật LED để cảnh báo người sử dụng. Sau khi nhấn nút START/STOP, máy sẽ kiểm tra nút nhấn MODE để chọn chế độ xuất xung. Chế độ bắt đầu mặc định với tần số 50Hz, nút MODE được lập trình ngắt và tăng thêm 1 chế độ khi được nhấn. Trong lúc đang hoạt động, nếu được nhấn nút START/STOP hoặc thời gian sử dụng lớn hơn 15 phút máy sẽ tạm dừng xuất xung.
Hình 4.9: Lưu đồ giải thuật cho nút nhấn MODE (chương trình phục vụ ngắt)
Giải thích lưu đồ:
Khi xảy ra ngắt (nút MODE được nhấn), vi điều khiển sẽ tiến hành điều chỉnh lại chế độ xuất xung và khởi tạo lại timer0 để đếm thời gian. Đồng thời, màn hình LCD sẽ bi xóa và hiển thị các thông số tương ứng. Nếu MODE ở chế độ hiện tại nhỏ hơn 4, MODE sẽ được tăng thêm 1 hoặc sẽ về 0 khi bằng 4.
BEGIN
Xóa màn hình LCD
Trạng thái ACTIVE
MODE = 4
Khởi tạo lại Timer 0
END MODE = MODE++ ĐÚNG MODE = 1 ĐÚNG SAI SAI
Hình 4.10: Lưu đồ giải thuật cho nút nhấn START/STOP
Giải thích lưu đồ:
Khi nút START/STOP được nhấn, chương trình sẽ bị trì hoãn khoảng 10uS để chống dội cho nút nhấn. Máy sẽ chuyển từ chế độ chờ sang chế độ ACTIVE để báo sẵn sàng cho việc chọn chế độ xuất xung, đồng thời khởi tạo lại timer0, đặt chế độ xuất xung là 0. Bên cạnh đó, tắt LED báo động (nếu có).