¡¶µ¥Æ¬Î¢ÐͼÆËã»úÓë½Ó¿Ú¼¼Êõ¡·Ë¼¿¼ÌâÓëϰÌâ½â´ð01

¡¶µ¥Æ¬Î¢ÐͼÆËã»úÓë½Ó¿Ú¼¼Êõ¡·Ë¼¿¼ÌâÓëϰÌâ½â´ð µÚ0Õ »ù´¡ÖªÊ¶

0.1 ½«ÏÂÁÐÊ®½øÖÆÊýת»»ÎªÊ®Áù½øÖÆÊý£º64£¬98£¬80£¬100£¬125£¬255¡£ 0.1 40H£¬62H£¬50H£¬64H£¬7DH£¬FFH

0.2 ½«ÏÂÁÐÊ®Áù½øÖÆÎÞ·ûºÅÊýת»»ÎªÊ®½øÖÆÊý£º32CH£¬68H£¬I)5H£¬100H£¬B78H£¬3ADH¡£ O.2 812£¬104£¬213£¬256£¬2936£¬941

0.3 д³öÏÂÁÐÊ®½øÖÆÊýµÄÔ­ÂëºÍ²¹Â룬ÓÃ8λ»ò16λÊýÌîÈ˱í1ÖÐ(ÒªÇóÓÃÊ®Áù½øÖÆÊý±íʾ)¡£

±í1

Ê®½øÖÆÊý 28 -28 l00 -130 0£®3

Ê®½øÖÆÊý 28 -28 100 -130 Ô­Âë 1CH 9CH 64H 8082H ²¹Âë 1CH E4H 64H FF7EH Ê®½øÖÆÊý 250 -347 928 -928 Ô­Âë FAH 815BH 03AOH 83AOH ²¹Âë FAH FEA5H 03AOH FC60H Ô­Âë ²¹Âë Ê®½øÖÆÊý 250 -347 928 -928 Ô­Âë ²¹Âë 0.4 ÓÃÊ®½øÖÆÊýд³öÏÂÁв¹Âë±íʾµÄ»úÆ÷ÊýµÄÕæÖµ£º1BH£¬97H£¬80H£¬F8H£¬397DH£¬7AEBH£¬9350H£¬CF42H¡£

O.4 »úÆ÷ÊýµÄÕæÖµ·Ö±ðΪ£º27£¬233£¬-128£¬-8£¬14717£¬31467£¬-27824£¬-12478

0.5 Óò¹ÂëÔËËãÍê³ÉÏÂÁÐËãʽ£¬²¢Ö¸³öÒç³öOVºÍ½øÎ»CY£º

(1) 33H+5AH (2) -29H-5DH (3) 65H-3EH (4) 4CH-68H O.5 (1) 33H+5AH=8DH£¬OV=1£¬CY=O (2) -29H-5DH=7AH£¬OV=0£¬CY=1

(3) 65H-3EH=27H£¬OV=0£¬CY=1 (4) 4CH-68H=E4H£¬0V=O£¬CY=O 0.6 ½«±í2ÖеÄÊ®½øÖÆÊý°´ÒªÇóת»»£¬ÓÃÊ®Áù½øÖÆÊýÌîÈë¡£

±í2

Ê®½øÖÆÊý 38 255 483 764 1000 1025 ѹËõBCDÊý ·ÇѹËõBCDÊý ASCIIÂë 1

O.6

Ê®½øÖÆÊý 38 255 483 764 1000 1025 ѹËõBCDÊý 38H 255H 483H 764H 1000H 1025H ·ÇѹËõBCDÊý 0308H 020505H 040803H 070604H 01000000H 01000205H ASCIIÂë 3338H 323535H 343833H 373634H 31303030H 31303235H 0.7 д³öÏÂÁÐASCIIÂë±íʾµÄÊ®Áù½øÖÆÊý(Èç313035HΪ105H)£º374341H£¬32303030H£¬3841353DH¡£

0.7 ASCIlÂë±íʾµÄÊ®Áù½øÖÆÊý·Ö±ðΪ£º105H£¬7CAH£¬200¡§¡£H£¬8A50H

µÚ1Õ MCS-51µ¥Æ¬»ú

1.1 ʲôÊÇǶÈëʽϵͳ?Æä¿ØÖƺËÐÄÓÐÄļ¸ÖÖÀàÐÍ? 1.1 ¼ûÐ÷ÂÛ

1.2 µ¥Æ¬Î¢ÐͼÆËã»úÓë΢´¦ÀíÆ÷ÔڽṹÉϺÍʹÓÃÖÐÓÐʲô²îÒì?µ¥Æ¬»úºÍDSPÔÚʹÓÃÉÏÓÐʲô²î±ð?

1.2 µ¥Æ¬Î¢ÐͼÆËã»úÊǰüº¬CPU¡¢´æ´¢Æ÷ºÍI£¯O½Ó¿ÚµÄ´ó¹æÄ£¼¯³ÉоƬ£¬¼´Ëü±¾Éí°üº¬Á˳ýÍⲿÉ豸ÒÔÍâ¹¹³É΢»úϵͳµÄ¸÷¸ö²¿·Ö£¬Ö»Ðè½ÓÍâÉè¼´¿É¹¹³É¶ÀÁ¢µÄ΢»úÓ¦ÓÃϵͳ¡£Î¢»ú´¦ÀíÆ÷½öΪCPU£¬CPUÊǹ¹²»³É¶ÀÁ¢µÄ΢»úϵͳµÄ¡£DSPÊÇÊý¾Ý´¦ÀíµÄרÓÃоƬ£¬µ¥Æ¬»úÖ÷ÒªÓÃ×ö¿ØÖÆ£¬Ò²¾ßÓмòµ¥µÄÊý¾Ý´¦ÀíÄÜÁ¦¡£

1.3 51ϵÁе¥Æ¬»úÄÚ²¿ÓÐÄÄЩ¹¦Äܲ¿¼þ? 1.3 ¼û1£®1£®1½Ú

1.4 51ϵÁе¥Æ¬»úÓÐÄÄЩƷÖÖ?½á¹¹ÓÐʲô²»Í¬?¸÷ÊÊÓÃÓÚʲô³¡ºÏ? 1.4 ¼ûÐ÷ÂÛ

1.5 51ϵÁе¥Æ¬»úµÄ´æ´¢Æ÷¿É»®Îª¼¸¸ö¿Õ¼ä?¸÷×ԵĵØÖ··¶Î§ºÍÈÝÁ¿ÊǶàÉÙ?ÔÚʹÓÃÉÏÓÐʲô²»Í¬? 1.5 ¼û±í1-5

1.6 ÔÚµ¥Æ¬»úÄÚ²¿RAMÖУ¬ÄÄЩ×Ö½ÚÓÐλµØÖ·£¬ÄÄЩûÓÐλµØÖ·?ÌØÊ⹦ÄܼĴæÆ÷SFRÖÐÄÄЩ¿ÉÒÔλѰַ?ÓÐʲôºÃ´¦? 1.6 ¼û±í1-1ºÍ±í1-2

1.7 ÒÑÖªPSW=10H£¬Í¨ÓüĴæÆ÷R0¡«R7µÄµØÖ··Ö±ðÊǶàÉÙ?

1.7 µ±PSw=10H£¬±íÃ÷Ñ¡ÖеÄΪµÚ¶þ×éͨÓÃ¼ÄÆ÷RO¡«R7µÄµØÖ·Îª10H¡«17H

1.8 ³ÌÐò´æ´¢Æ÷ºÍÊý¾Ý´æ´¢Æ÷¿ÉÒÔÓÐÏàͬµÄµØÖ·£¬¶øµ¥Æ¬»úÔÚ¶ÔÕâÁ½¸ö´æ´¢ÇøµÄÊý¾Ý½øÐвÙ×÷ʱ£¬²»»á·¢Éú´íÎó£¬ÎªÊ²Ã´?

1.8 Ðò´æ´¢Æ÷ºÍÊý¾Ý´æ´¢Æ÷¾¡¹ÜµØÖ·Ïàͬ£¬µ«ÔÚÊý¾Ý²Ù×÷ʱ£¬ËùʹÓõÄÖ¸Áͬ£¬Ñ¡Í¨ÐźÅÒ²²»Í¬£¬Òò´Ë²»»á·¢Éú´íÎó¡£

1.9 Ìî¿Õ£º

¶ÑÕ»ÉèÔÚ ´æ´¢Çø£¬³ÌÐò´æ·ÅÔÚ ´æ´¢Çø£¬I£¯0½Ó¿ÚÉèÖÃÔÚ ´æ´¢Çø£¬ÖжϷþÎñ³ÌÐò´æ·ÅÔÚ ´æ´¢Çø¡£

2

1.9 ÄÚ²¿Êý¾Ý ³ÌÐò ÍⲿÊý¾Ý ³ÌÐò

1.10 Èôµ¥Æ¬»úʹÓÃÆµÂÊΪ6MHzµÄ¾§Õñ£¬ÄÇô״̬ÖÜÆÚ¡¢»úÆ÷ÖÜÆÚºÍÖ¸ÁîÖÜÆÚ·Ö±ðÊǶàÉÙ?

1.10 Õñµ´ÖÜÆÚ=0.1667us£¬»úÆ÷ÖÜÆÚ=2us£¬Ö¸ÁîÖÜÆÚ=2¡«8us

1.11 ¸´Î»Ê±£¬A= £¬PSW= £¬SP= £¬P0¡«P3= 1.11 A=0£¬PSW=0£¬SP=07£¬P0¡«P3=FFH

µÚ2Õ ָÁîϵͳ

2.1 MCS-51µ¥Æ¬»úÓÐÄļ¸ÖÖѰַ·½Ê½£¬ÊÊÓÃÓÚʲôµØÖ·¿Õ¼ä?Óñí¸ñ±íʾ¡£ 2.1 ¼û2£®1½Ú

2.2 MCS-51µ¥Æ¬»úµÄPSW³ÌÐò״̬×ÖÖÐÎÞZERO(Áã)±ê־룬ÔõÑùÅжÏijÄÚ²¿Êý¾Ý´æ´¢µ¥ÔªµÄÄÚÈÝÊÇ·ñΪO?

2.2 ÒòΪÀÛ¼ÓÆ÷A×Ô´øÁã±êÖ¾£¬Òò´Ë£¬ÈôÅжÏijÄÚ²¿RAMµ¥ÔªµÄÄÚÈÝÊÇ·ñΪÁ㣬±ØÐ뽫ÆäÄÚÈÝË͵½A£¬Í¨¹ý JZÖ¸Áî¼´¿É½øÐÐÅжϡ£

2.3 ÉèA=0£¬Ö´ÐÐÏÂÁÐÁ½ÌõÖ¸Áîºó£¬AµÄÄÚÈÝÊÇ·ñÏàͬ£¬ËµÃ÷µÀÀí¡£ (1) MOVC A,@A+DPTR (2) MOVX A,@DPTR

2.3 µ±A=Oʱ£¬Á½ÌõÖ¸ÁîµÄµØÖ·ËäÈ»Ïàͬ£¬µ«²Ù×÷Â벻ͬ£¬MOVCÊÇѰַ³ÌÐò´æ´¢Æ÷£¬MOVXÊÇѰַÍⲿÊý¾Ý´æ´¢Æ÷£¬ËÍÈëAµÄÊÇÁ½¸ö²»Í¬´æ´¢¿Õ¼äµÄÄÚÈÝ¡£

2.4 Ö¸³öÏÂÁи÷Ö¸ÁîÖвÙ×÷ÊýµÄѰַ·½Ê½

Ö¸ Áî ADD A,40H PUSH ACC MOV B,20H ANL P1,#35H MOV @R1,PSW MOVC A,@A+DPTR MOVX @DPTR£¬A Ä¿µÄ²Ù×÷ÊýѰַ·½Ê½ Ô´²Ù×÷ÊýѰַ·½Ê½ 2.4 Ä¿µÄ²Ù×÷Êý Ô´²Ù×÷Êý ¼Ä´æÆ÷ Ö±½Ó SP¼ä½ÓѰַ Ö±½Ó Ö±½Ó Ö±½Ó Ö±½Ó Á¢¼´ ¼Ä´æÆ÷ÎÊÖ· Ö±½Ó ¼Ä´æÆ÷ ±äÖ· ¼Ä´æÆ÷¼äÖ· ¼Ä´æÆ÷

2.5 Ö´ÐÐÏÂÁгÌÐò¶Î MOV A,#56H ADD A,#74H ADD A,ACC

ºó£¬CY= £¬OV= £¬A= ¡£ 2.5 CY=1£¬OV=0£¬A=94H

2.6 ÔÚ´íÎóµÄÖ¸ÁîºóÃæÀ¨ºÅÖдò¡Á¡£

MOV @R1,#80H ( ) MOV R7,@R1 ( ) ¡Ì ¡Á

