ºìÍâÒ£¿ØÆ÷½âÂë³ÌÐò - ͼÎÄ(3)

2019-03-15 14:38

±¾ÎÄÀ´×Ôµç×Ó¹¤³Ìʦ֮¼Ò:http://www.eehome.cn/read.php?tid=5893

ºìÍâÏßÒ£¿ØÊÇĿǰʹÓÃ×î¹ã·ºµÄÒ»ÖÖͨÐźÍÒ£¿ØÊֶΡ£ÓÉÓÚºìÍâÏßÒ£¿Ø×°ÖþßÓÐÌå»ýС¡¢¹¦ºÄµÍ¡¢¹¦ÄÜÇ¿¡¢³É±¾µÍµÈÌØµã£¬Òò¶ø£¬¼Ì²Êµç¡¢Â¼Ïñ»úÖ®ºó£¬ÔÚ¼Òô»ú¡¢ÒôÏìÉ豸¡¢¿Õ

µò»úÒÔ¼°Íæ¾ßµÈÆäËüСÐ͵çÆ÷×°ÖÃÉÏÒ²·×·×²ÉÓúìÍâÏßÒ£¿Ø¡£ÏÖÔÚ¹¤ÒµÉ豸ÖУ¬Ò²ÒѾ­¹ã·ºÔÚʹÓá£

1 ºìÍâÒ£¿ØÏµÍ³

ͨÓúìÍâÒ£¿ØÏµÍ³ÓÉ·¢ÉäºÍ½ÓÊÕÁ½´ó²¿·Ö×é³É£¬Ó¦Óñà/½âÂëרÓü¯³Éµç·оƬÀ´½øÐпØÖƲÙ×÷£¬Èçͼ1Ëùʾ¡£·¢É䲿·Ö°üÀ¨¼üÅ̾ØÕó¡¢±àÂëµ÷ÖÆ¡¢LEDºìÍâ·¢ËÍÆ÷£»½ÓÊÕ²¿·Ö°üÀ¨

¹â¡¢µçת»»·Å´óÆ÷¡¢½âµ÷¡¢½âÂëµç·¡£

2 Ò£¿Ø·¢ÉäÆ÷¼°Æä±àÂë

Ò£¿Ø·¢ÉäÆ÷רÓÃоƬºÜ¶à£¬¸ù¾Ý±àÂë¸ñʽ¿ÉÒÔ·Ö³ÉÂö³å¿í¶Èµ÷ÖÆºÍÂö³åÏàλµ÷ÖÆÁ½´óÀ࣬ÕâÀïÎÒÃÇÒÔÔËÓñȽϹ㷺£¬½âÂë±È½ÏÈÝÒ×µÄÂö³å¿í¶Èµ÷ÖÆÀ´¼ÓÒÔ˵Ã÷£¬ÏÖÒÔ3310×é³É·¢Éä

µç·ΪÀý˵Ã÷±àÂëÔ­Àí¡£µ±·¢ÉäÆ÷°´¼ü°´Ïº󣬼´ÓÐÒ£¿ØÂë·¢³ö£¬Ëù°´µÄ¼ü²»Í¬Ò£¿Ø±àÂëÒ²²»Í¬¡£ÕâÖÖÒ£¿ØÂë¾ßÓÐÒÔÏÂÌØÕ÷£º

²ÉÓÃÂö¿íµ÷ÖÆµÄ´®ÐÐÂ룬ÒÔÂö¿íΪ0.565ms¡¢¼ä¸ô0.56ms¡¢ÖÜÆÚΪ1.125msµÄ×éºÏ±íʾ¶þ½øÖƵġ°0¡±£»ÒÔÂö¿íΪ0.565ms¡¢¼ä¸ô1.685ms¡¢ÖÜÆÚΪ2.25msµÄ×éºÏ±íʾ¶þ½øÖƵġ°1¡±

ÉÏÊö¡°0¡±ºÍ¡°1¡±×é³ÉµÄ42λ¶þ½øÖÆÂë¾­38kHzµÄÔØÆµ½øÐжþ´Îµ÷ÖÆÒÔÌá¸ß·¢ÉäЧÂÊ£¬´ïµ½½µµÍµçÔ´¹¦ºÄµÄÄ¿µÄ¡£È»ºóÔÙͨ¹ýºìÍâ·¢Éä¶þ¼«¹Ü²úÉúºìÍâÏßÏò¿Õ¼ä·¢Éä¡£

