Trong hệ thống điện công nghiệp thi việc khởi động mềm cho động cơ là vô cùng 
quan trọng. Vì khi chúng ta khởi động trực tiếp cho động cơ, đặc biệt là các động 
cơ có công suất lớn thi dòng khởi động trực tiếp rất lớn ( I
mm= 5 – 7 Iđm ) sẻ gây ra hiện tượng sụt áp cho tải làm cho hệ thống điện hoạt động không ổn định, hoặc 
nếu ta khởi động cùng lúc nhiều động cơ sẽ làm cho hệ thống điện quá tải không 
hoạt động được. Vì vậy trong các hệ thống điện công nghiệp khi mở máy hoạt 
động cho động cơ thì ta phải khởi động để đảm bảo cho hệ thống hoạt động được 
ổn định.
Vì vậy nhóm đã thiết kế BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A.
Nhiệm vụ của đề tài là: Cài đặt được điện áp lúc khởi động và thời gian tăng điện 
áp.
                
              
                                            
                                
            
 
            
                
32 trang | 
Chia sẻ: lvbuiluyen | Lượt xem: 3351 | Lượt tải: 1
              
            Bạn đang xem trước 20 trang tài liệu Bộ khởi động mềm 1 pha 220v – 20a, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 1 - 
CHƯƠNG I . GIỚI THIỆU 
1. ĐẶT VẤN ĐỀ 
Trong hệ thống điện công nghiệp thi việc khởi động mềm cho động cơ là vô cùng 
quan trọng. Vì khi chúng ta khởi động trực tiếp cho động cơ, đặc biệt là các động 
cơ có công suất lớn thi dòng khởi động trực tiếp rất lớn ( Imm= 5 – 7 Iđm ) sẻ gây ra 
hiện tượng sụt áp cho tải làm cho hệ thống điện hoạt động không ổn định, hoặc 
nếu ta khởi động cùng lúc nhiều động cơ sẽ làm cho hệ thống điện quá tải không 
hoạt động được. Vì vậy trong các hệ thống điện công nghiệp khi mở máy hoạt 
động cho động cơ thì ta phải khởi động để đảm bảo cho hệ thống hoạt động được 
ổn định. 
Vì vậy nhóm đã thiết kế BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A. 
Nhiệm vụ của đề tài là: Cài đặt được điện áp lúc khởi động và thời gian tăng điện 
áp. 
2. CHỌN PHƯƠNG ÁN THIẾT KẾ 
Trong thực tế để khởi động động cơ có rất nhiều phương án sử dụng như dùng 
biến tần để cài đặt, sử dụng vi điều khiển tạo xung kích cho các linh kiện điện tử 
công xuất như: Thyritor, Triac …. 
 Trong đề tài này ta sử dụng phương pháp khởi động động cơ bằng vi điều khiển 
bằng cách sử dụng IC 89C51 thay đổi góc kích cho triac để thay đổi được điện áp 
ngỏ ra cấp cho động cơ. 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 2 - 
CHƯƠNG II. MỘT SỐ LINH KIỆN SỬ DỤNG 
1. Sơ lươc về vi điều khiển 89C51 
 Sơ lược phần cứng của 89C51 
 4 Kb ROM và 128 byte RAM 
 4 Port I/O 8 bit 
 2 bộ đếm định thời 16 bit 
 Có thể giao tiếp với cổng nối tiếp 
 64 Kb không gian bộ nhớ chương trình mở rộng. 
 64 Kb không gian bộ nhớ dử liệu mở rộng. 
 Một số bộ sử lý luận lý (thao tác tren các bít đơn) 
 210 bít được địa chỉ hóa 
 Bộ nhân/chia trong 4us 
a. Sơ đồ khối và sơ đồ chân của 89C51 
 Hình 1. So đồ khối 89C51 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 3 - 