3

MOV 20H,@R0 ( ) MOV R1,#0100H ( ) ¡Ì ¡Á CPL R4 ( ) SETB R7,0 ( ) ¡Á ¡Á MOV 20H,21H ( ) ORL A,R5 ( ) ¡Ì ¡Ì ANL R1,#OFH ( ) XRL P1,#31H ( ) ¡Á ¡Ì MOVX A,2000H ( ) MOV 20H,@DPTR ( ) ¡Á ¡Á MOV A,DPTR ( ) MOV R1,R7 ( ) ¡Á ¡Á PUSH DPTR ( ) POP 30H ( ) ¡Á ¡Ì MOVC A,@R1 ( ) MOVC A,@DPTR ( ) ¡Á ¡Á MOVX @DPTR,#50H ( ) RLC B ( ) ¡Á ¡Á ADDC A£¬C ( ) MOVC @R1£¬A ( ) ¡Á ¡Á

2.6 ¡Ì ¡Á ¡Ì ¡Á ¡Á ¡Á ¡Ì ¡Ì ¡Á ¡Ì ¡Á ¡Á ¡Á ¡Á ¡Á ¡Ì ¡Á ¡Á ¡Á ¡Á ¡Á ¡Á

2.7 ÉèÄÚ²¿RAMÖÐ(59H)=50H£¬Ö´ÐÐÏÂÁгÌÐò¶Î£º MOV A,59H MOV R0,A MOV A,#0 MOV @R0,A MOV A,#25H MOV 51H,A MOV 52H,#70H

ÎÊA= £¬ (50H)= £¬ (51H)= £¬ (52H)= ¡£ 2.7 A=25H£¬(50H)=O£¬(51H)=25H£¬(52H)=70H

2.8 ÉèSP=60H£¬ÄÚ²¿RAMµÄ(30H)=24H£¬(31H)=10H£¬ÔÚÏÂÁгÌÐò¶Î×¢Ê͵ÄÀ¨ºÅÖÐÌîÖ´Ðнá¹û¡£

PUSH 30H £»SP=( )£¬ (SP)=( ) PUSH 3lH £»SP=( )£¬ (SP)=( ) POP DPL £»SP=( )£¬ DPL=( ) POP DPH £»SP=( )£¬ DPH=( ) MOV A£¬#00H MOVX @DPTR£¬A

×îºóÖ´Ðнá¹ûÊÇ( )¡£ 2.8 SP=(61H)£¬(SP)=(24H) SP=(62H)£¬(SP)=(10H) SP=(61H)£¬DPL=(10H)

SP=(60H)£¬DPH=(24H)Ö´Ðнá¹û½«0ËÍÍⲿÊý¾Ý´æ´¢Æ÷µÄ2410µ¥Ôª¡£

4

2.9 ¶ÔÏÂÁгÌÐòÖи÷ÌõÖ¸Áî×÷³ö×¢ÊÍ£¬²¢·ÖÎö³ÌÐòÔËÐеÄ×îºó½á¹û¡£ MUV 20H,#0A4H MOV A,#017)6H MOV R0,#20H MOV R2,#57H ANL A,R2 0RL A,@R0 SWAP A CPL A ORL 20H,A SJMP $

2.9 ³ÌÐòÔËÐкóÄÚ²¿RAM(20H)=B4H£¬A=90H

2.10 ½«ÏÂÁгÌÐòÒëΪ»úÆ÷Âë¡£ »úÆ÷Âë Ô´³ÌÐò

LA: MOV A,#01H LB: MOV P1,A RL A

CJNE A£¬#10,LB SJMP LA

2.10 »úÆ÷Âë Ô´³ÌÐò

7401 LA£ºM()V A£¬#01H F590 LB£ºM()V P1£¬A 23 RL A

B40AFA CJNE A£¬#10£¬LB 80F6 SJMP LA

2.11 ½«ÀÛ¼ÓÆ÷AµÄµÍ4λÊý¾ÝËÍP¡£¿ÚµÄ¸ß4룬P¡£¿ÚµÄµÍ4λ±£³Ö²»±ä¡£ 2.11 ANL A£¬#0FH SWAP A

ANL P1£®#OFH ORL P1£¬A SJMP $

2£®12 ±à³Ì½«R0(R2)µÄÄÚÈݺÍR1(R3)µÄÄÚÈÝÏཻ»»¡£ 2.12 MOV A,RO XCH A,R1 MOV R0,A SJMP $ 2£®12 MOV A,R2 XCH A,R3 MOV R2,A SJMP $

2.13 ÊÔÓÃ3ÖÖ·½·¨½«AÀÛ¼ÓÆ÷ÖеÄÎÞ·ûºÅÊý³Ë4£¬»ý´æ·ÅÓÚBºÍA¼Ä´æÆ÷ÖС£ 2.13

(1)ÀûÓó˷¨Ö¸Áî MOV B,#04H

5

MUL AB SJMP $ (2) ÀûÓÃÎ»ÒÆÖ¸Áî RL A RL A

MOV 20H¡£A ANL A£¬#03H MOV B£¬A MOV A,20H ANL A£¬#OFCH SJMP $

(3) Óüӷ¨Ö¸ÁîÍê³É ADD A£¬ACC

MOV RO£¬A £ºRO=2A MOV A£¬#0 ADDC A¡£#0

MOV B£¬A £»B´æ2AµÄ½øÎ» MOV A,RO ADD A£¬ACC

MOV R1£¬A £»R1=4A MOV A£¬B

ADDC A£¬B £»½øÎ»x 2 MOV B£¬A £»´æ»ý¸ßλ MOV A£¬R1 £»´æ»ýµÍλ SJMP $

2.14 ±à³Ì½«ÄÚ²¿RAM 40Hµ¥ÔªµÄÖмä4λ±ä·´£¬ÆäÓàλ²»±ä·Å»ØÔ­µ¥Ôª¡£ 2.14 ·½·¨1£ºXRL 40H£¬#3CH SJMP $

·½·¨2£ºMOV A£¬40H CPL A

ANL A£¬#3CH ANL 40H£¬#OC3H ORL 40H£¬A

SJMP $

2£®15 ÓÐÁ½¸öBCDÂëÊý´æ·ÅÔÚ(20H)ºÍ(21H)µ¥Ôª£¬Íê³É(21H)+(20H)=>(23H)(22H)¡£

(24H)+(25H)=>(23H)(22H)

2.15 MOV A£¬20H ADD A£¬21H DA A

MOV 22H£¬A £»´æºÍµÍ×Ö½Ú MOV A£¬#O ADDC A£¬#0

MOV 23H£¬A £»´æ½øÎ» SJMP $

6

2£®15 MOV A£¬24H ADD A£¬25H DA A

MOV 22H£¬A £»´æºÍµÍ×Ö½Ú MOV A£¬#O ADDC A£¬#0

MOV 23H£¬A £»´æ½øÎ» SJMP $

2.16 Èç¹ûR0µÄÄÚÈÝΪ0£¬½«R1ÖÃΪ0£¬ÈçR0ÄÚÈÝ·Ç0£¬ÖÃR1ΪFFH£¬ÊÔ½øÐбà³Ì¡£ 2.16 MOV A£®R0 JZ ZE

MOV R1£®#OFFH SJMP $

ZE£ºMOV R1£¬#O SJMP $

2.17 Íê³É(51H)¡Á(50H)=>(53H)(52H)µÄ±à³Ì(ʽÖоùΪÄÚ²¿RAM)¡£ 2.17 MOV A£¬50H MOV B£¬51H MUL AB MOV 53H¡£B MOV 52H£¬A

SJMP $

2£®18 ½«P1.1ºÍP1.0ͬʱȡ·´10´Î¡£(½«P1.2ºÍP1.0ͬʱȡ·´10´Î) 2.18 MOV R7,#0AH WOP£ºXRL P1£¬#03H DJNZ R7£¬WOP SJMP $

2£®18 MOV R7¡£#0AH

WOP£ºXRL P1£¬#05H

DJNZ R7£¬WOP SJMP $

2.19 ½«ÄÚ²¿RAMµ¥Ôª3×Ö½ÚÊý(22H)(21H)(20H)¡Á2ËÍ(23H)(22H)(21H)(20H)µ¥Ôª¡£ 2.19 µ¥Æ¬»úµÄÒÆÎ»Ö¸ÁîÖ»¶ÔA£¬ÇÒÖ»ÓÐÑ­»·ÒÆÎ»Ö¸ÁΪÁËʹ±¾µ¥ÔªµÄ×î¸ßÎ»ÒÆ½øÏÂÒ»µ¥ÔªµÄ×îµÍ룬±ØÐëÓôóÑ­»·ÒÆÎ»Ö¸ÁîÒÆÎ»4´Î¡£

ORG O CLR C MOV A£¬20H RLC A MOV 20H,A MOV A£¬21H RLC A MOV 21H£¬A MOV A,22H

7

RLC A

MOV 22H£®A MOV A£¬#O RLC A MOV 23H£¬A SLMP $

µÚ3Õ ³ÌÐòÉè¼Æ

3.1 ±àд³ÌÐò£¬°ÑƬÍâÊý¾Ý´æ´¢Æ÷0000H¡«0050HÖеÄÄÚÈÝ´«Ë͵½Æ¬ÄÚÊý¾Ý´æ´¢Æ÷20H¡«70HÖС£

3.1 ÒòΪÊǶà¸öµ¥Ôª²Ù×÷£¬Îª·½±ãÐ޸ĵØÖ·£¬Ê¹ÓÃÎÊÖ·²Ù×÷¡£Æ¬ÍâµØÖ·ÓÃDPTRָʾ£®Ö»ÄÜÓÃM()VxÖ¸ÁîÈ¡Êýµ½A£¬Æ¬ÄÚµØÖ·ÓÃRO»òR1ָʾ£¬Ö»ÄÜÓÃMOVÖ¸Áî²Ù×÷£¬Òò´Ë£¬Ñ­»·²Ù×÷ÍⲿÊý¾Ý´æ´¢Æ÷Ò»AÒ»ÄÚ²¿Êý¾Ý´æ´¢Æ÷¡£ ORG OOOOH

MOV DPTR,#0000H

MOV R0£¬#20H

LOOP£ºMOVX A£¬@DPTR MOV @R0£¬A

INC DPTR INC R0

CJNE R0£¬#71H£¬ LOOP SJMP $

3.2 ±àд³ÌÐò£¬ÊµÏÖË«×Ö½Ú¼Ó·¨ÔËË㣬ҪÇóRIR0+R7R6=>(52H)(51H)(50H)(ÄÚ²¿RAM)¡£ 3.2 ҪעÒâÁ½¸ß×Ö½ÚÏà¼ÓÓ¦¼ÓµÍ×Ö½ÚÏà¼Óʱ²úÉúµÄ½øÎ»£¬Í¬Ê±Òª¿¼ÂÇ×î¸ßλµÄ½øÎ»¡£

ORG 0 MOV A,RO ADD A,R6 MOV 50H,A MOV A£¬R7 ADDC A,R1 MOV 51H£¬A MOV A£¬#0 ADDC A£¬#O MOV 52H£¬A SJMP$

3.3 ÉèXÔÚÀÛ¼ÓÆ÷AÖÐ(0¡ÜX¡Ü20)£¬ÇóX2²¢½«Æ½·½Êý¸ßλ´æ·ÅÔÚR7ÖУ¬µÍλ´æ·ÅÔÚR6ÖС£ÊÔÓòé±í·¨±à³ö×Ó³ÌÐò¡£ 3.3 AÖзÅX(СÓÚ14H)µÄÊý£¬Æ½·½±íµÄÒ»¸öÊý¾ÝÕ¼2¸ö×Ö½Ú£¬¿ÉÓÃBCDÂë»ò¶þ½øÖÆÊý´æ·Å(ÈçAÖзŵÄÊÇ BCDÂ룬ÔòÒªÏÈ»¯³É¶þ½øÖÆÊýÔÙ²é±í)¡£

ORG 0

MOV DPTR£¬#TAB ADD A,ACC ;A*2 PUSH ACC

MOVC A£¬@A+DPTR

8

MOV R7£¬A POP ACC INC A

MOVC A£¬@A+DPTR MOV R6£¬A

SJMP $

TAB£ºDB 00£¬00£¬00£¬01£¬OO£¬04£¬OO£¬09£¬OO£¬16H£¬? DB? 04H£¬00

3.4ÉèÄÚ²¿RAMµÄ20HºÍ21Hµ¥ÔªÖÐÓÐÁ½¸ö´ø·ûºÅÊý£¬½«ÆäÖеĴóÊý´æ·ÅÔÚ22Hµ¥ÔªÖУ¬±à³ö³ÌÐò¡£