3310²úÉúµÄÒ£¿Ø±àÂëÊÇÁ¬ÐøµÄ42λ¶þ½øÖÆÂë×飬ÆäÖÐǰ26λΪÓû§Ê¶±ðÂ룬ÄÜÇø±ð²»Í¬µÄºìÍâÒ£¿ØÉ豸£¬·ÀÖ¹²»Í¬»úÖÖÒ£¿ØÂ뻥Ïà¸ÉÈÅ¡£ºó16λΪ8λµÄ²Ù×÷ÂëºÍ8λµÄ²Ù×÷

·´ÂëÓÃÓں˶ÔÊý¾ÝÊÇ·ñ½ÓÊÕ׼ȷ¡£

ĿǰʹÓõÄÒ£¿ØÆ÷Óд󲿷ֲÉÓÃ32λ±àÂ뷽ʽ£¬ÆäÖÐǰ16λΪÓû§Ê¶±ðÂ룬ºó16λΪ8λµÄ²Ù×÷Âë¼°Æä·´Âë¡£

µ±Ò£¿ØÆ÷ÉÏÈÎÒâÒ»¸ö°´¼ü°´Ï³¬¹ý36msʱ£¬LC7461оƬµÄÕñµ´Æ÷ʹоƬ¼¤»î£¬½«·¢ÉäÒ»¸öÌØ¶¨µÄͬ²½ÂëÍ·£¬¶ÔÓÚ½ÓÊն˶øÑÔ¾ÍÊÇÒ»¸ö9msµÄµÍµçƽ,ºÍÒ»¸ö4.5msµÄ¸ßµçƽ£¬Õâ

¸öͬ²½ÂëÍ·¿ÉÒÔʹ³ÌÐòÖªµÀ´ÓÕâ¸öͬ²½ÂëÍ·ÒÔºó¿ÉÒÔ¿ªÊ¼½ÓÊÕÊý¾Ý¡£

Á¬Ðø·¢Íê42루»ò32룩±àÂëºó£¬Èç¹û¸Ã¼üÈÔÈ»±»°´Ï£¬Ôòÿ¸ô110ms·¢ÉäÒ»¸öÖØ¸´Â룬¶ÔÓÚ½ÓÊն˶øÑÔ¾ÍÊÇÒ»¸ö9msµÍµçƽ+2.25ms¸ßµçƽ+0.56msµÍµçƽ£¬¶ø²»ÔÙ·¢Éä²Ù

×÷Âë¡£

½âÂëµÄ¹Ø¼üÊÇÈçºÎʶ±ð¡°0¡±ºÍ¡°1¡±£¬´ÓλµÄ¶¨ÒåÎÒÃÇ¿ÉÒÔ·¢ÏÖ¡°0¡±¡¢¡°1¡±¾ùÒÔ0.56msµÄµÍµçƽ¿ªÊ¼£¬²»Í¬µÄÊÇ¸ßµçÆ½µÄ¿í¶È²»Í¬£¬¡°0¡±Îª0.56ms,¡°1¡±Îª1.68ms,ËùÒÔ±ØÐë¸ù¾Ý¸ßµçƽµÄ¿í¶È

Çø±ð¡°0¡±ºÍ¡°1¡±¡£Èç¹û´Ó0.56msµÍµçƽ¹ýºó£¬¿ªÊ¼ÑÓʱ£¬0.56msÒÔºó£¬Èô¶Áµ½µÄµçƽΪµÍ£¬ËµÃ÷¸ÃλΪ¡°0¡±£¬·´Ö®ÔòΪ¡°1¡±£¬ÎªÁ˿ɿ¿Æð¼û£¬ÑÓʱ±ØÐë±È0.56ms³¤Ð©£¬µ«ÓÖ²»Äܳ¬¹ý1.12ms,·ñ

ÔòÈç¹û¸ÃλΪ¡°0¡±£¬¶Áµ½µÄÒÑÊÇÏÂһλµÄ¸ßµçƽ£¬Òò´ËÈ¡£¨1.12ms+0.56ms£©/2=0.84ms×îΪ¿É¿¿£¬Ò»°ãÈ¡0.84ms×óÓÒ¼´¿É¡£