Chức năng của các chân 89C51 
 Port 0: từ chân 32 đến 39 (P0.0-P0.7). Có 2 chức năng : nếu dùng trong thiết 
kế nhỏ không dùng bộ nhớ mở rộng có chứ năng như các dường I/O, đối với thiết 
kế lớn có bộ ngớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu. 
 Port 1: từ chân 1 đến chân 9 (P1.0-P1.7) là port I/O dùng giao tiếp với thiết bị 
bên ngoài 
 Port 2: từ chân 21đến chân 28 (P2.0-P2.7) Port 2 là port có tác dụng kép dùng 
như các đường xuất nhập hoặc là byte cao của bú địa chỉ đối với thiết kế dùng bọ 
nhớ mở rộng. 
 Port 3: từ chân 10đến chân 17 (P3.0-P3.7). Port 3 là port có thể sử dụng như 
I/O bình thường nhưng còn sử dụng cho các chức năng đặc biệt như bảng sau: 
Bít Tên Chức năng chuyển đổi 
P3.0 
P3.1 
P3.2 
P3.3 
P3.4 
P3.5 
P3.6 
P3.7 
RXD 
TXD 
INT0 
INT1 
T0 
T1 
WR 
DR 
Ngỏ vào dữ liệu nối tiếp 
Ngỏ xuất dữ liệu nối tiếp 
Ngỏ vào ngắt 0 
Ngỏ vào ngắt 1 
Ngỏ vào của timer/counter thứ 0 
Ngỏ vào của timer/counter thứ 1 
Tín hiệu gi dữ liệu lên bộ nhớ ngoài 
Tín hiệu đọc bộ nhớ dữ liệu ngoài 
PSEN(chân 29) :là tín hiệu ngỏ ra có tác dụng cho phép dọc bộ nhớ chương trình 
mở rộng và thường được kết nối với chân OE\ của Eprom cho phép đọc các byte 
mả lệnh. PSEN ở mức thấp trong thời gian 8951 lấy lệnh. Các chương trình được 
đọc từ Eprom qua bus dữ liệu . Khi 8951 thi hành chương trình ROM nội thì 
PSEN ở mức cao. 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 4 - 
 ALE (chân 30) :dùng làm tín hiệu điều khiển để giải da hợp các đường địa chỉ và 
dữ liệu khi kết nối với IC chốt. 
EA (chân 31): được mắc lên mức 1 hoặc mưc 0 
 Nếu ở mức 1 thì 8951 thực thi chương trình ở ROM nội 
 Nếu ở mức 0 thì 8951 thực thi chương trình từ bộ nhớ mở rộng 
RST(Reset): chân 9 được dùng để thiết lập trạng thái ban đầu cho hệ thống 
XTAL1, XTAL2 (chân 18,19) : Bộ tạo dao động được tích hợp bên trong 8951 khi 
sử dụng ta chỉ cần nối thêm thạch anh và các tụ ổn định 
b. Khảo sát các khối nhớ bên trong. 
 Tổ chức bộ nhớ RAM: bao gồm nhiều thành phần. 
 Phần lưu trữ da dụng có địa chỉ từ 30H- 7FH 
 Phần lưu trữ địa chỉ hóa từng bit có địa chỉ từ 20H-2FH 
 Các bank thanh gi có địa chỉ từ 00H- 1FH 
 Các thanh gi có chức năng đạc biệt có địa chỉ từ 80H- FFH 
c. Các thanh gi có chức năng đặc biệt 
 Thanh gi trạng thái chương trình PSW 
 Thanh ghi B 
 Con trỏ ngăn xếp SP 
 Bộ đến chương trình PC 
 Con trỏ dữ liệu DPTR 
 Các thanh gi Port 
 Các thanh gi Timer 
 Các thanh gi Port nối tiếp 
 Các thanh gi ngắt 
 Các thanh gi điều khiển nguồn PCON 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 5 - 
