»ùÓÚµ¥Æ¬»úµÄÀ¶ÑÀÒ£¿ØÐ¡³µ
À¶ÑÀÒ£¿Ø°´¼üÈÎÎñÑ¡Ôñ STC89C52
ͼ2-3 С³µÈÎÎñ·ÖÅä
2.4 ÕûÌåÓ²¼þ½á¹¹Éè¼Æ
ÖÇÄÜС³µÏµÍ³ÕûÌåÓ²¼þ½á¹¹ÒÔ89C51µ¥Æ¬»úΪÖÐÐÄÖ÷Òª·ÖΪÒÔϼ¸¸ö²¿·Ö£º
1£©Ô˶¯½á¹¹£¬¼´¶æ»úÄ£¿éÊÇÕû¸öϵͳµÄ»ù´¡£¬Í¨¹ý¶Ô¶æ»úÐÔÄܲÎÊýµÄ²â¶¨¶Ô¶æ»ú½øÐб궨¡¢¿ØËÙ£»
2£©¹©µç½á¹¹£¬²ÉÓ÷Öѹʽ¹©µç¡£ÓÉÓÚ¸÷£¬Ä£¿é¶ÔµçѹµÄÒªÇó²»Í¬£¬ËùÒÔÐèҪͨ¹ý·ÖѹÒÔÊÊÓ¦²»Í¬Ä£¿é¶ÔµçѹµÄÐèÇ󡣯äÖжæ»úÐèÒª8vµçѹµÄ¹©Ó¦£¬¶øµ¥Æ¬»ú¡¢´«¸ÐÆ÷¡¢À¶ÑÀµÈÄ£¿éÔòÐèÒª½ÏµÍÒ»µãµÄµçѹ5v¹©µç£»
3£©ÎÞÏßͨÐŽṹ£¬Í¨¹ý¶ÔÀ¶ÑÀÄ£¿éÓ뵥Ƭ»úͨÐŵç·µÄÉè¼ÆÓ뵥Ƭ»ú´®¿Ú¹¦Äܵĵ÷ÊÔ£¬×öµ½Ð¡³µÓëÊÖ»úµÄÎÞÏßͨÐÅ¡£
5
»ùÓÚµ¥Æ¬»úµÄÀ¶ÑÀÒ£¿ØÐ¡³µ
С³µÊµÎïͼÈçÏÂͼ2-3Ëùʾ¡£
ͼ2-4 С³µÊµÎïͼ
2.5 ÕûÌåÈí¼þ½á¹¹Éè¼Æ
µ±Æô¶¯µçԴϵͳ³õʼ»¯Íê³Éºó£¬Ð¡³µ½øÈëµÈ´ýµÄÈÎÎñģʽ£¬µÈ´ýÉϲ㰲׿ÖÕ¶ËÊÖ»úµÄAPP¿Í»§¶Ë·¢ËÍÈÎÎñÖ¸ÁС³µ½ÓÊÕµ½ÉϲãÊÖ»ú·¢Ë͵ÄС³µÐнø·½ÏòµÄÖ¸ÁîºóÏà¶ÔÓ¦µÄǰ½ø(forward)¡¢ºóÍË(backward)¡¢×óת(left)¡¢ÓÒת(right)¡¢Í£Ö¹(stop)µÈ¡£
6
»ùÓÚµ¥Æ¬»úµÄÀ¶ÑÀÒ£¿ØÐ¡³µ
µÚÈýÕ ģ¿éµÄÏêϸÉè¼Æ
3.1 L293Dµç»úÇý¶¯Ä£¿é
3.1.1Ä£¿é½éÉÜ
L293D²ÉÓÃ16Òý½ÅDIP·â×°£¬ÆäÄÚ²¿¼¯³ÉÁËË«¼«ÐÍH-Çŵç·£¬ËùÓеĿªÁ¿¶¼×ö³ÉnÐÍ¡£ÕâÖÖË«¼«ÐÍÂö³åµ÷¿í·½Ê½¾ßÓкܶàÓŵ㣬ÈçµçÁ÷Á¬Ðø£»µç»ú¿ÉËĽÇÏÞÔËÐУ»µç»úֹͣʱÓÐ΢ÕñµçÁ÷£¬Æðµ½¡°¶¯Á¦È󻬡±×÷Óã¬Ïû³ýÕý·´ÏòʱµÄ¾²Ä¦²ÁËÀÇø£ºµÍËÙÆ½ÎÈÐԺõȡ£L293Dͨ¹ýÄÚ²¿Âß¼Éú³ÉʹÄÜÐźš£H-Çŵç·µÄÊäÈëÁ¿¿ÉÒÔÓÃÀ´ÉèÖÃÂí´ïת¶¯·½Ïò£¬Ê¹ÄÜÐźſÉÒÔÓÃÓÚÂö¿íµ÷Õû£¨PWM£©¡£ÁíÍ⣬L293D½«2¸öH-Çŵç·¼¯³Éµ½1ƬоƬÉÏ£¬Õâ¾ÍÒâζ×ÅÓÃ1ƬоƬ¿ÉÒÔͬʱ¿ØÖÆ2¸öµç»ú¡£Ã¿1¸öµç»úÐèÒª3¸ö¿ØÖÆÐźÅEN12¡¢IN1¡¢IN2£¬ÆäÖÐEN12ÊÇʹÄÜÐźţ¬IN1¡¢IN2Ϊµç»úת¶¯·½Ïò¿ØÖÆÐźţ¬IN1¡¢IN2·Ö±ðΪ1£¬0ʱ£¬µç»úÕýת£¬·´Ö®£¬µç»ú·´×ª¡£Ñ¡ÓÃһ·PWMÁ¬½ÓEN12Òý½Å£¬Í¨¹ýµ÷ÕûPWMµÄÕ¼¿Õ±È¿ÉÒÔµ÷Õûµç»úµÄתËÙ¡£Ñ¡Ôñһ·I/O¿Ú£¬¾·´ÏòÆ÷74HC14·Ö±ð½ÓIN1ºÍIN2Òý½Å£¬¿ØÖƵç»úµÄÕý·´×ª¡£ÊµÎïͼÈçÏÂͼ3-1Ëùʾ¡£
ͼ3-1 Ä£¿éʵÎïͼ
7
»ùÓÚµ¥Æ¬»úµÄÀ¶ÑÀÒ£¿ØÐ¡³µ
3.1.2 PWMÂö³å¿ØÖÆÔÀí
ËùνPWM¾ÍÊÇÂö¿íµ÷ÖÆÆ÷£¬Í¨¹ýµ÷ÖÆÆ÷¸øµç»úÌṩһ¸ö¾ßÓÐÒ»¶¨ÆµÂʵÄÂö³å¿í¶È¿Éµ÷µÄÂö³åµç¡£Âö³å¿í¶ÈÔ½´ó¼´Õ¼¿Õ±ÈÔ½´ó£¬Ìṩ¸øµç»úµÄƽ¾ùµçѹԽ´ó£¬µç»úתËپ͸ߡ£·´Ö®Âö³å¿í¶ÈԽС£¬ÔòÕ¼¿Õ±ÈԽԽС¡£Ìṩ¸øµç»úµÄƽ¾ùµçѹԽС£¬µç»úתËپ͵͡£
PWM²»¹ÜÊÇ¸ßµçÆ½»¹ÊÇµÍµçÆ½Ê±µç»ú¶¼ÊÇת¶¯µÄ£¬µç»úµÄתËÙÈ¡¾öÓÚÆ½¾ùµçѹ¡£
3.1.3 Âö³å¿ØÖÆ´úÂë
void T0_time() interrupt 1 //³ÌÐò {
PWMCnt1++; PWMCnt2++;
if(PWMCnt1 >= 200) {
PWMCnt1 = 1; }
if(PWMCnt1 <= cntPWM1) //230 {
PWM1 = 1;
8
¶¨Ê±Æ÷1ÖжÏ
Ïà¹ØÍÆ¼ö£º