¸ù¾ÝºìÍâ±àÂëµÄ¸ñʽ£¬³ÌÐòÓ¦¸ÃµÈ´ýÒýµ¼Â루9msµÍµçƽ+4.5msµÄ¸ßµçƽ£©Íê³Éºó²ÅÄܶÁÂë¡£

//============================================================

// ºìÍâÒ£¿Ø½âÂë³ÌÐò

// Ó²¼þÁ¬½Ó: P3.0¡¢P3.1½Ó´®¿Ú±ãÓÚµ÷ÊÔ;

// P3.2½ÓºìÍâ½ÓÊչܵÄÊý¾ÝÏß

// ÊÊÓÃÓÚ32λÂë×ÖºìÍâ½ÓÊÕÍ·¼°ºê¿ÆÍòÄÜÒ£¿ØÆ÷

// =======±¾³ÌÐòÒý×Ô£º¹ÈÓ깤×÷ÊÒ========

//============================================================

#include //STCµ¥Æ¬»úÍ·Îļþ

#define uint unsigned int

#define uchar unsigned char

uint time=0,flag=0;

uint First_INT=0,Star_Flag=0,CodeNum=0,Code[33]={0};

void init_serial();

void Tranfer(char Data);

uint getkey(void);

//============================================================

//º¯ÊýÃû³Æ:int main(void)

//º¯Êý¹¦ÄÜ:ϵͳÖ÷º¯Êý,Ö÷Òª°üÀ¨Ò»¸öÓô®¿Ú×öµÄ²âÊÔ²¿·Ö

//Èë¿Ú²ÎÊý:ÎÞ

//³ö¿Ú²ÎÊý:ÎÞ

//============================================================

int main()

{

uint keyvalue;

TMOD=0x22; //ÉèÖö¨Ê±Æ÷0Ϊ¹¤×÷·½Ê½2

TH0=0xd1; //¶¨Ê±0.05ms

TL0=0xd1;

TR0=1;

IT0=1; //ÉèÖÃINTR0Ϊ±ßÑØ´¥·¢£¬¸ºÌø±ä²úÉúÖжÏ

EX0=1; //ÍâÖжÏ0ÔÊÐí

ET0=1; //¶¨Ê±ÖжÏÔÊÐí

EA=1; //¿ª×ÜÖжÏ

init_serial();

while(1)

{

keyvalue=getkey();

switch(keyvalue)

{

case 0x01: Tranfer('1');break;

case 0x02:Tranfer('2');break;

case 0x03:Tranfer('3');break;

case 0x04:Tranfer('4');break;

case 0x05:Tranfer('5');break;

case 0x06:Tranfer('6');break;

case 0x07:Tranfer('7');break;

case 0x08:Tranfer('8');break;

case 0x10:Tranfer('J');Tranfer('Y');break;//¾²Òô

case 0x12:Tranfer('K');Tranfer('G');break;//¿ª¹Ø

case 0x0b:Tranfer('-');Tranfer('-');break;// -/--

case 0x52:Tranfer(' @ ');break;//תȦµÄÄǸö

case 0x51:Tranfer('H');Tranfer('Z');Tranfer('H');break;//»­Öл­

case 0x58:Tranfer('Z');Tranfer('S');break;//ÖÆÊ½

case 0x16:Tranfer('P');Tranfer('X');break;//ÆÁÏÔ

case 0x0e:Tranfer('S');Tranfer('M');break;//×ó

case 0x1b:Tranfer('P');Tranfer('1');break;//ƵµÀ(ÉÏ)

case 0x1e:Tranfer('Y');Tranfer('1');break;//ÒôÁ¿(×ó)

case 0x1f:Tranfer('P');Tranfer('2');break;//ƵµÀ(ÏÂ)

case 0x1a:Tranfer('Y');Tranfer('2');break;//ÒôÁ¿(ÓÒ)

case 0x0f:Tranfer('S');Tranfer('P');break;//ÊÓÆµ

case 0x1d:Tranfer('B');Tranfer('Y');break;//°éÒô

case 0x13:Tranfer('L');Tranfer('Y');break;//ÀöÒô

case 0x56:Tranfer('U');Tranfer('P');break;//ÉÏ

case 0x57:Tranfer('D');Tranfer('N');break;//ÏÂ

case 0x5b:Tranfer('L');break;//×ó

case 0x5f:Tranfer('R');break;//ÓÒ

case 0x5c:Tranfer('M');break;//²Ëµ¥

default:break;

}

}

}