2. TRANSISTOR 
Sử dụng Transistor C1815, C828, A1013 
3. NỐI QUANG ( MOC 3021 ) 
Ở đây ta dung MOC 3021. Ứng dụng của nó là dùng để cách ly mạch điều khiển 
với mạch công xuất. 
Mạch ứng dụng của MOC 3021 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 6 - 
4. RELAY 
Sử dụng relay 5 chân. 220V , 25A 
5. TRIAC (TRIOD AC SEMICONDUCTOR SWITCH). 
Thường được coi như hai SCR lưỡng hướng vì có thể dẫn điện theo hai chiều. 
Hình sau đây cho thấy cấu tạo, mô hình tương đương và cấu tạo của Triac. 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 7 - 
Như vậy, ta thấy Triac như gồm bởi một SCR PNPN dẫn điện theo chiều từ trên 
xuống dưới, kích bởi dòng cổng dương và một SCR NPNP dẫn điện theo chiều từ 
dưới 
lên kích bởi dòng cổng âm. Hai cực còn lại gọi là hai đầu cuối chính (main 
terminal). 
 - Do đầu T2 dương hơn đầu T1, để Triac dẫn điện ta có thể kích dòng cổng 
dương và khi đầu T2 âm hơn T1 ta có thể kích dòng cổng âm. 
Các thông số của triac. 
 Điện áp phân cự thuận và ngịch (VBR(F) và VBR(R)) 
 Dòng điện cực đại 
 Dòng giữ IH 
 Áp cổng và dòng kích khởi 
 Tốc độ chuyển mạch 
Ứng dụng : Triac dùng điều chỉnh công suất động cơ, kiểm soát vận tốc động cơ 
AC 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 8 - 
6. LM 7805 
Đây là linh kiện được sử dụng rất phổ biến trong các mạch nguồn để tạo ra 
điện áp cố định. Ở đây ta chỉ dùng IC 7805 để tạo ra mạch ổn áp 5V . 
7. Led 7 đoạn 
Dùng trong mạch hiển thị, để hiện thông tin giao tiếp giữa người dùng và vi xử 
lý. Ở đây ta dùng loại anot chung. 
Cùng với 1 số linh kiện thong dụng khác: 
+ tụ 33p, 104p, 1000uF 25V, 470uF 25V, 
+ điện trở R 220Ω, 1KΩ, 10kΩ, 5k6Ω 
+ led đơn 
+ diode 1N4001 
+ thạch anh 12MHz, 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 9 - 
CHƯƠNG III. THIẾT KẾ, TÍNH TOÁN 
I. SƠ ĐỒ KHỐI TỔNG QUÁT 
Gồm có 5 khối được trình bày như sơ đồ dưới đây 
 Hình 1:Sơ đồ khối 
KHỐI TẠO 
XUNG 
ĐỒNG BỘ 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 10 - 
II. CÁC KHỐI TRONG MẠCH ĐIỆN 
1. Khối xử lý: gồm mạch nguồn và bộ vi xử lý 
 Hình 2: khối xử lý và nguồn 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 11 - 
 a. Khối vi xử lý 
 Chức năng của khối: 
 Nhận tín hiệu ngắt ngoài INT0 
 Nhận tín hiệu từ khối phím nhấn 
 Điều khiển khối hiển thị 
 Điều khiển xung kích cho MOC3021 
 Điều khiển ngỏ ra relay 
 Nguyên lý hoạt động của khối sử lý: 
Nhận tín hiệu từ INTO và phím nhấn để xuất tín hiệu ra điều led hiển 
thị, đồng thời xuất xung để kích MOC3021 
 Tính toán mạch điện : 
 R1 = 100 
R2 =8.2 KΩ 
C3 =C4 = C5 =C6 =C8 = 104 
C7 =10uF 
 b. Mạch nguồn 
