DA - Mach va giai thuat robot do duong.pdf

15 350 4
DA - Mach va giai thuat robot do duong.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án vi điều khiển CDT - K9 1 Bài báo cáo vi điều khiển Robot do đường I. Mạch 1. Mạch điều khiển 89S52 a. Mạch nguyên lý T2/P1.0 1 T2 EX/P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RESET 9 RXD/P 3.0 10 TXD/P3.1 11 INT0/P3.2 12 INT1/P3.3 13 T0/P3.4 14 T1/P3.5 15 WR/P3.6 16 RD/P 3.7 17 XTAL1 18 XTAL2 19 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15 28 PSEN 29 ALE/PROG 30 EA/VPP 31 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 IC1 DK0 DK1 PWM0 PWM1 1 2 3 4 5 6 7 8 9 10 DD1 GND VCC A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7 RN1 10K RN2 10K SW0 SW1 SW2 SW3 SW4 SW5 SW6 SW7 VCC 1 2 3 4 5 6 7 8 9 10 DD2 GND VCC SW0 SW1 SW2 SW3 SW4 SW5 SW6 SW7 DCR0 DCL0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 HDC1 DCR0 DCL0 +24V VCC DK0 C1 104 GND PWM0 DCR1 DCL1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 HDC2 DCR1 DCL1 +24V VCC DK1 C2 104 GND PWM1 RN3 10K R2 250 LR1 LED VCC GND VCC SW2 R3 47 C4 2200uF/16V C6 104 C5 2200uF/16V C7 104 VCC GND LD1 R4 270 1 2 3 PNP1 +24V VCC X1 12Mhz Cx2 33pF Cx1 33pF GND RES R1 1K C3 10uF 21 34 SW3 GNDVCC RES 1 2 3 JP1 1 2 HD3 1 2 HD4 IN 1 GND 2 OUT 3 IC2 1 2 HD1 1 2 HD2 D1 BUT0 BUT1 21 34 SW1 21 34 SW2 GND GND BUT0BUT1 Đồ án vi điều khiển CDT - K9 2 b. Mạch in 5 5 1 2 3 4 1 2 3 4 1 2 1 2 2 1 1 2 2 1 2 1 21 21 3 12 0 0 3 2 1 2 1 2 1 2 1 1 2 3 4 2 1 1 2 3 2 1 2 1 1 2 8 6 4 3 2 1 5 7 9 8 6 4 3 2 1 5 7 9 8 6 4 3 2 1 5 7 9 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 2 1 2 1 1 2 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2121 Đồ án vi điều khiển CDT - K9 3 2. Mạch điều khiển động cơ “ IC MC 33486” a. Mạch nguyên lý 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 HD-MC1 CHAN CAM DCR0 PWM0 DK0 VCC DCL0 GND +24V LD4 LD3 LD2 LD1 R1 10K R2 270 R3 270 R4 270 GND PWM0 DK0 VCC +24V C1 47uF/50V VCC VCC +24V PWM0 DK0 GND G 1 2 3 S D Q1 IRF840 G 1 2 3 S D Q2 IRF840 GND GND DCR0 DCL0 NC 10 NC 12 V+ 21 GND 1 Cur R 2 IN1 3 GLS1 4 OUT1 5 OUT2 13 GLS2 17 IN2 18 ST 19 WAKE 20 MC1 b. Mạch in 2 1 2 1 1 2 2 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 1 2 1 2 1 2 1 1 2 3 3 2 1 21 5 13 2 1 Đồ án vi điều khiển CDT - K9 4 3. Mạch so sánh (“IC LM358”) a. Mạch nguyên lý 7 5 6 IC1B 1 3 2 IC1A VR1 100K LD1 VR2 100K GND VCC GND VCC LD4 LD6LD2 LD3 LD5 LD7 LD8 7 5 6 IC2B 1 3 2 IC2A VR3 100K VR4 100K GND VCC GND VCC 7 5 6 IC3B 1 3 2 IC3A VR5 100K VR6 100K GND VCC GND VCC 7 5 6 IC4B 1 3 2 IC4A VR7 100K VR8 100K GND VCC GND VCC RN1 102 VCC A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7 1 2 3 4 5 6 7 8 9 10 DD2 GND VCC LDED0 LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7 LDED0 LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7 RN2 103 LDED0 LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7 VCC 01 23 45 67 1 2 3 4 5 6 7 8 9 10 DD1 GND VCC A0 A1 A2 A3 A4 A5 A6 A7 b. Mạch in 1 0 1 2 3 4 5 6 7 8 9 10 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 9751 2 3 4 6 8 9 7 5 123468 21 21 21 21 21 1 2 21 1 2 5 6 7 8 4 3 2 1 5 6 7 8 4 3 2 1 5 6 7 8 4 3 2 1 5 6 7 8 4 3 2 1 1 2 3 4 5 6 7 8 9 10 Đồ án vi điều khiển CDT - K9 5 4. Mắt dò đường a. Mạch nguyên lý R3 10K 1 2 3 4 5 6 7 8 9 10 DD1 GND VCC LDED0 LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7 LDR3 GND VCC R4 10K LDR4 GND VCC R5 10K LDR5 GND VCC R6 10K LDR6 GND VCC R7 10K LDR7 GND VCC R8 10K LDR8 GND VCC R1 10K LDR1 GND VCC LDED0 R2 10K LDR2 GND VCC LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7 LD1 R9 1K GND VCC LD2 R1 0 1K GND VCC LD3 R11 1K GND VCC LD4 R12 1K GND VCC LD5 R13 1K GND VCC LD6 R14 1K GND VCC LD7 R1 5 1K GND VCC LD8 R16 1K GND VCC b. Mạch in 3 2 1 0 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 12 12 12 1 21212121 2 1 2 1 2 112211 21 2 21 12345 678910 Đồ án vi điều khiển CDT - K9 6 II. CODE Robot dò đường #include <REGX51.H> //========= Định nghĩa chiều quay bánh========== #define go 1 #define back 0 // #define out 0xFF // 0B11111111 //============= Định nghĩa mắt dò================ #define R7 0x7F // 0B01111111 #define R6 0x3F // 0B00111111 #define R5 0xBF // 0B10111111 #define R4 0x9F // 0B10011111 #define R3 0xDF // 0B11011111 #define R2 0xAF // 0B11001111 #define R1 0xEF // 0B11101111 #define TT 0xE7 // 0B11100111 #define L1 0xF7 // 0B11110111 #define L2 0xF3 // 0B11110011 #define L3 0xFB // 0B11111011 #define L4 0xF9 // 0B11111001 #define L5 0xFD // 0B11111101 #define L6 0xFA // 0B11111100 #define L7 0xFE // 0B11111110 // // =========== Định nghĩa Pin xung PWM, Pin điều khiển======= sbit xung=P2^0; sbit dk1=P2^1; sbit dk2=P2^3; sbit xung2=P2^2; // Đồ án vi điều khiển CDT - K9 7 // khai báo unsigned char tocdo1,tocdo2 ; unsigned char x=0,y=0; unsigned long int counter0=0; unsigned char INPUT; // ==============Hàm tạo trễ=============== void delay(unsigned long int a) { unsigned long int i; for (i=0;i<=a;i++); } // //========== Đếm đường ngắt 0================= void ngat0(void) interrupt 0 { counter0++; } // //================ Điều khiển bánh trái================== void banhtrai (unsigned char tocdo0,unsigned char chieu) { if (chieu==go) { TR0=1; tocdo1=tocdo0; dk1=1; } if (chieu==back) { TR0=1; tocdo1=tocdo0; dk1=0; } } // Đồ án vi điều khiển CDT - K9 8 // =============== Điều khiển bánh phải================== void banhphai (unsigned char tocdo0,unsigned char chieu) { if (chieu==go) { TR1=1; tocdo2=tocdo0; dk2=1; } if (chieu==back) { TR1=1; tocdo2=tocdo0; dk2=0; } } // //============ Tao Xung PWM bánh phải ============= void ngatt1 (void) interrupt 3 { y++; if( y==1) { TR1=0; TL1=256-tocdo2; xung2=1; TR1=1; } if (y==2) { Đồ án vi điều khiển CDT - K9 9 TR1=0; TL1=256-(100-tocdo2); xung2=0; TR1=1; y=0; } } // //============ Tao Xung PWM bánh trái ============= void ngatt0 (void) interrupt 1 { x++; if (x==1) { TR0=0; TL0=256-tocdo1; xung=1; TR0=1; } if (x==2) { TR0=0; TL0=256-(100-tocdo1); xung=0; TR0=1; x=0; } } // Đồ án vi điều khiển CDT - K9 10 //=============== Hàm do đường ================ void doduong(unsigned long int cm) { unsigned char nhotrai,nhophai; unsigned char INPUT; counter0=0; while((100*cm)>=(counter0*18)) { INPUT=P1; // mắt dò đượng nhận vào bằng PORT 1. switch (INPUT) { case TT: { banhphai(50,go); banhtrai(50,go); nhophai=0; nhotrai=0; break; } case L1: { banhphai(55,go); banhtrai(45,go); nhophai=0; nhotrai=0; break; } case L2: { banhphai(60,go); banhtrai(40,go); nhophai=0; nhotrai=0; break; [...]... CDT - K9 13 Đồ án vi điều khiển banhphai(50,go); banhtrai(50,go); } break; } } } } // -/ /================ Hàm Stop=============== void stop(void) { TR0=0; TR1=0; xung=0; dk1=0; dk2=0; xung2=0; } // -/ / Hàm chính void main (void) { TMOD=0x22; IE=0x8B; IT0=1; IP=0; while(1) { doduong(300); // dò đường 3m dừng stop(); while(1); } } CDT -. .. đỗ 8bit tạo xung dùng ngắt 1,3 o Ngắt ngoài 0 để đếm đường bằng Encoder o PORT 1 để nhận tín hiệu từ mắt dò o Và Pin I/O điều khiển III Đồ án Robot dò đường dùng vi điều khiển 89S52 Thực hiên đồ án: Phạm Văn Lượng Lê Xuân Định Nguyễn Trần Cường Lớp: CDT- K9 CDT - K9 15 ... banhtrai(25,go); nhophai=1; nhotrai=0; break; } case L6: { banhphai(80,go); banhtrai(20,go); nhophai=1; nhotrai=0; break; } case L7: { banhphai(85,go); banhtrai(15,go); nhophai=1; nhotrai=0; break; CDT - K9 11 Đồ án vi điều khiển } case R1: { banhphai(45,go); banhtrai(55,go); nhophai=0; nhotrai=0; break; } case R2: { banhphai(40,go); banhtrai(60,go); nhophai=0; nhotrai=0; break; } case R3: { banhphai(35,go);... banhtrai(65,go); nhophai=0; nhotrai=0; break; } case R4: { banhphai(30,go); banhtrai(70,go); nhophai=0; nhotrai=0; break; } case R5: { banhphai(25,go); banhtrai(75,go); nhophai=0; nhotrai=1; break; CDT - K9 12 Đồ án vi điều khiển } case R6: { banhphai(20,go); banhtrai(80,go); nhophai=0; nhotrai=1; break; } case R7: { banhphai(15,go); banhtrai(85,go); nhophai=0; nhotrai=1; break; } case out: { if (nhotrai . tocdo0,unsigned char chieu) { if (chieu==go) { TR0=1; tocdo1=tocdo0; dk1=1; } if (chieu==back) { TR0=1; tocdo1=tocdo0; dk1=0; } } // Đồ án vi điều khiển CDT -. if( y==1) { TR1=0; TL1=256-tocdo2; xung2=1; TR1=1; } if (y==2) { Đồ án vi điều khiển CDT - K9 9 TR1=0; TL1=25 6-( 100-tocdo2); xung2=0; TR1=1; y=0; . TR0=0; TL0=256-tocdo1; xung=1; TR0=1; } if (x==2) { TR0=0; TL0=25 6-( 100-tocdo1); xung=0; TR0=1; x=0; } } // Đồ án vi điều khiển CDT - K9 10 //===============

Ngày đăng: 27/10/2014, 09:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan