Để 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
MỤC LỤC Lời nói đầu Như biết yêu cầu điều khiển cao hệ thống phức tạp yêu cầu điều khiển có đơn giản ví dụ điều khiển đóng mở led theo thời gian u cầu hệ thống vi xử lí phải có đầu đủ khối:bộ vi xử lí,bộ nhớ,các IC ngoại vi Để kết nối khối tạo thành hệ thống đòi hỏi người thiết kế phải hiểu biết khối.hệ thống tạo phức tạp ,chiếm nhiều không gian mạch in in ấn Một lí vi xử lí thường xử lí liệu theo byte word đói tượng điều khiển cơng nghiệp thường điều khiển theo bit Chính phức tạp nên nhà thiết kế tạo tích hợp nhớ số thiết bị ngoại vi với vi xử lí tạo thành IC gọi vi điều khiển Page Khi vi điều khiển đời mang lại sư tiện lợi dễ dàng sử dụng đ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 lượng kiến thức nhiều sử dụng vi xử lí Có nhiều hãng chế tạo vi điều khiển ,hãng sản xuất ATMEL Có nhiều họ vi điều khiển mang mã số khác nhau,một số họ tiếng họ MCS-51 Song song với họ MCS-51 họ MCS-52 có nhiều timer họ MCS-51 timer dung lượng nhớ nội lớn gấp đôi tức 8Kbyte Ứng dụng vi điều khiển nhiều hệ thống điều khiển công nghiệp,các dây chuyền sản xuất,các điều khiển lập trình,máy giặt,máy điều hịa nhiệt độ… Sau nhóm chúng em xin trình bày ứng dụng vi điều khiển Đó lập trình cho vi điều khiển 89S52 điều khiển góc kích triac để điều chỉnh điện áp xoay chiều Page CHƯƠNG GIỚI THIỆU VI ĐIỀU KHIỂN 8051 (IC AT89S52) 1.1 Sơ lược IC89S52: Năm 1980 intel tung chip 8051, Vi điều khiển họ MCS-51 chuẩn công nghệ cho nhiều họ Vi điều khiển sản xuất sau Năm 1980 Intel cơng bố chíp 8051(80C51), vi điều khiển 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 định thời 16 bit Tiếp theo sau đời chip 8052,8053,8055 với nhiều tính cải tiến Hiện Intel khơng cịn cung cấp loại Vi điều khiển họ MCS-51 nữa, thay vào nhà sản xuất khác Atmel, Philips/signetics, AMD, Siemens, Page Matra&Dallas, Semiconductors cấp phép làm nhà cung cấp thứ hai cho chip họ MSC-51 Chip Vi điều khiển sử dụng rộng rãi giới Việt Nam Vi điều khiển hãng Atmel.các mã số chip thay đổi chút Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 Intel sản xuất Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính chương trình tương tự Tương tự 8051,8053,8055 có mã số tương đương Atmel 89C51,89C53,89C55 Sau khoảng thời gian cải tiến phát triển, hãng Atmel tung thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến đặc biệt có thêm khả nạp chương trình theo chế độ nối tiếp đơn giản tiện lợi cho người sử dụng Dung lượng RAM Dung lượng ROM Chế độ nạp: 89S51 128 byte Kbyte nối tiếp 89S52 128 byte Kbyte nối tiếp 89S53 128 byte 12 Kbyte nối tiếp 89S55 128 byte 20 Kbyte nối tiếp Page 1.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 chân 19 (Chân XTAL1 XTAL2), cho phép ghép nối thạch anh vào mạch dao động bên vi điều khiển, sử dụng để nhận nguồn xung clock từ bên để hoạt động, thường ghép nối với thạch anh tụ để tạo nguồn xung clock ổn định - XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo ngõ vào đến mạch tạo xung clock bên - XTAL 2: Ngõ từ mạch khuếch đại dao động đảo Chân chọn nhớ chương trình: chân 31 (EA/VPP): dùng để xác định chương trình thực lấy từ ROM nội hay ROM ngoại: + Chân 31 nối mass: sử dụng nhớ chương trình bên ngồi vi điều khiển Page + Chân 31 nối VCC: sử dụng nhớ chương trình (4Kb) bên vi điều khiển RST (Chân RESET): Ngõ vào RST chân 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 thiết lập lại giá trị ban đầu ngõ mức tối thiểu chu kì máy Nhóm chân điều khiển vào/ra: Port 0: gồm chân (từ chân 32 đến 39) có hai chức năng: + Chức xuất/nhập :các chân dùng để nhận tín hiệu từ bên ngồi vào để xử lí, dùng để xuất tín hiệu bên ngồi, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt + Chức bus liệu bus địa (AD7-AD0) : chân (hoặc Port 0) làm nhiệm vụ lấy liệu từ ROM RAM ngoại (nếu có kết nối với nhớ ngồi), đồng thời Port dùng để định địa nhớ Port (P1): gồm chân (từ chân đến chân 8), có chức làm đường xuất/nhập, khơng có chức khác Port (P2) : gồm chân (từ chân 21 đến chân 28) có hai chức năng: -Chức xuất/nhập -Chức bus địa cao (A8-A15): kết nối với nhớ ngồi có dung lượng lớn,cần byte để định địa nhớ, byte thấp P0 đảm nhận, byte cao P2 đảm nhận Port (P3): Gồm chân (từ chân 10 đến 17): - Chức xuất/nhập - Với chân có chức riêng: P3.0 RxD : Ngõ vào nhận liệu nối tiếp P3.1 TxD : Ngõ xuất liệu nối tiếp P3.2 INT0: Ngõ vào ngắt cứng thứ Page P3.3 INT1: Ngõ vào ngắt cứng thứ P3.4 T0 : Ngõ vào Timer/Counter thứ P3.5 T1 : Ngõ vào Timer/Counter thứ P3.6 WR : Ngõ điều khiển ghi liệu lên nhớ P3.7 RD : Ngõ điều khiển đọc liệu từ nhớ bên P1.0 T2 : Ngõ vào Timer/Counter thứ P1.1 T2X : Ngõ Nạp lại/thu nhận Timer/Counter thứ Page CHƯƠNG GIỚI THIỆU VỀ TRIAC 2.1 Triac • Triac (viết tắt TRIode for Alternating Current) phần tử bán dẫn gồm năm lớp bán dẫn, tạo nên cấu trúc p-n-p-n thyristor theo hai chiều cực T1 T2, dẫn dòng theo hai chiều T1 T2 TRIAC coi tương đương với hai thyristor (SCR) đấu song song song ngược.để điều khiển Triac ta cần cấp xung cho chân G Triac Hình sau cho thấy cấu tạo, mơ hình tương đương cấu tạo Triac Như vậy, ta thấy Triac gồm SCR PNPN dẫn điện theo chiều từ xuống dưới, kích dịng cổng dương SCR NPNP dẫn điện theo chiều từ Page lên kích dịng cổng âm Hai cực cịn lại gọi hai đầu cuối (main terminal) - Do đầu T2 dương đầu T1, để Triac dẫn điện ta kích dịng cổng dương đầu T2 âm T1ta 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 ngược lại Ta cấ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 TRIAC Page Figure 2-2: Ký hiệu TRIAC 2.2 Đặc tính - Đặc tính Volt-Ampere TRIAC bao gồm hai đoạn đặc tính góc phần tư thứ thứ ba (hệ trục Descartes), đoạn giống đặc tính thuận - thyristor TRIAC điều khiển cho mở dẫn dòng xung dương (dòng vào cực điều khiển) lẫn xung âm (dòng khỏi cực điều khiển) Tuy nhiên xung dịng điều khiển âm có độ nhạy hơn, nghĩa để mở TRIAC cần dòng điều khiển âm lớn so với dịng điều khiển dương Vì thực tế để đảm bảo - tính đối xứng dịng điện qua TRIAC sử dụng dịng điện dương tốt Đặc tuyến Volt – Ampe gồm hai phần đối xứng qua gốc O, phần tương tự đặc tuyến thuận Thyristor Page 10 - Điều Khiền Triac: phải theo chiều nguồn điện điều khiển Tức bán kỳ âm phải kích theo chiều âm ngược lại Và điện áp kích khơng cần cao khoảng 1V đến 2V 2.4 Ứng dụng - TRIAC đặc biệt hữu ích ứng dụng điều chỉnh điện áp xoay chiều công-tắc-tơ tĩnh - Triac linh kiện giống hai diode điều khiển nối song song ngược chiều Nên triac dùng để đóng mở nguồn điện AC cho thiết bị Motor, Đèn - Ngoài 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 Page 12 CHƯƠNG 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 mạch .8 KB EPROM bên .256 Byte RAM nội.4 Port xuất /nhập I/O bít định thời 16 bit Watch dog timer Các đặc điểm khác giống AT89C51 3.2 Thạch anh - - Thạch anh 12MHz: Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (12 MHz) cho dao động 8051 Thạch anh gắn vào chân XTAL1 XTAL2 (Chân số 18 19) 8051 3.3 Tụ gốm - Tụ gốm: - Chức năng: Lọc nhiễu cho dao động thạch anh tụ gốm 33pF nối đầu với chân thạch anh, đầu lại đấu Mass Page 13 3.4 Tụ hóa - Tụ hóa: - Chức năng: Tụ hóa gắn đầu âm vào chân reset, đầu dương lên nguồn Khi cấp điện cho mạch, tụ phóng điện khiến chân reset bật lên mức cao, tồn hệ thống nạp lại từ đầu Khi vận hành tụ hóa ngăn dịng vào chân reset 3.5 Điện trở - Điện trở 330Ω: Có tác dụng hạn chế dịng điện phân cực cho transistor Page 14 3.6 Trasistor - Chức năng: Transistor thường sử dụng phần tử khuếch đại khóa điện tử 3.7 IC 7805 - LM7805 Module LM7805 DC5V 1A Page 15 Thông số kỹ thuật: - Đầu vào: AC7.0-35V - Đầu ra: DC5V 1A Chức chuyển điện áp đầu cố định 5V - 1A Page 16 CHƯƠNG QUÁ TRÌNH LÀM MẠCH 4.1 Một số hình ảnh mơ Proteus Figure 4-4: Kết nối thạch anh 12MHz chân Reset với IC 8051 Page 17 Figure 4-5: IC 8051 kết nối với linh kiện Figure 4-6: Sơ đồ toàn mạch Page 18 4.2 Một số hình ảnh Layout Figure 4-7: Mạch Layout Proteus Page 19 Figure 4-8: File Layout PDF 4.3 Code C #include 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 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 } // void delay2 () { unsigned char i; for (i=0;i BAN KY = 10Ms // 8500uS ~ 8.5mS /*if (!nho) { count+=10; if (count==8500) nho=1; //MOI LAN TANG 10uS TOI 8500uS THI NHO=1 } else { count-=10; if (count==10) nho=0; //MOI LAN GIAM 10uS TOI 8500uS THI NHO=1 } */ delay(count); x_kich=0; delay2(); x_kich=1; } void main() { count=500; x_dongbo=1; x_kich=1; while(1) { // DELAY GOC KICH //SAU KHI DELAY GOC KICH, CHO X_KICH =0 // DELAY XUNG KICH (XUNG KICH DANG=0) // CHO XUNG KICH LEN =1 // GIA TRI BAT DAU CUA DELAY // BAN DAU GAN CHO X_DONGBO =1 // BAN DAU GAN CHO X_KICH =1 while(!x_dongbo);//CHO X_DONGBO =0 dk_triac(); //X_DONGBO =1 THI DIEU KHIEN TRIAC while(x_dongbo); //LAP LAI } } 4.4 Code Assembly #include ORG 0000H MAIN: SETB P2.0 SETB P2.1 MOT: JNB P2.1,MOT // CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPA: JB P2.1,LAPA // MOTA: JNB P2.1,MOTA CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPAA: JB P2.1,LAPAA HAI: JNB P2.1,HAI //KHAI BAO //SET P2.0 LEN // KIEM TRA P2.1, NEU P2.1=0 $, P2.1=1 NHAY LENH KE TIEP //GOI CHUONG TRINH CON DELAY KIEM TRA P2.1, NEU P2.1=1 $, P2.1=0 NHAY LENH KE TIEP Page 21 ACALL DELAY1MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPB: JB P2.1,LAPB HAIA: JNB P2.1,HAIA ACALL DELAY1MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPBA: JB P2.1,LAPBA BA: JNB P2.1,BA ACALL DELAY2MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPC: JB P2.1,LAPC BAA: JNB P2.1,BAA ACALL DELAY2MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPCA: JB P2.1,LAPCA BON: JNB P2.1,BON ACALL DELAY3MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BONA: JNB P2.1,BONA ACALL DELAY3MS CLR P2.0 ACALL DELAY1MS SETB P2.0 NAM: JNB P2.1,NAM ACALL DELAY4MS CLR P2.0 ACALL DELAY1MS SETB P2.0 NAMA: JNB P2.1,NAMA ACALL DELAY4MS CLR P2.0 ACALL DELAY1MS SETB P2.0 SAU: JNB P2.1,SAU ACALL DALAY5MS CLR P2.0 ACALL DELAY1MS SETB P2.0 SAUA: JNB P2.1,SAUA ACALL DELAY5MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BAY: JNB P2.1,BAY ACALL DELAY6MS CLR P2.0 ACALL DELAY1MS Page 22 SETB P2.0 BAYA: JNB P2.1,BAYA ACALL DELAY6MS CLR P2.0 ACALL DELAY1MS SETB P2.0 TAM: JNB P2.1,TAM ACALL DALAY7MS CLR P2.0 ACALL DELAY1MS SETB P2.0 TAMA: JNB P2.1,TAMA ACALL DELAY7MS CLR P2.0 ACALL DELAY1MS SETB P2.0 CHIN: JNB P2.1,CHIN ACALL DELAY9MS CLR P2.0 ACALL DELAY1MS SETB P2.0 CHINA: JNB P2.1,CHINA ACALL DELAY8MS CLR P2.0 ACALL DELAY1MS SETB P2.0 MUOI: JNB P2.1,MUOI ACALL DELAY8500US CLR P2.0 ACALL DELAY1MS SETB P2.0 MUOIA: JNB P2.1,MUOIA ACALL DELAY8500US CLR P2.0 ACALL DELAY1MS SETB P2.0 MUOIB: JNB P2.1,MUOIB ACALL DELAY8500S CLR P2.0 ACALL DELAY1MS SETB P2.0 MUOIAB: JNB P2.1,MUOIAB ACALL DELAY8500US CLR P2.0 ACALL DELAY1MS SETB P2.0 CHINB: JNB P2.1,CHINB ACALL DELAY8MS CLR P2.0 ACALL DELAY1MS SETB P2.0 CHINAB: JNB P2.1,CHINAB ACALL DELAY8MS CLR P2.0 ACALL DELAY1MS SETB P2.0 TAMB: JNB P2.1,TAMB Page 23 ACALL DELAY7MS CLR P2.0 ACALL DELAY1MS SETB P2.0 TAMAB: JNB P2.1,TAMAB ACALL DELAY7MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BAYB: JNB P2.1,BAYB ACALL DELAY6MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BAYAB: JNB P2.1,BAYAB ACALL DELAY6MS CLR P2.0 ACALL DELAY1MS SETB P2.0 SAUB: JNB P2.1,SAUB ACALL DELAY5MS CLR P2.0 ACALL DELAY1MS SETB P2.0 SAUAB: JNB P2.1,SAUAB ACALL DELAY5MS CLR P2.0 ACALL DELAY1MS SETB P2.0 NAMB: JNB P2.1,NAMB ACALL DELAY4MS CLR P2.0 ACALL DELAY1MS SETB P2.0 NAMAB: JNB P2.1,NAMAB ACALL DELAY4MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BONB: JNB P2.1,BONB ACALL DELAY3MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BONAB: JNB P2.1,BONAB ACALL DELAY3MS CLR P2.0 ACALL DELAY1MS SETB P2.0 BAB: JNB P2.1,BAB ACALL DELAY2MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPCB: JB P2.1,LAPCB BAAB: JNB P2.1,BAAB ACALL DELAY2MS Page 24 CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPCAB: JB P2.1,LAPCAB HAIB: JNB P2.1,HAIB ACALL DELAY1MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPBB: JB P2.1,LAPBB HAIAB: JNB P2.1,HAIAB ACALL DELAY1MS CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPBAB: JB P2.1,LAPBAB MOTB: JNB P2.1,MOTB CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPAB: JB P2.1,LAPAB MOTAB: JNB P2.1,MOTAB CLR P2.0 ACALL DELAY1MS SETB P2.0 LAPAAB: JB P2.1,LAPAAB LJMP MAIN DELAY1MS: MOV TMOD,#01H MOV TH0,#HIGH(-991) MOV TL0,#LOW(-991) SETB TR0 JNB 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 DELAY5MS: MOV TMOD,#01H MOV TH0,#HIGH(-4991) Page 25 MOV 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 Page 26 ... khiển Đó lập trình cho vi điều khiển 89S52 điều khiển góc kích triac để điều chỉnh điện áp xoay chiều Page CHƯƠNG GIỚI THIỆU VI ĐIỀU KHIỂN 80 51 (IC AT89S52) 1. 1 Sơ lược IC89S52: Năm 19 80 intel... chip 80 51, Vi điều khiển họ MCS- 51 chuẩn công nghệ cho nhiều họ Vi điều khiển sản xuất sau Năm 19 80 Intel cơng bố chíp 80 51( 80C 51) , vi điều khiển họ vi điều khiển MCS-51bao gồm : +4KB ROM, +12 8 byte... mà điện áp trở Nếu Khơng đóng lần, cịn tắt khơng thể Nên nguồn điện chiều, Triac đóng nguồn Page 11 - Điều Khiền Triac: phải theo chiều nguồn điện điều khiển Tức bán kỳ âm phải kích theo chiều