Hinh : mạch nguồn 
Tạo điện áp chuẩn 5V cung cấp cho các khối hoạt động, đồng thời tạo xung detect 
zero để tạo ra khâu đồng bộ xung đưa vào vi xử lý. 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 12 - 
Nguyên tắt hoạt động của khối này như sau: 
- Khi được cấp nguồn 12V xoay chiều đi qua cầu diode sẽ tạo ra sóng sin dương 
liên tục tạo detect zero. Diode D2 có nhiệm vụ vô cùng quan trọng là chống lại 
nguồn điện ngược do tụ C7 sinh ra. Khi sóng sin cực đại D2 dẫn điện qua IC7805 
đồng thời nạp điện cho tụ C7. Khi sóng sin cực tiểu ( tiến dần về 0 ) thì tụ C7 xả 
điện. Lúc này diode D2 sẽ thưc hiện công việc ngăn nguồn điện đó giúp tạo cho 
sóng sin ổn định mà không bị nhiểu bởi tụ C7. 
2. Khối hiển thị: 
Chức năng của khối 
- Hiển thị thông báo thời gian tăng điện áp, đồng thời hiển thị được điện 
áp khởi động 
Hoạt động của khối 
Bộ phận hiển thị gồm 5 led 7 đoạn cathod chung, nhận tín hiệu từ khối sử lý dưới 
dạng tín hiệu nhị phân(0,1) qua việc quét led để hiển thị ra số thập phân. Các 
đường DATA và điều khiển đều tác động ở mức cao. 
 Hình 3: khối hiển thị 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 13 - 
 Tính toán mạch điện : 
 Q1 =Q2 = Q3 =Q4 =Q5 =A1013 
 R1= R2 =R3 = R4 = R5 =10K 
3. Khối nút nhấn. 
Sử dụng 4 phím nhấn.: 
Nút 1 : mode – Dùng để chuyển đổi qua lại giửa các chức năng thời gian cài đặt và 
nguồn điện ra ( từ 0 đến 220 vol ) 
Nút 2 : Inc – tăng thời gian or số vol do người dử dụng cài đặt. 
Nút 3 : dec – Giảm thời gian or số vol do người dử dụng cài đặt. 
Nút 4 : enter – thực hiện phím này khi đồng ý thiết lập 
Nut 5 : Reset 
 Hình 9: phím nhấn 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 14 - 
4. khối tạo xung kích đồng bộ: 
 Hình 5: tạo xung đồng bộ 
Chức năng: 
 Tạo ra xung để đưa vào chân INT0 của vi sử lý. 
Cứ mỗi đầu bán kì thì có xung đi vào chân B của C1815 thì ta nhận được một 
xung tương ứng đi vào chân C (nối với INT0) thì có ngắt xảy ra. 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 15 - 
5. Khối mạch công suất 
 Hình 6: mạch điều khiển triac 
 Hình 7: giản đồ xung khi tải thuần trở 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 16 - 
 Chức năng của khối 
Khi góc điều khiển được thay đổi trong phạm vi(0, ),điện áp tải có trị hiệu 
dụng biến thiên trong khoản (0,U) 
Điều khiển cho động cơ hoạt động 
 Hoạt động của khối 
P1.7 ở mức 0 thì MOC3021 dẩn có xung kích vào chân G của triac, Tùy thuộc 
vào góc kích mà triac BTA126 sẽ dẩn điện nhiều hay ít từ đó có thể thay đổi được 
điện áp ra Ut. Ut được tính theo công thức sau: 
2
1
2
2sin1 
 
UUt ( *1) 
Ut : điện áp tải 
U : điện áp định mức 
 : góc điều khiển triac 
* Tính toán góc kich. 
 Ta có f = 50 Hz  thời gian 1 chu kỳ là 1/50 = 0.02s 
 Thời gian dẩn của 1 bán kỳ là 0.01s = 10 000us 
Từ đó ta có : 10 000us ------------> 1800 (*2) 
 Tdelay ------------ >  
