CÔNG THƯƠNG t CK.0000069606 G ĐẠI HỌC SAO Đỏ s. ĐẶNG VĂN TUỆ (Chủ biên) N G U Y ẼN ỌC LIỆU U T 7 NHÀ XUÂT BÁN KHOA HỌC VÀ KỸ THUẬT Bộ CÔNG THƯƠNG - TRƯÒNG ĐẠI HỌC SAO ĐỎ ThS. ĐẶNG VĂN TUỆ (Chủ biên) - ThS. NGUYÊN XUÂN ỨNG ThS.
PHẠM VĂN TUẤN - ThS. HÀ MINH TUÂN ThS. NGUYỄN VĂN TRƯNG - ThS. LÊ NGỌC HÒA BÀI TẬP VI ĐIỂU KHIỂN & PLC BẠI HỌC THÍI NGUYỀN TRUNG ĨÂM HỌC LỈỆU 0 = 7 NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT • ■ MỤC ■ LỤC ■ LỜI NÓI ĐẦU.5 Phần 1 BÀI TẬP VI ĐIÊU KHIỂN Bài IĨ1Ờđầu.
TÔNG QUAN VỀ VI ĐIỀU KHIÊN 8051 VÀ LẬP TRÌNH c .9 Bài tập số 1. LẬP TRÌNH VÀO/RA CHO VI ĐIÈU KHIÊN. 14 Bài tập số 2. ĐIỀU KHIỂN LED 7 THANH.
19 Bài tập số 3. GIAO TIẾP VI ĐIÈU KHIÊN VỚI LCD. 24 Bài tập số 4. GIAO TIẾP VI ĐIỀU KHĨÊN VỚI ADC.
30 Bài tập số 5. Bộ ĐỊNH THỜI/BỘ ĐÊM. 39 Bài tập số 6. 48 Bài tập số 7.
TRUYỀN THÔNG NỐI TIÊP.63 Bài tập số 8. ĐIỀU KHIÊN MA TRẬN PHÍM BÁM. 75 Bài tập số 9. ĐIỀU KHIÉN ĐỘNG c ơ BƯỚC.
81 Phần 2 BÀI TẬP PLC Bài tập số 1. GIỚI THIỆU CHUNG VỀ PLC.91 Bài tập số 2. ĐIÈU KHIÊN ĐỘNG c ơ KHÔNG ĐÔNG Bộ BA PHA QUAY THUẬN NGHỊCH. 98 Bài tập số 3.
ĐIỀU KHIÊN KHỞI ĐỘNG ĐỘNG c ơ ĐIỆN MỘT CHIỀU QUA BA CẤP ĐIỆN TRỞ .101 Bài tập số 4. ĐIỀU KHIÊN HỆ THỐNG BƠM NƯỚC NHÀ CAO TÀNG. 104 Bài tập số 5. ĐIỀU KHIÊN ĐÈN GIAO THÔNG HAI LUÔNG.
107 Bài tập số 6. ĐIỀU KHIÊN ĐÓNG MỞ CỬA T ự ĐỘNG. 111 Bài tập số 7. ĐIÈU KHIÊN KHỞI ĐỘNG VÀ HÃM ĐỘNG NĂNG ĐỘNG Cơ KHÔNG ĐổNG BỘ XOAY CHIỀU BA PHA.114 Bài tập số 8.
ĐIỀU KHIÊN KHỞI ĐỘNG ĐỘNG c ơ KHÔNG ĐỒNG BỘ BA PHA THEO PHƯƠNG PHÁP Y/A .117 Bài tập số 9. ĐIỀU KHIÊN HỆ THỐNG CHUÔNG ĐIỆN VÀ ĐÈN BÁO. 121 Bài tập số 10. ĐIỀU KHIẾN HỆ THỐNG BẢNG TẢI VÀ PHÂN LOẠI SẢN PHẨM .125 Bài tập số 11.
ĐIÊU KHIÊN HỆ THỐNG GỒM NHIỀU ĐỘNG c ơ. 130 Bài tập số 12. ĐIÊU KHIÊN GARA ÔTÔ T ự ĐỘNG .135 Bài tập sổ 13. ĐIỀU KHIÊN HỆ THỐNG PHA TRỘN MÀU SƠN.
138 TÀI LIỆU THAM KHẢO. 142 3 Jlời nói ÉầÀJL O ị í nghiệp công nghiệp hỏa, hiện đại hỏa trong giai đoạn hiện nay L j yêu cầu năng cao chất lượng sản phẩm, số lượng sản phẩm cũng như hỗ trợ cho con người những công việc phức tạp. Để thực hiện điều đó đội ngũ tri thức chính là lực lượng nòng cốt, sảng tạo và trở thành nguồn lực đặc biệt quan trọng trong chiến lược phát triển, tạo nên sức mạnh cùa mỗi quốc gia. Đối với nước ta những ngành đóng vai trò then chót của nền kinh tế là: Điện, Than, Dầu khỉ,.
và ngành công nghiệp Tự động hóa không nằm ngoài chiến lược phát triển kinh tế. Công nghiệp tự động hóa các ngành nghề, xây dựng cơ sở hạ tầng phục vụ dân sinh. Tự động hóa là một lĩnh vực đã được hình thành và phát triển rộng lớn trên phạm vi toàn thế giới, nó đem lại một phần không nhỏ cho việc tạo ra các sản phẩm cỏ chất lượng và độ phức tạp cao phục vụ nhu cầu thiết yếu cho cuộc sổng. Ở nước ta lĩnh vực tự động hóa đã được Đảng và Nhà nước quan tâm và đầu tư rất lớn, cũng với các lĩnh vực công nghiệp chuyển dịch nền kinh tế theo định hướng công nghiệp hỏa, hiện đại hóa đất nước.
Nói tới tự động hóa ngày nay chúng ta không thể không nhắc tới các thiết bị có điều khiến lập trình, trong đó PLC, 8051, PIC, AVR, ARM, .là một trong những thiết bị có điều khiển lập trình và được sử dụng rộng rãi. Trong khuôn khổ nội dung cuốn sách nhóm tác giả đã trình bày: Tổng quan về vi điều khiến 8051, một sổ cấu trúc lập trình c cho vi điểu khiển, các bài tập áp dụng được lập trình điều khiển trên phần mềm Keil uVision4 và mô phỏng sinh động trên phần mềm Proteus. Giơi thiẹu trung vê PLC, các bài tập áp dụng được lập trình điều khiển trên phần mềm Syswỉn 3.3, phần mềm c x - ONE với những tính năng ưu viẹt được sư dụng rọng rãi trong các phòng thí nghiệm và trong công nghiệp. Trong qua trinh biên soạn chúng tói đã cỏ nhiều cố gắng tìm tòi tài liệu va trao đoi VƠI cac đong nghiệp cổ nhiêu năm công tác trong ngành.
Song do thơi gian co hạn nên nội dung cuốn sách còn nhiều thiếu sót rất mong được sự đong gop y kiên của quý độc giả để cuốn sách được hoàn thiện hom trong lân tái bản sau. Mọi ỷ kiến đóng góp của quý độc giả xin gửi về: Khoa Điện Trường Đại học Sao Đỏ - 24 Thái Học - Phường Sao Đỏ - Thị xã Chí Linh - Tỉnh Hải Dương. Xin trân trọng cảm ơn! N H Ó M TÁC GIẢ 6 ăP Ả ần 4 --------- BÀI TẬP VI ĐIỀU KHIỂN Bài mở đẩu TỎNG QUAN VÈ VIĐIÈƯ KHIỂN 8051 VÀ LẬP TRÌNH c 1. TỔNG QUAN VỀ VI ĐIỀU KHIỂN 8051 1.
Sơ dô chân chức năng O ' P 1. S ơ đồ chân chức năng vi điều khiển 8051 1. Chức năng của các chân tín hiệu như sau: - PO.7 là các chân của cổng 0.7 là các chân của cổng 1.7 là các chân của cổng 2.7 là các chân của cổng 3. - RxD: Nhận tín hiệu kiểu nối tiếp.
- TxD: Truyền tín hiệu kiểu nối tiếp. - INTO: Ngắt ngoài 0. - INT1: Ngắt ngoài 1. - TO: Chân vào 0 của bộ Timer/Counter 0.
- T I: Chân vào 1 của bộ Timer/Counter 1. - Wr: Ghi dữ liệu vào bộ nhớ ngoài. - Rd: Đọc dữ liệu từ bộ nhớ ngoài. - RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy.
- XTAL1: Chân vào mạch khuếch đại dao động. - XTAL2: Chân ra từ mạch khuếch đại dao động. - EA: Truy cập bộ nhớ ngoài. - PSEN: Chân cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài).
- ALE (/PROG): Chân tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài, khi On-chip xuất ra byte thấp của địa chỉ. Tín hiệu chốt được kích hoạt ở mức cao, tần số xung chốt = 1/6 tần số dao động của bộ VĐK. Nó có thể được dùng cho các bộ Timer ngoài hoặc cho mục đích tạo xung Clock. Đây cũng là chân nhận xung vào để nạp chương trình cho Flash (hoặc EEPROM) bên trong On-chip khi nó ở mức thấp.
- /EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi /EA=0, nếu /EA=1 thì On-chip sẽ làm việc với bộ nhớ chương trình nội trú (trường họp cần truy cập vùng nhớ lớn hơn dung lượng bộ nhớ chương trình 10 nội trú, thĩ bộ nhớ chương trình ngoài cũng đttợc isử dụng). Khi chân này được cấp nguồn điện áp 12V (Vpp) thì On-chip đảm nhận chức năng nạp chương trình cho Flash bên trong nó. - Vcc: Cung cấp dương nguồn cho On-chip (+ 5V). - GND: Nối Mass.
MỘT SỐ CẤU TRÚC LẬP TRÌNH c CHO VI ĐIỀU KHIỂN 2. Cấu trúc điều khiển if a. Cẩu trúc rẽ nhảnh i f dạng khuyết Cú pháp câu lệnh if (bí) {công việc;} Trong đó: - if làtừkhoá - bt là một biểu thức - Công việc có thể là một lệnh đơn hay một khối lệnh. Cẩu trúc rẽ nhánh i f dạng đầy đủ Cú pháp câu lệnh ỉf(bt) {công việc 1;} else {công việc 2;} Trong đó: - if, else là từ khoá - bt là một biểu thức - Nếu biểu thức đúng thì thực hiện công việc 1, nếu biểu thức sai thì thực hiện công việc 2.
Cấu trúc điều khiển switch Cú pháp câu lệnh switch (biểu thức) { case el: Khổi lệnh l ; [break;] case e2: Khối_lệnh_2; [break;] case en: Khối lệnh n; [break;] [default: Khối lệnh n+1;] } Trong đó: - switch, case, default là các từ khoá - Biểu thức là một biểu thức nguyên bất kỳ - ei là giá trị nguyên mà biểu thức có thể nhận được. Có thể là kiểu char vì nó có thể được chuyển đổi thành kiểu int. Những phần đặt trong hai dấu [và] có thể có hoặc không. Cấu trúc lặp while Cú pháp câu lệnh While (bt) Công việc; Trong đó: - while là từ khoá - bt là một biểu thức - Công việc có thể là một lệnh đom hay một khối lệnh 12 2.
Cấu trúc lặp đo.while Cú pháp câu lệnh Do {Côngvỉệc;} whiỉe(bt); Trong đó: - While, Do là từ khoá - bt là một biểu thức - Công việc liệt kê các câu lệnh cần phải thực hiện 2. Cấu trúc lặp for Củ pháp câu lệnh for(btl ;bt2;bt3) {Công việc;} Trong đó: - for là từ khoá - btl, bt2, bt3 là các biểu thức - Công việc có thể là một lệnh đơn hay một khối lệnh. 13 Bài tập s ố 1 LẬP TRÌNH VÀO/RA CHO VIĐIÈU KH1ỀN 1. GIỚI THIỆU CHUNG Bài thực hành này sử dụng 4 Port của vi điều khiển để truy xuất dữ liệu bước đầu làm quen với lập trình bằng ngôn ngữ c cho vi điều khiển 2.
YÊU CÂU CÔNG NGHỆ - Khi ấn Buttonl các led đơn nháy đuổi từ PO. - Khi ấn Button2 các led đơn sáng, tắt đồng thời. - Khi ấn Button3 dừng chương trình. S ơ đồ nguyên lý mạch điện điều khiển dãy led đơn 14 4.
CHƯƠNG TRÌNH ĐIỀU KHIỂN #include<regx5 2. ----------------------------Dinh nghía cac chan #define button 1 P3_0 #define button2 P3_l #defĩne button3 P3_2 #defme ledl P1_0 #define led2 P l_ l #defme led3 Pl_2 #defìne led4 Pl_3 #define led5 Pl_4 #define ledó Pl_5 #define led7 Pl_6 #define led8 Pl_7 #defíne led9 P0_0 #defme ledio P0_1 #defíne ledl 1 P0_2 #defíne led 12 P0_3 #defĩne led 13 P0_4 #defme led 14 P0_5 #defme led 15 P0_6 #defme led 16 P0_7 //.---------------------------- Khai bao cac bien unsigned char X , unsigned char n; //------------------------------- Ham delay ms void delay_ms(unsigned char time) { unsigned char i=120; while(time—) { while(i—) {} } } //_---------------------- Chuong trinh con xu ly phim void xu_ly_phim() { while(! button ) x=l; while(!button2) x=2; while(!button3) x=3; } } //_---------------------- Chuong trinh con nhay kieu 1 void kieul() { if ( x = l) { 16 ledl=0;delay_ms(60);ledl=l ;led2=0;delay_ms(60);led2-l; Ied3=0;delay_ms(60);led3=l ;led4=0;delay_ms(60);led4=l; Ied5=0;delay_ms(60);led5=l;|ẹd6=0;delay_ms(60);led6=l; Ied7=0;delay_ms(60);led7=l ;led8=0;delay_ms(60);led8=l; Ied9=0;delay_ms(60);led9=l ;ledlO=l ;delay_ms(60);ledl0=l; ledl l=0;delay_ms(60);ledl I=l;ledl2=0;delay_ms(60);ledl2=l; led 13=0;delay_ms(60);led 13=1 ;led 14=0;delay_ms(60);led 14= 1; ledl 5=0;delay_ms(60);ledl 5=1 ;ledl 6=0;delay_ms(60);ledl 6=1; } } //_------------------------ Chuong trinh con nhay kieu 2------------------------ void kieu2() { if(x = 2 ) { Iedl=0;led2=0;led3=0;led4=0;led5=0; Ied6=0;led7=0 ;led8=0 ;delay_ms(60); led9=0 ;led 10=0; led 11=0 ;led 12=0; led 13=0; Iedl4=0;ledl5=0;ledl6=0;delay_ms(60); led 1=1 ;led2= 1;led3=1;led4= 1;led5= 1;led6= 1; led7=l ;led8=l ;delay_ms(60); led9= 1;led 10= 1;led 11=1 ;led 12= 1;led 13=1 ;led 14= 1; led 15=1 ;led 16= 1;delay_ms(60); } } //_----------------- Chuong trinh con dung chuong trinh-------------------- void dungO { if(x = 3 ) 17 { PO=Oxff; Pl=Oxff; } } //_.