b=tab[j]£» EX0=1;}
void delay(void){ int x;
for(x=0£»x<1000£»x++)£» }
µÚ7Õ ¶¨Ê±¼ÆÊýÆ÷
7.1 8XX51µ¥Æ¬»úÄÚ²¿ÉèÓм¸¸ö¶¨Ê±£¯¼ÆÊýÆ÷?ËüÃÇÊÇÄÏÄÄЩרÓüĴæÆ÷×é³ÉµÄ? 7.2 8XX51µ¥Æ¬»úµÄ¶¨Ê±£¯¼ÆÊýÆ÷ÓÐÄļ¸ÖÖ¹¤×÷·½Ê½?¸÷ÓÐÊ²Ã´ÌØµã?
7.3 ¶¨Ê±£¯¼ÆÊýÆ÷ÓÃ×ö¶¨Ê±Ê±£¬Æä¶¨Ê±Ê±¼äÓëÄÄЩÒòËØÓйØ?ÓÃ×ö¼ÆÊýʱ£¬¶ÔÍâ½ç¼ÆÊýƵÂÊÓкÎÏÞÖÆ? 7.1¡«7.3²Î7.1½Ú
7.4 É赥Ƭ»úµÄfosc=6MHz£¬¶¨Ê±Æ÷´¦ÓÚ²»Í¬¹¤×÷·½Ê½Ê±£¬×î´ó¶¨Ê±·¶Î§·Ö±ðÊǶàÉÙ? 7.4 ·½Ê½0£º16£®38ms£¬·½Ê½1£º131ms£¬·½Ê½2£º512us
7.5 ÀûÓÃ8XX51µÄT0¼ÆÊý£¬Ã¿¼Æ10¸öÂö³å£¬P1.0±ä·´Ò»´Î£¬ÓòéѯºÍÖжÏÁ½ÖÖ·½Ê½±à³Ì¡£
7.5 ʹÓ÷½Ê½2£¬¼ÆÊý³õÖµc=100H¡ªOAH=F6H ²éѯ·½Ê½£º 0RG 0000H MOV TMOD£¬#06H MOV THO£¬#0F6H MOV TL0£¬#0F6H SETB TR0
ABC£ºJNB TF0£¬$ CLR TF0 CPL P1.0 SJMP ABC ÖжϷ½Ê½£º ORG 0000H AJMP MAIN ORG OOOOBH CPL P1.0 RETI
MAIN£ºMOV TMOD£¬#06H MOV TH0£¬#OF6H SETB EA SETB ET0 SETB TR0
SJMP $ £»µÈ´ýÖÐ¶Ï CÓïÑÔ³ÌÐò²éѯ·½Ê½£º #include
25
TMOD=Ox06£»THO=-10£»TLO=-10£» TRO=1£º{ while(1)
dO{}while(TF0==0) TF0=0£»p10=¡«p10£» }}
ÖжϷ½Ê½£º#include
EA=1£»ET0=1£»TMOD=0x06£» TH0=0xf6£»TL0=0xf6£»TR0=1£» while(1)£»}/*µÈ´ýÖжÏ*/
7.6 ÔÚP1.0Òý½Å½ÓÒ»Çý¶¯·Å´óµç·Çý¶¯ÑïÉùÆ÷£¬ÀûÓÃT1²úÉúlOOOHzµÄÒôƵÐźŴÓÑïÉùÆ÷Êä³ö¡£ 7£®6 1000HzµÄÖÜÆÚΪ1ms£¬¼´ÒªÇóÿ500us P1.0±ä·´Ò»´Î£¬Ê¹ÓÃT1·½Ê½1£¬MC=12/fosc=1us£¬C=216-500us/1us=FE0CH£¬³ýTMOD=10H£¬TH0=FEH£¬Tl0=0CHÍ⣬³ÌÐòÓë7.5ÌâÏàͬ£¬×¢Òâÿ´ÎÒªÖØÖÃTH0ºÍTL0¡£
7.7 ÒÑÖª8XX51µ¥Æ¬»úϵͳʱÖÓÆµÂÊΪ6MHz£¬ÀûÓö¨Ê±Æ÷T0ʹP1.2ÿ¸ô350us£¬Êä³öÒ»¸ö50usÂö¿íµÄÕýÂö³å¡£
7.7 fosc=6MHz£¬MC=2us£¬·½Ê½2µÄ×î´ó¶¨Ê±Îª512us£¬ºÏºõÌâÄ¿µÄÒªÇó¡£50usʱ£¬¼ÆÊý³õֵΪC1=256-25=E7H£¬350usʱ£¬¼ÆÊý³õֵΪC2=256-175=51H »ã±àÓïÑÔ³ÌÐò ORG 0000H MOV TMOD£¬#02H
NEXT£ºMOV TH0£¬#51H MOV TL0,#51H CLR P1.2 SETB TR0
AB1£ºJBC TF0£¬EXT
SJMP AB1 EXT£ºSETB P1.2 MOV TH0£¬#0E7H
MOV TL0£¬#0E7H AB2£ºJBC TF0£¬NEXT SJMP AB2 CÓïÑÔ³ÌÐò
#include
void timet(unsigned char t)£» sbit p1_2=P1^2 main(){for(£»£»)
p1_2=O£»timer(7)£» p1_2=1£»timer(1)£» }
26
void timer(unslgned char t) {unsigned char i£»
for(i=0£»i TH0=-25/256£»TL0=-25%6; TR0=1£º While(TF0!=1)£» TR0=0£º }} ÉÏÊöµÄ¼ÆÊý³õֵûÓп¼ÂÇÖ¸ÁîµÄÖ´ÐÐʱ¼ä¡£Òò´ËÎó²î½Ï´ó£¬²éÿÌõÖ¸ÁîµÄ»úÆ÷ÖÜÆÚ£¬¿Û³ýÕâЩʱ¼ä£®ËãµÃ C¡ªE3H£¬ÕâÑùÎó²î½ÏС¡£ 7.8 ÔÚ8XX51µ¥Æ¬»úÖУ¬ÒÑ֪ʱÖÓÆµÂÊΪ12MHz£¬±à³ÌʹP1.0ºÍP1.1·Ö±ðÊä³öÖÜÆÚΪ2msºÍ50usµÄ·½²¨¡£ 7.8 P1.0Êä³ö2msÂö³å£¬P1.1Êä³ö50usÂö³å¡£ »ã±àÓïÑÔ³ÌÐò ORG 0000H MOV TMOD£¬#02H MOV TH0£¬#06H MOV TL0£¬#06H SETB TR0 MOV R0£¬#04H NE£º JNB TF0£¬$ CLR TF0 CPL P1.1 DJNZ R0£¬NE CPL P1.O AJMP NE CÓïÑÔ³ÌÐò #include TMOD=0x02£»TH0=06£»TL0=06£ºTR0=1; while(1){ for(i=0;i<4£ºi++){ do{}while(!TF0)£» P11=¡«P11£º } P10=¡«P10£º }} 7.9 ÉèϵͳʱÖÓÆµÂÊΪ6MHz£¬ÊÔÓö¨Ê±Æ÷T0¡£×÷ΪÍⲿ¼ÆÊýÆ÷£¬±à³ÌʵÏÖÿ¼Æµ½1000¸öÂö³åºó£¬Ê¹T1¶¨Ê±2ms£¬È»ºóT0ÓÖ¿ªÊ¼¼ÆÊý£¬ÕâÑù·´¸´Ñ»·¡£ 7.9 CÓïÑÔ³ÌÐò T0¼ÆÊý1000¸öÂö³å£¬²ÉÓ÷½Ê½1£»T1¶¨Ê±2ms£¬fosc=6MHz£¬C=-2ms/2us=-1000 27 include counter(){ TH0=-1000/256£» TLO=-1000%6£» TR0=1£»TR1=0; while(TF0!=1)£» TF0=0; } timer(){ TH1=-1000/256£»TL1=-1000%6£»TR1=1£»TR0=0; while(TF1!=0)£» TF1=0; } main() TMOD=0x15; for(;;){ counter()£º timer()£º 7.10 ÀûÓÃ8XX51µ¥Æ¬»ú¶¨Ê±Æ÷T0²âÁ¿Ä³Õýµ¥Âö³å¿í¶È£¬ÒÑÖª´ËÂö³å¿í¶ÈСÓÚ10ms£¬Ö÷»úƵÂÊΪ12MHz¡£±à³Ì²âÁ¿Âö¿í£¬²¢°Ñ½á¹ûת»»ÎªBCDÂ룬˳Ðò´æ·ÅÔÚÒÔÆ¬ÄÚ50Hµ¥ÔªÎªÊ×µØÖ·µÄÄÚ´æµ¥ÔªÖÐ(50Hµ¥Ôª´æ¸öλ)¡£ 7.10 CÓïÑÔ³ÌÐò #lnclue unsingcd char *P,i£» int a; P=0x50; TMOD=0x09; TL0=0;TH0=0; while(P3_2==1)£»/*µÈ´ýINT0±äµÍ*/ TR0=1; while(P3_2==0)£»/*µÈ´ý-INT0±ä¸ß*/ while(P3_2==1)£»/*µÈ´ý-INT0±äµÍ*/ TR0=0; i=TH0; a=i*256+TL0; for(£»a!=O£») { /*ת»»Îª·ÇѹËõIR7DÂë*/ *P=a; a=a/10; P++; } } µÚ8Õ ´®ÐÐ¿Ú 28