Cho điện áp ngỏ ra ( Ut ) bằng 1 giá trị xác định ta thu được 1 giá trị góc 
 tương ứng qua công thức (*1). 
Từ đó ta có thời gian delay trước khi kích triac  
180
10000
delayt 
Giá trị này dùng cho chương trình phần mềm mà ta viết cho IC 89C51. 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 17 - 
CHƯƠNG IV : THUẬT GIẢI, CHƯƠNG TRÌNH 
Lưu đồ: MAIN: 
TMOD=0x11; 
TL0=-10000; 
TH0=-10000>>8; 
TH1=-10000>>8; 
TL1=-10000; 
EA=1; 
TR0=1; 
ET0=1; 
TR1=1; 
ET1=1; 
MODE=0; 
KT=0; 
KT1=0; 
ROLE=0; 
Umin=0; 
Umax=0; 
DIENAP=0; 
CNT=0; 
CNT1=0; 
TG=0; 
NGAT=0; 
triac=1; 
ROLE=0; 
BEGIN 
KTMODE 
KTNGAT 
ENTER 
while(1) 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 18 - 
CHƯƠNG TRÌNH CON : KTMODE () 
 Y Y 
 N 
 N 
 N 
 Y 
 N 
 Y 
 N 
 Y 
 N 
 Y 
 N 
 BEGIN 
P2_0=1; 
P2_1=1; 
P2_3=1; 
P2_2=1; 
P2_1=0? MODE++ MODE=4
? 
MODE=0
? 
MODE=1
? 
MODE=2
? 
MODE=3
? 
MODE1 
MODE2 
MODE3 
 Exit 
MODE=0 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 19 - 
CHƯƠNG TRÌNH CON : ENTER () 
 N 
 Y 
CHƯƠNG TRÌNH CON : KTNGAT() 
 N 
 Y 
ENTER 
P2_4=0? 
MODE=0; 
LEDMODE1=1; 
LEDMODE2=1; 
LEDMODE3=1; 
DIENAP=Umin; 
A=Umax-Umin; 
B=TG*100; 
TANG=B/A; 
IT0=1; 
EX0=1; 
KT1=1; 
KT=1; 
 Exit 
ENTER 
NGAT=0; 
Triac=1; 
T=maquet[DIEN
AP]; 
delay2(T); 
triac=0; 
 Exit 
NGAT=1? 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 20 - 
CHƯƠNG TRÌNH CON : MODE1() 
 N N 
 Y 
 Y 
 N N 
 Y Y 
ENTER 
LEDMODE1=0; 
LEDMODE2=1; 
LEDMODE3=1; 
P2_1=1; 
P2_2=1; 
P2_1=0? 
Delay2(50000) 
TG ++ 
TG=61? 
 TG=0 
 EXIT 
P2_2=0? 
Delay2(50000) 
TG-- 
TG=255
? 
 TG=60 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 21 - 
CHƯƠNG TRÌNH CON : MODE2() 
 N N 
 Y Y 
 N N 
 Y Y 
LEDMODE1=1; 
LEDMODE2=0; 
LEDMODE3=1; 
P2_1=1; 
P2_2=1; 
P2_1=0? 
Delay2(50000) 
Umin ++ 
DIENAP=Umin; 
Umin=221? 
 Umin =0 
 EXIT 
P2_2=0? 
Delay2(50000) 
Umin-- 
DIENAP=Umin; 
Umin=255? 
 Umin =220 
ENTER 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 22 - 
CHƯƠNG TRÌNH CON : MODE3() 
 N N 
 Y Y 
 N N 
 Y Y 
LEDMODE1=1; 
LEDMODE2=1; 
LEDMODE3=0; 
P2_1=1; 
P2_2=1; 
P2_1=0? 
Delay2(50000) 
Umax ++ 
DIENAP=Umax; 
Umax=221? 
 Umax =0 
 EXIT 
