Mục lục CHƯƠNG 1. PHÂN TÍCH YÊU CẦU CÔNG NGHỆ 4 1.1. Phân tích và giới hạn về đặc điểm thiết bị 4 1.1.1. Giới thiệu tổng quan về encoder 4 1.1.2. Giới thiều về một số linh kiện khác. 7 1.1.2.1. Sơ lược về led 7 thanh. 7 1.1.2.2. Tổng quát. 7 Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn. 7 1.1.2.3. Kết nối với Vi điều khiển 9 1.1.3. Tụ điện. 12 1.1.4. Điện trở. 13 1.1.5. Thạch anh dao động. 14 1.1.6. Điện trở treo. 15 1.1.7. Mạch truyền thông chuẩn RS_232( dung mạch MAX232) 15 1.2. các phương pháp điều khiển tốc độ động cơ 17 1.2.1. Điều chỉnh tốc độ bằng cách thay đổi điện trở mạch phần ứng 17 1.2.2. Điều chỉnh tốc độ bằng cách thay đổi từ thông kích từ 18 1.2.3. điều chỉnh tốc độ bằng cách thay đổi điện áp phần cứng 19 CHƯƠNG 2. THIẾT KẾ HỆ THỐNG 21 2.1. Phương pháp điều xung 21 2.2. Hạn chế tốc độ 22 2.3. sơ đồ mạch nguyên lý 22 2.4. Lưu đồ thuật toán chương trình 23 2.5. Phần lập trình và mô phỏng 24 CHƯƠNG 3. KẾT LUẬN 33 3.1. Ưu điểm 33 3.2. Nhược điểm 33 3.3. Kết luận 33
Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Đề bài: Ứng dụng họ vi điều khiển 8051 xây dựng hệ thống điều khiển tốc độ động điện chiều GVHD: Nguyễn Thị Thu Hà Nhóm sinh viên thực hiện: Vũ Văn Ký Hoàng Tùng Lâm Vũ Thị Lành Nguyễn Ngọc Linh Lê Văn Lợi Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Mục lục CHƯƠNG PHÂN TÍCH YÊU CẦU CÔNG NGHỆ 1.1 Phân tích giới hạn đặc điểm thiết bị .4 1.1.1 Giới thiệu tổng quan encoder 1.1.2 Giới thiều số linh kiện khác 1.1.2.1 Sơ lược led Tổng quát .7 Led đoạn có cấu tạo bao gồm led đơn có dạng xếp theo hình có thêm led đơn hình tròn nhỏ thể dấu chấm tròn góc dưới, bên phải led đoạn 1.1.2.2 Kết nối với Vi điều khiển .9 1.1.3 Tụ điện 11 1.1.4 Điện trở 13 1.1.5 Thạch anh dao động 14 1.1.6 Điện trở treo 14 1.1.7 Mạch truyền thông chuẩn RS_232( dung mạch MAX232) .15 1.2 phương pháp điều khiển tốc độ động 16 1.2.1 Điều chỉnh tốc độ cách thay đổi điện trở mạch phần ứng 16 1.2.2 Điều chỉnh tốc độ cách thay đổi từ thông kích từ 17 1.2.3 điều chỉnh tốc độ cách thay đổi điện áp phần cứng .19 CHƯƠNG THIẾT KẾ HỆ THỐNG 22 2.1 Phương pháp điều xung 22 2.2 Hạn chế tốc độ 23 2.3 sơ đồ mạch nguyên lý .23 2.4 Lưu đồ thuật toán chương trình 23 2.5 Phần lập trình mô 25 CHƯƠNG KẾT LUẬN .34 3.1 Ưu điểm 34 3.2 Nhược điểm 34 Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà 3.3 Kết luận 34 Lời nói đầu Ngày nay, với ứng dụng khoa học kỹ thuật tiên tiến, giới ngày thay đổi, văn minh đại Sự phát triển kỹ thuật điện tử tạo hàng loạt thiết bị với đặc điểm bật xác cao, tốc độ nhanh, gọn nhẹ yếu tố cần thiết góp phần cho hoạt động người đạt hiệu cao Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng lại điều phức tạp Các vi điều khiển theo thời gian với phát triển công nghệ bán dẫn tiến triển nhanh, từ vi điều khiển bit đơn giản đến vi điều khiển 32 bit, sau 64 bit Điện tử trở thành ngành khoa học đa nhiệm vụ Một ứng dụng thiết thực ứng dụng đo hiển thị tốc độ động Đây ứng dụng quan trọng áp dụng nhiều lĩnh vực dây chuyền sản xuất Tốc độ động hiển thị hình nhờ led thanh, Từ giám sát tốc độ động rùi có định điều khiển cho phù hợp với yêu cầu Vì thế, với môn học Vi điều khiển này, em định nhận làm tập lớn điều khiển động dùng 8051 Chúng em xin trình bày nội dụng cụ thể tập lớn sau Kính mong Thầy - Cô xem cho nhận xét, đánh giá để tập lớn đầy đủ Chúng em xin chân thành cảm ơn! Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà CHƯƠNG PHÂN TÍCH YÊU CẦU CÔNG NGHỆ 1.1 Phân tích giới hạn đặc điểm thiết bị 1.1.1 Giới thiệu tổng quan encoder Encoder mục đích dùng để quản lý vị trí góc đĩa quay, đĩa quay bánh xe, trục động cơ, thiết bị quay cần xác định vị trí góc Encoder chia làm loại, absolute Encoder incremental Encoder • Nguyên lý hoạt động Encoder, led lỗ Nguyên lý Encoder, đĩa tròn xoay, quay quanh trục Trên đĩa có lỗ (rãnh) Người ta dùng đèn led để chiếu lên mặt đĩa Khi đĩa quay, chỗ lỗ (rãnh), đèn led không chiếu xuyên qua được, chỗ có lỗ (rãnh), đèn led chiếu xuyên qua Khi đó, phía mặt bên đĩa, người ta đặt mắt thu Với tín hiệu có, ánh sáng chiếu qua, người ta ghi nhận đèn led có chiếu qua lỗ hay không Khi trục quay, giả sử đĩa có lỗ nhất, lần mắt thu nhận tín hiệu đèn led, có nghĩa đĩa quay vòng Đây nguyên lý Encoder Tuy nhiên, vấn đề đặt là, để xác định xác vị trí đĩa quay (mịn hơn) làm để xác định đĩa quay theo chiều Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Hình 2.1: nguyên lý hoạt động Encoder Trong hình 2.1, có đĩa mask, không quay, đĩa cố định, thực để che khe hẹp ánh sáng qua, giúp cho việc đọc Encoder xác • Hoạt động Incremental Encoder Cứ lần quay qua lỗ, Encoder tăng đơn vị biến đếm Để biết Encoder quay hết vòng, người ta đưa vào thêm lỗ định vị để đếm số vòng quay Encoder Như vậy, cho dù có lệch xung, mà thấy Encoder ngang qua lỗ định vị này, biết Encoder bị đếm sai Nếu rung động đó, mà không thấy Encoder qua lỗ định vị, từ số xung, việc qua lỗ định vị, biết rõ tượng sai Encoder Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Hình 1.9: Encoder có lỗ định vị Để biết Encoder xoay theo chiều người ta đặt thêm vòng lỗ vòng lỗ thứ lỗ định vị hình sau: Chú ý rằng, vị trí góc lỗ vòng lỗ vòng lệch Các cạnh lỗ vòng nằm lỗ vòng ngược lại Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Hình 1.10: Encoder phổ biến 1.1.2 Giới thiều số linh kiện khác 1.1.2.1 Sơ lược led Tổng quát Led đoạn có cấu tạo bao gồm led đơn có dạng xếp theo hình có thêm led đơn hình tròn nhỏ thể dấu chấm tròn góc dưới, bên phải led đoạn led đơn led đoạn có Anode(cực +) Cathode(cực -) nối chung với vào điểm, đưa chân để kết nối với mạch điện cực lại led đơn đưa thành chân riêng, đưa để kết nối với mạch điện Nếu led đoạn có Anode(cực +) chung, đầu chung nối với +Vcc, chân lại dùng để điều khiển trạng thái sáng tắt led đơn, led sáng tín hiệu đặt vào chân mức Nếu led đoạn có Cathode(cực -) chung, đầu chung nối xuống Ground (hay Mass), chân lại dùng để điều khiển trạng thái Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà sáng tắt led đơn, led sáng tín hiệu đặt vào chân mức Vì led đoạn chứa bên led đơn, kết nối cần đảm bảo dòng qua led đơn khoảng 10mA-20mA để bảo vệ led Nếu kết nối với nguồn 5V hạn dòng điện trở 330Ω trước chân nhận tín hiệu điều khiển Hình 1.11: Sơ đồ vị trí led Các điện trở 330Ω điện trở bên kết nối để giới hạn dòng điện qua led led đoạn nối với nguồn 5V Nhóm 10-TDH3-K9 Trang Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b Tương tự với chân led lại 1.1.2.2 Kết nối với Vi điều khiển Ngõ nhận tín hiệu điều khiển led đoạn có đường, dùng Port Vi điều khiển để điều khiển led đoạn Như led đoạn nhận liệu bit từ Vi điều khiển để điều khiển hoạt động sáng tắt led led đơn nó, liệu xuất điều khiển led đoạn thường gọi "mã hiển thị led đoạn" Có hai kiểu mã hiển thị led đoạn: mã dành cho led đoạn có Anode(cực +) chung mã dành cho led đoạn có Cathode(cực -) chung Chẳng hạn, để thị số cần làm cho led vị trí b c sáng, sử dụng led đoạn có Anode chung phải đặt vào hai chân b c điện áp 0V(mức 0) chân lại đặt điện áp 5V(mức 1), sử dụng led đoạn có Cathode chung điện áp(hay mức logic) hoàn toàn ngược lại, tức phải đặt vào chân b c điện áp 5V(mức 1) Bảng mã hiển thị led đoạn: • Phần cứng kết nối với Port Vi điều khiển, để thuận tiện cho việc xử lí sau phần cứng nên kết nối sau: Px.0 nối với chân a, Px.1 nối với chân b, theo thứ tự Px.7 nối với chân h • Dữ liệu xuất có dạng nhị phân sau : hgfedcba Bảng 1.1: Bảng mã hiển thị led đoạn dành cho led đoạn có Anode chung (các led đơn sáng mức 0): Số hiển thị led Nhóm 10-TDH3-K9 Mã hiển thị led đoạn Mã hiển thị led đoạn dạng Trang Bài tập lớn: Vi xử lí đoạn GVHD: Nguyễn Thu Hà dạng nhị phân thập lục phân hgfedcba 11000000 C0 11111001 F9 10100100 A4 10110000 B0 10011001 99 10010010 92 11000010 82 11111000 F8 10000000 80 10010000 90 A 10001000 88 B 10000011 83 C 11000110 C6 D 10100001 A1 E 10000110 86 F 10001110 8E - 10111111 BF Bảng 1.2: Bảng mã hiển thị led đoạn dành cho led đoạn có Cathode chung (các led đơn sáng mức 1) Nhóm 10-TDH3-K9 Trang 10 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà CHƯƠNG THIẾT KẾ HỆ THỐNG 2.1 Phương pháp điều xung PWM (Pulse Width Modulation) phương pháp điều chỉnh điện áp tải, hay nói cách khác, phương pháp điều chế dựa thay đổi độ rộng chuỗi xung vuông, dẫn đến thay đổi điện áp Các PWM biến đổi có tần số khác độ rộng sườn dương hay sườn âm Nguyên lý : Trong khoảng thời gian - t0, ta cho van G mở, toàn điện áp nguồn Ud đưa tải Còn khoảng thời gian t0 - T, cho van G khóa, cắt nguồn cung cấp cho tải Vì với t0 thay đổi từ cho đếnT, ta cung cấp toàn , phần hay khóa hoàn toàn điện áp cung cấp cho tải Công thức tính giá trị trung bình điện áp tải : Gọi t1 thời gian xung sườn dương (khóa mở ) T thời gian sườn âm dương, Umax điện áp nguồn cung cấp cho tải Ta có: Ud=U1(t0/T) (v) Trong : t0 thời gian van dẫn chu kỳ T chu kỳ U1 : điện áp nguồn chiều Nhóm 10-TDH3-K9 Trang 22 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà 2.2 Hạn chế tốc độ Phương trình đặc tính cơ: Thay đổi điện áp phần ứng giữ nguyên giá trị từ thông điện trở phần ứng Ở chế độ không tải tốc độ max động đạt 90v/phút Uư=U1(t0/T) (v) 2.3 sơ đồ mạch nguyên lý 2.4 Lưu đồ thuật toán chương trình Nhóm 10-TDH3-K9 Trang 23 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà start Button=0 Điều chế xung Đếm xung Tính toán tốc độ Hiển thị Start RET Hình 2.1 : Sơ đồ thuật toán chương trình TMOD =0 PWM_WITH=0 EA=1, ET0=1, TR0=1 PWMPIN =0 ? S Đ TH0=PWM_WITH Nhóm 10-TDH3-K9 TF0=1 RET TH0=255-PWM_WITH Trang 24 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Hình 2.2: Sơ đồ thuật toán chương trình điều chế xung 2.5 Phần lập trình mô #include sbit PWMPIN = P3^0; static unsigned int count = 0, count2 = 0; unsigned char code segment_ac[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char pwm_width, num; unsigned int nghin, tram, chuc, donvi; unsigned int dem=0,NUMBER=0,tocdo=0; #define led_data P0 bit pwm_flag; Nhóm 10-TDH3-K9 Trang 25 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà sbit button_1= P1^0; sbit button_2= P1^1; sbit button_3= P1^2; sbit button_4= P1^3; sbit button_5= P1^4; sbit button_6=P1^5; sbit vao = P3^5; sbit nghin_comm = P2^0; sbit tram_comm = P2^1; sbit chuc_comm = P2^2; sbit donvi_comm = P2^3; void pwm_setup() { TMOD = 0; pwm_width = 0; EA = 1; ET0 = 1; TR0 = 1; } /* Timer Interrupt service routine */ void timer0() interrupt { Nhóm 10-TDH3-K9 Trang 26 Bài tập lớn: Vi xử lí if (!pwm_flag) { GVHD: Nguyễn Thu Hà /* Start of High level */ pwm_flag = 1; /* Set flag */ PWMPIN = 0; /* Set PWM o/p pin */ TH0 = pwm_width; /* Load timer */ TF0 = 0; /* Clear interrupt flag */ } else { /* Start of Low level */ pwm_flag = 0; /* Clear flag */ PWMPIN = 1; /* Clear PWM o/p pin */ TH0 = 255 - pwm_width; TF0 = 0; /* Load timer */ /* Clear Interrupt flag */ } } void pwm_stop() { TR0 = 0; /* Disable timer to disable PWM */ } void timer1_init(void) { EX1 = 1; IT1 = 1; } void init_t2(void) { Nhóm 10-TDH3-K9 Trang 27 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà T2CON = 0x80; /* 10000000 */ RCAP2L = (65536UL-1000UL); RCAP2H = (65536UL-1000UL) >> 8; TL2 = RCAP2L; TH2 = RCAP2H; ET2 = 1; /* Enable Timer Interrupts */ TR2 = 1; /* Start Timer Running */ } void tinhtoantocdo(void) // tinh toan { tocdo = (NUMBER*3)/5; } void display(void) { nghin = tocdo/1000; tram = (tocdo%1000)/100; chuc = (tocdo%100)/10; donvi = tocdo%10; switch (num) { Nhóm 10-TDH3-K9 Trang 28 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà case 0: { P2 = 0xFF; led_data = segment_ac[nghin]; nghin_comm = 0; break; } case 1: { P2 = 0xFF; led_data = segment_ac[tram]; tram_comm = 0; break; } case 2: { P2 = 0xFF; led_data = segment_ac[chuc]; chuc_comm = 0; break; } case 3: { P2 = 0xFF; led_data = segment_ac[donvi]; Nhóm 10-TDH3-K9 Trang 29 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà donvi_comm = 0; break; } default: { num = 0; break; } } num++; /* tang bien dem de biet dang sang o led nao */ if(num > 3) num = 0; /* co led nen bien dem chi dem toi */ /* quay lai tu dau */ } void main() { pwm_setup(); timer1_init(); init_t2(); P1 = 0xFF; while(1) { if(button_1 == 0) { Nhóm 10-TDH3-K9 Trang 30 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà pwm_width = 64; while(button_1 == 0); } if(button_2 == 0) pwm_width = 128; if(button_3 == 0) pwm_width = 192; if(button_4 == 0) pwm_width = 255; if(button_5 == 0) { PWMPIN=0; pwm_stop(); } if (button_6 ==0) TR0 = 1; } } void ngatngoai (void) interrupt { NUMBER++; led2 = ~led2; } void T2_OVF (void) interrupt Nhóm 10-TDH3-K9 Trang 31 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà { led = ~led; count++; count2++; if(count==5) { display(); count=0; } if(count2==1000) { tocdo=NUMBER*60/100; NUMBER=0; count2=0; } TF2 = 0; } Nhóm 10-TDH3-K9 Trang 32 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà 2.2 Phần mô Hình 2.3 Sơ đồ nguyên lý mạch Hình 2.4 Sơ đồ trạng thái lúc mạch làm việc Nhóm 10-TDH3-K9 Trang 33 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà CHƯƠNG KẾT LUẬN 3.1 Ưu điểm Mạch hiển thị LED đoạn nên dễ dàng cho người sử dụng theo dõi tốc độ động Mạch thiết kế nhỏ gọn, dễ sử dụng, tiện lợi dùng nhiều loại nguồn: pin, sạc điện thoại,… nên động 3.2 Nhược điểm Còn có sai số tốc độ sai số linh kiện sai số tính toán thiêt kế mạch chấp nhận 3.3 Kết luận Trong giai đoạn nay, ngành kinh tế đà phát triển mạnh mẽ, hàng loạt công ty, xí nghiệp, khu dân cư thực hình thành, nhu cầu ứng dụng vi mạch điện tử trình sản xuất ngày cao, đói hỏi lĩnh vực Vi điều khiển phải đáp ứng kịp thời theo phát triển Trong thời gian làm tập lớn này, chúng em tìm hiểu kĩ nghiên cứu tài liệu cần thiết, đặc biệt hướng dẫn nhiệt tình cô giáo hướng dẫn Nguyễn Thị Thu Hà đến em hoàn thành tập Với vốn kiến thức tiếp thu kì học qua, nỗ lực nhóm, nhiên hạn chế kinh nghiệm thực tế, tài liệu tham khảo, thời gian thực đồ án nên đồ án tránh khỏi thiếu sót Kính mong thầy hướng dẫn thầy cô Nhóm 10-TDH3-K9 Trang 34 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà hội đồng môn góp ý xây dựng cho tập lớn hoàn thiện hơn! Chúng em xin chân thành cảm ơn! Hà Nội, Ngày 08/06/2017 Nhóm 10-TDH3-K9 Trang 35 Bài tập lớn: Vi xử lí GVHD: Nguyễn Thu Hà Tài liệu tham khảo Kỹ thuật vi điều kiển – Đỗ Duy Phú Cấu trúc lập trình họ vi điều khiển 8051 – Nguyễn Tăng Cường, Phan Quốc Thắng Các tài liệu internet Nhóm 10-TDH3-K9 Trang 36 ... xuất Tốc độ động hiển thị hình nhờ led thanh, Từ giám sát tốc độ động rùi có định điều khiển cho phù hợp với yêu cầu Vì thế, với môn học Vi điều khiển này, em định nhận làm tập lớn điều khiển động. .. pháp điều khiển tốc độ động 16 1.2.1 Điều chỉnh tốc độ cách thay đổi điện trở mạch phần ứng 16 1.2.2 Điều chỉnh tốc độ cách thay đổi từ thông kích từ 17 1.2.3 điều chỉnh tốc độ. .. tính Ohm, vi t tắt Ω 1.1.5 Thạch anh dao động Hình 1.14: thạch anh dao động Thạch anh dao động có nhiệm vụ tạo xung điều khiển thích hợp phục vụ cho vi điều khiển sử dụng thạch anh dao động loại