3.4 ÏÈÓÃÒì»òÖ¸ÁîÅÐÁ½ÊýÊÇ·ñͬºÅ£¬ÔÚͬºÅÖÐÅдóС£¬ÒìºÅÖÐÕýÊýΪ´ó¡£ ORG 0 MOV A£¬20H XRL A£®21H ANL A,#80H JZ CMP

JB 20H.7£¬BG AG£ºMOV 22H£¬20H SJMP $

BG£ºMOV 22H£¬21H

SJMP $

CMP£ºMOV A£¬20H CJNE A£¬21H£¬GR GR£ºJNC AG MOV 22H£¬21H

SJMP $

3.5Èôµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ6MHz£¬ÇóÏÂÁÐÑÓʱ×Ó³ÌÐòµÄÑÓʱʱ¼ä¡£ DELAY: MOV R1,#0F8H LOOP: MOV R3,#0FBH DJNZ R3,$ DJNZ R1,LOOP RET

3.5 fosc=6MHz£¬MC=2us

»úÆ÷ÖÜÆÚÊý DELAY£ºMOV R1£¬#OF8H 1 LOOP£º MOV R3£¬#0FBH 1 DJNZ R3£¬$ 2 DJNZ R1£¬LOOP 2

RET 2 (1+2+(1+2¡Á251+2)¡Á248)¡Á2us=250.48ms

3.6 ±à³Ì½«ÄÚ²¿Êý¾Ý´æ´¢Æ÷20H¡«24Hµ¥ÔªÑ¹ËõµÄBCDÂëת»»³ÉASCIIÂë´æ·ÅÔÚ25H¿ªÊ¼µÄµ¥ÔªÄÚ¡£

3.6 ½«´ýת»»µÄÊý·ÖÀë³ö¸ß°ë×Ö½Ú²¢ÒƵ½µÍ4λ¼Ó30H£»ÔÙ½«´ýת»»µÄÊý·ÖÀë³öµÍ°ë×Ö½Ú²¢¼Ó30H£¬°²ÅźÃÔ´µØÖ·ºÍת»»ºóÊýµÄµØÖ·Ö¸Õ룬ÖúÃÑ­»·´ÎÊý¡£ ORG 0000H

9

MOV R7£¬#05H MOV RO£¬#20H

MOV R1£¬#25H NET£ºMOV A£¬@RO ANL A,#OFOH SWAP

ADD A,#30H MOV @R1£¬A INC R1

MOV A£¬@RO ANL A£¬#OFH ADD A£¬#30H MOV @R1£¬A INC R0 INC R1

DJNZ R7£¬NE SJMP $ END

3.7 ´ÓÄÚ²¿´æ´¢Æ÷30Hµ¥Ôª¿ªÊ¼£¬ÓÐ16¸öÊý¾Ý£¬ÊÔ±àÒ»¸ö³ÌÐò£¬°ÑÆäÖеÄÕýÊý¡¢¸ºÊý·Ö±ðËÍ40HºÍ50H¿ªÊ¼µÄ´æ´¢µ¥Ôª£¬²¢·Ö±ð½«ÕýÊý¡¢¸ºÊýºÍÁãµÄ¸öÊýËÍR4£¬R5£¬R6¡£ 3.7 ƬÄÚRAM¼äÖ·¼Ä´æÆ÷Ö»ÓÐRoºÍR1£¬¶øÕýÊý¡¢¸ºÊýºÍÁã¹²Ðè3¸ö¼Ä´æÆ÷ָʾµØÖ·£¬Õâʱ¿ÉÓöÑÕ»Ö¸ÕëָʾµÚ3¸öµØÖ·£¬POPºÍPUSHÖ¸Áî¿É×Ô¶¯Ð޸ĵØÖ·¡£ROÖ¸ÕýÊý´æ·ÅµØÖ·£¬RlÖ¸¸ºÊý´æ·ÅµØÖ·£¬SPÖ¸Ô´Êý¾Ý´æ·ÅµÄÄ©µØÖ·£¬POPÖ¸ÁîȡԴÊý¾Ý£¬Ã¿È¡Ò»¸öÊýµØÖ·¼õ1¡£ ORG 0000H MOV R7£¬#10H MOV A£¬#0 MOV R4,A MOV R5,A MOV R6,A MOV R0£¬#40H MOV R1£¬#50H

MOV SP£¬#2FH NEXT£ºPOP ACC JZ ZER0 JB ACC.7£¬NE INC R4 MOV @RO£¬A INC R0 AJMP DJ NE£ºINC R5 MOV @R1£¬A INC R1

AJMP DJ ZER0£ºINC R6

DJ£ºDJNZ R7£¬NEXT

10

SJMP $ END

3.8 ÄÚ²¿´æ´¢µ¥Ôª40HÖÐÓÐÒ»¸öASCII×Ö·û£¬ÊÔ±àÒ»¸ö³ÌÐò¸ø¸ÃÊýµÄ×î¸ßλ¼ÓÉÏÆæÐ£Ñé¡£ 3.8 ¿ÉÖ±½ÓÓÃP±êÖ¾ÅжÏ(JB P£¬ret) ORG 0000H MOV A¡£40H

JB P£¬EN £»ÆæÊý¸ö1×ªÒÆ

0RL A£¬#80H £»Å¼Êý¸ö1×î¸ßλ¼Ó¡°1¡± EN£ºSJMP$

3.9 ±àдһ¶Î³ÌÐò£¬½«´æ·ÅÔÚ×ÔDATAµ¥Ôª¿ªÊ¼µÄÒ»¸öËÄ×Ö½ÚÊý(¸ßλÔڸߵØÖ·)È¡²¹ºóËÍ»ØÔ­µ¥Ôª¡£

3.9 È¡²¹²»Í¬ÓÚÇó²¹Â룬Çó²¹ÂëÓ¦Çø±ðÕý¡¢¸ºÊý·Ö±ð´¦Àí£¬¶øÈ¡²¹²»·ÖÕý¡¢¸º£¬ÒòÕý¡¢¸ºÊý¾ùÓÐÏà¶ÔÓÚÄ£µÄ²¹Êý¡£¿ÉÓÃÈ¡·´¼ÓlÇó²¹£¬Ò²¿ÉÓÃÄ£(00H)¼õ¸ÃÊýµÄ·½·¨Ç󲹡£

ORG 0000H MOV R7£¬#03H MOV R0£¬#DATA MOV A£¬@RO CPL A ADD A£¬#01 MOV @RO£¬A AB£ºINC RO MOV A£¬@RO CPL A ADDC A£¬#O DJNZ R7£¬AB SJMP $

3.10 ÒÔBUFlΪÆðʼµØÖ·µÄÍâ´æ´¢ÇøÖУ¬´æ·ÅÓÐ16¸öµ¥×Ö½ÚÎÞ·ûºÅ¶þ½øÖÆÊý£¬ÊÔ±àÒ»¸ö³ÌÐò£¬ÇóÆäƽ¾ùÖµ²¢ËÍBUF2µ¥Ôª£¬ÓàÊý´æÔÚBUF2¡ª1µ¥Ôª¡£ 3.10 16¸öµ¥×Ö½ÚÀÛ¼ÓÓ¦ÓÃADDÖ¸Áî¶ø²»ÄÜÓÃADDCÖ¸ÁºÍµÄµÍλ´æA£¬µ±ºÍ³¬¹ýÒ»¸ö×Ö½Úʱ£¬ºÍµÄ¸ß×Ö½Ú´æÓÚB£¬²¢Òª¼ÓµÍλÏà¼Óʱ²úÉúµÄ½øÎ»£¬16¸öµ¥×Ö½Ú¼ÓÍêºó£¬²ÉÓÃÓÒÒÆ4´Î½øÐгý16Ç󯽾ùÖµµÄÔËË㣬ÉÌÔÚ BUF2µ¥Ôª£¬ÓàÊýÔÚBuF2-1µ¥Ôª¡£ 0RG 0000H MoV R7£¬#0FH MOV R0£¬#BUFl MOV B£¬#0 MOV A£¬@R0

MOV R2,A

NEXT£ºMOV A£¬R2 INC R0 ADD A£¬@R0 MOV R2£¬A MOV A£¬B ADDC A£¬#0 MOV B£¬A

11

DJNZ R7£¬NEXT £»ÒÔÉÏÍê³ÉÇóºÍ MOV R6£¬#04H MOV BUF2£¬A

MOV BUF2-1,#O NEX£ºCLR C MOV A£¬B RRC A MOV B,A MOV A£¬BUF2 RRC A

MOV BUF2£¬A MOV A£¬BUF2-1 RRC A

MOV BUF2-l£¬A DJNZ R6£¬NEX SJMP $

£»ÒÔÉÏÍê³É³ý16ÔËËã

3.11 ½«ÄÚ²¿RAMµÄ20Hµ¥ÔªÖеÄÊ®Áù½øÖÆÊý±ä»»³ÉASCII´æÈë22H£¬21Hµ¥Ôª£¬¸ßλ´æÈë22Hµ¥Ôª£¬ÒªÇóÓÃ×Ó³ÌÐò±àдת»»²¿·Ö¡£

3.11 ½«20Hµ¥ÔªµÄÄÚÈÝ·Ö½âΪ¸ß4λºÍµÍ4룬¸ù¾ÝÊÇ·ñ´óÓÚ9·Ö±ð½øÐмÓ37HºÍ30H´¦Àí¡£

0RG 0000H MOV A,20H ANL A£¬#0F0H SWAP A

ACALL ASCII MOV 22H£¬A MOV A£®20H ANL A£¬#0FH ACALL ASCII MOV 21H£¬A SJMP $ END

ASCII£ºCJNE A£¬#0AH£¬NE NE£ºJC A30 ADD A£¬#37H RET

A30£ºADD A£¬30H RET

3.12 ±àдһ¶Î³ÌÐò£¬ÒÔʵÏÖͼÖÐÓ²¼þµÄÂß¼­ÔËË㹦ÄÜ¡£

12

3.12ҪעÒ⣬λµÄÂß¼­ÔËËãÆäÖÐÒ»¸ö²Ù×÷Êý±ØÐëÔÚC¡£

ORG 0000H MOV C,20H ANL C,2FH CPL C

ORL C,/2FH CPL C

ANL C,53H MOV P1.0,C SJMP $ END

3.13 ÓÃλ²Ù×÷Ö¸ÁîʵÏÖÏÂÃæµÄÂß¼­·½³Ì(¡Á±íʾÂß¼­³Ë£¬+±íʾÂß¼­¼Ó)£º P1.2=(ACC.3¡ÁP1.4¡Á-ACC.5)+(-B.4¡Á-P1.5) 3.13 ORG 0000H MOV C£¬ACC.3 ANL C¡£P1.4 ANL C,/ACC.5 MOV 20H£¬C MOV C£¬B.4 CPL C

ANL C,/P1.5 ORL C£¬20H MOV P1.2,C SJMP $

END

3.14 ÊÔ±àдһ¸öÈý×Ö½ÚÎÞ·ûºÅÊý³ËÒ»×ֽڵij˷¨³ÌÐò¡£

3.14 ÉèÒ»×Ö½Ú³ËÊý´æ·ÅÔÚR1£¬Èý×ֽڵı»³ËÊý´æ·ÅÔÚdata¿ªÊ¼µÄÄÚ²¿RAMµ¥Ôª£¬ÇÒµÍ×Ö½Ú´æ·ÅÔÚµÍλµØÖ·µ¥Ôª£¬R0×÷Ϊ±»³ËÊýºÍ»ýµÄµØÖ·Ö¸Õ룬ÓÃMULÖ¸ÁîÍê³ÉÒ»×Ö½Ú³ËÒ»×Ö½Ú£¬Ã¿Ò»´Î²¿·Ö»ýµÄµÍλ¼ÓÉÏÒ»´Î²¿·Ö»ýµÄ¸ß룬ÆäºÍµÄ½øÎ»¼ÓÔÚ±¾´Î²¿·Ö»ýµÄ¸ßλÉÏ,²¢Ôݴ棬Èý×Ö½Ú³ËÒ»×Ö½Ú¹²ÐèÕâÑù3´Î³Ë¡¢¼Ó¡¢´æ²Ù×÷£®ÒÔR7×÷Ñ­»·3´ÎµÄ¼ÆÊý¼Ä´æÆ÷¡£ ORG 0000H MOV R7£¬#03H MOV R0,#data

MOV R2,#0 NEXT£ºMOV A£¬@R0

13

MOV B,R1 MUL AB ADD A£¬R2 MOV @RO£¬A

MOV A,#O ADDC£»A,B MOV R2,A INC R0

DJNZ R7£¬NEXT MOV @R0£¬B SJMP $ END

µÚ4Õ µ¥Æ¬»úµÄCÓïÑÔ

4.1 ¸ÄÕýÏÂÃæ³ÌÐòµÄ´íÎó¡£

4.1 1£º#include ±¾³ÌÐòÓÐÈçÏ´íÎó£º 2£ºmain()

