MẠCH INVERTER (UPS ) sin chuẩn 12 vdc /220vAC

trong đề tài này sẽ nghiên cứu phát triển dòng UPS online có thời gian chuyển
mạch ngắn nhất phù hợp với các thiết bị có độ nhạy về điện cao. Ứng dụng vi xử lý
pic 16f877a vào mạch điện công suất.



Ngày nay  với sự phát triển vượt bậc của khoa học công nghệ, các thiết bị điện
đã dần phổ biến trên khắp đất nước. Nhưng một thực trạng hiện nay là tình trạng thiếu
năng lượng hoặc sự cố gây mất điện vẫn diễn ra thường xuyên. Những sự cố mất điện
bất ngờ như vậy có thể gây hại hoặc hư hỏng cho các thiết bị điện, cũng như có thể gây
những hậu quả nghiêm trọng hơn ví dụ như dừng hoạt động của hệ thống đèn tín hiệu
giao thông , mất dữ liệu trên máy tính hoặc server….
Vì vậy cần có một thiết bị có thể cung cấp năng lượng tạm thời khi mất điện đột
ngột . UPS (Uninterruptible Power Supply) ra đời nhằm đáp ứng yêu cầu cung cấp một
nguồn điện liên tục cho các thiết bị điện trước các sự cố mất điện bất ngờ. Sau đó nhiều
chức năng khác như chống sét, lọc nhiễu, ổn tần, ổn áp được phát triển thêm vào UPS
giúp thiêt bị có thể đáp ứng được các yêu cầu của một nguồn điện liên tục.
Trong đề tài này sẽ nghiên cứu phát triển dòng UPS online có thời gian chuyển
mạch ngắn nhất phù hợp với các thiết bị có độ nhạy về điện cao. Ứng dụng vi xử lý
pic 16f877a vào mạch điện công suất.



Trong chương này sẽ trình bày phần cứng của đề tài . Các mạch bao gồm :
-  Mạch DC – DC chuyển đổi điện áp DC 24V lên điện áp DC 310v.
-  Mạch DC – AC chuyển đổi điện áp DC 310v thành điện áp AC 220v .
-  Mạch chuyển tiếp , chuyển từ chế độ điện lưới sang điện ac quy.
-  Mạch đo điện áp ngõ ra và điện áp ac quy.
220vac  310vdc
220vac    310vdc
27,4vdc

5.1 Mạch DC – DC
Mạch DC – DC có nhiệm vụ chuyển đổi điện DC 24v thành điện áp DC
310v cung cấp cho mạch DC – AC. Mạch chỉ hoạt động khi điện áp lưới bị mất
hoặc thấp hơn 165v.


Hình 5.2: Sơ đồ nguyên lý mạch DC –DC
-  Nguyên lý hoạt động của mạch: Khi on được nối xuống mức thấp ( 0v)
thì IC SG3525 hoạt động , cấp xung PWM luân phiên cho mỗi cặp most fet.
Khi được cấp xung cặp most fet luân phiên đóng ngắt tạo từ thông biến thiên
trên cuộn sơ cấp. Từ thông biến thiên này tạo ra điện áp xoay chiều trên cuộn
thứ cấp biến áp xung.
-  Biến áp xung trong mạch có kích thước 4.5cm - 4.2cm – 1.5cm, được
quấn bằng đồng lá với hai cuộn sơ cấp mỗi cuộn 4 vòng được quấn bằng đồng
lá 0,3mm và cuộn thư  cấp có 60 vòng được quấn bằng ba sợi đồng 0.45mm.
Như vậy biến áp có tỉ lệ 1/15 và 6v/1 vòng. Tần số hoạt động của biến áp là
34khz. Biến áp hoạt động theo nguyên tắc push pull.
-  Điện áp xoay chiều ở cuộn thứ cấp được đưa vào cầu diode xung và được
lọc phằng bằng tụ 0.47uF để cho ra điện áp một chiều 310v.
-  Điện áp 310v được hồi tiếp về chân số 1 của ic SG3525 thông qua cầu
phân áp 903k/17k điện áp này được so sánh với áp chuẩn 5v VREF, khi điện
áp ngõ ra dưới 310v thì chân số 1 SG3525 thấp hơn 5v, IC tự tăng độ rộng xung
để điện áp luôn ổn định 310v và ngược lại nếu điện áp cao hơn 310v thì IC
giảm độ rộng xung lại.

5.2 Mạch DC – AC
−  Mạch DC – AC có nhiệm vụ chuyển đổi điện áp một chiều 310v sang điện áp
xoay chiều 220v.

Hình 5.3 : sơ đồ DC – AC
−  Mạch sử dụng pic để tạo song sinPWM điều khiển cầu H 4 IGBT. Cách li
phần điều khiển và phần IGBT bằng opto TLP250, để khóa nhanh IGBT
trong mạch sử dụng điện áp âm 10v.
−  Điện áp xoay chiều sau cầu H được lọc sóng mang bằng mạch lọc thụ động
LC với L= 2mH và C = 4uF ta thu được sóng sine có dạng như hình 5.4
Hình 5.4: Dạng sóng ngõ ra sau mạch lọc.

- Điều khiển cầu H bằng chân RC2, RC1, RD0 và RD1 của pic 16f877a. Hai
chân RC2 và RC1 có nhiệm vụ cấp xung sine PWM cho hai IGBT phía trên,
còn RD0 và RD1 cấp xung 50Hz cho 2 IGBT dưới.
5.3 Mạch chuyển tiếp
Mạch có nhiệm vụ dò điện áp của điện lưới sau cầu diode, khi điện áp ở tụ lọc
sau cầu diode dưới 250v thì mạch đóng relay chuyển nguồn điện cung cấp cho
mạch cầu H từ điện lưới sang nguồn điện từ mạch DC – DC.

Hình 5.5 : sơ đồ mạch chuyển tiếp
Mạch hoạt động dựa trên nguyên lý so sánh điện áp của opamp TL082, tuy
mạch chuyển tiếp bằng relay có tốc độ chậm nhưng điện áp ngõ ra hầu như
không ngắt quãng vì điện tích được nạp đầy trong 2 tụ  330uF trên mạch DCAC sẽ xả ra cung cấp năng lượng tạm thời trong thời gian relay chuyển mạch.
Các mạch trên được điều khiển, quản lý bằng vi xử lý pic 16f877a. Trong
chương kế chúng ta sẽ lập trình cho các vi xử lý.

CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC 16F877A
6.1 Chương trình cho pic tạo xung PWM
#include <16f877a.h>
#fuses nowdt,noprotect,nolvp,hs,put
#use delay(clock=20000000)
#use fast_io(d)
#use fast_io(c)
#byte portd = 0x8
#byte portc = 0x7
#bit a = portd.0
#bit b = portd.1
#bit c = portc.2
#bit d = portc.1
//--------------------------------------------------------void xung1()
{
delay_us(499);
a= 1;
c= 1;
delay_us(12);
c=0;
delay_us(86);
c= 1;
delay_us(12);
c=0;
delay_us(86);
c= 1;
delay_us(18);
c=0;
delay_us(80);
c= 1;
delay_us(18);
c=0;
delay_us(80);
c= 1;
delay_us(24);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 59  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
c=0;
delay_us(74);
c= 1;
delay_us(24);
c=0;
delay_us(74);
c= 1;
delay_us(30);
c=0;
delay_us(68);
c= 1;
delay_us(30);
c=0;
delay_us(68);
c= 1;
delay_us(36);
c=0;
delay_us(62);
c= 1;
delay_us(30);
c=0;
delay_us(68);
c= 1;
delay_us(42);
c=0;
delay_us(56);
c= 1;
delay_us(42);
c=0;
delay_us(56);
c= 1;
delay_us(47);
c=0;
delay_us(51);
c= 1;
delay_us(47);
c=0;
delay_us(51);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 60  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
c= 1;
delay_us(53);
c=0;
delay_us(45);
c= 1;
delay_us(53);
c=0;
delay_us(45);
c= 1;
delay_us(58);
c=0;
delay_us(40);
c= 1;
delay_us(58);
c=0;
delay_us(40);
c= 1;
delay_us(63);
c=0;
delay_us(35);
c= 1;
delay_us(63);
c=0;
delay_us(35);
c= 1;
delay_us(67);
c=0;
delay_us(31);
c= 1;
delay_us(67);
c=0;
delay_us(31);
c= 1;
delay_us(72);
c=0;
delay_us(26);
c= 1;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 61  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(72);
c=0;
delay_us(26);
c= 1;
delay_us(76);
c=0;
delay_us(22);
c= 1;
delay_us(76);
c=0;
delay_us(22);
c= 1;
delay_us(80);
c=0;
delay_us(18);
c= 1;
delay_us(80);
c=0;
delay_us(18);
c= 1;
delay_us(83);
c=0;
delay_us(15);
c= 1;
delay_us(83);
c=0;
delay_us(15);
c= 1;
delay_us(87);
c=0;
delay_us(11);
c= 1;
delay_us(87);
c=0;
delay_us(11);
c= 1;
delay_us(89);
c=0;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 62  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(9);
c= 1;
delay_us(89);
c=0;
delay_us(9);
c= 1;
delay_us(92);
c=0;
delay_us(6);
c= 1;
delay_us(92);
c=0;
delay_us(6);
c= 1;
delay_us(94);
c=0;
delay_us(4);
c= 1;
delay_us(94);
c=0;
delay_us(4);
c= 1;
delay_us(96);
c=0;
delay_us(2);
c= 1;
delay_us(96);
c=0;
delay_us(2);
c= 1;
delay_us(97);
c=0;
delay_us(1);
c= 1;
delay_us(97);
c=0;
delay_us(1);
c= 1;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 63  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(99);
delay_us(400);
c= 1;
delay_us(97);
c=0;
delay_us(1);
c= 1;
delay_us(97);
c=0;
delay_us(1);
c= 1;
delay_us(96);
c=0;
delay_us(2);
c= 1;
delay_us(96);
c=0;
delay_us(2);
c= 1;
delay_us(94);
c=0;
delay_us(4);
c= 1;
delay_us(94);
c=0;
delay_us(4);
c= 1;
delay_us(92);
c=0;
delay_us(6);
c= 1;
delay_us(92);
c=0;
delay_us(6);
c= 1;
delay_us(90);
c=0;
delay_us(8);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 64  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
c= 1;
delay_us(90);
c=0;
delay_us(8);
c= 1;
delay_us(87);
c=0;
delay_us(11);
c= 1;
delay_us(87);
c=0;
delay_us(11);
c= 1;
delay_us(83);
c=0;
delay_us(15);
c= 1;
delay_us(83);
c=0;
delay_us(15);
c= 1;
delay_us(80);
c=0;
delay_us(18);
c= 1;
delay_us(80);
c=0;
delay_us(18);
c= 1;
delay_us(76);
c=0;
delay_us(22);
c= 1;
delay_us(76);
c=0;
delay_us(22);
c= 1;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 65  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(72);
c=0;
delay_us(26);
c= 1;
delay_us(72);
c=0;
delay_us(26);
c= 1;
delay_us(68);
c=0;
delay_us(30);
c= 1;
delay_us(68);
c=0;
delay_us(30);
c= 1;
delay_us(63);
c=0;
delay_us(35);
c= 1;
delay_us(63);
c=0;
delay_us(35);
c= 1;
delay_us(58);
c=0;
delay_us(40);
c= 1;
delay_us(58);
c=0;
delay_us(40);
c= 1;
delay_us(53);
c=0;
delay_us(45);
c= 1;
delay_us(53);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 66  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
c=0;
delay_us(45);
c= 1;
delay_us(47);
c=0;
delay_us(51);
c= 1;
delay_us(47);
c=0;
delay_us(51);
c= 1;
delay_us(42);
c=0;
delay_us(56);
c= 1;
delay_us(42);
c=0;
delay_us(56);
c= 1;
delay_us(36);
c=0;
delay_us(62);
c= 1;
delay_us(36);
c=0;
delay_us(62);
c= 1;
delay_us(30);
c=0;
delay_us(68);
c= 1;
delay_us(30);
c=0;
delay_us(68);
c= 1;
delay_us(24);
c=0;
delay_us(74);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 67  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
c= 1;
delay_us(24);
c=0;
delay_us(74);
c= 1;
delay_us(18);
c=0;
delay_us(80);
c= 1;
delay_us(18);
c=0;
delay_us(80);
c= 1;
delay_us(12);
c=0;
a=0;
delay_us(86);
delay_us(199);
}
//--------------------------------------------------void xung2()
{
delay_us(499);
b= 1;
d= 1;
delay_us(12);
d=0;
delay_us(86);
d= 1;
delay_us(12);
d=0;
delay_us(86);
d= 1;
delay_us(18);
d=0;
delay_us(80);
d= 1;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 68  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(18);
d=0;
delay_us(80);
d= 1;
delay_us(24);
d=0;
delay_us(74);
d= 1;
delay_us(24);
d=0;
delay_us(74);
d= 1;
delay_us(30);
d=0;
delay_us(68);
d= 1;
delay_us(30);
d=0;
delay_us(68);
d= 1;
delay_us(36);
d=0;
delay_us(62);
d= 1;
delay_us(30);
d=0;
delay_us(68);
d= 1;
delay_us(42);
d=0;
delay_us(56);
d= 1;
delay_us(42);
d=0;
delay_us(56);
d= 1;
delay_us(47);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 69  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
d=0;
delay_us(51);
d= 1;
delay_us(47);
d=0;
delay_us(51);
d= 1;
delay_us(53);
d=0;
delay_us(45);
d= 1;
delay_us(53);
d=0;
delay_us(45);
d= 1;
delay_us(58);
d=0;
delay_us(40);
d= 1;
delay_us(58);
d=0;
delay_us(40);
d= 1;
delay_us(63);
d=0;
delay_us(35);
d= 1;
delay_us(63);
d=0;
delay_us(35);
d= 1;
delay_us(67);
d=0;
delay_us(31);
d= 1;
delay_us(67);
d=0;
delay_us(31);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 70  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
d= 1;
delay_us(72);
d=0;
delay_us(26);
d= 1;
delay_us(72);
d=0;
delay_us(26);
d= 1;
delay_us(76);
d=0;
delay_us(22);
d= 1;
delay_us(76);
d=0;
delay_us(22);
d= 1;
delay_us(80);
d=0;
delay_us(18);
d= 1;
delay_us(80);
d=0;
delay_us(18);
d= 1;
delay_us(83);
d=0;
delay_us(15);
d= 1;
delay_us(83);
d=0;
delay_us(15);
d= 1;
delay_us(87);
d=0;
delay_us(11);
d= 1;
delay_us(87);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 71  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
d=0;
delay_us(11);
d= 1;
delay_us(89);
d=0;
delay_us(9);
d= 1;
delay_us(89);
d=0;
delay_us(9);
d= 1;
delay_us(92);
d=0;
delay_us(6);
d= 1;
delay_us(92);
d=0;
delay_us(6);
d= 1;
delay_us(94);
d=0;
delay_us(4);
d= 1;
delay_us(94);
d=0;
delay_us(4);
d= 1;
delay_us(96);
d=0;
delay_us(2);
d= 1;
delay_us(96);
d=0;
delay_us(2);
d= 1;
delay_us(97);
d=0;
delay_us(1);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 72  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
d= 1;
delay_us(97);
d=0;
delay_us(1);
d= 1;
delay_us(99);
delay_us(400);
d= 1;
delay_us(97);
d=0;
delay_us(1);
d= 1;
delay_us(97);
d=0;
delay_us(1);
d= 1;
delay_us(96);
d=0;
delay_us(2);
d= 1;
delay_us(96);
d=0;
delay_us(2);
d= 1;
delay_us(94);
d=0;
delay_us(4);
d= 1;
delay_us(94);
d=0;
delay_us(4);
d= 1;
delay_us(92);
d=0;
delay_us(6);
d= 1;
delay_us(92);
d=0;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 73  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(6);
d= 1;
delay_us(90);
d=0;
delay_us(8);
d= 1;
delay_us(90);
d=0;
delay_us(8);
d= 1;
delay_us(87);
d=0;
delay_us(11);
d= 1;
delay_us(87);
d=0;
delay_us(11);
d= 1;
delay_us(83);
d=0;
delay_us(15);
d= 1;
delay_us(83);
d=0;
delay_us(15);
d= 1;
delay_us(80);
d=0;
delay_us(18);
d= 1;
delay_us(80);
d=0;
delay_us(18);
d= 1;
delay_us(76);
d=0;
delay_us(22);
d= 1;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 74  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(76);
d=0;
delay_us(22);
d= 1;
delay_us(72);
d=0;
delay_us(26);
d= 1;
delay_us(72);
d=0;
delay_us(26);
d= 1;
delay_us(68);
d=0;
delay_us(30);
d= 1;
delay_us(68);
d=0;
delay_us(30);
d= 1;
delay_us(63);
d=0;
delay_us(35);
d= 1;
delay_us(63);
d=0;
delay_us(35);
d= 1;
delay_us(58);
d=0;
delay_us(40);
d= 1;
delay_us(58);
d=0;
delay_us(40);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 75  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
d= 1;
delay_us(53);
d=0;
delay_us(45);
d= 1;
delay_us(53);
d=0;
delay_us(45);
d= 1;
delay_us(47);
d=0;
delay_us(51);
d= 1;
delay_us(47);
d=0;
delay_us(51);
d= 1;
delay_us(42);
d=0;
delay_us(56);
d= 1;
delay_us(42);
d=0;
delay_us(56);
d= 1;
delay_us(36);
d=0;
delay_us(62);
d= 1;
delay_us(36);
d=0;
delay_us(62);
d= 1;
delay_us(30);
d=0;
delay_us(68);
d= 1;
delay_us(30);
d=0;
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 76  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_us(68);
d= 1;
delay_us(24);
d=0;
delay_us(74);
d= 1;
delay_us(24);
d=0;
delay_us(74);
d= 1;
delay_us(18);
d=0;
delay_us(80);
d= 1;
delay_us(18);
d=0;
delay_us(80);
d= 1;
delay_us(12);
d=0;
b=0;
delay_us(86);
delay_us(199);
}
void main()
{
set_tris_c(0b00000000);
set_tris_d(0b00000000);
a=0;
b=0;
c=0;
d=0;
//----------------------------------while (1)
{
xung1();
xung2();
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 77  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
}
}
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 78  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
6.2 Chương trình cho pic xử lý hệ thống
#include <16f877a.h>
#fuses nowdt,noprotect,nolvp,xt,put
#device 16f877a*=16ADC=10
#include <stdio.h>
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
#byte portb = 0x6
#byte portd = 0x8
#bit rs = portd.0
#bit rw = portd.1
#bit en = portd.2
#bit loidong = portd.3
#bit ngat = portd.4
#bit swich = portd.5
#bit bip = portd.6
#bit delay = portd.7
int8 malenh,dulieu,vitri;
int8 i,tram,chuc,donvi,x,y;
char acquy[16]=" CHE DO AC QUY ";
char dienluoi[16]="CHE DO DIEN LUOI";
char loiacquy[16]="LOI AC QUY (T_T)";
char quatai[13]="SU CO QUA TAI";
char apacquy[4]="BAT:";
char out[4]="OUT:";
char von[1]="V";
char quadong[16]="BAO VE QUA DONG ";
char can[16]=" AC QUY CON 10% ";
char het[16]=" HET AC QUY =)) ";
char cho1[16]="VUI LONG CHO. ";
char cho2[16]="VUI LONG CHO....";
char cho3[16]="VUI LONG CHO....";
char cho4[16]="VUI LONG CHO....";
char khoidong[16]="=DANG KHOI DONG=";
char ngung[16]="NGUNG HOAT DONG!";
char cach[1]=" ";
float ketqua;
char *text;
//--------------------------------------------------------
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 79  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
void lenh_lcd(int8 malenh)
{
portb=malenh;
en=1;
rs=0;
rw=0;
en=0;
delay_ms(3);
}
//--------------------------------------------------------void data_lcd(int8 dulieu)
{
portb=dulieu;
en=1;
rs=1;
rw=0;
en=0;
delay_ms(3);
}
//--------------------------------------------------------void hienthi(int8 vitri, char mang[])
{lenh_lcd(vitri);
text=mang;
for(i=0;i<=16;i++)
{data_lcd(*(text+i));
}
}
//--------------------------------------void hienthi2(int8 vitri, char mang[])
{lenh_lcd(vitri);
text=mang;
for(i=0;i<=4;i++)
{data_lcd(*(text+i));
}
}
void hienthi3(int8 vitri, char mang[])
{lenh_lcd(vitri);
text=mang;
for(i=0;i<=1;i++)
{data_lcd(*(text+i));
}
}
void ADC1()
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 80  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
{
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0_AN1_AN2_AN3_AN4);
set_ADC_channel(0);
delay_ms(1);
}
void ADC2()
{
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0_AN1_AN2_AN3_AN4);
set_ADC_channel(1);
delay_ms(1);
}
//---------------------------------------------------void main()
{
set_tris_b(0);
set_tris_d(0b10101000);
//-------------------delay_ms(1);
//-------------------lenh_lcd(0x38);
lenh_lcd(0x0e);
lenh_lcd(0x01);
lenh_lcd(0x80);
//---------------//---------------------------------------------------if (delay == 0)
{
while(delay == 0)
{
bip = 1;
hienthi(0x80,khoidong);
hienthi(0xc0,cho1);
delay_ms(500);
hienthi(0xc0,cho2);
delay_ms(500);
hienthi(0xc0,cho3);
delay_ms(500);
hienthi(0xc0,cho4);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 81  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_ms(500);
bip = 0;
}
}
delay_ms(1000);
ngat = 1;
while(1)
{
if ( swich == 1)
{
hienthi(0xc0,dienluoi);
}
if ( swich == 0)
{
hienthi(0xc0,acquy);
bip = 1;
delay_ms(200);
bip = 0;
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
}
if (loidong == 0)
{
ngat = 0;
hienthi(0xc0,quadong);
hienthi(0x80,ngung);
bip = 1;
while (1)
{}
}
ADC2();
hienthi2(0x80,apacquy);
hienthi3(0x86,von);
delay_ms(1);
x = read_ADC()/20.48;
chuc = x/10;
donvi=x%10;
lenh_lcd(0x84);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 82  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
data_lcd(chuc + 48);
delay_ms(1);
data_lcd(donvi + 48);
delay_ms(1);
if ( x <= 21)
{
hienthi(0xc0,can);
bip = 1;
delay_ms(300);
bip = 0;
delay_ms(400);
bip = 1;
delay_ms(300);
bip = 0;
delay_ms(300);
}
if ( x <= 20)
{
hienthi(0xc0,het);
hienthi(0x80,ngung);
ngat = 0;
bip = 1;
while (1)
{}
}
if ( x >= 29)
{
hienthi(0xc0,loiacquy);
hienthi(0x80,ngung);
while (1)
{}
}
hienthi3(0x87,cach);
ADC1();
hienthi2(0x88,out);
hienthi3(0x8f,von);
delay_ms(1);
x = read_ADC()/2.048;
tram = x/100;
chuc = (x%100)/10;
donvi=(x%100)%10;
lenh_lcd(0x8c);
data_lcd(tram + 48);
CHƯƠNG 6: CHƯƠNG TRÌNH CHO PIC16F877A
GVHD: Th.s Tống Thanh Nhân  Trang 83  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
delay_ms(1);
data_lcd(chuc + 48);
delay_ms(1);
data_lcd(donvi + 48);
delay_ms(1);
if ( x <= 165)
{
delay_ms(1000);
while (x <= 165)
{
ngat = 0;
bip =1;
hienthi(0x80,ngung);
hienthi(0xc0,quatai);
while(1)
{}
}
}
}
}
//====================================
CHƯƠNG 7: KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
GVHD: Th.s Tống Thanh Nhân  Trang 84  SVTH:  Phạm Hào Kiệt
Nguyễn Minh Đức
CHƯƠNG 7: KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN
CỦA ĐỀ TÀI
7.1 Kết quả của đề tài
Đồ án đã thõa mãn các yêu cầu đặt ra cho 1 UPS online như:
-  Dạng sóng ngõ ra là sóng sine
-   Thời gian chuyển mạch thấp
-  Chống sét, lọc nhiễu, ổn tần
-  Cảnh báo quá tải, bảo vệ quá dòng, chập tải
Tuy nhiên đồ án còn một số khuyết điểm hạn chế như dùng mạch lọc thụ động LC
sẽ phát ra âm thanh khi không tải , lượng sóng hài cao tần lọc không triệt để sau
mạch lọc .
7.2 Nhận xét đánh giá
Đây là đề tài có khả năng ứng dụng trên thị trường. Nếu hoàn thành việc tính toán
giá thành và so sánh với các sản phẩm trên thực tế thì hoàn toàn có thể đưa sản
phẩm ra thị trường.
7.2 Hướng phát triển của đề tài :
Cần thi công bộ lọc để tạo ra sản phẩm hoàn chỉnh. Kết hợp giao tiếp máy tính với
pic đễ dễ dàng cài đặt và sử dụng.




Link download tài liệu :http://www.mediafire.com/download/m8y1rcpw6tnrjz8/doan_ups.rar( đây là link rút gọn , các bạn đợi 5s và bấm skip ad ở góc phải trên cùng)
loading...