¼ÆËã»ú¿ØÖÆ ÏÂÔØ±¾ÎÄ

}

}

if(P1_2==0) {

delay(100); if(P1_2==0) {

P1_5=0; \\\\Êä³öµÍµçƽ } }

}

void delay(uchar c) \\\\ÑÓʱ×Ó³ÌÐò {

while(c--) }

void mian(void) {

EA=1; EX0=1; IT0=1; while(1); }

4.4 µç·Èçͼ4.2Ëùʾ£¬ÒªÇóͨ¹ý2¡Á5µÄ¼üÅÌ£¬ÊµÏÖÔÚÊýÂë¹ÜÉÏÏÔʾÓ밴ϼüÅ̶ÔÓ¦µÄÊý×Ö¡£

+5V+5VP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71357924680Çý¶¯Æ÷89C51ͼ4.2 Ìâ4.2ͼ

´ð£º

#include

#define uchar unsigned char #define uint unsigned int

uchar code DSY_CODE[]= {0x3f, 0x06, 0x5b, 0x4F, 0x66, 0x6d, 0x7d, 0x07,

0x7f, 0x6f}; //¶ÎÂë,0-9

uchar Pre_KeyNo=10, KeyNo=10; //Éϴκ͵±Ç°°´¼üµÄÐòºÅ

void delayMS(uint x) //ÑÓʱ {

uchar i; while(x--)

for(i=0;i<120;i++); }

void Keys_Scan() //¼üÅÌɨÃè×Ó³ÌÐò {

uchar Tmp;

P1=0x1f; //ÁÐÊä³ö0£¬¶ÁÐÐ delayMS(1);

Tmp=(P1^0x1f)&0x7f; //Òì»ò£¬ÆÁ±ÎP1.7

switch(Tmp) //Åжϰ´¼ü·¢ÉúÓÚ0~4ÐеÄÄÄÒ»ÐÐ {

case 1: KeyNo=1;break; //µÚÒ»ÐÐ case 2: KeyNo=3;break; //µÚ¶þÐÐ case 4: KeyNo=5;break; //µÚÈýÐÐ case 8: KeyNo=7;break; //µÚËÄÐÐ case 16: KeyNo=9;break; //µÚÎåÐÐ default:KeyNo=10; //ÎÞ¼ü°´Ï }

P1=0xe0; //µÍ5λÖÃ0£¬¸ßÈýλÖÃ1£¬ÐÐÊä³ö0£¬¶ÁÁÐ delayMS(1);

Tmp=(P1^0xe0)&0x7f>>5; \\\\ switch(Tmp) {

case 1: KeyNo+=0;break; \\\\µÃµ½×îÖÕ°´¼üºÅ case 2: KeyNo+=1; if (keyNo==0x0a) {keyNo=0;} } }

void main() {

P0=0x00; while(1) {

P1=0xe0;

if(P1!=0xe0) //ÅжÏÓмü°´Ï {

Keys_Scan();

} //»ñÈ¡¼üÐòºÅ if(Pre_KeyNo!=KeyNo) {

P0=DSY_CODE[KeyNo]; Pre_KeyNo=KeyNo; }

delayMS(100); } }

µÚÎåÕÂ×÷Òµ