P2_2=0? 
Delay2(50000) 
Umax -- 
DIENAP=Umax; 
Umax=255? 
 Umax=220 
ENTER 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 23 - 
NGẮT NGOÀI 0: NGATTIMER1: 
 N 
 Y 
 N 
 Y 
 N 
 Y 
ENTER 
NGAT=1 
EXIT 
ENTER 
TH1= -10000>>8 
TL1= -10000 
CNT=100
? 
CNT =0; 
TG--; 
EXIT 
HIENTHI(); 
KT1=1? 
CNT++; 
TG=255? 
TG=0; 
KT1=0; 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 24 - 
NGATTIMER 0: CT CON HIENTHI (): 
 N 
 Y 
 N 
 Y 
 N 
 Y 
ENTER 
TL0=-100000 
TH0=-
100000>>8 
KT=1? 
CNT1 ++; 
CNT=TAN
G? 
CNT=0; 
Umin++; 
 DIENAP=Umin; 
Umin=Umax
? 
EX0=0; 
ROLE=1; 
KT=1; 
DIENAP=220; 
EXIT 
ENTER 
CHUC=TG/10; 
DONVI=TG%10; 
P0=maled[DONVI]; 
LED1=0; 
delay(200); 
LED1=1; 
P0=maled[CHUC]; 
LED2=0; 
delay(200); 
LED2=1; 
TRAM=DIENAP/100; 
CHUC=(DIENAP/10)%10; 
DONVI=DIENAP%10; 
P0=maled[DONVI]; 
LED3=0; 
delay(200); 
LED3=1; 
P0=maled[CHUC]; 
LED4=0; 
delay(200); 
LED4=1; 
P0=maled[TRAM]; 
LED5=0; 
delay(200); 
LED5=1; 
EXIT 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 25 - 
CHƯƠNG TRÌNH CON DELAY: 
 Y 
 N 
. 
ENTER 
K=0 
K < i? 
EXIT 
K++ 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 26 - 
Chương trình phần mềm: 
#include 
#define LED1 P1_6 
#define LED2 P1_7 
#define LED3 P1_4 
#define LED4 P1_3 
#define LED5 P1_5 
#define LEDMODE1 P1_2 
#define LEDMODE2 P1_1 
#define LEDMODE3 P1_0 
#define triac P2_4 
#define ROLE P2_5 
unsigned char MODE,KT,KT1,NGAT,TG,Umin,Umax; 
unsigned int DIENAP,lap,G,TANG,H; 
unsigned int CNT,CNT1,TRAM,CHUC,DONVI,k,T,m; 
unsigned char 
maled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 
unsigned int code maquet[221]={10000, 
9999,9999,9998,9996,9994,9992,9989,9986,9983,9979, 
9974,9969,9964,9959,9953,9946,9939,9932,9924,9916, 
9907,9898,9889,9879,9868,9858,9847,9835,9823,9811, 
9798,9784,9771,9757,9742,9727,9712,9696,9680,9663, 
9646,9629,9611,9593,9574,9555,9536,9516,9495,9474, 
9453,9432,9409,9387,9364,9341,9317,9293,9268,9243, 
9218,9192,9166,9139,9112,9085,9057,9029,9000,8971, 
8941,8911,8883,8850,8819,8787,8756,8723,8690,8657, 
8623,8589,8555,8520,8484,8449,8413,8376,8339,8302, 
8264,8226,8188,8149,8109,8070,8030,7989,7948,7907, 
7866,7823,7781,7738,7694,7651,7607,7562,7517,7472, 
7426,7381,7334,7287,7240,7193,7144,7096,7048,6998, 
6949,6899,6849,6798,6747,6696,6644,6592,6539,6486, 
6433,6379,6324,6270,6216,6160,6104,6048,5992,5935, 
5878,5820,5762,5704,5645,5586,5524,5466,5406,5345, 
5284,5222,5161,5098,5036,4972,4909,4845,4781,4716, 
4651,4585,4519,4452,4386,4318,4251,4182,4114,4044, 
3975,3905,3835,3764,3693,3621,3549,3477,3403,3330, 
3256,3182,3107,3031,2956,2879,2802,2725,2647,2569, 
2491,2411,2332,2252,2171,2089,2008,1926,1843,1761, 
1677,1593,1508,1423,1338,1252,1166,1078,991,903, 
815,726,637,547,457,367,276,184,92,0}; 
void delay(unsigned int i) 
{for(k=0;k<i;k++);} 
void delay2(unsigned int l) 
{for(l=0;m<l;m++);} 
MODE1(void) ; //tang thoi gian 
 { 
 LEDMODE1=0; 
 LEDMODE2=1; 
 LEDMODE3=1; 
 P2_1=1; 
 P2_2=1; 
 if(P2_1==0) 
 { 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 27 - 
 delay2(50000); 
 TG++; 
 if(TG==61) 
 {TG=0;} 
 } 
 if(P2_2==0) 
 { 
 delay2(50000); 
 TG--; 
 if(TG==255) 
 {TG=60;} 
 } 
 } 
