µÚÈýÕÂϰÌâÓë˼¿¼Ìâ
1£®89c2051µ¥Æ¬»úÄÜÌṩ¼¸¸öÖжÏÔ´¡¢¼¸¸öÖжÏÓÅÏȼ¶£¿¸÷¸öÖжÏÔ´µÄÓÅÏȼ¶ÔõÑùÈ·¶¨£¿ÔÚͬһÓÅÏȼ¶ÖУ¬¸÷¸öÖжÏÔ´µÄÓÅÏÈ˳ÐòÔõÑùÈ·¶¨£¿ÊÔͨ¹ýÐÞ¸ÄIP¼Ä´æÆ÷£¬Ê¹´®ÐпÚÖжÏÓÅÏȼ¶×î¸ß£¬¶¨Ê±Æ÷T1µÄÖжÏÓÅÏȼ¶×îµÍ£¬ÆäÓàÖжÏÓÅÏÈ˳Ðò²»±ä¡£
2£®89c2051µ¥Æ¬»úÍⲿÖжÏÔ´Óиºµçƽ´¥·¢ºÍϱßÑØ´¥·¢Á½ÖÖ´¥·¢·½Ê½£¬ÕâÁ½ÖÖ´¥·¢·½Ê½Ëù²úÉúµÄÖжϹý³ÌÓкβ»Í¬£¿ÔõÑùÉ趨£¿
3£®ÔÚÒ»¸öÓ¦ÓÃϵͳÖУ¬Ê±ÖÓÆµÂÊΪ12MHz£¬Ò»¸öÍⲿÖжÏÇëÇóÐźŵĿí¶ÈΪ300nsµÄ¸ºÂö³å£¬Ó¦¸Ã²ÉÑùÄÄÖÖ´¥·¢·½Ê½£¿ÈçºÎʵÏÖ£¿
4£®89c2051µ¥Æ¬»úÏìÓ¦ÖжÏÇëÇóºó£¬ÄÄЩÖжÏÇëÇó±ê־λ²»ÄÜ×Ô¶¯Çå³ý£¿CPUÔÚʲôʱºò²éѯÖжÏÇëÇó±ê־λ£¿Âú×ãʲôÌõ¼þ²ÅÏìÓ¦£¿
5£®Èç¹ûijһÖжϷþÎñ³ÌÐòÖÐûÓиÄд¹¤×÷¼Ä´æÆ÷R0¡«R7µÄÖ¸ÁÔò½øÈëÖжϷþÎñ³Ìºó£¬ÊÇ·ñÐèÒªÇл»¹¤×÷¼Ä´æÆ÷Çø£¿¼òÊöÔÒò¡£
6£®ÓÃ89c2051µÄP1¿Ú½Ó8¸öLED·¢¹â¶þ¼«¹Ü£¬ÓÉINT0½ÓÒ»Ïû¶¶¿ª¹Ø£¬¿ªÊ¼P1.0µÄLEDÁÁ£¬ÒÔºóÿÖжÏÒ»´Î£¬ÏÂÒ»¸öLEDÁÁ£¬Ë³ÐòÏÂÒÆ£¬ÇÒÿ´ÎÖ»ÓÐÒ»¸öLEDÁÁ£¬Öܶø¸´Ê¼£¬»³öµç·²¢±àд³ÌÐò¡£
7£®ÔÚÉÏÌâµç·µÄ»ù´¡ÉÏ£¬ÒªÇó8¸öLEDͬʱÁÁ»òͬʱÃð£¬Ã¿ÖжÏÒ»´Î£¬±ä·´Ò»´Î£¬±àд³ÌÐò¡£
ϰÌâ½â´ð
1£®´ð£ºÓÐ5¸öÖжÏÔ´£¬2¸öÖжÏÓÅÏȼ¶¡£
ÔÚͬһÓÅÏȼ¶ÖУ¬¸÷¸öÖжÏÔ´µÄÓÅÏÈ˳Ðò£ºÍⲿÖжÏ0 ¶¨Ê±Æ÷/¼ÆÊýÆ÷T0Òç³öÖÐ¶Ï ²¿ÖжÏ1 ¶¨Ê±Æ÷/¼ÆÊýÆ÷T1Òç³öÖÐ¶Ï ´®ÐпÚÖжÏ
ÖжÏÔ´ ÍⲿÖжÏ0 ¶¨Ê±Æ÷/¼ÆÊýÆ÷T0Òç³öÖÐ¶Ï ÍⲿÖжÏ1 ¶¨Ê±Æ÷/¼ÆÊýÆ÷T1Òç³öÖÐ¶Ï ´®ÐпÚÖÐ¶Ï ×îµÍ IP=0x10;
2£®´ð£º¶Ô±ßÑØ´¥·¢µÄÍⲿÖжϣ¬CPUÏìÓ¦ÖжϺó£¬Ó²¼þ»á×Ô¶¯Çå³ýÖжÏÇëÇó±êÖ¾IE0ºÍIE1
¶Ô¸ºµçƽ´¥·¢µÄÍⲿÖжϣ¬CPUÏìÓ¦ÖжϺó£¬Ó²¼þ²»»á×Ô¶¯Çå³ýÖжÏÇëÇó±êÖ¾IE0ºÍIE1£¬ÐèÒªÓÃÓ²¼þÏß·ºÍÈí¼þÏ໥ÅäºÏÀ´ÇåÁã¡£
IT0ºÍIT1Ϊ0ʱÍⲿÖжÏΪ¸ºµçƽ´¥·¢£¬IT0ºÍIT1Ϊ1ʱÍⲿÖжÏΪϱßÑØ´¥·¢¡£
1
Íâ
ͬһ¼¶µÄÖжÏÓÅÏȼ¶ ×î¸ß
3£®´ð£ºÓ¦²ÉÑù±ßÑØ´¥·¢·½Ê½£¬ÒòΪfosc=12M£¬Tm=1¦Ìs£¬ËùÒÔÍⲿÖжÏÇëÇóÐźſÉÖ±½ÓÖÁP3.2»òP3.3¼´¿É¡£
4£®´ð£º¶Ô¸ºµçƽ´¥·¢µÄÍⲿÖжϣ¬CPUÏìÓ¦ºóÓ²¼þ²»»á×Ô¶¯Çå³ýÖжÏÇëÇó±êÖ¾IE0ºÍIE1£¬
ÐèÒªÓÃÓ²¼þÏß·À´ÇåÁã¡£¶Ô´®ÐпÚÖжϣ¬CPUÏìÓ¦ºó£¬Öжϱê־λ²»»á×Ô¶¯Çå³ý£¬±ØÐëÓÃÈí¼þÇå³ý¡£
ÈôCPU¹Ø±ÕÖжϣ¬µ«ÍⲿʼþÓÖÓÐÖжÏÉêÇë»ò¶¨Ê±Ê±¼äµ½»ò´®Ðпڷ¢ËÍ/½ÓÊÜÍêÒ»Ö¡Êý¾Ý£¬Ôò²ÉÓòéѯÖжÏÇëÇó±ê־λµÄ·½Ê½À´±àд¿ØÖƳÌÐò¡£
ÔÚÖжÏÇëÇóºÍ³õʼ»¯ºó£¬CPUÏìÓ¦ÖжϵÄÌõ¼þ£º£¨1£©ÓÐÖжÏÇëÇóÐźš££¨2£©CPU¿ªÖжϡ££¨3£©Ã»Óи߼¶»òͬ¼¶ÖжϷþÎñ³ÌÐòÔÚÖ´ÐС££¨4£©µ±Ç°Ö´ÐÐÖ¸ÁîÍê±Ï»ò²»ÊÇÖ´ÐжÔIE¡¢IPµÄ²Ù×÷¡£
5£®´ð£º²»Óã¬ÒòΪÖ÷³ÌÐò¶ÔR0¡ªR7ÖÐËùдµÄÄÚÈÝÔÚÖжϷþÎñ³ÌÐòûÓб»¸Äд£¬Ò²¾ÍÊÇ˵£¬ÔÚÖжϷþÎñ³ÌÐòÖв»»áÓõ½R0¡ªR7£¬ËùÒÔ²»ÓÃÇл»¹¤×÷¼Ä´æÆ÷¡£
6£®´ð£ºµç·ͼÂÔ
#include¡±reg51.h¡± sbit P32=P3^2;
void int0(void) interrupt 0 using 1 {if(P1!=0x00) P1=P1<<1; Else
P1=0x01; }
main() {
P1=0x01; EA=1; EX0=1; IT0=1; while(1); }
7£®´ð£º#include¡±reg51.h¡±
sbit P32=P3^2;
void int0(void) interrupt 0 using 1 {
P1= ~P1; } main() {
P1=0xff; EA=1;
2
EX0=1; IT0=1; while(1);
}
µÚËÄÕÂϰÌâÓë˼¿¼Ìâ
1£®89c2051µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷×ö¶¨Ê±Æ÷ÓÃʱ£¬Æä¶¨Ê±Ê±¼äÓëÄÄЩÒòËØÓйأ¿×÷¼ÆÊýÆ÷ʱ£¬¶ÔÍâ½ç¼ÆÊýƵÂÊÓкÎÏÞÖÆ£¿¶¨Ê±Æ÷×÷¶¨Ê±ºÍ¼ÆÊýʱ£¬Æä¼ÆÊýÂö³å·Ö±ðÓÉËÌṩ?
2£®Èç¹û89c2051µ¥Æ¬»úµÄϵͳ¾§ÕñƵÂÊΪ12MHz£¬·Ö±ðÖ¸³ö¶¨Ê±/¼ÆÊýÆ÷·½Ê½1ºÍ·½Ê½2×¶¨Ê±Ê±¼ä¡£
3£®ÈôÒªÇó89c2051µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷µÄÔËÐпØÖÆÍêÈ«ÓÉTR1¡¢TR0È·¶¨ºÍÍêÈ«ÓÉP3.5¡¢P3.4Òý½ÅµÄ¿ØÖÆÊ±£¬Æä³õʼ»¯±à³ÌÓ¦×÷ºÎ´¦Àí£¿
4£®89c2051µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷T0ÒÑÔ¤ÖÆÎªFFFFH£¬²¢Ñ¡¶¨ÓÚ·½Ê½1µÄ¼ÆÊý·½Ê½£¬ÎÊ´Ëʱ¶¨Ê±/¼ÆÊýÆ÷T0ʵ¼ÊÓÃ;½«ÊÇʲô£¿
5£®ÓÉ89c2051µ¥Æ¬»úµÄP1¿Ú¿ØÖÆ8¸öָʾµÆ£¬ÀûÓö¨Ê±/¼ÆÊýÆ÷T0²úÉú¶¨Ê±Ê±ÖÓ¡£±àÒ»¸ö³ÌÐò,ʹ8¸öָʾµÆÒÀ´ÎµãÁÁ£¬µãÁÁƵÂÊΪ1Hz£¬µ±8¸öָʾµÆÈ«ÁÁºó£¬ÔòÈ«²¿Ï¨Ãð£¬ÒÀ´ÎÑ»·¡£
6£®89c2051µ¥Æ¬»úϵͳ£¬Ê±ÖÓÆµÂÊΪ12MHz£¬¶¨Ê±/¼ÆÊýÆ÷T0ÓÃÓÚ20ms¶¨Ê±£¬¶¨Ê±/¼ÆÊýÆ÷T1ÓÃÓÚ100´Î¼ÆÊý£¬Á½Õß¾ùÒªÇóÖØ¸´¹¤×÷£¬ÊÔ±àд´ïµ½ÉÏÊöÒªÇóµÄ³ÌÐò¡£
7£®ÓÃp1.0Êä³ö1KHzºÍ500HzµÄÒôƵÐźÅÇý¶¯ÑïÉùÆ÷£¬×÷Ϊ±¨¾¯Ðźţ¬ÒªÇó1KHzÐźÅÏì100ms£¬500HzÐźÅÏì200ms£¬½»Ìæ½øÐУ¬P1.7½ÓÒ»¸ö½Ó½ü¿ª¹Ø½øÐпØÖÆ£¬µ±¿ª¹ØºÏÉÏÏ챨¾¯Ðźţ¬µ±¿ª¹Ø¶Ï¿ª±¨¾¯ÐźÅÍ£Ö¹£¬±à³ö³ÌÐò¡£
8£®ÊÔÓÃ89c2051µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷T1¶ÔÍⲿʼþ¼ÆÊý¡£ÒªÇóÿ¼ÆÊý100£¬¾Í½«T1¸Ä³É¶¨Ê±·½Ê½£¬¿ØÖÆP1.7Êä³öÒ»¸öÂö¿íΪ10msµÄÕýÂö³å£¬È»ºóÓÖתΪ¼ÆÊý·½Ê½£¬Èç´Ë·´¸´Ñ»·¡£Éè¾§ÕñƵÂÊΪ24MHz¡£
ϰÌâ½â´ð
1£®´ð£º¶¨Ê±Ê±¼äÖ÷ÒªÓɼÆÊý³õÖµ¡¢»úÆ÷ÖÜÆÚ£¨¼´¾§ÕñƵÂÊ)È·¶¨¡£×÷Ϊ¼ÆÊýÆ÷ÓÃʱ£¬Íâ½çµÄ×î¸ß¼ÆÊýƵÂʲ»¸ßÓÚfosc/24¡£¶¨Ê±Æ÷×÷¶¨Ê±ÓÃʱ£¬Æä¼ÆÊýÂö³åÓɾ§ÕñƵÂʾ12·ÖƵºóÌṩ£»¶¨Ê±Æ÷×÷¼ÆÊýÓÃʱ£¬Æä¼ÆÊýÂö³åÓÉÍⲿʼþ£¨Âö³å£©Ìṩ¡£
3
2£®´ð£º·½Ê½1µÄ×¶¨Ê±Ê±¼äΪ32768¦Ìs¡£
·½Ê½2µÄ×¶¨Ê±Ê±¼äΪ128¦Ìs¡£
3.´ð£ºµ±89c2051µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷µÄÔËÐпØÖÆÍêÈ«ÓÉTR1¡¢TR0¿ØÖÆÊ±£¬¶¨Ê±/¼ÆÊýÆ÷Ó¦¹¤×÷ÓÚ·ÇÃſط½Ê½£¬¼´ÉèÖÃTMODʱ£¬GATEλӦȡ0£»µ±89c2051µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷µÄÔËÐпØÖÆÍêÈ«ÓÉP3.5¡¢P3.4Òý½Å¿ØÖÆÊ±£¬¶¨Ê±/¼ÆÊýÆ÷Ó¦¹¤×÷ÓÚÃſط½Ê½£¬¼´ÉèÖÃTMODʱ£¬GATEλӦȡ1¡£
4.´ð£ºµ±¶¨Ê±/¼ÆÊýÆ÷¹¤×÷ÓÚ·½Ê½1¼ÆÊý·½Ê½Ê±£¬ÇÒ³õÖµÉèÖÃΪFFFFHʱ£¬ÔòÿÀ´Ò»¸öʼþ£¬¶¨Ê±/¼ÆÊýÆ÷½«²úÉúÒç³ö£¬ÏòCPUÉêÇëÖжϣ¬´Ëʱ¶¨Ê±/¼ÆÊýÆ÷T0ʵ¼ÊÓÃ;Ϊ¼à²âÍⲿʼþ¡£
5.´ð£ºÆµÂÊΪ1HZ£¬ÖÜÆÚΪ1S¡£ P1=0x01;
#include
F0=1;
unsigned char i;
while(F0); void timer(void) interrupt 1 using
1 P1=0x07;
{
F0=1;
i++;
while(F0); if(i==20)
P1=0x07; {
i=0;
FO=0; }
TH0=£¨65536-50000£©/256£» TL0=£¨65536-50000£©%6 }
Main() {
P1=0x01; TM0D=0x01; EA=1; ET0=1; TR0=1; F0=1;
TH0=£¨65536-50000£©/256£» TL0=£¨65536-50000£©%6 while(1) { P1=0x00; while(F0);
4
F0=1; while(F0); P1=0x0F; F0=1; while(F0); P1=0X1F; F0=1; while(F0); P1=0x3F; F0=1; while(F0); P1=0x7F; F0=1; while(F0); P1=0xff; F0=1; }