//============================================================

//º¯ÊýÃû³Æ:uint getkey(void)

//º¯Êý¹¦ÄÜ:»ñµÃºìÍâÒ£¿ØÆ÷¼üÖµ

//Èë¿Ú²ÎÊý:ÎÞ

//³ö¿Ú²ÎÊý:ÎÞ

//˵Ã÷:ÊÊÓÃÓÚ32λÂë×ÖºìÍâ½ÓÊÕÍ·¼°ºê¿ÆÍòÄÜÒ£¿ØÆ÷

//============================================================

uint getkey(void)

{

uint j=0;

uint DateCode=0,key=0;

if(flag==1) //ÅжÏÍ·²¿ÊÇ·ñÊÇ5£»·ÀÖ¹Îó½ÓÊÕ

{

for(j=8;j<=10;j++)

{

if(Code[j]==1&&Code[j+1]==1&&Code[j+2]==1&&Code[j+3]==1&&Code[j+4]==1&&Code[j+5]==1&&Code[j+6]==0&&Code[j+7]==1)

{ //ÅжÏÓû§Ê¶±ðÂëÊDz»ÊÇ1111 1101

for(DateCode=0;DateCode<8;DateCode++)//ÈôÊÇ,Ôò¿ªÊ¼½ÓÊÕ°ËλÊý¾ÝÂë

{

Code[j+8+DateCode]<<=DateCode;

key|=Code[j+8+DateCode]; //½«°Ëλ¶þ½øÖÆÊýµ¹Ðòת³É16½øÖÆ

}

break;

}

}

flag=0; //½«Í·²¿ÇåÁã

return key; //·µ»Ø¼üÖµ

}

else return(0);

}

//=============================================================

//º¯ÊýÃû³Æ:void init_serial()

//º¯Êý¹¦ÄÜ:³õʼ»¯´®¿Ú

//Èë¿Ú²ÎÊý:ÎÞ

//³ö¿Ú²ÎÊý:ÎÞ

//============================================================

void init_serial()

{

// TMOD=0x22; //¶¨Ê±Æ÷T1ʹÓù¤×÷·½Ê½2

TH1=250; //ÉèÖóõÖµ

TL1=250;

TR1=1; //¿ªÊ¼¼ÆÊ±

PCON=0x80; //SMOD=1£»

SCON=0x50; //¹¤×÷·½Ê½1£¬²¨ÌØÂÊ9600bit/s,ÔÊÐí½ÓÊÕ

TI=1;

}

//============================================================

//º¯ÊýÃû³Æ:void Tranfer(char Data)

//º¯Êý¹¦ÄÜ:·¢ËÍÊý¾Ý³ÌÐò

//Èë¿Ú²ÎÊý:Data Òª·¢Ë͵ÄÊý¾Ý

//³ö¿Ú²ÎÊý:ÎÞ

//============================================================

void Tranfer(char Data)

{

while(TI==0);

SBUF=Data;

TI=0;

}

//============================================================

//º¯ÊýÃû³Æ:void timer0_int()

//º¯Êý¹¦ÄÜ:¶¨Ê±Æ÷0ÖжϷþÎñº¯Êý

//Èë¿Ú²ÎÊý:ÎÞ

//³ö¿Ú²ÎÊý:ÎÞ

//============================================================

void timer0_int() interrupt 1 using 2 //¶¨Ê±Æ÷0ÖжÏ

{

time++;

}

//============================================================

//º¯ÊýÃû³Æ:void intr0_int()

//º¯Êý¹¦ÄÜ:ÍâÖжÏ0ÖжϷþÎñº¯Êý

//Èë¿Ú²ÎÊý:ÎÞ


ºìÍâÒ£¿ØÆ÷½âÂë³ÌÐò - ͼÎÄ(3).doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ ÏÂÔØÊ§°Ü»òÕßÎĵµ²»ÍêÕû£¬ÇëÁªÏµ¿Í·þÈËÔ±½â¾ö£¡

ÏÂһƪ£º³õÈýÕþÖÎ 4.4-5.2Öܲâ

Ïà¹ØÔĶÁ
±¾ÀàÅÅÐÐ
¡Á ×¢²á»áÔ±Ãâ·ÑÏÂÔØ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÂíÉÏ×¢²á»áÔ±

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£º QQ£º