MODE2(void) 
 { 
 LEDMODE1=1; 
 LEDMODE2=0; 
 LEDMODE3=1; 
 P2_1=1; 
 P2_2=1; 
 if(P2_1==0) 
 { 
 delay2(50000); 
 Umin++; 
 DIENAP=Umin; 
 if(Umin==221) 
 { 
 Umin=0; 
 } 
 } 
 if(P2_2==0) 
 { 
 delay2(50000); 
 Umin--; 
 DIENAP=Umin; 
 if(Umin==255) 
 { 
 Umin=220; 
 } 
 } 
 } 
MODE3(void) 
 { 
 LEDMODE1=1; 
 LEDMODE2=1; 
 LEDMODE3=0; 
 P2_1=1; 
 P2_2=1; 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 28 - 
 if(P2_1==0) 
 { 
 delay2(50000); 
 Umax++; 
 DIENAP=Umax; 
 if(Umax==220) 
 {Umax=0;} 
 } 
 if(P2_2==0) 
 { 
 delay2(50000); 
 Umax--; 
 DIENAP=Umax; 
 if(Umax==255) 
 {Umax=220;} 
 } 
 } 
void main() /*CHUONG TRINH CHINH*/ 
{ 
 TG=0; 
 DIENAP=0; 
 Umin=0; 
 Umax=0; 
 CNT1=0; 
 CNT=0; 
 TMOD=0x11; 
 TL1=-10000; 
 TH1=-10000>>8; 
 TH0=-10000>>8; 
 TL0=-10000; 
 EA=1; 
 KT=0; 
 KT1=0; 
 TR0=1; 
 ET0=1; 
 TR1=1; 
 ET1=1; 
 NGAT=0; 
 triac=1; 
 ROLE=0; 
 while(1) 
 { 
 KTMODE(); 
 ENTER(); 
 KTNGAT(); 
 } 
} 
KTMODE(void) 
 { 
 P2_0=1; 
 P2_1=1; 
 P2_3=1; 
 P2_2=1; 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 29 - 
 if(P2_0==0) // 
********************nhan chuyen mode***************************** 
 { 
 delay2(50000); 
 MODE++; 
 if(MODE==4) 
 { 
 MODE=0; 
 } 
 } 
 switch(MODE) // 
************************Tuy vao mode nao******************************* 
 { 
 case 0: { break; } 
 case 1: { MODE1(); break; } 
 case 2: { MODE2(); break; } 
 case 3: { MODE3(); break; } 
 } 
 } 
KTNGAT(void) 
 { 
 if(NGAT==1) 
 //*******************kiem tra ngat******************************* 
 { 
 NGAT=0; 
 triac=1; 
 T=maquet[Umin]; 
 delay2(T); 
 triac=0; 
 } 
 } 
