Để kết nối các khối trên tạo thành một hệ thống đòi hỏi người thiết kế phải hiểu biết các khối.hệ thống tạo ra khá phức tạp ,chiếm nhiều không gian mạch in và in ấn. Một lí do nữa là vi xử lí thường xử lí dữ liệu theo byte hoặc word trong khi đó các đói tượng điều khiển trong công nghiệp thường điều khiển theo bit. Chính vì sự phức tạp này nên các nhà thiết kế tạo đã tích hợp một ít bộ nhớ và một số các thiết bị ngoại vi cùng với vi xử lí tạo thành một IC gọi là vi điều khiển. Khi vi điều khiển ra đời đã mang lại sư tiện lợi là dễ dàng sử dụng trong điều khiển công nghiệp, việc sử dụng vi điều khiển không đòi hỏi người sử dụng phải hiểu biết về một lượng kiến thức quá nhiều như sử dụng vi xử lí. Có rất nhiều hãng chế tạo được vi điều khiển ,hãng sản xuất là ATMEL .Có nhiều họ vi điều khiển mang các mã số khác nhau,một trong số họ nổi tiếng là họ MCS-51. Song song với họ MCS-51 là họ MCS-52 có nhiều timer hơn họ MCS-51 một timer và dung lượng bộ nhớ nội lớn gấp đôi tức 8Kbyte . Ứng dụng của vi điều khiển rất nhiều trong các hệ thống điều khiển công nghiệp,các dây chuyền sản xuất,các bộ điều khiển lập trình,máy giặt,máy điều hòa nhiệt độ….. Sau đây nhóm chúng em xin trình bày một trong những ứng dụng của vi điều khiển. Đó là lập trình cho vi điều khiển 89S52 điều khiển góc kích của triac để điều chỉnh điện áp xoay chiều
Trang 1MỤC LỤC
Lời nói đầu
Như chúng ta đã biết yêu cầu điều khiển càng cao thì hệ thống càng phức tạp và nếu yêu cầu điều khiển có đơn giản ví dụ như điều khiển đóng mở một con led theo một thời gian yêu cầu nào đó thì hệ thống vi xử lí cũng phải có đầu đủ các khối:bộ vi
Chính vì sự phức tạp này nên các nhà thiết kế tạo đã tích hợp một ít bộ nhớ và một
số các thiết bị ngoại vi cùng với vi xử lí tạo thành một IC gọi là vi điều khiển
Trang 2Khi vi điều khiển ra đời đã mang lại sư tiện lợi là dễ dàng sử dụng trong điều khiển công nghiệp, việc sử dụng vi điều khiển không đòi hỏi người sử dụng phải hiểu biết
về một lượng kiến thức quá nhiều như sử dụng vi xử lí
Có rất nhiều hãng chế tạo được vi điều khiển ,hãng sản xuất là ATMEL Có nhiều họ
vi điều khiển mang các mã số khác nhau,một trong số họ nổi tiếng là họ MCS-51 Song song với họ MCS-51 là họ MCS-52 có nhiều timer hơn họ MCS-51 một timer
và dung lượng bộ nhớ nội lớn gấp đôi tức 8Kbyte
Ứng dụng của vi điều khiển rất nhiều trong các hệ thống điều khiển công nghiệp,các dây chuyền sản xuất,các bộ điều khiển lập trình,máy giặt,máy điều hòa nhiệt độ… Sau đây nhóm chúng em xin trình bày một trong những ứng dụng của vi điều khiển
Đó là lập trình cho vi điều khiển 89S52 điều khiển góc kích của triac để điều chỉnh điện áp xoay chiều
Trang 3CHƯƠNG 1. GIỚI THIỆU VI ĐIỀU KHIỂN 8051 (IC AT89S52)
1.1. Sơ lược về IC89S52:
Năm 1980 khi intel tung ra chip 8051, bộ Vi điều khiển đầu tiên của họ MCS-51 và
là chuẩn công nghệ cho nhiều họ Vi điều khiển được sản xuất sau này
Năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51bao gồm :
+4KB ROM,
+128 byte RAM,
+32 đường xuất nhập,
+1 port nối tiếp và 2 bộ định thời 16 bit
Tiếp theo sau đó là sự ra đời của chip 8052,8053,8055 với nhiều tính năng được cải tiến
Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay vào
Trang 4Matra&Dallas, Semiconductors được cấp phép làm nhà cung cấp thứ hai cho các chipcủa họ MSC-51.
Chip Vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay là Vi điều khiển của hãng Atmel.các mã số chip được thay đổi chút ít khi được Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự như nhau Tương tự 8051,8053,8055 có mã số tương đương ở Atmel là 89C51,89C53,89C55
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năng nạpchương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng
Dung lượng RAM Dung lượng ROM Chế độ nạp: 89S51 128 byte 4 Kbyte nối tiếp89S52 128 byte 8 Kbyte nối tiếp 89S53 128 byte 12 Kbyte nối tiếp 89S55 128 byte
20 Kbyte nối tiếp
Trang 51.2. Sơ đồ chân
Nhóm chân nguồn:
- VCC: chân 40, điện áp cung cấp 5VDC
- GND: chân 20(hay nối Mass)
Nhóm chân dao động: gồm chân 18 và chân 19 (Chân XTAL1 và XTAL2), cho phép ghép nối thạch anh vào mạch dao động bên trong vi điều khiển, được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nốivới thạch anh và các tụ để tạo nguồn xung clock ổn định
- XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung clock bên trong
- XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo
Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP): dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại:
Trang 6+ Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều khiển.
RST (Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
Nhóm chân điều khiển vào/ra:
Port 0: gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
+ Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoàivào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt
+ Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài
Port 1 (P1): gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác
Trang 7P3.3 INT1: Ngõ vào ngắt cứng thứ 1
P3.4 T0 : Ngõ vào của Timer/Counter thứ 0
P3.5 T1 : Ngõ vào của Timer/Counter thứ 1
P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài P1.0 T2 : Ngõ vào của Timer/Counter thứ 2
P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
Trang 8CHƯƠNG 2. GIỚI THIỆU VỀ TRIAC
2.1. Triac
• Triac (viết tắt của TRIode for Alternating Current) là phần tử bán dẫn gồm năm lớpbán dẫn, tạo nên cấu trúc p-n-p-n như ở thyristor theo cả hai chiều giữa các cực T1 vàT2, do đó có thể dẫn dòng theo cả hai chiều giữa T1 và T2 TRIAC có thể coi tươngđương với hai thyristor (SCR) đấu song song song ngược.để điều khiển Triac ta chỉcần cấp xung cho chân G của Triac
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
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ênxuố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ừ
Trang 9dướ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 (mainterminal).
- 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 T1ta có thể kích dòng cổng âm
Khi cấp xung dương vào cực G, Triac dẫn dòng từ T1 qua T2 và ngược lại Tacấp áp phân cực cho Triac hoạt động :
VT1 > VG > VT2 Hoặc VT2 > VG > VT1
Figure 2-1: Cấu trúc của TRIAC
Trang 10
Figure 2-2: Ký hiệu của TRIAC 2.2. Đặc tính
- Đặc tính Volt-Ampere của TRIAC bao gồm hai đoạn đặc tính ở góc phần tư thứ nhất
và thứ ba (hệ trục Descartes), mỗi đoạn đều giống như đặc tính thuận của một
thyristor
- TRIAC có thể điều khiển cho mở dẫn dòng bằng cả xung dương (dòng đi vào cực điều khiển) lẫn xung âm (dòng đi ra khỏi cực điều khiển) Tuy nhiên xung dòng điều khiển âm có độ nhạy kém hơn, nghĩa là để mở được TRIAC sẽ cần một dòng điều khiển âm lớn hơn so với dòng điều khiển dương Vì vậy trong thực tế để đảm bảo tính đối xứng của dòng điện qua TRIAC thì sử dụng dòng điện dương là tốt hơn cả
- Đặc tuyến Volt – Ampe gồm hai phần đối xứng nhau qua gốc O, mỗi phần tương tự đặc tuyến thuận của Thyristor
Trang 11- Triac chỉ điều khiển được khi nguồn điện là có chu kỳ mà điện áp trở về 0 Nếu Không chỉ có thể đóng được một lần, còn tắt thì không thể Nên nếu là nguồn điện một chiều, thì Triac sẽ đóng cho đến khi mất nguồn mới thôi.
Trang 12- Điều Khiền Triac: phải theo chiều của nguồn điện điều khiển Tức khi ở bán kỳ
âm thì phải kích theo chiều âm và ngược lại Và điện áp kích không cần cao chỉ khoảng 1V đến 2V là được
- Ngoài ra Triac còn dùng để điều khiển công suất cho bóng đèn, Motor: Tức thay đổi cường độ sáng hay tốc độ động cơ
Trang 13CHƯƠNG 3. TÁC DỤNG CỦA MỘT SỐ LINH KIỆN TRONG MẠCH
3.1. AT 89S52
- Chức năng: Là vi điều khiển chính của mạch .8 KB EPROM bên trong .256 Byte RAM nội.4 Port xuất /nhập I/O 8 bít 3 bộ định thời 16 bit Watch dog timer Các đặc điểm khác giống AT89C51
Trang 143.5. Điện trở
- Điện trở 330Ω: Có tác dụng hạn chế dòng điện và phân cực cho transistor
Trang 16Thông số kỹ thuật:
- Đầu vào: AC7.0-35V
- Đầu ra: DC5V 1A
Chức năng chuyển điện áp đầu ra cố định 5V - 1A
Trang 17CHƯƠNG 4. QUÁ TRÌNH LÀM MẠCH
4.1. Một số hình ảnh mô phỏng trên Proteus
Figure 4-4: Kết nối thạch anh 12MHz và chân Reset với IC 8051
Trang 18Figure 4-5: IC 8051 kết nối với các linh kiện
Figure 4-6: Sơ đồ toàn mạch
Trang 194.2. Một số hình ảnh Layout
Figure 4-7: Mạch Layout trên Proteus
Trang 20Figure 4-8: File Layout PDF
4.3. Code C
#include <REGX51.H>
sbit x_kich= P2^0; //GAN XUNG KICH VAO P2.0 (NHAP/XUAT)
sbit x_dongbo =P2^1; // GAN XUNG DONG BO VAO P2.0 (NHAP/XUAT)
bit nho=0; // GAN NHO’ =0
unsigned int count;
void delay (unsigned int time)
{
TMOD=0X10; //CHON CHE DO TIMER 8 BIT LAP LAI
TH1=(-time/256); //BIT CAO
TL1=(-time%256); //BIT THAP
TR1=1; //CHO PHEP HOAT DONG
while(!TF1); //CHO\ LUC TF1 =1 THI DUNG(CHO\ TF1 DEM DAY\)
TR1=TF1=0; //XOA’ KET THUC CHUONG TRINH DELLAY
Trang 21delay(count); // DELAY GOC KICH
x_kich=0; //SAU KHI DELAY GOC KICH, CHO X_KICH =0
delay2(); // DELAY XUNG KICH (XUNG KICH DANG=0)
x_kich=1; // CHO XUNG KICH LEN =1
}
void main()
{
count=500; // GIA TRI BAT DAU CUA DELAY
x_dongbo=1; // BAN DAU GAN CHO X_DONGBO =1
x_kich=1; // BAN DAU GAN CHO X_KICH =1
ORG 0000H //KHAI BAO
MAIN: SETB P2.0 //SET P2.0 LEN 1
Trang 25JNB TF0,$
CLR TR0 RET DELAY2MS: MOV TMOD,#01H
MOV TH0,#HIGH(-1991) MOV TL0,#LOW(-1991) SETB TR0
JNB TF0,$
CLR TR0 RET DELAY3MS: MOV TMOD,#01H
MOV TH0,#HIGH(-2991) MOV TL0,#LOW(-2991) SETB TR0
JNB TF0,$
CLR TR0 RET DELAY4MS: MOV TMOD,#01H
MOV TH0,#HIGH(-3991) MOV TL0,#LOW(-3991) SETB TR0
JNB TF0,$
CLR TR0 RET
Trang 26MOV TL0,#LOW(-4991) SETB TR0
JNB TF0,$
CLR TR0 RET DELAY6MS: MOV TMOD,#01H
MOV TH0,#HIGH(-5991) MOV TL0,#LOW(-5991) SETB TR0
JNB TF0,$
CLR TR0 RET DELAY7MS: MOV TMOD,#01H
MOV TH0,#HIGH(-6991) MOV TL0,#LOW(-6991) SETB TR0
JNB TF0,$
CLR TR0 RET DELAY8MS: MOV TMOD,#01H
MOV TH0,#HIGH(-7991) MOV TL0,#LOW(-7991) SETB TR0
JNB TF0,$
CLR TR0 RET DELAY8500US: MOV TMOD,#01H
MOV TH0,#HIGH(-8491) MOV TL0,#LOW(-8491) SETB TR0
JNB TF0,$
CLR TR0 RET END