5.1 ˳Ðò²é±í¡¢¼ÆËã²é±í¼°¶Ô·Ö²é±í¸÷ÓÐÊ²Ã´ÌØµã£¿·Ö±ðʹÓÃÔÚʲô³¡ºÏ£¿ ´ð£º ÌØµã ÊÊÓó¡ºÏ ˳Ðò²é±í °´ÕÕ˳Ðò´ÓµÚÒ»ÏʼÖðÏîѰÕë¶ÔÎÞÐò±í¸ñ£¬±í¸ñС ÕÒ£¬ Ö±ÖÁÕÒµ½ËùÒª²éÕҵĹؼü×ÖΪֹ£¬±í¸ñÒªÇó²»ÑÏ ¼ÆËã²é±í ±í¸ñÒªÇó¸÷ÔªËØÔÚ±íÖÐÅÅÁеÄÕë¶ÔÓÐÐò±í¸ñ£¬±í¸ñС£¬Êʸñʽ¼°ËùÕ¼ÓÃµÄ¿Õ¼ä±ØÐëÒ»ÓÃÓÚijЩÊýÖµ¼ÆËã³ÌÐò Ö£¬ ¶øÇÒ¸÷ÔªËØÊÇÑϸñ°´Ë³ÐòÅÅÁеġ£±í¸ñÒªÇóÑÏ ¶Ô·Ö·¨²é±í Ëٶȿ죬Õë¶Ô³¤±í¸ñÓÈΪÃ÷ÏÔ Õë¶Ô³¤±í¸ñ 5.2³£ÓõÄÊý×ÖÂ˲¨Æ÷ÓÐÄÄЩ£¿ËüÃǸ÷ÓÐʲôÓÅȱµã£¿ ´ð£º Óŵã ȱµã ÏÞ·ùÂ˲¨ ÄÜÓÐЧ¿Ë·þżȻÐÔµÄÂöÏÞ·ùÔì³Éƽ»¬¶È²î£¬¶Ô³å¸ÉÈÅ ÖÜÆÚÐÔ¸ÉÈÅЧ¹ûºÜ²î ÏÞËÙÂ˲¨ ¼ÈÕÕ¹ËÁ˲ÉÑùµÄʵʱ²»¹»Áé»î£¬²»ÄÜ·´Ó³²ÉÐÔ£¬Óֹ˼°Á˲ÉÑùÖµ±äÑùµãÊý´óÓÚ3ʱ¸÷²ÉÑù»¯µÄÁ¬ÐøÐÔ ÊýÖµÊܸÉÈÅÇé¿ö ÖÐÖµÂ˲¨ ÄÜÓÐЧ¿Ë·þżȻÐÔÂö³åµ«ÊǶÔÁ÷Á¿ËٶȵȿìËÙ²¨¶¯ ±ä»¯µÄ²ÎÊý²»ÊÊÓà ËãÊõƽ¾ùÖµÂ˲¨ ¼ÓȨƽ¾ùÖµÂ˲¨ »¬¶¯Æ½¾ùÖµÂ˲¨ ƽ»¬¶È½Ï¸ß ¶ÔÂö³åÐźŵĸÉÈÅЧ¹û½Ï²î£¬ÊµÊ±ÐÔ²»Ì«ÀíÏë ¿ÉÒÔ¸ù¾ÝÐèҪѡÔñÐźŠʵʱÐÔ²»Ì«ÀíÏë ¶ÔÖÜÆÚ¸ÉÈÅÓÐÁ¼ºÃµÄÒÖÁéÃô¶ÈµÍ£¬¶ÔżȻÂö³åÖÆ×÷Óã¬Æ½»¬¶È¸ß£¬ÊʸÉÈÅÒÖÖÆÐԲ ÓÃÓÚ¸ßÆµÕñµ´ÏµÍ³

5.3Ϊʲô¼ÆËã»ú¿ØÖÆÏµÍ³²ÉÓÃÈí¼þÂ˲¨£¿

´ð£ºÎÞÐèÔö¼ÓÈκÎÓ²¼þÉ豸£¬ÏµÍ³¿É¿¿ÐԸߣ¬ ²»´æÔÚ×迹ƥÅäÎÊÌ⣬¿É¶àͨµÀ¹²Ïí£¬ ´Ó¶ø½µµÍÁ˳ɱ¾£»¿ÉÒÔ¶ÔÆµÂʺܵÍ(Èç001Hz) µÄÐźŽøÐÐÂ˲¨£»Ê¹ÓÃÁé»î¡¢ ·½±ã£¬ ¿É¸ù¾ÝÐèҪѡÔñ²»Í¬µÄÂ˲¨·½·¨»ò¸Ä±äÂ˲¨Æ÷µÄ²ÎÊý¡£

5.4 ±àд·ÀÂö³å¸ÉÈÅÆ½¾ùÖµÂ˲¨C³ÌÐò¡£ ´ð£º³ÌÐòÈçÏ char filter() {

char count, temp, i, j, k; char value_buf[N]; int sum=0;

for (count=0;count

value_buf[count] = get_ad(); delay(); }

for (j=0;j

for (i=0;i

if ( value_buf[i]>value_buf[i+1] ) {

temp = value_buf[i];

value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp; } } }

for(count=1;count

sum += value_buf[count];

return (char) (sum/(N-2)); }