3£º{a=c£» ¢Ù±äÁ¿a£¬c±ØÐëÏȶ¨ÒåÔÙÒýÓÃ

4£ºint a=7£¬c£» ¢ÚµÚ5¾äµ÷Óú¯Êýºó±ØÐë¼Ó·ÖºÅ £® 5£ºdelay() ¢Ûmain()º¯ÊýûÓз´´óÀ¨ºÅ

6£ºvoid delay()£» ¢Ü±»µ÷º¯Êýdelay()ÔÚmain()ºóÃæ£¬±ØÐëÔÚÇ°ÃæÏÈÉùÃ÷ 7£º{

8£ºchar i£» ¢ÝµÚ6¾äº¯Êý˵Ã÷Óï¾äºóµÄ·ÖºÅӦȥµô 9£ºfor(i=O£»i<£º255£»i++)£» 10£º}

4.2 ÊÔ˵Ã÷ΪʲôxdataÐ͵ÄÖ¸Õ볤¶ÈÒªÓÃ2¸ö×Ö½Ú?

4.2 ÒòΪxdataÊÇÍⲿÊý¾Ý´æ´¢Æ÷£¬×î´ó¿ÉÓÐ64KBµÄ´æ´¢µ¥Ôª£¬xdataÖ¸ÕëÊDZíʾÍⲿÊý¾Ý´æ´¢µ¥ÔªµÄµØÖ·£¬Òª±íʾ64KB¸öµ¥ÔªµØÖ·£¬ËùÒÔ±ØÐëÓÃ2¸ö×Ö½Ú£¬¹²16λ±íʾ¡£

4.3 ¶¨Òå±äÁ¿a¡¢b¡¢c; aΪÄÚ²¿RAMµÄ¿ÉÎ»Ñ°Ö·ÇøµÄ×Ö·û±äÁ¿; bΪÍⲿÊý¾Ý´æ´¢Çø¸¡µãÐͱäÁ¿£»cΪָÏòintÐÍxdataÇøµÄÖ¸Õë¡£ 4.3 bdata char a£» xdata float b£º

xdata int~c£»

4.4 ±à³Ì½«8XX51µÄÄÚ²¿Êý¾Ý´æ´¢Æ÷20Hµ¥ÔªºÍ35Hµ¥ÔªµÄÊý¾ÝÏà³Ë£¬½á¹û´æµ½ÍⲿÊý¾Ý´æ´¢Æ÷ÖÐ(λÖò»¹Ì¶¨)¡£ 4.4 main()

{char data*pl£¬*p2£» xdata int a£» p1=0x20£» p2=0x35£» a=*p1*(*p2)£»

}

4.5 ½«ÈçÏ»ã±à³ÌÐòÒë³ÉC³ÌÐò(µÈЧ¼´¿É)¡£ ORG 0000H MOV P1,#04H

14

MOV R6,#0AH MOV R0,#30H CLR P1.O SETB P1.3 ACALL TLC SJMP $

TLC£ºMOV A,#0 CLR P1.3 MOV R5,#08

LOOP: MOV C,P1.2 RLC A SETB P1.0 CLR P1.O DJNZ R5,LOOP MOV @RO,A INC R0

DJNZ R6,TLC2543 RET END

4.5 #include(reg51£®h)

#define uchar unsigned char sbit P1_0=P1^0;

sbit Pl_l=P1^1£» sbit P1_2=P1^2; sbit P1_3=P1^3£» sbit msb=ACC^7; sbit lsb=ACC^0; uchar tlc(void); main( ){ uchar *P; P1=0x04; P=0x30; P1_0=0£»

Pl_3=1£»

for(i=O£»i<10£»i++) {*P=tlc( )£» P++£º}

}

uchar tlc(void){ uchar i£¬y£» ACC=0; Pl_3=0;

for(i=0£ºi<8£ºi++){

P1_1=msb£» /*·¢³öACCµÄµÍλ*/

15

y=ACC<<1£» /*ACCÓÒÒÆ1λ*/

lsb=P1_2£» /*½ÓÊÕһλ·ÅÔÚACCµÄ¸ßλ*/ P1_0=1£» P1_0=O; }

return y£» } 4.6 8051µÄƬÄÚÊý¾Ý´æ´¢Æ÷25Hµ¥ÔªÖзÅÓÐÒ»¸ö0¡«10µÄÕûÊý£¬±à³ÌÇóÆäƽ·½¸ù(¾«È·µ½5λÓÐЧÊý×Ö)£¬½«Æ½·½¸ù·Åµ½30Hµ¥ÔªÎªÊ×Ö·µÄÄÚ´æ¡£ 4.6 ·½·¨l£ºÊ¹Óòé±í·¨

float code tab[11]={0£¬1£¬1£®4142£¬1.7321£¬2£¬2.2361£¬ 2.4495£¬2.6458£¬2.8284£¬3,3.1623}£º main()

{char data*P1; float data*P2; P1=0x25; P2=0x30;

*P2=tab[*P1]£» }

·½·¨2£ºÊ¹Óÿ⺯Êý

#lnclude main(){ float*P2; char*P1;

P1=0x25;

*P2=sqrt(*P1); }

4.7 Íê³ÉÂß¼­±í´ïʽP1.2=P1.4¡ÁACC.0+ACC.7(¡°¡Á¡±±íʾÂß¼­Ó룬¡°+¡±±íʾÂß¼­»ò)¡£ 4.7 #include sbit P12=P1^2£º main()

{P12=¡«(P1^4&ACC^0)|ACC^7£»}

4.8 ½«ÍⲿRAMµÄ10H¡«15Hµ¥ÔªµÄÄÚÈÝ´«Ë͵½ÄÚ²¿RAMµÄ10H¡«15Hµ¥Ôª¡£ 4.8 #lnclude main()

{

char pdata *m; char data *n; P2=0;

for(m=0x10£»m<=0x15£»m++) {n=m£»*n=*m£»}

}

4.9 ÄÚ²¿RAMµÄ20H¡¢21HºÍ22H¡¢23Hµ¥Ôª·Ö±ð´æ·Å×ÅÁ½¸öÎÞ·ûºÅµÄ16λÊý£¬½«ÆäÖеĴóÊýÖÃÓÚ24HºÍ25Hµ¥Ôª¡£

16

4.9 #define uint unsigned int main() {

uint data*m£¬*n£¬*P£» for(£»£»){

m=0x20£»n=0x22£»P=0x24£» if(*m<*n)*P=*n£» else *P=*m£º } }

4.10 ½«ÄÚ²¿RAM 21Hµ¥Ôª´æ·ÅµÄBCDÂëÊýת»»Îª¶þ½øÖÆ´æÈë30HΪÊ×Ö·µÄµ¥Ôª£¬BCDÂëµÄ³¤¶È´æ·ÅÔÚ20Hµ¥ÔªÖС£ 4.10 main() {

int data a=O£¬*P3£º char i£¬*P1£¬*P2£» Pl=0x20£º P2=0x21£º P3=0x30£»

for(i=O£»i<*P1£»i++) {

a=a*10+*P2; P2++£» }

*P3=a; }

4.11 ½«ÄÚ²¿RAM 30Hµ¥Ôª´æ·ÅµÄ2×Ö½Ú¶þ½øÖÆÊýת»»ÎªÊ®½øÖÆÊý´æÓÚ21HΪÊ׵ĵ¥ÔªÖУ¬³¤¶È´æ·ÅÓÚ20Hµ¥ÔªÖС£ 4.11 main()

{unsigned int a£¬k£¬*P3£» char i£¬*P1£¬*P2£º P1=0x20£º P2=0x25£º P3=0x30£»

a=*P3;k=10000;

while(a/k==0)k=k/10£» for(i=0£»a!=0£»i++) {*P2=a/k£» a=a%k£» P2++£» k=k/10£º *P1=i£º }

µÚ5Õ ²¢ÐпÚ

17

5.1 8XX51µÄ4¸öI£¯()¶Ë¿ÚµÄ×÷ÓÃÊÇʲô?8XX51¶ÔÍâµÄÈý×ÜÏßÊÇÈçºÎ·ÖÅäµÄ? 5.2 8XX51µÄ4¸öI£¯0¶Ë¿ÚÔڽṹÉÏÓкÎÒìͬ?ʹÓÃʱӦעÒâʲô? 5.3 Ϊʲô˵8XX51ÄÜÈ«²¿×÷ΪI£¯O¿ÚʹÓõĽöÓÐP1¶Ë¿Ú? 5.1¡«5.3 ²ÎÔÄ5.1½Ú

5.4 ÔÚÀý5-2ÖÐÓÐÈçÏÂÓï¾ä£º

MOV P1,#0FFH £»¸ß4λµÄLEDÈ«Ã𣬵Í4λÊäÈëÏßËÍ¡°1¡± ABC: MOV A,P1 £»¶ÁP1¿ÚÒý½Å¿ª¹Ø×´Ì¬£¬²¢ËÍÈëA

ΪʲôִÐÐÁËABCÓï¾äºóAµÄÖµµÍ4λΪ¿ª¹Ø×´Ì¬£¬¶ø²»ÊÇǰһ¾äµÄFFH£¬ÄÇôËüµÄ¸ß4λֵÊÇÊ²Ã´ÄØ?

5.4 ÓÉÄÚ²¿½á¹¹Í¼¿ÉÖª£¬MOV P1£¬#0FFH½«Ê¹Ëø´æÆ÷Q=1£¬Í¬Ê±Q=0£¬VT½ØÖ¹£¬µ±Ö´ÐÐMOV A£¬P1ʱ£¬¶ÁÒý½ÅÐźÅÓÐЧ£¬µÍ4λµÄ¿ª¹Øµçƽͨ¹ýÃÅ2½øÈëÄÚ²¿×ÜÏßµ½A£¬¶ø¶ÁËø´æÆ÷ÐźÅÎÞЧ£¬ÃÅ1¹Ø±Õ£¬QµÄÐźŽø²»ÁËÄÚ²¿×ÜÏߣ¬¸ß4λûÓÐÒý½ÅÐÂµÄµçÆ½±ä»¯£¬ÓÉÓÚVT½ØÖ¹£¬¶þ¼«¹ÜÒ²½ØÖ¹£¬½øÈëÃÅ2µÄÊÇVTµÄ©¼«µçѹVcc£¬Òò´Ë£¬¸ß4λͨ¹ýÃÅ2¶ÁÈëµÄ¾ùÊÇ¸ßµçÆ½¼´1111 B¡£

5.5 ÀûÓÃ8XX51µÄP1¿Ú£¬¼à²âijһ°´¼ü¿ª¹Ø£¬Ê¹Ã¿°´¼üÒ»´Î£¬Êä³öÒ»¸öÕýÂö³å(Âö¿íËæÒâ)£¬»­³öµç·²¢±à³ö³ÌÐò¡£ 5.5 ÓÃP1.7¼à²â°´¼ü¿ª¹Ø£¬P1.0Òý½ÅÊä³öÕýÂö³å£¬ÕýÂö³åµÄ²úÉúÖ»ÐèÒª½«P1.0ÖÃÁã¡¢ÖÃ1¡¢ÑÓʱ¡¢ÔÙÖÃÁã¼´¿É¡£P1.0½Óһʾ²¨Æ÷¿É¹Û²ì²¨ÐΡ£Èç¹ûÔÙ½ÓÒ»·¢¹â¶þ¼«¹Ü£¬¿É¹Û²ìµ½·¢¹â¶þ¼«¹ÜµÄÉÁ˸¡£µç·Éè¼ÆÍ¼ÈçϰÌâ5.5ͼ¡£ »ã±àÓïÑÔ³ÌÐò ORG 0000H ABC£ºCLR P1.0 SETB P1.7

JB P1.7£¬$ £»µÈ¼ü°´Ï JNB P1.7£¬$ £»´ý¼üµ¯Æð SETB P1.0

MOV R2£¬#0 DAY£ºNOP NOP

DJNZ R2£¬DAY

SJMP ABC

CÓïÑÔ±à³Ì

sfr P1=0x90£º sbit p1_O=P1^O£» sbit p1_7=P1^7£» main(){

unsigned char i£» while(1){ P1=0x80£º

do{}while(p1_7==1)£»/*µÈ¼ü°´ÏÂ*/ do{}while(p1_7==O)£»/*µÈ¼üµ¯Æð*/

p1_0=1£» for(i=O£»i<255£»i++)£» }}

18

5.6 ÀûÓÃ8XX51µÄP1¿Ú¿ØÖÆ8¸ö·¢¹â¶þ¼«¹ÜLED¡£ÏàÁÚµÄ4¸öLEDΪһ×飬ʹÁ½×éÿ¸ô0.5s½»Ìæ·¢ÁÁÒ»´Î£¬Öܶø¸´Ê¼£¬»­³öµç·²¢±àд³ÌÐò(ÉèÑÓʱ0.5s×Ó³ÌÐòΪD05£¬ÒÑ´æÔÚ)¡£

5.6 µç·¼ûϰÌâ5£®6ͼ£¬³õʼֵËÍ0FHµ½P1,ÔÙºÍ0FFHÒì»ò´ÓP1¿ÚÊä³ö£¬»òʹÓÃSWAP AÖ¸ÁȻºó´ÓP1¿ÚÊä³ö£¬Ñ­»·ÔËÐУ¬×¢ÒâÊä³öºóÒªÑÓʱ¡£

»ã±àÓïÑÔ³ÌÐò ORG 0000H MOV A£¬#OFH ABC£ºMOV P1£¬A ACALL D05 SWAP A SJMP ABC

D05£ºMoV R6£¬250 DY£ºMOV R7£¬250 DAY£ºNOP NOP

DJNZ R7£¬DAY DJNZ R6£¬DY RET END

CÓïÑÔ±à³Ì

sfr P1=0x90; main( ){ int i;

19

P1=0xf0; while(1){ P1=¡«P1;

fOr(i=0£»i<5000£»i++)£» }

5.7 ÓÃ89C51£¯89S51²¢ÐпÚÉè¼ÆÏÔʾ?¸öÊýÂëµÄµç·£¬Ê¹ÊýÂë¹ÜÑ­»·ÏÔʾ¡°O¡±¡«¡°F¡±¡£ 5.7 ÈçʹÓù²Òõ¼«ÊýÂë¹Ü£¬Òõ¼«½ÓµØ£¬Ñô¼«a¡«g·Ö±ð½ÓP0¡«P3µÄij¸ö¿ÚµÄ7룬½«0¡«FµÄ¶ÎÂëÁÐ³É±í£¬±íµÄÄÚÈÝ˳´Î´Ó¸Ã¿ÚÊä³ö¡£ÈçÊýÂë¹Ü½ÓP3¿Ú¡£ »ã±àÓïÑÔ³ÌÐò 0RG 0000H

MOV DPTR£¬#TAB AGAIN£ºMOV R0£¬#0 NEXT£ºMOV A£¬RO MOVC A£¬@A+DPTR MOV P3,A MOV R7£¬#0 DAY£ºNOP NOP

DJNZ R7£¬DAY INC R0

CJNE R0£¬#10H£¬NEXT

SJMP AGAIN £»¶ÎÂë±í(ÂÔ) TAB£ºDB 3FH£¬06H? END

CÓïÑÔ³ÌÐò

#include(reg51.h)

#defint uint unsigned int #define uchar unsigned char main(){ umtj£» uchar i; uchar code

tab[16]={0x3f£¬0x06??)£»£¬/*¶ÎÂë±í(ÂÔ)*/ while(1){ for(i=O£»i<=15;i++) {P3=tab[i]}£»

for(j=O£»j<10000£»j++)£»/*ÑÓʱ*/ } }

5.8 Éè¼ÆÒ»¸öÄÜÏÔʾ4λÊýÂëµÄµç·£¬²¢ÓÃCÓïÑԺͻã±àÓïÑÔ±à³Ìʹ¡°8¡±ÄÜÅÜÂíÏÔʾ8±é¡£

5.8 µç·Éè¼Æ¼ûϰÌâ5£®8ͼ£¬·Ö±ðÓûã±àÓïÑÔºÍCÓïÑԵıà³ÌÈçÏ£º »ã±àÓïÑÔ³ÌÐò

20

0RG 0000H MOV A,#08H

M()V DPTR£¬#TAB MOVC A£¬@A+DPTR MOV P1£¬A

MOV R2£¬#08H AGAIN£ºM()V A£¬#01 NEXT£ºM()V P3£¬A ACALL DAY RL A

CJNE A£¬#10H£¬NEXT DJNZ R2£¬AGAIN TAB£ºDB 3FH£¬06H? END

CÓïÑÔ³ÌÐò

#include

#definc uint unslgned int #deflne uchar unsigned char main(){ uchar code

tabl[]={0x3f£¬0s06?} uchar i£¬m; uint j£»

for(m=O£»m<8£»i++){ P3=0x01£º

for(i=0£»i<4£»i++){ P1=tabl[8] P3<<=1£º

for(j=0£»j<=25000£»j++)£» }}}

