Các bước thực hiện :
1. Đọc giá trị điện áp vào từ ADC 0804 vào vi điều khiển 2. Từ đó tính giá trị Qbù
3. Sử dụng biến j cho chạy từ 0-255 thập phân tương ứng tổ hợp nhị phân từ 00000000 -11111111 (ứng với tất cả các trường hợp cắt và đóng của 8 tụ. Giá trị nhị phân bằng 0: tụ tương ứng cắt, ngược lại: giá trị nhị phân bằng 1: tụ tương ứng đóng)
Ban đầu đặt Qtổng =0 (gọi là Qtổng trước - ở phần mềm ta đặt là kq1) (ứng với 8 tụ cắt). Đặt sonho =0 (ứng với tổ hợp nhị phân 00000000)
Ứng với mỗi trường hợp của 8 tụ, tính Qtổng gọi là Qtổng sau (ở phần mềm ta đặt là kq2)
Sử dụng hàm so sánh với 2 biến (kq1,kq2) để tìm Qtổng (kq) gần với giá trị Qbù nhất: tính hiệu1 = |Qbù –kq1| và hiệu2 = |Qbù –kq2|. Nếu hiệu1 <hiệu2 thì kq =kq1 (Qtổng = Qtổng trước) và sonho giữ nguyên. Ngược lại thì kq =kq2 (Qtổng = Qtổng sau) và sonho =j.
Thực hiện lặp lại từ j=0 đến khi j tăng đến 255.
Như vậy ta tìm được kq = Qtổng gần Qbù nhất và sonho j là giá trị thập phân tương ứng giá trị nhị phân biểu diễn 8 tụ đóng cắt phù hợp để đạt được Qtổng = kq.
4. Chuyển sonho j thành số nhị phân 8 bit. Đưa giá trị nhị phân này ra 8 chân vi điều khiển (Port 3: từ P3.0 đến P3.7) để điều khiển đóng cắt 8 tụ tương ứng
Trường Đại học Nông Nghiệp Hà Nội – Luận văn thạc sĩ khoa học kỹ thuật ………. 40
Hình 4.6: Lưu đồ giải thuật của chương trình chính
Tăng j lên 1
j=256
Số nhớ chuyển sang nhị phân
Nhị phân chuyển sang P3
End Đúng Begin Đọc dữ liệu 0804 về VĐK Tính Qbù Số nhớ = 0; Qtổng = 0; Qtổng trước =Qtổng ; j =0
Chuyển j sang nhị phân
Tính Qtổng sau Hiệu 1=Qbù- Qtổng trước; Hiệu 2=Qbù- Qtổng sau Hiệu 1> Hiệu 2 Đúng Qtổng = Qtổng sau Số nhớ = j Sai Sai Sai
Trường Đại học Nông Nghiệp Hà Nội – Luận văn thạc sĩ khoa học kỹ thuật ………. 41