word¸ñʽÎĵµ
ͼ4-1 Keil for 51 ¿ª·¢Æ½Ì¨½Øͼ
KEIL for C51 ±àÒëƽ̨¶Ô51µ¥Æ¬»úµÄÆ÷¼þÑ¡ÐÍÉèÖá£Èçͼ4-2Ëùʾ¡£
ͼ4-2 MCUÑ¡ÐÍÉèÖÃ
4.2 ϵͳÈí¼þÁ÷³Ì
ϵͳÈí¼þÁ÷³ÌͼÈçͼ4-3Ëùʾ¡£
רҵÕûÀí
word¸ñʽÎĵµ
ͼ4-3 ϵͳÁ÷³Ìͼ
4.3 ϵͳÈí¼þ³ÌÐò
#include
//ºê¶¨Òå
#define uchar unsigned char //ÎÞ·ûºÅ°Ëλ×Ö·ûÐÍÊý¾Ý #define uint unsigned int //ÎÞ·ûºÅ16λÕûÐÎÊý¾Ý #define ulong unsigned long //ÎÞ·ûºÅÈýÊ®¶þ볤ÕûÐÍ
//״̬¶¨Òå
uchar go=0xFA; //1111_1010 Ç°½ø uchar back=0xF5; //1111_0101 ºóÍË uchar left=0xFE; //1111_1110 ×óת uchar right=0xFB; //1111_1011 ÓÒת //ÑÓʱº¯Êý void delay() { uint i,j;
for(i=0;i<500;i++) for(j=0;j<800;j++); }
רҵÕûÀí
word¸ñʽÎĵµ
//Æô¶¯Èí¼þ¿´ÃŹ·WDTRST ·ÀÖ¹³ÌÐòÅÜ·ÉÔö¼ÓϵͳµÄÎȶ¨ÐÔ sfr WDTRST=0xA6; //¿´ÃŹ·¼Ä´æÆ÷0xA6
//ι¹·³ÌÐò void FeedDog() {
WDTRST=0x1e; //¸ø¼Ä´æÆ÷×°Öµ WDTRST=0xe1; }
//¶¨Ê±Æ÷³õʼ»¯³ÌÐò void Initial() {
TMOD=0x01; //¶¨Ê±Æ÷0¹¤×÷ÔÚ·½Ê½1 TH0=0xf0; //¸ß°Ëλװֵ1111¡ª¡ª0000 TL0=0xf0; //µÚ°Ëλװֵ1111_0000 TR0=1; //Æô¶¯¶¨Ê±Æ÷ ET0=1; // ¶¨Ê±Æ÷ÖжÏÔÊÐí EA=1 ; //¿ª·Å×ÜÖÐ¶Ï }
//Ö÷³ÌÐò
//¶Ô´«¸ÐÆ÷ÊäÈëÐźŽøÐÐÂÖѯ²¢¾ö¶¨µ±Ç°Ð¡³µÐÐÊ»·½Ê½
רҵÕûÀí
word¸ñʽÎĵµ
void main() {
FeedDog(); //¸ÕÈëÖ÷³ÌÐòιһ´Î¹·
Initial(); //¶¨Ê±Æ÷³õʼ»¯
P1=0xFF; //¶Ë¿Ú³õʼ»¯ÓÃÓÚ¿ØÖƵç»ú P3=0xFF; //´«¸ÐÆ÷״̬½ÓÊÕ
while(1) //¶Ô´«¸ÐÆ÷ÊäÈëÐźŲ»¶ÏµØ½øÐвéѯ
{
if(P3 == 0x7F)//0111_1111
P1=left; //Ö´ÐÐ×óתָÁî else if(P3 == 0xBF)//1011_1111 P1=right; //Ö´ÐÐÓÒתָÁî
else
P1=go; //·ñÔò¾ÍÏòÇ°ÐÐÊ» } }
//¶¨Ê±Æ÷ÖжϺ¯ÊýÖ´ÐÐι¹·¶¨Ê±Æ÷ÖØ×°³õÖµ void timer0() interrupt 1 //ʹÓÃÖÐ¶Ï {
TH0=0xf0;
TL0=0xf0; //¶¨Ê±Æ÷ÖØÔسõÖµ¸ß°ËλµÚ°Ëλ
רҵÕûÀí
word¸ñʽÎĵµ
FeedDog();//ÿ¹ýÒ»¶¨Ê±¼äιϹ·£¬²»È»³ÌÐò»á×Ô¶¯¸´Î»
4.4 Ѽ£´¦ÀíÈí¼þÁ÷³Ì
ÔÚ°×É«±³¾°ÖÐÓÐÒ»ÌõºÚÉ«µÄÏߣ¬Ð¡³µ¾ÍÊÇÒªÑØ×ÅÕâÌõºÚÏßÐÐ×ߣ¬Í¨¹ýÅжϷ´Éäʽ¹âµç´«¸ÐÆ÷Ëù½ÓÊÕµ½µÄ·´Éä¹âÀ´ÅжÏС³µËùÓ¦ÐÐ×ߵķ½Ïò¡£ÒÔÈý¸ö·´Éäʽ¹âµç´«¸ÐÆ÷ΪÀý½øÐÐ˵Ã÷ÑÏßµÄÔÀí¡£¹âµç´«¸ÐÆ÷ÓëºÚÏßλÖùØϵʾÒâͼÈçͼ4-4Ëùʾ¡£
ͼ4-4 ¹âµç´«¸ÐÆ÷ÓëºÚÏßλÖùØϵʾÒâͼ
¼ì²â»·½ÚÖÐÒ»¹²ÓÐ6¸öÕâÑùµÄ´«¸ÐµÄºìÍâ¼ì²âµ¥Ôª£¬ÊµÏÖ×éºÏʽµÄ¿ØÖÆ·½ÏòµÄ¼ì²â¡£6¸ö¹âÃô´«¸Ðµç·×éºÏ¹¦Äܼû±í4-1¡£
±í4-1 ¹âÃô´«¸ÐÆ÷״̬ÕæÖµ±í
С ³µ ´« ¸Ð ×óX Æ÷ ºÅ ÓÒY 2ºÅ 1 1 0 0 ×´ 1ºÅ 1 0 1 0 ̬ Õý³£ÐÐÊ» ÓÒת ×óת ÍÑÀëÒýµ¼Ïß Í¨¹ýÑ»·¼ì²âÊäÈë¶Ë¿ÚµÄ¼ì²âÖµ£¬ÅжÏĿǰѲÏßËù´¦µÄλÖ㬲¢ÇÒͨ¹ý¿ØÖƵç»úÊä³öÀ´ÊµÏÖ×óת¡¢ÓÒת¡¢Ö±ÐÐÔ˶¯¡£¼ì²â²¿·Öº¯Êý˵Ã÷
while(1) //¶Ô´«¸ÐÆ÷ÊäÈëÐźŲ»¶ÏµØ½øÐвéѯ
{
if(P3 == 0x7F)//0111_1111
P1=left; //Ö´ÐÐ×óתָÁî
רҵÕûÀí