21

5.9 ÀûÓÃ89C51/89S51²¢ÐпÚÉè¼Æ8¡Á8µÄ¾ØÕó¼üÅ̲¢ÓüýÍ·±êÃ÷Ðźŵķ½Ïò¡£

5.9 P1¿ÚµÄ8¸ùÏß½ÓÐÐÏߣ¬Êä³öÐÐɨÃèÐźţ¬P3¿ÚµÄ8¸ùÏß½ÓÁÐÏߣ¬ÊäÈë»ØÀ¡Ðźš£¼ûϰÌâ5.9ͼ¡£

µÚ6Õ ÖжÏ

6.1 8XXSlÓм¸¸öÖжÏÔ´?¸÷ÖжϱêÖ¾ÊÇÈçºÎ²úÉúµÄ£¬ÓÖÈçºÎÇå³ý? 6.2 8XX51ÖжÏÔ´µÄÖжÏÇëÇó±»ÏìӦʱ£¬¸÷ÖжÏÈë¿ÚµØÖ·ÊǶàÉÙ?ÔÚʲôÎïÀí´æ´¢¿Õ¼ä? 6.3 MCS-51ϵÁе¥Æ¬»úµÄÖжÏϵͳÓм¸¸öÓÅÏȼ¶?ÈçºÎÉ趨? 6.4 ¼òÊö8XX51Öжϴ¦ÀíµÄ¹ý³Ì£¬»­³öÁ÷³Ìͼ¡£ 6.1¡«6.4 ²Î¼û 6.1½Ú¡«6.2½Ú

6.5 ÓÃ8XX51µÄP1¿Ú½Ó8¸öLED·¢¹â¶þ¼«¹Ü£¬ÓÉINT0½ÓÒ»Ïû¶¶¿ª¹Ø£¬¿ªÊ¼P1.0µÄLEDÁÁ£¬ÒÔºóÿÖжÏÒ»´Î£¬ÏÂÒ»¸öLEDÁÁ£¬Ë³ÐòÏÂÒÆ£¬ÇÒÿ´ÎÖ»Ò»¸öLEDÁÁ£¬Öܶø¸´Ê¼¡£»­³öµç·ͼ£¬²¢±àÖÆ³ÌÐò¡£

6.5 µç·Éè¼Æ¼ûϰÌâ6.5ͼ »ã±àÓïÑÔ³ÌÐò ORG 0000H AJMP MAlN 0RG 0003H

RL A £»ÖжϷþÎñ MOV P1£®A RETI

MAIN£ºMOV A£¬#0FEH

MOV P1£¬A £»µÚÒ»µÆÁÁ SETB EA SETB EX0 SETB IT0 SJMP$ CÓïÑÔ³ÌÐò

#include int0() interrpt 0{

22

P1=P1<<1|0x01£» }

main(){ P1=0xfe£» EA=1£»EX0=1£» IT0=1£»

do{}whik(1)£»}

»ã±àÓïÑÔÖÐÖ»ÓÐÒ»¸öÖжÏÔ´£¬²»´æÔÚÕ¼ÓñðµÄÖжÏÔ´ÏòÁ¿µØÖ·ÎÊÌ⣬³ÌÐò˳ÐòÅÅÏ£¬Ó¦×¢Òâ³ÌÐòµÄÖ´Ðйý³Ì¡£CÓïÑÔÎÞÑ­»·ÒÆÎ»Ö¸Áî£¬ÒÆÎ»ºó£¬ºóÃæ²¹Á㣬Òò´ËºÍ01Ïà»ò¡£

6.6 ÔÚÌâ6.5µç·µÄ»ù´¡ÉÏ£¬ÒªÇó8¸öLEDͬʱÁÁ»òͬʱÃð£¬Ã¿ÖжÏÒ»´Î£¬±ä·´Ò»´Î£¬±à³ö³ÌÐò¡£ 6.6 ÂÔ

6.7 ÒªÇóͬÌâ6.6£¬ÒªÇóÁÁ¡¢Ãð±ä»»5´Î(Ò»ÁÁ£¬Ò»ÃðΪһ´Î)£¬±à³ö³ÌÐò¡£ 6.7 »ã±àÓïÑÔ³ÌÐò ORG O000H AJMP MAIN

ORG 0003H £»ÖжϷþÎñ XRL P1£¬#OFFH DJNZ R0,NE

CLR EA NE£ºRETI

ORG 0030H MAIN: SETB EA SETB EXO SETB ITO

MOV P1£¬#OFFH MOV R0£¬#OAH

SJMP$ £»µÈ´ýÖÐ¶Ï CÓïÑÔ³ÌÐò

#include char i£º

ic()itrrupt 0{ i++£º

if(i<=10)P1=¡«P1£º

23

eIse EA=O£º }

main()

{EA=1£»EX0=1£»IT0=1£» P1=0xff£º for(£»£»)£»£¯*µÈ´ýÖжÏ*£¯

}

ÒòÒ»ÁÁÒ»ÃðΪһ´Î£¬ËùÒÔ¹²10´Î¡£

6.8 ÀûÓÃ8XX51µÄ²¢ÐпڽÓ2¸öÊýÂë¹Ü£¬ÏÔʾINT1ÖжϴÎÊý(´ÎÊý²»³¬¹ýFFH)¡£ 6.8Á½¸öÊýÂë¹ÜÑô¼«¾­Çý¶¯Æ÷½ÓP1¿Ú£¬Òõ¼«·Ö±ð½ÓP3.0¡¢P3.1¡£ #include void intr(void) void delay(void)£»

unsigned char a£¬b£¬i=0£»

unsigned char code

tab[16]={0x3f£¬0x06£¬0x5b£¬Ox4f£¬0x66£¬0x7d£¬0x07£¬ 0x7f£¬0x6f£¬0x77£¬0x7c£¬0x39£¬0x5e£¬0x79£¬0x71£¬0x73}£º

sbit p3_O=P3^0£» sbit p3_1=P3^1£» main(){ a=tab[O]; b=tab[0]£» p3_0=O£» p3_1=0£» EA=1£» EX0=1£» IT0=1; for(£»£»){

p3_O=1£» p3_1=0£» P1=b£º delay()£»

p3_0=O£» p3_1=1£» P1=a£º delay()£» }}

void intr()interrupt 0{ unsigned charj£¬k£» EX0=O£» i++£»

j=i&0x0f£» k=i&0xf0£» k>>=4; a=tab[k]£»

24

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 sbit p10=P1^O£» main(){

25

TMOD=Ox06£»THO=-10£»TLO=-10£» TRO=1£º{ while(1)

dO{}while(TF0==0) TF0=0£»p10=¡«p10£» }}

ÖжϷ½Ê½£º#include sbit p1_O=P1^O£» tov()interrrupt 1 {p1_O=¡«p1_O£» } maln(){

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 sbit p11=P1^l£» sbit p10=P1^0£» main(){ char i;

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 sbit p3_2=P3^2£» main(){

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

8.1 ʲôÊÇ´®ÐÐÒ첽ͨÐÅ?ËüÓÐÄÄÐ©ÌØµã?MCS-51µ¥Æ¬»úµÄ´®ÐÐͨÐÅÓÐÄļ¸ÖÖÖ¡¸ñʽ? 8.1¼û8£®1½Ú

8.2 ijÒ첽ͨÐŽӿڰ´·½Ê½3´«ËÍ£¬ÒÑÖªÆäÿ·ÖÖÓ´«ËÍ3600¸ö×Ö·û£¬¼ÆËãÆä´«ËͲ¨ÌØÂÊ¡£

8.2 ·½Ê½3Ϊÿ֡11λÊý¾Ý¸ñʽ£®¼´3600*11/60=660(²¨ÌØ)

8.3 Ϊʲô¶¨Ê±Æ÷T1ÓÃ×ö´®Ðпڲ¨ÌØÂÊ·¢ÉúÆ÷ʱ£¬³£²ÉÓù¤×÷·½Ê½2? ÈôÒÑ֪ϵͳʱÖÓÆµÂÊ¡¢Í¨ÐÅÑ¡ÓõIJ¨ÌØÂÊ£¬ÈçºÎ¼ÆËãÆä³õÖµ?

8.3 T1µÄ·½Ê½2ģʽ²»ÐèÒªÖØ×°Ê±¼ä³£Êý(¼ÆÊý³õÖµ)£¬²»Ó°ÏìcPUÖ´ÐÐͨÐųÌÐò¡£Éè²¨ÌØÂÊΪfboud¼ÆÊý³õֵΪX£¬ÒÀ¾Ý¹«Ê½

fbaud=(2smod/32)*(fosc/12(256-X)) ÇóµÃX=256-((2smod/32)*(fosc/fbaud))¡£

8.4 ÒÑÖª¶¨Ê±Æ÷T1ÉèÖÃΪ·½Ê½2£¬ÓÃ×ö²¨ÌØÂÊ·¢ÉúÆ÷£¬ÏµÍ³Ê±ÖÓÆµÂÊΪ6MHz£¬Çó¿ÉÄܲúÉúµÄ×î¸ßºÍ×îµÍµÄ²¨ÌØÂÊÊǶàÉÙ?

8.4×îµÍ²¨ÌØÂÊΪ£¬T1¶¨Ê±×î´óֵʱ£¬´Ëʱ¼ÆÊý³õֵΪ256£¬²¢ÇÒSMOD=0£¬µÃ

fbaud=(1/32)*(fosc/(12(256-0))=61

×î¸ß²¨ÌØÂÊΪT1¶¨Ê±×îСֵÇÒSOMD=1ʱ£¬µÃ fbaud=(2/32)*fosc/(12(256-1))=31250

8.5 Éè¼×¡¢ÒÒÁ½»ú²ÉÓ÷½Ê½1ͨÐÅ£¬²¨ÌØÂÊΪ4800£¬¼×»ú·¢ËÍO£¬1£¬2£¬?£¬1FH£¬ÒÒ»ú½ÓÊÕ´æ·ÅÔÚÄÚ²¿ RAMÒÔ20HΪÊ×Ö·µÄµ¥Ôª£¬ÊÔÓòéѯ·½Ê½±àд¼×¡¢ÒÒÁ½»úµÄ³ÌÐò(Á½»úµÄfosc=6MHz)¡£

8.5È¡SMOD=1¼ÆËãTH1=TL1=B2£»

;***********************·¢ËͲéѯ·½Ê½******

ORG 0000H

MOV TMOD£¬#20H MOV THl£¬#OB2H MOV TL1£¬#0B2H SETB TR1

MOV SCON£¬#40H MOV A£¬#O

NEXT£ºMOV SBUF£¬A TES£ºJBC T1£¬ADD1 SJMP TES ADD1£ºINC A

CJNE A£¬#20H£¬NEXT SJMP $ END

£»************************·¢ËÍÖжϷ½Ê½********************************* ORG 0000H

AJMP MAIN£»×ªÖ÷³ÌÐò ORG 0023H £»ÖжϷþÎñ CLR TI INC A

MOV SBUF£¬A

CJNE A£¬#20H£¬RE

29

CLR ES RE£ºRETI

MAIN£ºMOV TMOD£¬#20H£»Ö÷³ÌÐò MOV TH1£¬#0B2H MOV TL1£¬#082H SETB TR1

MOV SCON£¬#40H SETB EA SETB ES MOV A£¬#O MOV SBUF£¬A

SJMP$ £»µÈ´ýÖжÏ

£»*******************************½ÓÊÕ²éѯ·½Ê½***************************

ORG 0000H MOV TMOD,#20H MOV TH1,#0B2H MOV TL1,#0B2H SETB TR1

MOV SCON£¬#50H MOV RO¡£#20H TEC£ºJBC R1£¬REC

SJMP TES REC£ºMOV @R0£¬SBUF INC R0

CJNE R0£¬#40H£¬TEC

SJMP $ END

£»******************************½ÓÊÕÖжϽ﷽ʽ**************************** ORG O000H

AJMP MAIN£»×ªÖ÷³ÌÐò ORG 0023H£»ÖжϷþÎñ CLR RI

MOV @RO£¬SBUF INC R0

CJNF R0£¬#40£¬RE CLR ES RE£ºRETI

MAlN£ºMOV TMOD£¬#20H£»Ö÷³ÌÐò MOV TH1£¬#0B2H MOV TL1£¬#0B2H SETB TR1

MOV SCON£¬50H SETB EA SETB ES

SJMP$ £»µÈ´ýÖÐ¶Ï END

30

8.6 Ò»¸ö8XX511µ¥Æ¬»úµÄË«»úͨÐÅϵͳ²¨ÌØÂÊΪ9600, fosc=12MHz£¬ÓÃÖжϷ½Ê½±àд³ÌÐò£¬½«¼×»úƬÍâRAM 3400H¡«34AOHµÄÊý¾Ý¿éͨ¹ý´®Ðпڴ«Ë͵½ÒÒ»úµÄƬÍâRAM 4400H¡«44AOHµ¥ÔªÖÐÈ¥¡£ 8.6

/********************************·¢ËͳÌÐò***************************/ #include

#define uchar unsigned char VOId int4(void) uchar xdata*P£» {P=Ox3400 TMOD=0x20£»

TL1=0xfd£»TH1=0xfd£» SCON=0x40£º

TR1=1£»EA=1£»ES=1£» SBUF=*P£º

whaile(1)£»/*µÈ´ýÖжÏ*/ }

void int4(void)interrupt 4 {TI=O£º P++£º SBUF=*P£» if(P==0x34a0)EA=0£» }

/***********************½ÓÊÕ³ÌÐò***************************/ #include

#define ucher Unsigeried char void int4(void) char xdata*P£º void mian() {P=0x4400£º TMOD=0x20£» TL1=Oxfd£º TH1=0xfd£» SCON=0x50£»

TR1=1;EA=1£»ES=1£» for(£»£»)£»/*µÈ´ýÖжÏ*/ }

void int4(viod)interrupt 4 {RI=0; *P=SBUF; P++;

if(P==0x44a1)EA=O£» }

8.7 Êý¾Ý´«ËÍÒªÇóͬÌâ8.6£¬ÒªÇóÿ֡´«ËÍÒ»¸öÆæÐ£Ñé룬±à³ö²éѯ·½Ê½µÄͨÐųÌÐò¡£ 8.7 ÀûÓô®ÐÐͨÐÅ·½Ê½2(²¨ÌØÂʹ̶¨)£¬²ÉÓÃÆæÐ£Ñ鷽ʽ£¬½«Ð£Ñéλ·ÅÔÚTB8ÖУ®ÒÒ»ú¼ìÑéУÑé룬ÈçÕýÈ·£¬Ôò´æÓÚÆ¬Íâ4400H¿ªÊ¼µÄRAMÖУ¬Èç´íÎó£¬Í¨Öª¶Ô·½ÖØ·¢£¬R6´æ·ÅÊý¾Ý

31

¿é³¤¶È¡£»ã±àÓïÑÔ³ÌÐòÈçÏ£º ·¢ËÍ·½

ORG 0000H

MOV DPTR£¬#3400H MOV R6£¬#0A1H

MOV SCON£¬#90H MOV SBUF£¬R6 L2£º JBC TI£¬L3

AJMP L2

L3£º MOV A£¬@DPTR JB P£¬L4

SETB TB8 L4£º MOV SBUF£¬A L5£º JBC TI£¬L6

AJMP L5 L6£º JBC RI£¬L7 AJMP L6

L7£º MOV A£¬SBUF CJNE A£¬#0FFH£¬L8 AJMP L3 L8£º INC DPL DJNZ R6£¬L4 SJMP $ ½ÓÊÕ·½

ORG 0000H

MOV DPTR£¬#4400H MOV SCON£¬#90H L1£º JBC RI,L2 AJMP L1

L2£º MOV A£¬SBUF MOV R6£¬A

L3£º JBC RI£¬L4 AJMP L3

L4£º MOV A£¬SBUF JB P£¬L5 JNB RB8£¬L8 sIMP $

L5£º JB JB8£¬L8 L6£ºMOVX @DPTR£¬A INC DPL INC DPH DJNZ R6£¬L3

SJMP $ L8£º MOV A£¬#0FFH MOV SBUF£¬A L9£º JBC TI£¬L3

32

AJMP L9 SJMP $ END

8.8 ÀûÓÃ89C51´®ÐпÚÉè¼Æ4λ¾²Ì¬ÊýÂë¹ÜÏÔʾÆ÷£¬»­³öµç·²¢±àд³ÌÐò£¬ÒªÇó4λÏÔʾÆ÷ÉÏÿ¸ô1s½»ÌæµØÏÔʾ\ºÍ¡°4567¡±¡£ 8.8 µç·ͼ¼ûͼ8-12

/*****************************²éѯ·½Ê½****************************/

#include

#define uchar unsigned char sbit P3_3=P3^3£»

char code tab[]={0xc0£¬0xf9£¬0xa4£¬0xb0£¬0x99£¬

0x92£¬0x82£¬Oxf8£¬0xf8£¬0x80£¬0xg0}£» void timer(uchar); main(){ucha i£¬a=3£» SCON=0£» for(£»£») {P3_3=1;

for(i=0£»i<4£»i++) {SBUF=tab[a]£» a--;

while(!TI)£» TI=O;

if(a==255)a=7; P3_3=0£» timet(100)£» }}

void timer(uchre t) {uehar i£»

for(i=O£»i

33

TH0=-10000/256£» TL0=-10000%6£» } TR0=1; while(!TF0)£» TF0=0£» }}

/*****************************ÖжϷ½Ê½******************************/ #include

#define uehar unsigned char sbit P3_3=P3^3£» uchar a=3;

char code tab[]={0xc0£»0xf9£»0xa4£¬

0xb0£¬0x99£¬0x92£¬0x82£¬0xf8£¬0x80£¬0x90}£» void timet(uchar t)£» void int4(void)£»

main()

{uchar i£¬j£»

SCON=0£»EA=1£»ES=1£» for(£»£») {P3_3=1£»

for(i=O£¬i<4£¬i++) {SBUF=tab[a]£» j=a£»

while(j==a)£» }

P3_3=0; timer(100); if(a==255)a=7£»

}

void int4(void)interrupt 4 {TI=0; a--; }

void timer(uchar t)

{uchar i;

for(i=0£»i

TMOD=0x01£»

TH0=-10000/256; TL0=-10000%6£º TR0=1;

while(!TF0)£»

34

TF0=0; }}

µÚ9Õ ϵͳÀ©Õ¹

9.1 MCS-51À©Õ¹ÏµÍ³ÖУ¬³ÌÐò´æ´¢Æ÷ºÍÊý¾Ý´æ´¢Æ÷¹²ÓÃ16λµØÖ·ÏߺÍ8λÊý¾ÝÏߣ¬ÎªÊ²Ã´Á½¸ö´æ´¢¿Õ¼ä²»»á·¢Éú³åÍ»? 9.1 ²ÎÔÄ9£®1½Ú

9.2 ÔÚ8XX51µ¥Æ¬»úÉÏÀ©Õ¹Ò»Æ¬6116(2KBX8λRAM)¡£

9.2 6116Ϊ2KBX8λRAM£¬¹²11¸ùµØÖ·ÏßA0¡«A10£¬½ÓÏß¼ûϰÌâ9£®2ͼ¡£

9.3 ÔÚ8XX51µ¥Æ¬»úÉÏÀ©Õ¹Ò»Æ¬EPROM 2732ºÍһƬRAM 6264¡£ 9.3 2732Ϊ4KBX8λEPROM£¬6264Ϊ8KBX 8λRAM£¬Òò¸÷Ö»ÓÐһƬ£¬ËùÒÔ¸÷Ƭѡ-CE½ÓµØ¡¤µç·¼ûϰÌâ9£®3ͼ¡£

9.4 ÔÚ8XX51µ¥Æ¬»úÉÏÀ©Õ¹Ò»Æ¬RAM 6116ºÍһƬEPROM 2716£¬ÒªÇó6116¼ÈÄÜ×÷ΪÊý¾Ý´æ´¢Æ÷£¬ÓÖÄÜ×÷Ϊ³ÌÐò´æ´¢Æ÷ʹÓá£

9.4 6116Ϊ2KBX8λRAM£¬2716Ϊ2KBX8λEPROM£¬µØÖ·Ïß¾ùΪ1l¸ù£¬µØÖ·Ïß½ÓÏ߲μûϰÌâ9¡¤3ͼ¡£

9.5 ÔÚ8XX51µ¥Æ¬»úÉÏÀ©Õ¹4Ƭ2764£¬µØÖ·´Ó0000¡«7FFFH£¬²ÉÓÃ74LSl38×÷µØÖ·ÒëÂ룬д³öÿƬµÄµØÖ·¿Õ¼ä·¶Î§¡£ 9.5 Éè¼Æµç·¼ûϰÌâ9£®5ͼ¡£

4Ƭ2764µÄ-CE·Ö±ð½Ó138ÒëÂëÆ÷Ϊy0£¬yl£¬y2£®y3¶Ë£¬¸÷ƬµØÖ·Îª£º

35

2764(4) 0000H¡«lFFFH 2764(3) 2000H¡«3FFFH 2764(2) 4000H¡«5FFFH 2764(1) 6000H¡«7FFFH

9.6 ÔÚ8XX51µ¥Æ¬»úÉϽÓһƬ74LS244ºÍһƬ74LS273£¬Ê¹74LS244µÄµØÖ·ÎªBFFFH£¬74LS273µÄµØÖ·ÎªDFFFH£¬²¢±à³Ì´Ó74LS244ÊäÈëÏò74LS273Êä³ö¡£

9.6 Éè¼Æµç·¼ûϰÌâ9.6ͼ¡£Í¼ÖвÉÓõÄÊÇ80C31£¬ÓÉÓÚ80C31ÄÚ²¿ÎÞROM£¬Æ¬Íâ±ØÐëÀ©Õ¹Ò»Æ¬³ÌÐò´æ´¢Æ÷¡£Í¼ÖÐÀ©Õ¹2764 8K¡Á4 EPROM¡£¸ù¾ÝµØÖ·ÐèÇ󣬷ֱðÒÔP2.5ºÍP2.6×÷Ϊ273ºÍ244µÄƬѡ£¬³ÌÐò²Î¼ûÀý9-2¡£

9.7 ÔÚÌâ9.6µÄ»ù´¡ÉÏ£¬74LS244½ÓÒ»°´¼ü¿ª¹Ø£¬74LS273½ÓÒ»¸öÊýÂë¹ÜLED£¬±à³ÌÐò£¬Ê¹ÊýÂë¹ÜÏÔʾ°´¼ü´ÎÊý¡£

9.7 ³ÌÐò²ÎÔÄϰÌâ5£®4£¬½«MOV A£¬P1¸ÄΪMOVX A£¬@DPTR£¬DPTRÖ¸Ïò244µØÖ·BFFFH£»½«MOV P1£¬A¸ÄΪMOVX @DPTR,A£¬DPTRÖ¸Ïò273µØÖ·DFFFH¡£

9.8 ÉèÖÃ8255µØÖ·ÎªCFFCH¡«CFFFH£¬Ê¹Óò¿·ÖÒëÂë·¨Éè¼Æµç·£¬²¢ÉèÖÃA¿Ú·½Ê½1Êä³ö£¬B¿Ú·½Ê½ OÊäÈ룬C¿Ú²»Óõijõʼ»¯³ÌÐò¡£ 9.8 Éè¼Æµç·¼ûϰÌâ9£®8ͼ¡£ MOV DPTR,#OCFFFH MOV A£¬#0A2H MOVX @DPTR£¬A

36

9.9 ÔÚ8XXSlµ¥Æ¬»úÉÏÀ©Õ¹Ò»Æ¬8255£¬Ê¹A¿Ú¿É½Ó1¸öÊýÂë¹Ü£¬PC0½ÓÒõ¼«£¬Ê¹ÓÃC¿ÚµÄÖÃλ£¯¸´Î»¿ØÖÆ×Ö£¬ÊýÂë¹ÜÏÔʾµÄ¡°P¡±×ÖÉÁ˸¡£ 9.9 °´Ï°Ìâ9£®9ͼµÄÉè¼Æ£¬8255A¿Ú¡¢B¿Ú¡¢C¿Ú¡¢¿ØÖƿڵØÖ··Ö±ðΪ7CFFH¡¢7DFFH¡¢7EFFH¡¢7FFFH£®A¿Ú

·½Ê½0Êä³ö£¬C¿ÚÖÃλ£¯¸´Î»¿ØÖÆ¡£ »ã±àÓïÑÔ³ÌÐò£º MOV DPTR£¬#7FFFH

MOV A£¬#80H £»Ð´¿ØÖÆ×Ö MOVX @DPTR£¬A

MOV DPTR£¬#7CFFH £»Ö¸ÏòA¿Ú MOV A£¬#0F3H £»Êä³ö¡°P¡±¶ÎÂë MOVX @DPTR£¬A

MOV DPTR£¬#7FFFH £»Ö¸Ïò¿ØÖÆ¿Ú

MOV A£¬#0H £»PC0ÖÃ0¿ØÖÆ×Ö NEXT£ºMOVX @DPTR£¬A £»Ð´Èë¿ØÖÆ¿Ú ACALL DAY £»ÑÓʱ

XRL A£¬#OlH £»Ê¹PC0λ±ä·´ AJMP NEXT CÓïÑÔ³ÌÐò

#inclde

#define COM8255 XBYTE[0x7fff] #define A8255 xBYTE[0x7fff] main(){

unsigned int j£» COM8255=0x80£» A8255=0xf3£º while(1){ COM8255=0x0;

for(j=O£»j<=10000£»j++)£» COM8255=0x01£º

for(j=0£»j<=10000£»j++)£» }}

37

9.10 ÔÚ8XX51µ¥Æ¬»úÉÏÀ©Õ¹Ò»Æ¬8255£¬Ê¹ÓÃA¿ÚºÍC¿ÚÉè¼Æ4λÊýÂë¹Ü¶¯Ì¬ÏÔʾµç·£¬ÏÔʾ\×Ö·û(GΪСд)¡£

9.10 8255A¿Ú¡¢B¿Ú¡¢C¿Ú¡¢¿ØÖƿڵØÖ··Ö±ðΪ7CFFH¡¢7DFFH¡¢7EFFH¡¢7FFFH£¬A¿Ú·½Ê½OÊä³ö£¬C¿ÚÊä³ö£¬¿ØÖÆ×Ö80H¡£Éè¼Æ¼ûϰÌâ9£®10ͼ¡£

ORG 0000H

MOV DPTR£¬#7FFFH £»Ö¸Ïò¿ØÖÆ¿Ú

MOV A£¬#80H £»A¿Ú¡¢B¿Ú¾ù²ÉÓûù±¾Êä³ö·½Ê½ MOVX @DPTR£¬A £»Ð´¿ØÖÆ×Ö MOV DPTR£¬#7CFFH MOV A£¬#0

MOVX @DPTR£¬A £»ÇåÏÔʾ AGAIN£º MOV R0£¬#0 £»R0´æ×ÖÐÎ±íÆ«ÒÆÁ¿ MOV R1£¬#01 £»R1ÖÃÊýÂë±íλѡ´úÂë NEXT£º MOV DPTR£¬#7EFFH £»Ö¸ÏòC¿Ú MOV A£¬R1

MOVX @DPTR£¬A £»´ÓC¿ÚÊä³öλѡÂë MOV A£¬R0

MOV DPTR£¬#TAB £»ÖÃ×ÖÐαíÍ·µØÖ·

38

MOVC A£¬@A+DPTR £»²é×ÖÐÎÂë±í MOV DPTR£¬#7CFFH £»Ö¸ÏòA¿Ú

MOVX @DPTR£¬A £»´ÓA¿ÚÊä³ö×ÖÐÎÂë ACALL DAY £»ÑÓʱ

INC R0 £»Ö¸ÏòÏÂһλ×ÖÐÎ MOV A£¬R1

RL A £»Ö¸ÏòÏÂһλ MOV R1£¬A

CJNE Rl£¬#10H£¬NEXT £»4¸öÊýÂë¹ÜÏÔʾÍê SJMP AGAIN

DAY£ºMOV R6£¬#50 £»ÑÓʱ×Ó³ÌÐò DL2£ºMOV R7£¬#7DH DL1£ºNOP NOP

DJNZ R7£¬DLl DJNZ R6£¬DL2 RET

TAB1£ºDB 6FH£¬3FH£¬3FH£¬5EH£»¡°good¡±(good)µÄ×ÖÐÎÂë 9.1l ÔÚ8XX51µ¥Æ¬»úÉÏÀ©Õ¹Ò»Æ¬EPROM 27128¡¢Ò»Æ¬RAM 6264ºÍһƬ8255£¬²ÉÓÃÏßÑ¡·½Ê½£¬Ð´³ö¸÷×ԵĵØÖ··¶Î§¡£

9.11 Ìáʾ£ºEPROM 27128 16KB¡Á8£¬µØÖ·ÏßΪ14¸ù£¬6264Ϊ8KB¡Á8룬µØÖ·ÏßΪ13¸ù£¬µç·²ÎÔÄͼ9-22¡£

9.12 Áгöͼ9-26ÖеÄI£¯O¿Ú¡¢RAM¡¢¼ÆÊýÆ÷¡¢¿ØÖƿڵØÖ·¡£ 9.12 ¸ù¾Ýµç·Á¬Ïßͼ£¬¼ûϰÌâ9£®12ͼ¡£

I/O¿Ú£ºA¿Ú£ºFDF8H£¬B¿Ú£ºFDF9H£¬C¿Ú£ºFDFAH ÃüÁ״̬¿Ú£ºFDFBH

¶¨Ê±Æ÷TIMEL£ºFDFCH TIMEH£ºFDFDH ´æ´¢Æ÷RAM£ºFC00H¡«FCFFH

39

µÚ10Õ µ¥Æ¬»ú½Ó¿Ú¼¼Êõ

²¹³äÌâ1

Éè4λADC£»µ±Êý×ÖÁ¿Îª1000Bʱ£¬Vo=5vʱÂúµµ10VµÄ¡£Çó±»²âµçѹVi=8.2VµÄÖð´Î±Æ½ü²¨ÐÎͼ¡£ ²¹³äÌâ1£¨´ð°¸£©

µçѹ 8.75V Vi=8.2V 10V 7.5V 5V 2.5V 0V 8.125V Vo D3 D2 D1 D0 ʱ¼ä 10.1 Éè¼Æ8XX51ºÍDAC0832½Ó¿Ú£¬ÒªÇóµØÖ·ÎªF7FFH£¬ÂúÁ¿³ÌµçѹΪ5V£¬²ÉÓõ¥»º³å¹¤×÷·½Ê½¡£»­³öµç·ͼ£¬±à³ÌʹÊä³öÈçÏÂÒªÇóµÄÄ£Äâµçѹ£º

(1) ·ù¶ÈΪ3V£¬ÖÜÆÚ²»ÏÞµÄÈý½Ç²¨µçѹ¡£ (2) ·ù¶ÈΪ4V£¬ÖÜÆÚ2msµÄ·½²¨¡£

(3) ÖÜÆÚΪ5msµÄ½×Ìݲ¨£¬½×Ìݵĵçѹ·ù¶È·Ö±ðΪ0V£¬1V£¬2V£¬3V£¬4V£¬5V£¬Ã¿Ò»½×ÌÝΪ1ms¡£

10.1 µç·²ÎÕÕͼ10-3£¬²»Í¬µÄÊǽ«P2.7¸ÄΪP2.3ÏȼÆËã¸÷Ä£ÄâÁ¿¶ÔÓ¦µÄÊý×ÖÁ¿¡£3V¶ÔÓ¦µÄÊý×ÖÁ¿Îª

5V/3VÒ»255/X£¬ X=153=99H

ͬÑù¿ÉËãµÃ1V£¬2V£¬4V¶ÔÓ¦µÄÊý×ÖÁ¿·Ö±ðΪ33H£¬66H£¬CCH ¢ÙÈý½Ç²¨

MOV DPTR£¬#OF7FFH NEXTl£ºMOV A£¬#O

NEXT£ºMOVX @DPTR£¬A NOP NOP INC A

CJNE A£¬#9AH£¬NEXT NEXTA£ºDEC A MOVX @DPTR£¬A NOP NOP

CJNE A£¬#0£¬NEXTA SJMP NEXT1 END

40

#inclde #include

#define da0832 XBYTE[0xf7ff] main(){

unsigned char i£¬j£» while{

for(i=O£»i<=153£ºi++) {da0832=i£º

for(j=0£»j<=100£»j++)£» }

for(i=153;i>=0£ºi--) {da0832=i;

for(j=O£»j<=100£»j++)£» }}}

¢Ú·½²¨4V¶ÔÓ¦µÄÊý×ÖÁ¿ÎªCCH MOV DPTR£¬#0F7FFH MOV A£¬#0

NEXT£ºMOVX @DPTR£¬A ACALL D2MS XRL A£¬#0CCH SJMP NEXT

#include #include

#define da0832 XBYTE[0xf7ff] main(){

unsingde a=O£¬j£» while(1){ da0832=a;

for(j=0£»j<=255£»j++)£» a=a^Oxcc£º - }} ¢Û½×Ìݲ¨

MOV DPTR£¬#OF7FFH NEC£ºMOV A£¬#O

NEXT£ºMOVX @DPTR£¬A ACALL D1MS ADD A£¬#33H

CJNE A£¬#OFFH£¬NEXTA NEXTA£ºMOVX @DPTR£¬A ACALL D5MS SJMP NEC

main(){ unsigued char i£» unsigued int j£» while(1){

41

for(i=0£»i<=255£ºi+=51) {da0832=i£»

for(j=O£»j<=100£»j++£»)£» }}}

10.2 ÌâĿҪÇóͬÌâ10.1£¬²ÉÓÃË«»º³å·½Ê½¡£

lO.2 µç·²Î¿¼Í¼10-4£¬Ôö¼ÓÒ»¸öµØÖ·£®Ê¹ÓÃÁ½ÌõÊä³öÖ¸Áî²ÅÄÜÊä³öÒ»¸öÊý¾Ý£¬ÆäËûͬÉÏ¡£

10.3 Éè¼Æ89S51ºÍDAC0832µÄ½Ó¿Ú£¬²ÉÓõ¥»º³å·½Ê½£¬½«ÄÚ²¿RAM 20H¡«2FHµ¥ÔªµÄÊý¾Ýת»»³ÉÄ£Äâµçѹ£¬Ã¿¸ô1msÊä³öÒ»¸öÊý¾Ý¡£ 10.3 µç·²ÎÕÕͼ10-3£¬µØÖ·Îª7FFFH¡£ ORG 0000H

