Xem mẫu

  1. ĐỒ ÁN TỐT NGHIỆP VI ĐIỀU KHIỂN ROBOT DÒ ĐƯỜNG 1
  2. MỤC LỤC MỤC LỤC ......................................................................................................................2 Bài báo cáo vi điều khiển Robot dò đường ......................................................................3 I. Mạch............................................................................................................................3 Mạch điều khiển 89S52 ...................................................................................................3 Mạch nguyên lý...............................................................................................................3 Mạch in ...........................................................................................................................4 Mạch điều khiển động cơ “ IC MC 33486”......................................................................5 Mạch nguyên lý...............................................................................................................5 Mạch in ...........................................................................................................................6 Mạch so sánh (“IC LM358”) ...........................................................................................6 Mắt dò đường..................................................................................................................8 Mạch nguyên lý...............................................................................................................8 Mạch in ...........................................................................................................................8 II. CODE Robot dò đường...............................................................................................9 TR0=1;.......................................................................................................................... 10 TR0=1;.......................................................................................................................... 10 TR1=1;.......................................................................................................................... 11 TR1=1;.......................................................................................................................... 11 TR1=1;.......................................................................................................................... 11 TR1=0;.......................................................................................................................... 12 TR1=1;.......................................................................................................................... 12 TR0=0;.......................................................................................................................... 12 TL0=256-tocdo1; ..........................................................................................................12 TR0=1;.......................................................................................................................... 12 TR0=0;.......................................................................................................................... 12 TR0=1;.......................................................................................................................... 12 TR0=0;.......................................................................................................................... 17 TR1=0;.......................................................................................................................... 17 IT0=1; ........................................................................................................................... 17 IP=0; ............................................................................................................................. 17 III. Đồ án Robot dò đường dùng vi điều khiển 89S52 ...................................................18 2
  3. Bài báo cáo vi điều khiển Robot do đường I. Mạch Mạch điều khiển 89S52 Mạch nguyên lý 1 16 1 16 2 DCR0 17 2 DCR1 17 A0 A1 SW0 SW1 2 1 2 1 5 10 5 10 3 18 3 18 A2 A3 SW2 SW3 4 9 4 9 4 19 4 19 A4 A5 SW4 SW5 3 8 3 8 5 DCL0 20 HD1 5 DCL1 20 HD2 A6 A7 SW6 SW7 2 7 2 7 6 21 6 21 D CL 0 D CR0 D CL 1 D CR1 1 6 1 6 7 22 7 22 8 +24V 23 8 +24V 23 DD1 DD2 9 24 C1 9 24 C2 VCC VCC 10 25 10 25 GND GND 11 GND 26 11 GND 26 12 27 104 12 27 104 13 VCC 28 13 VCC 28 14 DK0 29 14 DK1 29 15 PWM0 30 15 PWM1 30 A0 1 39 HDC1 HDC2 T2/P1.0 P0.0/AD0 A1 2 38 BUT1 1 2 BUT0 1 2 T2 EX/P1.1 P0.1/AD1 3 4 3 4 A2 3 37 P1.2 P0.2/AD2 SW1 SW2 A3 4 36 P1.3 P0.3/AD3 RN 1 A4 5 35 P1.4 P0.4/AD4 A5 6 34 P1.5 P0.5/AD5 A6 7 33 P1.6 P0.6/AD6 GND GND A7 8 32 P1.7 P0.7/AD7 VCC RN3 C3 R1 10K SW0 10 21 PWM0 RES RXD/P3.0 P2.0/A8 VCC GND SW1 11 22 DK0 TXD/P3.1 P2.1/A9 10uF 1K SW2 12 23 PWM1 INT0/P3.2 P2.2/A10 SW3 13 24 DK1 RN 2 INT1/P3.3 P2.3/A11 1 2 SW4 14 25 10K 3 4 T0/P3.4 P2.4/A12 SW5 15 26 SW3 T1/P3.5 P2.5/A13 SW6 16 27 BUT1 WR/P3.6 P2.6/A14 SW7 17 28 BUT0 RD/P3.7 P2.7/A15 10K LR1 VCC RES 9 31 R2 3 Cx1 33pF RESET EA/VPP VCC SW2 VCC 2 GND 18 30 250 LED 1 X1 XTAL1 ALE/PROG GND 19 29 JP1 12Mhz XTAL2 PSEN IC1 Cx2 33pF 1 PNP1 3 +24V HD3 1 2 D1 R3 2 1 3 GND 1 IN OUT VCC 2 47 R4 HD4 270 2 C4 C6 C5 C7 2200uF/16V104 IC2 2200uF/16V 104 LD1 GND 3
  4. Mạch in 1 1 2 0 0 2 1 2 3 1 1 2 1 2 2 5 2 1 2 3 2 1 1 1 2 1 1 2 2 21 20 2 9 30 15 30 15 9 2 22 19 1 8 29 14 29 14 8 1 6 23 1 18 7 28 13 28 13 7 2 7 1 24 2 17 6 27 12 27 12 6 3 8 25 16 5 26 11 26 11 5 4 9 26 15 2 4 25 10 25 10 4 5 10 27 14 3 24 9 24 9 3 28 13 2 23 8 23 8 2 29 12 4 1 1 1 22 7 22 7 1 30 11 21 6 21 6 31 10 20 5 20 5 1 2 2 3 32 9 1 19 4 19 4 33 8 2 18 3 18 3 34 7 3 1 6 17 2 17 2 35 6 4 2 7 16 1 16 1 36 5 5 2 3 8 37 4 6 4 9 38 3 7 5 10 39 2 8 1 2 1 2 1 40 1 9 1 2 1 2 1 3 1 3 3 1 2 2 5 4 2 4 2 1 4
  5. Mạch điều khiển động cơ “ IC MC 33486” Mạch nguyên lý +24V R1 HD-MC1 10K 1 LD1 DCR0 VCC R2 2 270 3 PWM0 R3 LD2 GND 4 270 DCL0 5 6 DK0 R4 LD3 270 7 +24V LD4 8 9 10 GND 11 VCC 19 5 DCR0 12 ST OUT1 VCC PWM0 3 D 2 Q1 13 IN1 DK0 DK0 18 4 G IRF840 14 IN2 GLS1 PWM0 VCC 20 1 15 WAKE 2 S 3 CHAN CAM Cur R GND 12 NC +24V 21 13 DCL0 V+ OUT2 C1 10 D 2 Q2 NC 47uF/50V GND 1 GND GLS2 17 G IRF840 1 MC1 S 3 GND 5
  6. Mạch in 2 1 2 1 2 1 2 1 15 2 2 2 2 14 1 1 13 1 1 13 1 12 2 11 21 3 10 9 8 5 1 7 2 6 5 4 3 3 2 2 1 1 Mạch so sánh (“IC LM358”) a. Mạch nguyên lý 6
  7. RN1 102 VCC LD1 LD2 LD3 LD4 LD5 LD6 LD7 LD8 A0 A1 A0 A1 A2 A3 A4 A5 A6 A7 5 10 A2 A3 4 9 A4 A5 3 8 A6 A7 2 7 1 6 DD1 VCC GND VR1 VR2 GND VCC GND VCC 0 5 1 3 100K 7 A0 100K 1 A1 LDED0 6 LDED1 2 IC1B IC1A LDED0 LDED1 5 10 LDED2 LDED3 VR3 VR4 4 9 LDED4 LDED5 3 8 GND VCC GND VCC LDED6 LDED7 2 7 2 5 3 3 100K 1 6 7 A2 100K 1 A3 LDED2 6 LDED3 2 DD2 VCC IC2B IC2A GND VR5 VR6 RN2 GND VCC GND VCC LDED0 100K 4 5 5 3 LDED1 7 A4 100K 1 A5 LDED2 LDED4 6 LDED5 2 LDED3 LDED4 IC3B IC3A LDED5 LDED6 VR7 VR8 LDED7 GND VCC GND VCC VCC 6 5 7 3 103 100K 7 A6 100K 1 A7 LDED6 6 LDED7 2 IC4B IC4A b. Mạch in 0 6 7 8 9 10 1 2 3 4 5 9 8 7 6 5 4 3 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 8 1 8 1 8 1 8 2 7 2 7 2 7 2 7 3 6 3 6 3 6 3 6 4 5 4 5 4 5 4 5 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 1 2 3 4 5 6 7 8 9 6 7 8 9 10 1 2 3 4 5 1 7
  8. Mắt dò đường Mạch nguyên lý VCC VCC VCC VCC VCC VCC VCC VCC LDED0 LDED1 LDR1 LDR2 LDR3 LDR4 LDR5 LDR6 LDR7 LDR8 5 10 LDED2 LDED3 4 9 LDED4 LDED5 3 8 LDED6 LDED7 2 7 LDED0 LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7 1 6 R1 R2 R3 R4 R5 R6 R7 R8 DD1 10K 10K 10K 10K 10K 10K 10K 10K VCC GND GND GND GND GND GND GND GND GND VCC VCC VCC VCC VCC VCC VCC VCC R9 R10 R11 R12 R13 R14 R15 R16 1K 1K 1K 1K 1K 1K 1K 1K LD1 LD2 LD3 LD4 LD5 LD6 LD7 LD8 GND GND GND GND GND GND GND GND Mạch in 10 9 8 7 6 3 0 5 4 3 2 1 1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 8
  9. II. CODE Robot dò đường #include //========= Đị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; //------------------------------------------------------------------------------------ 9
  10. // 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
  11. //----------------------------------------------------------------------------------- // =============== Đ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) 11
  12. { 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; } 12
  13. } //----------------------------------------------------------------------- //=============== 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; 13
  14. nhotrai=0; break; } case L3: { banhphai(65,go); banhtrai(35,go); nhophai=0; nhotrai=0; break; } case L4: { banhphai(70,go); banhtrai(30,go); nhophai=0; nhotrai=0; break; } case L5: { banhphai(75,go); 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; 14
  15. nhotrai=0; break; } 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; 15
  16. nhotrai=1; break; } 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 == 1) { banhphai(90,go); banhtrai(10,back); } if (nhophai == 1) { banhphai(10,back); banhtrai(90,go); } break; } default : { if(((INPUT!=R1)||(INPUT!=R2)||(INPUT!=R3)||(INPUT!=R4)||(INPUT!=R 5)||(INPUT!=R6)||(INPUT!=R7)||(INPUT!=L1)||(INPUT!=L2)||(INPUT!=L3 16
  17. )||(INPUT!=L4)||(INPUT!=L5)||(INPUT!=L6)||(INPUT!=L7)||(INPUT!=out) )); { 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); 17
  18. } }  Bài sử dụng các tài nguyên của 89S52 như sau: o Timer 0,1 chế đỗ 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 18
nguon tai.lieu . vn