ENTER (void) ; //khi cai song thi chay// 
 { 
 if(P2_0==0) // 
****************************nhan enter******************************* 
 { 
 while(!P2_0); 
 P2_0=1; 
 MODE=0; 
 LEDMODE1=1; // tat led bao mode1 
 LEDMODE2=1; // tat led bao mode2 
 LEDMODE3=1; // tat led bao mode3 
 DIENAP=Umin; 
 G=Umax-Umin; 
 H=TG*100; 
 TANG=H/G; 
 IT0=1; //ngat canh xuong 
 EX0=1; // ngat ngoai 
 KT1=1; 
 KT=1; //tang thoi gian 
 } 
 } 
void ngatngoai_0(void)interrupt 0 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 30 - 
{ 
 NGAT=1; 
} 
Void ngattimer_0(void)interrupt 1 ;// cai thoi gian tang dien ap// 
{ 
 TH0=-10000>>8; 
 TL0=-10000; 
 if(KT==1) 
 { 
 CNT1++; 
 if(CNT1==TANG) 
 { 
 CNT1=0; 
 Umin++; 
 DIENAP=Umin; 
 if(Umin==Umax) 
 { 
 EX0=0; 
 // tat ngat ngoai 
 ROLE=1; 
 //kich role 
 DIENAP=220; 
 KT=0; 
 } 
 } 
 } 
} 
void ngattimer_1(void)interrupt 3 ;//tang thoi gian va hien thi// 
{ 
 TL1=-10000; 
 TH1=-10000>>8; 
 HIENTHI(); 
 if(KT1==1) 
 { 
 CNT++; 
 if(CNT==100) 
 { 
 CNT=0; 
 TG--; 
 if(TG==255) 
 { 
 TG=0; 
 KT1=0; 
 } 
 } 
 } 
} 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 31 - 
HIENTHI(void) 
 { 
 CHUC=TG/10; 
 DONVI=TG%10; 
 P0=maled[DONVI]; 
 LED1=0; 
 delay(200); 
 LED1=1; 
 P0=maled[CHUC]; 
 LED2=0; 
 delay(200); 
 LED2=1; 
 TRAM=DIENAP/100; 
 CHUC=(DIENAP/10)%10; 
 DONVI=DIENAP%10; 
 P0=maled[DONVI]; 
 LED3=0; 
 delay(200); 
 LED3=1; 
 P0=maled[CHUC]; 
 LED4=0; 
 delay(200); 
 LED4=1; 
 P0=maled[TRAM]; 
 LED5=0; 
 delay(200); 
 LED5=1; 
 } 
BỘ KHỞI ĐỘNG MỀM 1 PHA 220V – 20A 
 - 32 - 
III.ĐÁNH GIÁ ĐỀ TÀI 
1.ƯU ĐIỂM 
 Điều khiển được động cơ. Thay đổi được giá trị điện áp ra cấp cho động cơ. 
Cài đặc được khoản thời gian khởi đông và điện áp khởi động. Giúp động cơ khởi 
động ổn định và tránh hiện tượng nguồn điện tăng đột ngột làm hư hỏng động cơ. 
2.NHƯỢC ĐIỂM 
 Chỉ giới hạn điều khiển động cơ công suất nhỏ hơn 20A và 220V. 
 Chưa tính được sai số góc kích ở triac. Cũng như sai số trong tính toán là 
không tránh khỏi. 
 Thi công mạch còn chút ít sai sót. Mạch lớn và đi dây hơi nhiều và khó xác 
định chân cắm. 
IV. HƯỚNG PHÁT TRIỂN 
 Thiết kế mạch nhỏ gọn hơn. Hiển thị trên LCD. Phím nhấn mềm và linh hoạt 
hơn. Khởi động được động cơ công suất lớn hơn. Tính toán mạch chính xác và tối 
ưu hơn.