MOV DPTR£¬#7FFFH MOV R0£¬#20H

MOV A£¬@R0

NEXT£ºMOVX @DPTR£¬A ACALL D11MS INC R0

CJNE R0£¬#30H,NEXT SJMP$ END

#include #include

#define da0809 XBYTE[Ox7fff] main(){

unsigned char *p£¬i£¬j£» p=0x20£»

for(i=0£»i<=16£»i++) {da0832= *p£»

p++£»

for(i=0£¬j<=255£»j++)£» }}

10.4 ÄÚ²¿RAMµÄ30H¡«3FHÖдæ·Å×Å8¸ö12λµÄ¶þ½øÖÆÊý£¬ÆäÖиß4λ·ÅÔڸߵØÖ·µ¥Ôª£¬µÍ8λ·ÅÔڵ͵ØÖ·µ¥Ôª£¬ÀûÓÃDACl210ת»»³ÉÄ£ÄâµçѹÊä³ö£¬ÒªÇóÓÃP2.0£¬P2.1£¬P2.2½øÐÐÏßÑ¡£¬±à³ö³ÌÐò£¬»­³öÓ²¼þµç·¡£

10.4 µç·²ÎÔÄͼ10-6£¬²»Í¬µÄÊǽ«P2.5¡«P2.7¸ÄΪP2.0¡«P2.2¸÷µØÖ··Ö±ðΪFEFFH¡¢FDFFH¡¢FBFFH¡£³ÌÐò²ÎÕÕ10£®1½Ú£¬×¢ÒâÐÞ¸ÄRAMµØÖ·£¬Ñ­»·Ö´ÐиóÌÐò¡£

10.5 Éè¼Æ89S51ºÍADC0809µÄ½Ó¿Ú£¬²É¼¯2ͨµÀ10¸öÊý¾Ý£¬´æÈëÄÚ²¿RAMµÄ50H¡«59Hµ¥Ôª£¬»­³öµç·ͼ£¬±à³ö£º(1)ÑÓʱ·½Ê½£»(2)²éѯ·½Ê½£»(3)ÖжϷ½Ê½µÄ³ÌÐò¡£

1O.5µç·²ÎÔÄͼ10-9£¬²»Í¬µÄÊÇ£º¢ÙÑÓʱ·½Ê½£ºEOCÐü¿Õ£»¢Ú²éѯ·½Ê½£ºEOC¾­·ÇÃŽӵ¥Æ¬»úP1.0(¼ûϰÌâ10.6ͼ)£»¢ÛÖжϷ½Ê½Í¬Ô­Í¼¡£

ÏÂÃæ½ö±à²éѯ³ÌÐò¡£IN2µÄµØÖ·Îª7FFAH£¬ÓÉÓÚEOC¾­·ÇÃŽӵ¥Æ¬»úP1.0¶Ë¿ÚÏߣ¬²éѯµ½P1.0ΪÁã,¼´×ª»»½áÊø¡£

ORG 0000H MOV R7£¬#OAH MOV R0£¬#50H

42

MOV DPTR£¬#7FFAH

NEXT£ºMOVX @DPTR£¬A £»Æô¶¯×ª»» JB P1.0£¬$ £»²éѯµÈ´ý MOVX A£®@DPTR £»äÂÈËÊý¾Ý MOV @R0£¬A INC R0 DJNZ NEXT SJMP $

#includc #include

#define uchar unslgnde char

#define IN2 xBYTE[ox7ffa] /*IN2µØÖ·*/ sbit adbusy=P1^0)£» /*EOC*/ void main(void)

{uchar idata ad[10]£» uchar i;

for(i=O;i<=10£»i++)£» /*²É¼¯10¸öÊý*/ {IN2=0£» /*Æô¶¯×ª»»*/

while(adbusy==1)£» /*D3CµÈÓÚOÑ­»·*/ ad[i]=IN2 /*´æ×ª»»½á¹û*/}}

10.6 Éè¼Æ89C51ºÍADC0809µÄ½Ó¿Ú£¬Ê¹ÓÃÖжϷ½Ê½Ë³Ðò²É¼¯8·ģÄâÁ¿¡£´æÈëµØÖ·Îª20H¡«27HµÄÄÚ²¿RAMÖС£

10.6 ADC0809²É¼¯8·ģÄâÐźţ¬Ë³Ðò²É¼¯Ò»´Î£¬½«²É¼¯½á¹û´æ·ÅÓÚÊý×éadÖС£ADC0809Ä£ÄâͨµÀ0¡«7µÄµØÖ·Îª7FF8H¡«7FFFH£¬ÒÔP1.0²éѯADC0809µÄת»»½áÊø¶ËEOC£¬µç·ÈçϰÌâ10-6ͼËùʾµÄ²éѯ·½Ê½¡£ ³ÌÐòÈçÏ£º

#lnclude #include

#define uchar unsigned char

#define IN0 XBYTE[0x7ff8] /*IN0µØÖ·*/ sbit adbusy=P1^0£» /*EOC*/

void ad0809(uchar idata*x) /*A£¯D*/ {uchar ii;

uchar xdata*ad_adr£» ad_adr=&IN0£»

for(i=0£»i<8£»i++) /*´¦Àí8¸öͨµÀ*/

{ *ad_adr=0£» /*Æô¶¯×ª»»*/

while(adbusy==1)£» £¯*²éEOC*£¯ x[i]=*ad_adr£» £¯*´æ×ª»»½á¹û*£¯ ad_adr++£» £¯*Ö¸ÏòÏÂһͨµÀ*£¯ }}

void main(void)

{uchar idata ad[10]£»

ad0809(ad); £¯*²ÉÑùAD0809ͨµÀµÄÖµ*£¯}

43

10.7 Éè¼Æ8XX51ºÍ8279µÄ½Ó¿Ú£¬Ê¹Íâ½Ó8¸öÊýÂë¹ÜºÍ2¡Á8¾ØÕó¼üÅÌ¡£ (1) »­³öÓ²¼þµç·£»

(2) ×î×ó±ßÊýÂë¹ÜÏÔʾ¡°¡ª¡±£»

(3) ÿһ´Î°´¼ü£¬¼üÖµ¡°O¡±¡«¡°F¡±´Ó×óµ½ÓÒ˳´ÎÏÔʾÔÚÊýÂë¹ÜÉÏ¡£ 10.7 ²Î¼û4£®6½ÚÀý¡£

µÚ11Õ ´®Ðнӿڼ¼Êõ

11.1 ÔÚAT89S52ÉÏÀ©Õ¹Á½Æ¬AT24C04¡£ 11.1 ¼ûϰÌâ11£®1ͼ

ϰÌâ11£®1ͼ

11.2 Íê³É½«O¡«9дÈëAT24C04µÄO¡«9µ¥Ôª¡£ 11.2 ²ÎÔÄ11£®L 5½Ú

11.3 Íê³É½«AT24C04µÄO¡«9µ¥ÔªÄÚÈݶÁ³ö²¢·Ö±ð´æÈëÄÚ²¿RAMµÄ20H¡«29Hµ¥Ôª¡£ 11.3 ²ÎÔÄ11£®1£®5½Ú

11.4 ÊÔÓÃһƬTLC5615Éè¼ÆÒ»¸ö51²¨Ðη¢ÉúÆ÷£¬Ê¹ÄܲúÉú·½²¨¡¢¾â³Ý²¨¡£ 11.4 ²ÎÔĵÚ13ÕÂʵÑéÖ¸µ¼µÄʵÑé7

11.5 ʹÓÃһƬTLC549Éè¼ÆÒ»¸ö»ùÓÚ51µ¥Æ¬»ú²âÁ¿µÄµÍƵÓÐЧֵµÄµçѹ±í¡£ 11.5 ²ÎÔĵÚ13ÕÂʵÑéÖ¸µ¼µÄʵÑé8

µÚ12Õ ǶÈëʽϵͳµÄÉè¼ÆÓëµ÷ÊÔ

12.1 µ¥Æ¬»úµÄ¿¹¸ÉÈÅ´ëÊ©ÓÐÄÄЩ?

44

12.1 ²ÎÔÄ12£®3½Ú

12.2 Éè¼ÆÒ»¸öµç×ÓÊý×ÖÖÓ£¬²¢½ÓÒ»¸öСÀ®°È£¬Ê¹ (1) ¾ßÓн»ÌæÏÔʾÄê¡¢Ô¡¢ÈÕ¡¢Ê±¡¢·Ö¡¢ÃëµÄ¹¦ÄÜ£» (2) ¾ß±¸Ð£Õý¹¦ÄÜ£»

*(3) ¾ß±¸É趨ÄÖÖӺͶ¨Ê±ÄÖÖÓÏ칦ÄÜ£» *(4) ¾ß±¸Õûµã±¨Ê±¹¦ÄÜ£» *(5) ¾ß±¸ÉúÈÕÌáÐѹ¦ÄÜ¡£ ÆäÖУ¬*Ϊѡ×öµÄÀ©Õ¹¹¦ÄÜ¡£

12.2 Ìáʾ£ºÀûÓö¨Ê±£¯¼ÆÊýÆ÷¶¨Ê±l00ms£¬ÖжÏ10´Î´ï1s£¬Âú60s£¬·Ö¼Ó1sÇåO£»Âú60·Ö£¬Ð¡Ê±¼Ó1·ÖÇå0£¬Í¬Ê±·Ö¡¢Ãë¾ùÓÐʮλÊýºÍ¸öλÊý£¬°´Ê®½øÖƽøÎ»£¬²¢ËÍÏÔʾ£¬ÏÔʾ¿É²ÉÓÃ6¸öÊýÂë¹Ü(»ò8¸öÊýÂë¹Ü)£¬Ð£¶Ô¿ÉÓð´¼üÖжϷ½Ê½»ò°´¼üµÄ²éѯ½øÐмÓ1У¶Ô£¬Óò¢ÐпڽÓÇý¶¯Æ÷(·ÇÃÅ»òÈý¼«¹Ü)Çý¶¯ÑïÉùÆ÷½øÐÐÄÖÖÓ£¬Èç¹û²ÉÓÃ89C51£¯S51×ö£¬ÓÉÓÚÆ¬ÄÚÒÑÓгÌÐò´æ´¢Æ÷£¬4¸ö¿ÚÓû§¾ù¿ÉʹÓá£

12.3 Óõ¥Æ¬»úµÄ¶¨Ê±Æ÷Éè¼ÆÒ»¸öÒôÀֺУ¬Ê¹ÄÜÓð´¼üÑ¡ÔñÑÝ×àÁ½Ö§Ð¡ÀÖÇú£¬ÒÑÖªÀÖÆ×ºÍÆµÂʵĹØÏµÈçÏ£º Cµ÷Òô·û ƵÂÊ(Hz) 5 392 6 440 7 494 1 524 2 588 3 660 4 698 5 784 6 880 7 988 12.3 Ìáʾ£ºÊ¹Óö¨Ê±Æ÷²úÉú²»Í¬ÆµÂʵÄÐźŹ¹³É½ÚÅÄ£¬¿ÉÒÔÁ½¸ö¶¨Ê±Æ÷ÁªºÏʹÓá£

12.4 Éè¼ÆÒ»¸öÄ£ÄâÁ¿²É¼¯ÏµÍ³£¬½«Ëù²É¼¯µÄÄ£ÄâÁ¿ÏÔʾÔÚ4¸öLEDÏÔʾÆ÷»ò4¸öLCDÏÔʾÆ÷ÉÏ¡£

12.4 Ìáʾ£ºÓ²¼þÓɵ¥Æ¬»ú¡¢A£¯Dת»»¡¢LEDÏÔʾÆ÷»òLCDÏÔʾÆ÷¼°±ØÒªµÄÇý¶¯¡¢ÒëÂëµÈµç·¹¹³É¡£

12.5 ÌâÄ¿Ìâ12.4£¬ÒªÇóÀûÓô®ÐÐͨÐÅ£¬Ê¹²É¼¯µÄÊý¾Ý»ò²¨ÐÎÏÔʾÔÚPCµÄµçÄÔÆÁÄ»ÉÏ¡£ 12.5 ÂÔ

µÚ13Õ µ¥Æ¬»úʵÑé(ÂÔ)

45

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)