¡¶µ¥Æ¬Î¢ÐͼÆËã»úÓë½Ó¿Ú¼¼Êõ¡·Ë¼¿¼ÌâÓëϰÌâ½â´ð µÚ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
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
P1=0x25;
*P2=sqrt(*P1); }
4.7 Íê³ÉÂß¼±í´ïʽP1.2=P1.4¡ÁACC.0+ACC.7(¡°¡Á¡±±íʾÂß¼Ó룬¡°+¡±±íʾÂß¼»ò)¡£ 4.7 #include
{P12=¡«(P1^4&ACC^0)|ACC^7£»}
4.8 ½«ÍⲿRAMµÄ10H¡«15Hµ¥ÔªµÄÄÚÈÝ´«Ë͵½ÄÚ²¿RAMµÄ10H¡«15Hµ¥Ôª¡£ 4.8 #lnclude
{
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
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
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
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
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 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 #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 #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 #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 #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 #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