µ¥Æ¬»úÔ­Àí¼°Ó¦Ó᪡ª»ùÓÚProteusºÍKeil C ÏÂÔØ±¾ÎÄ

µÚÒ»ÕÂ

1. ʲôÊǵ¥Æ¬»ú£¿

ÔÚÒ»¿é¼¯³Éµç·оƬÉϼ¯³ÉÁË΢´¦ÀíÆ÷¡¢´æ´¢Æ÷¡¢ÊäÈë½Ó¿Ú¡¢Êä³ö½Ó¿Ú¡¢¶¨Ê±Æ÷/¼ÆÊýÆ÷¡¢ÖжϵȻù±¾µç·Ëù¹¹³ÉµÄµ¥Æ¬Î¢ÐͼÆËã»ú£¬¼ò³Æµ¥Æ¬»ú£¨Single-Chip-Microcomputer£©¡£

µ¥Æ¬»úÓнÏÇ¿µÄ¿ØÖƹ¦ÄÜ£¬Ö÷Ҫȡ¾öÓÚµ¥Æ¬»úÔÚÆä½á¹¹ÉϵÄÉè¼Æ£¬°üÀ¨µ¥Æ¬»úÓ²¼þ¡¢Ö¸Áîϵͳ¼°I/O´¦Àí¹¦Äܵȷ½Ãæ¶¼ÓжÀµ½Ö®´¦¡£ËäÈ»µ¥Æ¬»úÖ»ÊÇÒ»¸öоƬ£¬µ«ÎÞÂÛ´Ó×é³É»¹ÊÇ´ÓÆäÂß¼­¹¦ÄÜÉÏÀ´¿´£¬¶¼¾ßÓÐ΢»úϵͳµÄº¬Òå¡£

2£®µ¥Æ¬»úÓ¦ÓÃÁé»îÐÔÌåÏÖÔÚÄÄЩ·½Ã棿

µ¥Æ¬»úÒÔÆä×ÔÉíµÄÌØµã£¬ÆäÓ¦ÓÃÁìÓòÒÑÉøÍ¸Èë¸÷¸öÁìÓò¡£

µ¥Æ¬»úµÄÖ÷ÒªÌØµãÊÇÌå»ýС¡¢¹¦ºÄµÍ¡¢¼Û¸ñµÍÁ®¡¢Ê¹Ó÷½±ã£¬¿ØÖƹ¦ÄÜÇ¿¡¢±ãÓÚ½øÐÐλÔËËãÇÒ¾ßÓÐÂß¼­Åжϡ¢¶¨Ê±¼ÆÊýµÈ¶àÖÖ¹¦ÄÜ¡£

µ¥Æ¬»úÓ¦ÓÃϵͳÉè¼ÆÁé»î£¬ÔÚϵͳӲ¼þ²»±äµÄÇé¿öÏ£¬¿Éͨ¹ý²»Í¬µÄ³ÌÐò¿ÉʵÏÖ²»Í¬µÄ¹¦ÄÜ£¬Òò´ËÕâ´Ó¸ù±¾¸Ä±äÁË´«Í³¿ØÖÆÏµÍ³µÄÉè¼ÆË¼ÏëºÍÉè¼Æ·½·¨¡£¹ýÈ¥±ØÐëÓÉÄ£Äâµç·¡¢Êý×ֵ緼°¼ÌµçÆ÷¿ØÖƵç·ʵÏֵĴ󲿷ֹ¦ÄÜ£¬ÏÖÔÚÒÑÄÜÓõ¥Æ¬»ú²¢Í¨¹ýÈí¼þ·½·¨ÊµÏÖ¡£ÓÉÓÚÈí¼þ¼¼ÊõµÄ·ÉËÙ·¢Õ¹£¬¸÷ÖÖÈí¼þϵÁвúÆ·µÄ´óÁ¿Ó¿ÏÖ£¬¿ÉÒÔ¼«´óµØ¼ò»¯Ó²¼þµç·¡£¡°Èí¼þ¾ÍÊÇÒÇÆ÷¡±ÒѳÉΪµ¥Æ¬»úÓ¦Óü¼Êõ·¢Õ¹µÄÖ÷ÒªÌØµã¡£

3£®¼òÊöµ¥Æ¬»úµÄ·¢Õ¹Àú³Ì¡£

1976Ä꣬Inter¹«Ë¾ÍƳöÁËMCS-48ϵÁÐ8λµ¥Æ¬»ú

µ½Ä¿Ç°ÎªÖ¹£¬ÊÀ½ç¸÷µØ³§ÉÌÒÑÏà¼ÌÑÐÖÆ³ö´óÔ¼50¸öϵÁÐ300¶à¸öÆ·Öֵĵ¥Æ¬»ú²úÆ·¡£´ú±í²úÆ·ÓÐIntel¹«Ë¾µÄMCS-51ϵÁУ¨ÒÔϼò³Æ51ϵÁУ©»ú£¨8λ»ú£©

Ŀǰ£¬Êг¡ÉϵÄÖ÷Á÷²úÆ·ÊÇ51ϵÁмæÈÝ»ú£ºÓÉSTC¹«Ë¾ÍƳöµÄ¸ßÐԼ۱ȵÄSTC89ϵÁе¥Æ¬»úºÍAtmel¹«Ë¾Éú²úµÄAT89ϵÁе¥Æ¬»ú¡£

Ëæ×ż¯³Éµç·µÄ·¢Õ¹£¬ËæÖ®³öÏÖÄÚºËΪ32λµÄARM´¦ÀíÆ÷£¬

ÔÚµ¥Æ¬»ú¼Ò×åµÄÖÚ¶à³ÉÔ±ÖУ¬51ϵÁе¥Æ¬»úÒÔÆäÓÅÔ½µÄÐÔÄÜ¡¢³ÉÊìµÄ¼¼Êõ¼°¸ß¿É¿¿ÐԺ͸ßÐÔÄܼ۸ñ±È£¬Ñ¸ËÙÕ¼ÁìÁ˹¤Òµ²â¿ØºÍ×Ô¶¯»¯¹¤³ÌÓ¦ÓõÄÖ÷ÒªÊг¡£¬

ÔÚ8λµ¥Æ¬»úµÄ»ù´¡ÉÏ£¬ÓÖÍÆ³ö³¬8λµ¥Æ¬»ú£¬Æä¹¦ÄܽøÒ»²½¼ÓÇ¿£¬Í¬Ê±16λµ¥Æ¬»úÒ²Ïà¼Ì²úÉú£¬´ú±í²úÆ·ÓÐIntel¹«Ë¾µÄMCS-96ϵÁÐÒÔ¼°ATMELÍÆ³öµÄAVRµ¥Æ¬»ú¡£

4£®¼ÆËã»úÄܹ»Ê¶±ðµÄÊýÖµÊÇʲô£¿ÎªÊ²Ã´ÒªÒý½øÊ®Áù½øÖÆÊý£¿

ÔÚ¼ÆËã»úÖУ¬ÓÉÓÚËù²ÉÓõĵç×ÓÂß¼­Æ÷¼þ½öÄÜ´æ´¢ºÍʶ±ðÁ½ÖÖ״̬µÄÌØµã£¬¼ÆËã»úÄÚ²¿Ò»ÇÐÐÅÏ¢´æ´¢¡¢´¦ÀíºÍ´«Ë;ù²ÉÓöþ½øÖÆÊýµÄÐÎʽ¡£¿ÉÒÔ˵£¬¶þ½øÖÆÊýÊǼÆËã»úÓ²¼þÄÜÖ±½Óʶ±ð²¢½øÐд¦ÀíµÄΩһÐÎʽ¡£Ê®Áù½øÖÆÊý¿ÉÒÔ¼ò»¯±íʾ¶þ½øÖÆÊý¡£

5. Êýֵת»»¡£

(1)37=( 100101 )B=( 25 )H (2) 12.875=( 1100.111 )B=( 0CE )H

(3) 10110011B=( 0B3 )H=( 179 )10

(4) 10111.101B=(17.A )H=(23.625 )10 (5) 56H=( 01010110 )B=(86 )10 (6) 3DFH=( 0011 1101 1111 )B=(991 )10 (7)1A.FH =(1 1010.1111 )B=( 26.9375 )10 (8) 3C4DH=(11 1100 0100 1101 )B=( )10

6. ¶ÔÓÚ¶þ½øÖÆÊý10001001B£¬ÈôÀí½âΪÎÞ·ûºÅÊý£¬Ôò¸ÃÊý¶ÔӦʮ½øÖÆÊýΪ¶àÉÙ£¿ÈôÀí½âΪÓзûºÅÊý£¬Ôò¸ÃÊý¶ÔӦʮ½øÖÆÊýΪ¶àÉÙ£¿ÈôÀí½âΪBCDÊý£¬Ôò¸ÃÊý¶ÔӦʮ½øÖÆÊýΪ¶àÉÙ£¿

137 -119 89

7. ÁгöÏÂÁÐÊý¾ÝµÄ·´Âë¡¢Ô­ÂëºÍ²¹Âë¡£

(1) +123 (2) -127 (3) +45 (4) -278 (1)01111011 01111011 01111011 (2)10000000 11111111 10000001 (3)101101 101101 101101

(4)1111111011101001 1000000100010110 1111111011101010 8. ¼òÊöµ¥Æ¬»úµÄ·ÂÕæ¹ý³ÌºÍ¿ª·¢¹ý³Ì¡£

¿ÉÒÔʹÓÃprotues·ÂÕæÈí¼þÊ×ÏȽ¨Á¢µç·ԭÀíͼ£¬È»ºóµ÷ÈëÓÉkeil±àÒëÁ¬½ÓµÄ.hex Îļþ£¨²Î¿¼±¾ÕÂÏîĿʵÀý£©£»

¿ª·¢¹ý³Ì£º£¨²Î¿¼µÚ8Õ£©

µÚ2ÕÂ

1. 51µ¥Æ¬»ú°üÀ¨ÄÄЩÖ÷ÒªÂß¼­¹¦Äܲ¿¼þ£¿¸÷¹¦Äܲ¿¼þµÄÖ÷Òª×÷ÓÃÊÇʲô£¿¼òµ¥ËµÃ÷²»Í¬ÐͺŵIJî±ð¡£

8051µ¥Æ¬»úÄÚ²¿ÓÉCPU¡¢4KBµÄROM¡¢128BµÄRAM¡¢4¸ö8λµÄI/O²¢Ðж˿ڡ¢Ò»¸ö´®Ðпڡ¢Á½¸ö16λ¶¨Ê±/¼ÆÊýÆ÷¼°ÖжÏϵͳµÈ×é³É¡£

2. ³ÌÐò״̬×ּĴæÆ÷PSW¸÷λµÄ¶¨ÒåÊÇʲô£¿

PSWÊÇÒ»¸ö8λ¼Ä´æÆ÷£¬ÓÃÓڼĴ浱ǰָÁîÖ´ÐкóµÄijЩ״̬£¬¼´·´Ó³Ö¸ÁîÖ´Ðнá¹ûµÄÒ»Ð©ÌØÕ÷ÐÅÏ¢¡£

Cy£¨PSW.7£©£º¼´PSWµÄD7룬½øÎ»/½èλ±êÖ¾¡£ AC£¨PSW.6£©£º¼´PSWµÄD6룬¸¨Öú½øÎ»±êÖ¾¡£ F0£¨PSW.5£©¼°F1£¨PSE.1£©£º¼´PSWµÄD5λ¡¢D1룬Óû§±ê־λ¡£ RS1¼°RS0£¨PSW.4¼°PSW.3£©£º¼´PSWµÄD4λ¡¢D3룬¼Ä´æÆ÷×éÑ¡Ôñ¿ØÖÆÎ»¡£ OV£¨PSW.2£©£º¼´PSWµÄD2룬Òç³ö±êÖ¾¡£

3. 51´æ´¢Æ÷½á¹¹µÄÖ÷ÒªÌØµãÊÇʲô£¿³ÌÐò´æ´¢Æ÷ºÍÊý¾Ý´æ´¢Æ÷¸÷Óкβ»Í¬£¿

MCS-51µ¥Æ¬»úµÄ´æ´¢Æ÷½á¹¹ÓëÒ»°ã΢»ú´æ´¢Æ÷µÄÅäÖ÷½·¨²»Í¬£¬Ò»°ã΢»ú°Ñ³ÌÐòºÍÊý¾Ý¹²´æÍ¬Ò»´æ´¢¿Õ¼ä£¬¸÷´æ´¢µ¥Ôª¶ÔӦΩһµÄµØÖ·¡£¶øMCS-51µÄ´æ´¢Æ÷°Ñ³ÌÐòºÍÊý¾ÝµÄ´æ´¢¿Õ¼äÑϸñÇø·Ö¿ª¡£

Êý¾Ý´æ´¢Æ÷ÓÃÓÚ´æ·Å³ÌÐòÔËËãµÄÖмä½á¹û¡¢×´Ì¬±ê־λµÈ¡£ ³ÌÐò´æ´¢Æ÷ÓÃÓÚ´æ·ÅÒѱàÖÆºÃµÄ³ÌÐò¼°³ÌÐòÖÐÓõ½µÄ³£Êý¡£ 4. 51µ¥Æ¬»úÄÚ²¿RAM¿É·ÖΪ¼¸¸öÇø£¿¸÷ÇøµÄÖ÷Òª×÷ÓÃÊÇʲô£¿ ÄÚ²¿Êý¾Ý´æ´¢Æ÷·ÖΪ¸ß¡¢µÍ128BÁ½´ó²¿·Ö¡£

µÍ128BΪRAMÇø£¬µØÖ·¿Õ¼äΪ00H¡«7FH£¬¿É·ÖΪ£º¼Ä´æÆ÷Çø¡¢Î»Ñ°Ö·Çø¡¢¶ÑÕ»¼°Êý¾Ý´æ´¢Çø¡£´æ·Å³ÌÐòÔËËãµÄÖмä½á¹û¡¢×´Ì¬±ê־λµÈ¡£

¸ß128BÎªÌØÊ⹦ÄܼĴæÆ÷£¨SFR£©Çø£¬µØÖ·¿Õ¼äΪ80H¡«FFH£¬ÆäÖнöÓÐ21¸ö×Ö½Úµ¥ ÔªÊÇÓж¨ÒåµÄ¡£

5. 51µ¥Æ¬»úµÄP0¡«P3ËĸöI/O¶Ë¿ÚÔڽṹÉÏÓкÎÒìͬ£¿Ê¹ÓÃʱӦעÒâÄÄЩÊÂÏ

P0¿ÚÊÇÒ»¸ö8λ©¼«¿ªÂ·ÐÍË«ÏòI/O¶Ë¿Ú¡£

P1¿ÚÊÇÒ»¸öÄÚ²¿´øÉÏÀ­µç×èµÄ8λ׼˫ÏòI/O¶Ë¿Ú¡£ P2¿ÚÒ²ÊÇÒ»¸öÄÚ²¿´øÉÏÀ­µç×èµÄ8λ׼˫ÏòI/O¶Ë¿Ú P3¿ÚÊÇÒ»¸öÄÚ²¿´øÉÏÀ­µç×èµÄ8λ¶à¹¦ÄÜË«ÏòI/O¶Ë¿Ú¡£ ÔÚʹÓÃʱӦעÒâÒÔÏ·½Ã棺

¢Ù P0¡«P3¶¼ÊÇ׼˫ÏòI/O¿Ú£¬¼´CPUÔÚ¶ÁÈ¡Êý¾Ýʱ£¬±ØÐëÏÈÏòÏàÓ¦¶Ë¿ÚµÄËø´æÆ÷дÈë¡°1¡±¡£¸÷¶Ë¿ÚÃû³ÆÓëËø´æÆ÷Ãû³ÆÔÚ±à³ÌʱÏàͬ£¬¾ù¿ÉÓÃP0¡«P3±íʾ¡£µ±ÏµÍ³¸´Î»Ê±£¬P0¡«P3¶Ë¿ÚËø´æÆ÷ȫΪ¡°1¡±£¬¹Ê¿ÉÖ±½Ó¶ÔÆä½øÐжÁÈ¡Êý¾Ý¡£

¢Ú P0¿ÚÿһÊä³öλ¿ÉÇý¶¯8¸öLSÐÍTTL¸ºÔØ£¬P0¿Ú¿É×÷ͨÓÃÊäÈë¡¢Êä³ö¶Ë¿ÚʹÓ㬴Ëʱ£¬ÈôÒªÇý¶¯NMOS»òÆäËûÀ­µçÁ÷¸ºÔØÊ±£¬ÐèÍâ½ÓÉÏÀ­µç×裬²ÅÄÜʹ¸Ãλ¸ßµçƽÊä³öÓÐЧ¡£

ÔÚµ¥Æ¬»ú½øÐÐÍⲿ´æ´¢Æ÷À©Õ¹Ê±£¬P0¿Ú±ØÐë×÷ΪµØÖ·/Êý¾Ý¸´ÓÃÏßʹÓ㬴Ëʱ£¬²»±ØÍâ½ÓÉÏÀ­µç×裬P0Ò²²»ÄÜ×÷ͨÓÃI/O¿ÚʹÓá£

¢Û P1¡¢P2¡¢P3¿ÚÊä³ö¾ù½ÓÓÐÄÚ²¿ÉÏÀ­µç×裬ÊäÈë¶ËÎÞÐèÍâ½ÓÉÏÀ­µç×裬ÿһλÊä³ö¿ÉÒÔÇý¶¯4¸öLSÐÍTTLµç·¡£

¢Ü P0¡¢P2¿Ú³ý¿ÉÒÔ×÷ͨÓÃI/O¶Ë¿Ú¡¢ÒÔʵÏÖÓëÍⲿ½øÐÐÊý¾Ý½»»»Í⣬¸üÖ÷ÒªµÄÊÇ£¬µ±CPU·ÃÎÊÍⲿ´æ´¢Æ÷ʱ£¬CPU½«×Ô¶¯µØ°ÑÍⲿ´æ´¢Æ÷µÄµØÖ·ÏßÐźţ¨16룩ËÍP0¡¢P2¿Ú£¬×÷ΪµØÖ·×ÜÏߣ¨P0¿ÚÊä³öµÍ8λµØÖ·£¬P2¿ÚÊä³ö¸ß8λµØÖ·£©£¬ÏòÍⲿ´æ´¢Æ÷Êä³ö16λ´æ´¢µ¥ÔªµØÖ·¡£ÔÚ¿ØÖÆÐźÅ×÷ÓÃÏ£¬¸ÃµØÖ·µÍ8λ±»Ëø´æºó£¬P0¿Ú×Ô¶¯Çл»ÎªÊý¾Ý×ÜÏߣ¬Õâʱ¾­P0¿Ú¿ÉÏòÍⲿ´æ´¢Æ÷½øÐжÁ¡¢Ð´Êý¾Ý²Ù×÷¡£´Ëʱ£¬P2¿Ú²»ÔÙ×÷ͨÓÃI/O¶Ë¿Ú£¬P0¿ÚΪµØÖ·/Êý¾Ý¸´Óÿڡ£

6. Ö¸³ö8051¿É½øÐÐλѰַµÄ´æ´¢¿Õ¼ä¡£

00~7FH(¼´20H.0~2FH.7)¼°SFRµØÖ·Äܱ»8Õû³ýµÄ¼Ä´æÆ÷Öеĸ÷λ¡£

7. ÔÚ·ÃÎÊÍⲿROM»òRAMʱ£¬P0ºÍP2¿Ú¸÷ÓÃÀ´´«ËÍʲôÐźţ¿P0¿ÚΪʲôҪ²ÉÓÃÆ¬ÍâµØÖ·Ëø´æÆ÷£¿

P0¿Ú´«Ë͵ØÖ·µÍ°Ëλºó¿É¸´ÓÃÊý¾ÝÏߣ¬ËùÒÔ£¬P0¿ÚÒª²ÉÓÃÆ¬ÍâµØÖ·Ëø´æÆ÷¡£P2¿Ú´«Ë͵ØÖ·¸ß°Ëλ¡£

8. ʲôÊÇʱÖÓÖÜÆÚ£¿Ê²Ã´ÊÇ»úÆ÷ÖÜÆÚ£¿Ê²Ã´ÊÇÖ¸ÁîÖÜÆÚ£¿µ±Õñµ´ÆµÂÊΪ12MHzʱ£¬Ò»¸ö»úÆ÷ÖÜÆÚΪ¶àÉÙ΢Ã룿

ʱÖÓÖÜÆÚ£ºÒ²³ÆÕñµ´ÖÜÆÚ£¬¼´Õñµ´Æ÷µÄÕñµ´ÆµÂÊfoscµÄµ¹Êý£¬ÊÇʱÐòÖÐ×îСµÄʱ¼äµ¥Î»¡£»úÆ÷ÖÜÆÚ£ºÖ´ÐÐÒ»ÌõÖ¸ÁîµÄ¹ý³Ì¿É·ÖΪÈô¸É¸ö½×¶Î£¬Ã¿Ò»½×¶ÎÍê³ÉÒ»¹æ¶¨µÄ²Ù×÷£¬Íê³ÉÒ»¸ö¹æ¶¨²Ù×÷ËùÐèÒªµÄʱ¼ä³ÆÎªÒ»¸ö»úÆ÷ÖÜÆÚ£¬Ò»¸ö»úÆ÷ÖÜÆÚ°üº¬12¸öʱÖÓÖÜÆÚ¡£ µ±Õñµ´ÆµÂÊΪ12MHzʱ£¬Ò»¸ö»úÆ÷ÖÜÆÚΪ12/£¨12¡Á1000000£©Ãë=1΢Ãë Ö¸ÁîÖÜÆÚ£º¶¨ÒåΪִÐÐÒ»ÌõÖ¸ÁîËùÓõÄʱ¼ä¡£

9. 51µ¥Æ¬»úÓм¸ÖÖ¸´Î»·½·¨£¿¸´Î»ºó£¬CPU´Ó³ÌÐò´æ´¢Æ÷µÄÄÄÒ»¸öµ¥Ôª¿ªÊ¼Ö´ÐгÌÐò£¿

MCS-51µÄ¸´Î»µç·°üÀ¨Éϵ縴λµç·ºÍ°´¼ü£¨Íⲿ£©¸´Î»µç· 0000H

10. 8051µ¥Æ¬»úÒý½ÅALEµÄ×÷ÓÃÊÇʲô£¿µ±8051²»Íâ½ÓRAMºÍROMʱ£¬ALEÉÏÊä³öµÄÂö³åƵÂÊÊǶàÉÙ£¿Æä×÷ÓÃÊÇʲô£¿

µØÖ·Ëø´æÊ¹ÄÜÊä³öALE£ºµ±µ¥Æ¬»ú·ÃÎÊÍⲿ´æ´¢Æ÷ʱ£¬Íⲿ´æ´¢Æ÷µÄ16λµØÖ·ÐźÅÓÉP0¿ÚÊä³öµÍ8룬P2¿ÚÊä³ö¸ß8룬ALE¿ÉÓÃ×÷µÍ8λµØÖ·Ëø´æ¿ØÖÆÐźţ»µ±²»ÓÃ×÷Íⲿ´æ´¢Æ÷µØÖ·Ëø´æ¿ØÖÆÐźÅʱ£¬¸ÃÒý½ÅÈÔÒÔʱÖÓÕñµ´ÆµÂʵÄ1/6¹Ì¶¨µØÊä³öÕýÂö³å£¬¿ÉÒÔÇý¶¯8¸öLSÐÍTTL¸ºÔØ¡£

µÚ3ÕÂ

1. MCS-51»ã±àÖ¸Áî¸ñʽÊÇʲô£¬ÈçºÎͨ¹ý»ã±àÖ¸Áî¸ñʽÀ´ÅжÏÖ¸Áî×Ö½ÚÊý£¿

MCS-51Ö¸ÁîϵͳÖеÄÿһÌõÖ¸Áî¶¼ÓÐÁ½¼¶Ö¸Áî¸ñʽ£º ? CPU¿ÉÖ±½Óʶ±ð²¢Ö´ÐеĻúÆ÷ÓïÑÔÖ¸Áî¡£ ? »ã±àÓïÑÔÖ¸Á¼ò³Æ»ã±àÖ¸Á¡£

MCS-51»ã±àÓïÑÔÖ¸Áî¸ñʽÓÉÒÔϼ¸¸ö²¿·Ö×é³É£º

[±êºÅ£º] ²Ù×÷Âë [Ä¿µÄ²Ù×÷Êý] [,Ô´²Ù×÷Êý] [; ×¢ÊÍ]

ÆäÖУ¬[ ]ÖеÄÏî±íʾΪ¿ÉÑ¡Ïî¡£

Ö¸ÁîѰַ·½Ê½ÊÇÅжÏÖ¸Áî×Ö½ÚÊýµÄÒÀ¾ÝÖ®Ò»¡£

2. ÓÐÄļ¸ÖÖѰַ·½Ê½£¿ÆäÌØÕ÷¶ÔÏó·Ö±ðÊÇʲô£¿×ö±í˵Ã÷¡£

MCS-51Ö¸ÁîϵͳµÄѰַ·½Ê½ÓÐÒÔÏÂ7ÖÖ£º Á¢¼´Ñ°Ö··½Ê½£º²Ù×÷ÊýÖ±½Ó³öÏÖÔÚÖ¸ÁîÖС£

Ö±½ÓѰַ·½Ê½ÖУº²Ù×÷ÊýµÄµ¥ÔªµØÖ·Ö±½Ó³öÏÖÔÚÖ¸ÁîÖС£ ¼Ä´æÆ÷Ѱַ·½Ê½ÖУº¼Ä´æÆ÷ÖеÄÄÚÈݾÍÊDzÙ×÷Êý¡£

¼Ä´æÆ÷¼ä½ÓѰַ·½Ê½ÖУ¬Ö¸¶¨¼Ä´æÆ÷ÖеÄÄÚÈÝÊDzÙ×÷ÊýµÄµØÖ·£¬¸ÃµØÖ·¶ÔÓ¦´æ´¢µ¥ÔªµÄÄÚÈݲÅÊDzÙ×÷Êý¡£

±äַѰַ·½Ê½ÊÇÒÔ³ÌÐòÖ¸ÕëPC»òÊý¾ÝÖ¸ÕëDPTRΪ»ùÖ·¼Ä´æÆ÷£¬ÒÔÀÛ¼ÓÆ÷A×÷Ϊ±äÖ·¼Ä´æÆ÷£¬Á½ÕßÄÚÈÝÏà¼Ó£¨¼´»ùµØÖ·+Æ«ÒÆÁ¿£©ÐγÉ16λµÄ²Ù×÷ÊýµØÖ·£¬

Ïà¶ÔѰַÊÇÒÔ³ÌÐò¼ÆÊýÆ÷PCµÄµ±Ç°Öµ×÷Ϊ»ùµØÖ·£¬ÓëÖ¸ÁîÖеĵڶþ×Ö½Ú¸ø³öµÄÏà¶ÔÆ«ÒÆÁ¿rel½øÐÐÏà¼Ó£¬ËùµÃºÍΪ³ÌÐòµÄ×ªÒÆµØÖ·¡£

λµØÖ·£ºÄÚ²¿RAMµØÖ·¿Õ¼äµÄ¿É½øÐÐλѰַµÄ128λºÍSFRµØÖ·¿Õ¼äµÄ¿ÉλѰַµÄ11¸ö8λ¼Ä´æÆ÷µÄ88λ¡£Î»Ñ°Ö·¸ø³öµÄÊÇÖ±½ÓµØÖ·¡£

3. λѰַºÍ×Ö½ÚѰַÈçºÎÇø·Ö£¿ÔÚʹÓÃʱÓкβ»Í¬£¿ ÓÉѰַ·½Ê½¿ÉÒÔ¿´³ö£¬²»Í¬µÄѰַ·½Ê½ËùѰַµÄ´æ´¢¿Õ¼äÊDz»Í¬µÄ¡£ÕýÈ·µØÊ¹ÓÃѰַ·½Ê½²»½öÈ¡¾öÓÚѰַ·½Ê½µÄÐÎʽ£¬¶øÇÒÈ¡¾öÓÚѰַ·½Ê½Ëù¶ÔÓ¦µÄ´æ´¢¿Õ¼ä¡£×Ö½ÚѰַ±ØÐëÊǶÔ8λ´æ´¢µ¥Ôª£¬Î»Ñ°Ö·µÄ´æ´¢¿Õ¼äÖ»ÄÜÊÇÆ¬ÄÚRAMµÄ20H~2FH×Ö½ÚµØÖ·ÖеÄËùÓÐλ£¨Î»µØÖ·Îª00H~7FH)ºÍ²¿·ÖSFRµÄ룬¾ö²»ÄÜÊǸ÷¶Î§Ö®ÍâµÄÈκε¥ÔªµÄÈκÎλ¡£

4. Òª·ÃÎÊרÓüĴæÆ÷ºÍƬÍâÊý¾Ý¼Ä´æÆ÷£¬Ó¦²ÉÓÃʲôѰַ·½Ê½£¿¾ÙÀý˵Ã÷¡£ ·ÃÎÊרÓüĴæÆ÷£º¿É²ÉÓÃÖ±½ÓѰַ»ò¼Ä´æÆ÷Ѱַ¡£ ·ÃÎÊÆ¬ÍâÊý¾Ý¼Ä´æÆ÷£º¼Ä´æÆ÷¼ä½ÓѰַ

5. ʲôÊǶÑÕ»£¿ÆäÖ÷Òª×÷ÓÃÊÇʲô£¿ÈçºÎʹÓã¿ ¶ÑÕ»ÊǺó½øÏȳöµÄÊý¾Ý´æ´¢Çø

Ò»°ãÓÃÓÚÖжϴ¦Àí¹ý³ÌÖУ¬ÈôÐèÒª±£»¤ÏÖ³¡Êý¾Ý£¨ÈçÄÚ²¿RAMµ¥ÔªµÄÄÚÈÝ£©£¬¿ÉʹÓÃÈëÕ»Ö¸Á½«Êý¾ÝѹÈë¶ÑÕ»£¬Öжϴ¦Àí¹ý³ÌÖ´ÐÐÍêºó£¬ÔÙʹÓóöÕ»Ö¸Áî»Ö¸´ÏÖ³¡Êý¾Ý¡£

6. ±à³Ì½«Æ¬ÍâÊý¾Ý´æ´¢Æ÷2000H¡«20FFHµ¥ÔªÄÚÈÝÇåÁã¡£

MOV DPTR,#2000H MOV A,#0

MOV R3,#100H LOP :MOV @DPTR,A

INC DPTR DJNZ R3,LOP

7. ÒÑÖªA=83H£¬R0=17H£¬(17H)=34H£¬Ð´³öÏÂÁгÌÐò¶ÎÖ´ÐÐÍêºóµÄAÖеÄÄÚÈÝ¡£

ORL A, #17H ANL 17H, A XRL A, @R0 CPL A

£¨A£©=11001011B=0CBH

8. ÒÑÖªµ¥Æ¬»úµÄfosc=6MHz£¬·Ö±ðÉè¼ÆÑÓʱ0.1s¡¢1s¡¢1minµÄ×Ó³ÌÐò¡£

ÕâÀïÈ¡µ¥Æ¬»ú³£Óõľ§ÕñƵÂÊΪ12MHz£¬Ò»¸ö»úÆ÷ÖÜÆÚΪ1¦Ìs¡£ £¨Èôfosc=6MHz£¬¶ÁÕ߿ɲο¼ÏÂÁгÌÐòÐ޸ģ©

ÑÓʱ1msµÄ×Ó³ÌÐò£º

DELAY: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP RET

Ö´ÐÐʱ¼ä£¨»úÆ÷ÖÜÆÚ£© 1 1 1 2 2

¸Ã³ÌÐò¶ÎµÄ×ܵÄÖ´ÐÐʱ¼äΪ£º

(1+4¡Á255+2)?s=1023¦Ìs¡Ö1ms

ÑÓʱʱ¼äΪ100msµÄ×Ó³ÌÐò£º

DELAY: LOP1: LOOP:

MOV R5,#64H ¶ÔÑÓʱ1msµÄ×Ó³ÌÐòÑ­»·100´Î¡£

MOV R7, #0FFH NOP NOP DJNZ R7, LOOP DJNZ R5,LOP1 RET

ÑÓʱʱ¼äΪ1sµÄ×Ó³ÌÐò£º

DELAY1: MOV R3, #0AH ¶ÔÑÓʱ100msµÄ×Ó³ÌÐòÑ­»·10´Î DELAY:

LOP1: LOOP:

MOV R5,#64H ¡£

MOV R7, #0FFH NOP NOP DJNZ R7, LOOP DJNZ R5,LOP1

DJNZ R3, DELAY RET

ÑÓʱʱ¼äΪ60sµÄ×Ó³ÌÐò£º ¶ÔÑÓʱ1sµÄ×Ó³ÌÐòÑ­»·60´Î 9. MCS-51»ã±àÓïÑÔÖÐÓÐÄÄЩ³£ÓõÄαָÁ¸÷Æðʲô×÷Óã¿ BIT£¨µØÖ··ûºÅÃüÁ

END£¨½áÊø»ã±à£© EQU£¨µÈÖµ£© DB£¨¶¨Òå×Ö½Ú£©

DW£¨¶¨Òå×Ö£©

DS£¨¶¨Òå´æ´¢µ¥Ôª£© ORG£¨»ã±àÆðʼµØÖ·£©

10. ±È½ÏÏÂÁи÷ÌâÖеÄÁ½ÌõÖ¸ÁîÊÇ·ñÏàͬ£¬Èô²»Í¬£¬ÇëÖ¸³öÆäÇø±ð£¿

¢Ù MOV A, R1; ¢Ú MOV A, P0;

LOOP; ¢Û LOOP: SJMP

MOV ACC, R1 Ö¸ÁÄÜÏàͬ£¬Ñ°Ö··½Ê½±íʾ²»Í¬

MOV A, 80H Ö¸ÁÄÜÏàͬ£¬Ñ°Ö··½Ê½±íʾ²»Í¬ SJMP $ Ö¸ÁÄÜÏàͬ

11. ÏÂÁгÌÐò¶Î»ã±àºó£¬´Ó3000H¿ªÊ¼¸÷Óйش洢µ¥ÔªµÄÄÚÈÝÊÇʲô£¿

ORG 3000H

TAB1 EQU 1234H TAB2 EQU 5678H DB 65,13,\ DW TAB1,TAB2,9ABCH ORG TAB1: TAB2:

3000H

EQU EQU DB DW

1234H 5678H

65,13,\

TAB1,TAB2,9ABCH

3000H: 65 3001H: 13 3002H: ?A? 3003H: 34H 3004H: 12H 3005H: 78H 3006H: 56H 3007H: BCH 3008H: 9AH

12. ΪÁËÌá¸ß»ã±àÓïÑÔ³ÌÐòµÄ¿É¶ÁÐԺͱàÒëЧÂÊ£¬ÔÚ±àдʱӦעÒâÄÄЩÎÊÌ⣿ (1) °ÑÒª½â¾öµÄÎÊÌ⻯³ÉÒ»¸ö¸ö¾ßÓÐÒ»¶¨¶ÀÁ¢ÐԵŦÄÜÄ£¿é£¬¸÷Ä£¿é¾¡Á¿²ÉÓÃ×Ó³ÌÐòÍê³ÉÆä¹¦ÄÜ¡£

(2) Á¦ÇóÉÙÓÃÎÞÌõ¼þ×ªÒÆÖ¸Á¾¡Á¿²ÉÓÃÑ­»·½á¹¹¡£

(3) ¶ÔÖ÷ÒªµÄ³ÌÐò¶ÎҪϹ¦·ò¾«ÐÄÉè¼Æ£¬ÕâÑù»áÊÕµ½Ê°빦±¶µÄЧ¹û¡£ (4) ÄÜÓÃ8λÊý¾Ý½â¾öÎÊÌâµÄ¾Í²»ÒªÊ¹ÓÃ16λÊý¾Ý¡£ (5) ÀÛ¼ÓÆ÷ÊÇÐÅÏ¢´«µÝµÄÊàŦ£¬ÔÚµ÷ÓÃ×Ó³ÌÐòʱӦͨ¹ýÀÛ¼ÓÆ÷´«ËÍ×Ó³ÌÐòµÄ²ÎÊý£¬Í¨¹ýÀÛ¼ÓÆ÷ÏòÖ÷³ÌÐò´«ËÍ·µ»Ø²ÎÊý¡£ËùÒÔ£¬ÔÚ×Ó³ÌÐòÖÐÒ»°ã²»°ÑÀÛ¼ÓÆ÷ÍÆÈë¶ÑÕ»¡£ÈôÐè±£»¤ÀÛ¼ÓÆ÷µÄÄÚÈÝʱ£¬Ó¦ÏȰÑÀÛ¼ÓÆ÷µÄÄÚÈÝ´æÈëÆäËû¼Ä´æÆ÷µ¥Ôª£¬È»ºóÔÙµ÷ÓÃ×Ó³ÌÐò¡£

£¨6£©ÎªÁ˱£Ö¤³ÌÐòÔËÐеݲȫ¿É¿¿£¬Ó¦¿¼ÂÇʹÓÃÈí¼þ¿¹¸ÉÈż¼Êõ£¬ÈçÊý×ÖÂ˲¨¼¼Êõ¡¢Ö¸ÁîÈßÓ༼Êõ¡¢Èí¼þÏݾ®¼¼Êõ£¬Óûã±àÓïÑÔ³ÌÐòʵÏÖÕâЩ¼¼Êõ£¬²»ÐèÒªÔö¼ÓÓ²¼þ³É±¾£¬¿É¿¿ÐԸߣ¬Îȶ¨ÐԺ㬷½±ãÁé»î¡£

13. ÓÐÒ»ÊäÈëÉ豸£¬Æä¶Ë¿ÚµØÖ·Îª20H£¬ÒªÇóÔÚ1ÃëÖÓʱ¼äÄÚÁ¬Ðø²ÉÑù10´Î¶ÁÈ¡¸Ã¶Ë¿ÚÊý¾Ý£¬ÇóÆäËãÊõƽ¾ùÖµ£¬½á¹û´æ·ÅÔÚÄÚ²¿RAMÇø20Hµ¥Ôª¡£

MOV R0,#20H MOV R2,#0 MOV A,#0 MOV R4,#0 LOP : MOV R3,#0AH

IN : ACALL DELAY

MOVX A, @R0 MOV R2 , A MOV A, R4 ADD A, R2 MOV R4, A DJNZ R3, IN MOV B,#0AH DIV AB MOV 20H,A

AJMP LOP

DELAY: MOV R5,#64H ÑÓʱʱ¼äΪ0.1sµÄ×Ó³ÌÐò£º

LOP1: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP

DJNZ R5,LOP1

RET END

14. ÏÖÐè¶ÔÍⲿij2¸öÐźŽøÐÐÒì»ò²Ù×÷£¬ÇëʹÓõ¥Æ¬»úÍê³ÉÆäÒªÇó¡£ MOV DPTR,#2000H MOVX A,@DPTR MOV 20H, A INC DPTR

MOVX A, @DPTR XRL A,20H

15. ¼òµ¥ËµÃ÷Á½Ìõ²é±íÖ¸ÁîʹÓÃÉϵÄÇø±ð¡£ ²é±íÊdzÌÐòÉè¼ÆÖÐʹÓõĻù±¾·½·¨¡£Ö»ÒªÊʵ±µØ×éÖ¯±í¸ñ£¬¾Í¿ÉÒÔÊ®·Ö·½±ãµØÀûÓñí¸ñ½øÐжàÖÖ´úÂëת»»ºÍËãÊõÔËËãµÈ¡£

MOVC A,@A+PCÓëMOVC A, @A+DPTRÁ½ÌõÖ¸ÁîµÄÇø±ð£º ǰÕß²é±íµÄ·¶Î§Óë´æ·Å¸ÃÖ¸ÁîµÄµØÖ·Óйأ¬ÓÉÓÚPCµÄÖµÒѾ­È·¶¨¼°8λÀÛ¼ÓÆ÷AµÄÏÞÖÆ£¬Êý¾Ý±í¸ñÖ»ÄÜ´æ·ÅÔÚ¸ÃÖ¸ÁîºóÃæµÄ256¸ö×Ö½Úµ¥ÔªÖ®ÄÚ¡£¶øºóÕß²é±í·¶Î§Í¨¹ý¸Ä±äDPTRµÄÖµ¿É´ïÕû¸ö³ÌÐò´æ´¢Æ÷64KBµÄÈκεØÖ·¿Õ¼ä£¨¼´DPTRµÄֵΪ±í¸ñµÄÊ×µØÖ·£©£¬ÆäÊý¾Ý±í¸ñ¿ÉÒÔΪ¸÷¸ö³ÌÐòÄ£¿é¹²Ïí¡£

½«Òª²é±íµÄÊý¾Ý×Ö×÷ÎªÆ«ÒÆÁ¿ËÍÀÛ¼ÓÆ÷AÖУ¬Í¨¹ý¸Ä±ä±äÖ·¼Ä´æÆ÷AµÄÄÚÈݼ´¿É¸Ä±ä±í¸ñÖеÄλÖã¬Ö´ÐиÃÖ¸Áî¼´¿É»ñµÃËùÐèµÄÄÚÈÝ£¨¼´½«¸ÃλÖõ¥ÔªµÄÄÚÈÝ´«Ë͸øA£©¡£Òò´Ë£¬¿ÉÒÔ¸ù¾ÝÐèÒªÉè¼Æ±í¸ñµÄÄÚÈÝ£¬½«AµÄÄÚÈÝʵÏÖ»»Âë¡£

µÚ4ÕÂ

1. C51À©Õ¹ÁËÄÄЩÊý¾ÝÀàÐÍ?

sbit sfr sfr16 bit

2. ¼òÊöC51´æ´¢Æ÷ÀàÐ͹ؼü×ÖÓë8051´æ´¢¿Õ¼äµÄ¶ÔÓ¦¹ØÏµ¡£ ³ÌÐò´æ´¢Æ÷(code)

ÄÚ²¿Êý¾Ý´æ´¢Æ÷£º

data ÄÚ²¿RAMÖ±½ÓѰַ128B£¨0x00¡«0x7F£© idata ÄÚ²¿RAM¼ä½ÓѰַ256B£¨0x00¡«0xFF£©

bdata ÄÚ²¿RAM 16B£¨0x20¡«0x2F£©µÄ128λ½øÐÐλѰַ ÍⲿÊý¾Ý´æ´¢Æ÷£º

xdata Íⲿ´æ´¢Æ÷64KBµÄÈκε¥Ôª pdata ·ÃÎÊÍⲿ´æ´¢Æ÷£¨Ò»Ò³£©µÍ256B

3. ÔÚ¶¨Òåint a=1,b=1ºó£¬·Ö±ðÖ¸³ö±í´ïʽb=a¡¢b=a++ºÍb=++aÖ´Ðкó±äÁ¿aºÍbµÄÖµ¡£

b=a;

b=a++; a=2 b=1 b=++a; a=2 b=2

4. ÓÃC51±à³ÌʵÏÖµ±P1.0ÊäÈëΪ¸ßµçƽʱ£¬P1.2Êä³ö¿ØÖÆÐźŵƵãÁÁ¡£

#include sbit key1=P1^0; sbit led=P1^2; void main() { bit a;

for( ; ; ) {key1=1; a=key1;

if(a) led=1; else led=0; } while(1); }

5. ʹÓÃÑ¡Ôñ½á¹¹±àд³ÌÐò£¬µ±ÊäÈëµÄÊý×ÖΪ¡°1¡±¡¢¡°2¡±¡¢¡°3¡±¡¢¡°4¡±Ê±£¬Êä³öÏÔʾ¡°A¡±¡¢¡°B¡±¡¢¡°C¡±¡¢¡°D¡±£¬µ±ÊäÈëÊý×Ö¡°0¡±Ê±£¬³ÌÐò½áÊø¡£

#include void main( ) { char ch;

SCON=0x52; /*¶Ô´®¿ÚʵÏÖ³õʼ»¯£¬ÒÔ±ãµ÷ÊÔʱµ÷ÓÃscanf()ºÍprintf()*/ TMOD=0x20; /*ÔÚkeil c´®Ðд°¿Ú#0ÖÐÊäÈë»òÏÔʾÊý¾Ý*/

TH1=0Xf3; /*Èô²»Ê¹ÓÃscanf()ºÍprintf()º¯Êý£¬Ôò³ÌÐòÖв»ÐèÒªÀ¶É«Óï¾ä*/

TR1=1;

printf(\ÇëÊäÈ룺\ while(1)

{ scanf(\ switch(ch) {

case ?1? : printf(\ case ?2? : printf(\

case ?3? : printf(\

case ?4? : printf(\case ?0? : break ;

default : printf(\ÊäÈë´íÎó\\n\ }

if(ch==?0?) break; }

while(); }

6. ±àÒ»¸öº¯Êýsum£¬ÇóÊý×éaÖи÷ÔªËØµÄÊý¾ÝºÍ¡£ ÒªÇóÔÚmainº¯ÊýÖÐÊäÈëÊý×éÔªËØµÄÊý¾Ý£¬Í¨¹ýµ÷ÓÃsumº¯Êý²¢Êä³ö·µ»ØµÄÊý¾ÝºÍ¡£

#include

int sum(int b[ ] , int n) { int i ,s =0;

for (i=0 ; i

s+=b[i]; return s; }

void main( )

{ int a[10]={10,20,30,40,50,90,80,70,60 ,0} i ,total;

SCON=0x52; /*¶Ô´®¿ÚʵÏÖ³õʼ»¯£¬ÒÔ±ãµ÷ÊÔʱµ÷ÓÃscanf()ºÍprintf()*/ TMOD=0x20; /*ÔÚkeil c´®Ðд°¿Ú#0ÖпÉÒÔÊäÈë»òÏÔʾÊý¾Ý*/

TH1=0Xf3; /*Èô²»Ê¹ÓÃscanf()ºÍprintf()º¯Êý£¬Ôò³ÌÐòÖв»ÐèÒªÀ¶É«Óï¾ä*/

TR1=1;

total= sum(a , 10) ;

printf(\ \

while(1);

}

7. ±àÒ»¸öº¯Êýlen£¬ÇóÒ»¸ö×Ö·û´®sµÄ³¤¶È¡£

ÒªÇóÔÚmainº¯ÊýÖÐÊäÈë×Ö·û´®£¬Í¨¹ýµ÷ÓÃlenº¯Êý²¢Êä³ö·µ»ØµÄ×Ö·û´®³¤¶È¡£

#include ¡°string.h¡± #include int len(char *s) {int n ; n=strlen(s) ; return n; }

void main( )

{ char *ch=¡±china¡±; int a;

a= len(ch ) ; while(1); }

8. C51ÖжϺ¯ÊýÈçºÎ¶¨Ò壬ÔÚʹÓÃʱӦעÒâÄÄЩÎÊÌ⣿ C51ÖУ¬ÖжϷþÎñ³ÌÐòÊÇÒÔÖжϺ¯ÊýµÄÐÎʽ³öÏֵġ£

µ¥Æ¬»úÖжÏÔ´ÒÔ¶ÔÓ¦ÖжϺŵÄÐÎʽ³öÏÖÔÚC51ÖжϺ¯Êý¶¨ÒåÖÐ ÖжϺ¯Êý¶¨ÒåÓï·¨¸ñʽÈçÏ£º

void º¯ÊýÃû(void) interrupt n [using n] {

º¯ÊýÌå }

¹Ø¼ü×Öinterrupt¶¨Òå¸Ãº¯ÊýΪÖжϷþÎñº¯Êý£¬nΪÖжϺš£ ʹÓÃʱӦעÒ⣺

1£©ÔÚÖжϺ¯ÊýÖв»ÄÜʹÓòÎÊý¡£ 2£©ÔÚÖжϺ¯ÊýÖв»ÄÜ´æÔÚ·µ»ØÖµ¡£

3£©ÖжϺ¯ÊýµÄÖ´ÐÐÊÇÓÉÖжÏÔ´µÄÖжÏÇëÇóºóϵͳµ÷Óõġ£

4£©ÖжϺ¯ÊýµÄÖжϺÅÔÚ²»Í¬µÄµ¥Æ¬»úÖÐÆäÊýÁ¿Ò²²»Ïàͬ£¬¾ßÌåÇé¿ö²ì¿´¾ßÌåµÄ´¦ÀíÆ÷Êֲᡣ

9. ÓÃC51±àдÁ÷Ë®µÆ¿ØÖƳÌÐò£¬ÒªÇóÓÉ8051µÄP1¿Ú¿ØÖÆ8¸ö·¢¹â¶þ¼«¹Ü£¨²ÉÓù²Ñô¼«Á¬½Ó£©ÒÀ´ÎÂÖÁ÷µãÁÁ£¬Ñ­»·²»Ö¹¡£

#include #include #define uchar unsigned char #define led P1 void delay(uchar m); //ÉùÃ÷ÑÓʱº¯Êý void main() {

uchar s_data = 0xFE ; while(1) {

led = ~s_data; s_data = _crol_(s_data , 1); delay(200); }

}

void delay(uchar m)

//ÑÓʱº¯Êý(ÐÎʽ²ÎÊým,µ÷ÓÃʱ,m=200)

{

unsigned char a,b,c; for(c=m;c>0;c--)

for(b=142;b>0;b--) for(a=20;a>0;a--); }

10.ÓÃc51±àдÍⲿÖжϡ°0¡±µÄÖжϺ¯Êý£¬¸ÃÖжϺ¯ÊýµÄ¹¦ÄÜʵÏÖ´ÓP1¿Ú¶ÁÈë8λÊý¾Ý´æ·ÅÔÚÒ»Êý×éÖУ¬Èç¹ûÊý¾ÝȫΪ0£¬ÔòÖÃP2.1Êä³ö1£¬·ñÔòP2.1Êä³ö0¡£

#include sbit out P2^1; void main(void) {

IT0=1; /*ÉèÖÃÖжϴ¥·¢·½Ê½Îª±ßÑØ³ö·¢,setb ie0*/ EA=1; /* ´ò¿ªÈ«¾ÖÖжÏ,setb ea*/

EX0=1; /* ´ò¿ªÍⲿÖжÏ0, setb ex0*/ while(1); /*µÈ´ýÖжÏ*/ }

void external0(void) interrupt 0 /*¶¨ÒåÍⲿÖжÏ0ÖжϺ¯Êý´¦Àí³ÌÐò*/ { int a;

EX0=0; /*¹Ø±ÕÍⲿÖжÏ0, clr ex0*/ P1=0xff; a=P1;

if(a) out=1; else out=0; EX0=1; }

µÚ5ÕÂ

£¨×¢£ºÌâºó¸½Óб¾Õ²¹³äϰÌ⣩

1. MCS-51ϵÁе¥Æ¬»úÄÜÌṩ¼¸¸öÖжÏÔ´¡¢¼¸¸öÖжÏÓÅÏȼ¶£¿¸÷¸öÖжÏÔ´µÄÓÅÏȼ¶ÔõÑùÈ·¶¨£¿ÔÚͬһÓÅÏȼ¶ÖУ¬¸÷¸öÖжÏÔ´µÄÓÅÏÈ˳ÐòÔõÑùÈ·¶¨£¿

´ð£ºMCS-51ϵÁе¥Æ¬»úÄÜÌṩ5¸öÖжÏÔ´£¬2¸öÖжÏÓÅÏȼ¶¡£¸÷¸öÖжÏÔ´µÄÓÅÏȼ¶ÊÇÓÉÌØÊ⹦ÄܼĴæÆ÷IPÀ´È·¶¨£¬IPÖк͸÷¸öÖжÏÔ´¶ÔӦλΪ1ʱ£¬´ËÖжÏԴΪ¸ßÓÅÏȼ¶£¬·ñÔòΪµÍÓÅÏȼ¶¡£ÔÚͬһÓÅÏȼ¶ÖУ¬¸÷¸öÖжÏÔ´µÄÓÅÏÈ˳ÐòÊÇÓÉ×ÔÈ»ÓÅÏȼ¶À´È·¶¨µÄ¡£

2. ¼òÊöMCS-51ϵÁе¥Æ¬»úµÄÖжÏÏìÓ¦¹ý³Ì¡£

´ð£ºMCS-51ϵÁе¥Æ¬»úµÄÖжÏÏìÓ¦¹ý³ÌÊǰ´ÕÕÒÔÏÂ˳ÐòÖ´Ðеģº¿ªÖжÏ-----ÖжÏÇëÇó------ÖжÏÅжÏ-------ÖжÏÏìÓ¦-------ÖжϷµ»Ø¡£

3. MCS-51ϵÁе¥Æ¬»úµÄÍⲿÖжÏÓÐÄÄÁ½ÖÖ´¥·¢·½Ê½£¿ÈçºÎÉèÖã¿¶ÔÍⲿÖжÏÔ´µÄÖжÏÇëÇóÐźÅÓкÎÒªÇó£¿

´ð£ºMCS-51ϵÁе¥Æ¬»úµÄÍⲿÖжÏÓÐµçÆ½´¥·¢ºÍ±ßÑØ´¥·¢Á½ÖÖ·½Ê½¡£ÊÇÓÉÌØÊ⹦ÄܼĴæÆ÷TCONÖÐIT0,IT1µÄ״̬ȷ¶¨µÄ£¬È磺IT0Ϊ1ʱÍⲿÖжÏ0Ϊ±ßÑØ´¥·¢·½Ê½£¬µ±INT0ÍⲿÒý½Å³öÏÖϽµÑØÊ±ÏòCPUÌá³öÖжÏÇëÇó£¬ ·ñÔòΪµçƽ´¥·¢·½Ê½£¬µ±INT0ÍⲿÒý½Å³öÏÖµÍµçÆ½Ê±ÏòCPUÌá³öÖжÏÇëÇó¡£

4. MCS-51µ¥Æ¬»úÖжÏÏìӦʱ¼äÊÇ·ñ¹Ì¶¨£¿ÎªÊ²Ã´£¿

´ð£ºMCS-51µ¥Æ¬»úÖжÏÏìӦʱ¼ä²»¹Ì¶¨£¬ÒòΪµ±ÖжÏÔ´ÏòCPUÌá³öÖжÏÇëÇóʱ£¬CPUÕýÔÚÖ´ÐеÄÖ¸ÁîµÄÖ¸ÁîÖÜÆÚÊDz»Ò»ÑùµÄ¡£

5. MCS-51µ¥Æ¬»úÈç¹ûÀ©Õ¹6¸öÖжÏÔ´£¬¿É²ÉÓÃÄÄЩ·½·¨£¿ÈçºÎÈ·¶¨ËüÃǵÄÓÅÏȼ¶£¿ ´ð£ºÒ»°ã¿É²ÉÈ¡ÖжϼӲéѯ·½Ê½£¬Èí¼þÏȲéѯµ½µÄΪ¸ßÓÅÏȼ¶£¬×îºó²éѯµ½µÄΪµÍÓÅÏȼ¶¡£

6. ÊÔÓÃÖжϼ¼ÊõÉè¼ÆÒ»·¢¹â¶þ¼«¹ÜLEDÉÁ˸µç·£¬ÉÁ˸ÖÜÆÚΪ2s£¬ÒªÇóÁÁ1sÔÙ°µ1s¡£ Ìáʾ£ºÔÚÍⲿÖжÏ0µÄ¿ØÖÆÏ£¬Ê¹Óö¨Ê±Æ÷ʵÏÖÑÓʱ¡£

7. µ±ÕýÔÚÖ´ÐÐijһÖжÏÔ´µÄÖжϷþÎñ³ÌÐòʱ£¬Èç¹ûÓÐеÄÖжÏÇëÇó³öÏÖ£¬ÎÊÔÚʲôÇé¿öÏ¿ÉÏìӦеÄÖжÏÇëÇó£¿ÔÚʲôÇé¿öϲ»ÄÜÏìӦеÄÖжÏÇëÇó£¿

´ð£ºµ±ÕýÔÚÖ´ÐÐijһÖжÏÔ´µÄÖжϷþÎñ³ÌÐòʱ£¬Èç¹ûÓÐеÄÖжÏÇëÇó³öÏÖ£¬µ±ÐÂÖжÏÔ´Öжϼ¶±ð±ÈÕýÔÚÖ´ÐÐÖжÏÔ´µÄÖжϼ¶±ð¸ßʱ¿ÉÏìӦеÄÖжÏÇëÇ󣬷ñÔò²»ÄÜÏìӦеÄÖжÏÇëÇó¡£

8. Ò첽ͨÐźÍͬ²½Í¨ÐŵÄÖ÷񻂿±ðÊÇʲô£¿MCS-51´®ÐпÚÓÐûÓÐͬ²½Í¨ÐʦÄÜ£¿ ´ð°¸£º

Ò첽ͨÐÅÒòΪÿ֡Êý¾Ý¶¼ÓÐÆðʼλºÍֹͣ룬ËùÒÔ´«ËÍÊý¾ÝµÄËÙÂÊÊܵ½ÏÞÖÆ¡£µ«Ò첽ͨÐŲ»ÐèÒª´«ËÍͬ²½Âö³å£¬×Ö·ûÖ¡µÄ³¤¶È²»ÊÜÏÞÖÆ£¬¶ÔÓ²¼þÒªÇó½ÏµÍ£¬Òò¶øÔÚÊý¾Ý´«ËÍÁ¿²»ºÜ´ó¡£Í¬²½Í¨ÐÅÒ»´Î¿ÉÒÔÁ¬Ðø´«Ëͼ¸¸öÊý¾Ý£¬Ã¿¸öÊý¾Ý²»ÐèÆðʼλºÍֹͣ룬Êý¾ÝÖ®¼ä²»Áô¼ä϶£¬Òò¶øÊý¾Ý´«ÊäËÙÂʸßÓÚÒ첽ͨÐÅ¡£µ«Í¬²½Í¨ÐÅÒªÇóÓÃ׼ȷµÄʱÖÓÀ´ÊµÏÖ·¢ËͶËÓë½ÓÊÕ¶ËÖ®¼äµÄÑϸñͬ²½¡£

MCS-51´®ÐпÚÓÐͬ²½Í¨ÐʦÄÜ¡£

9. ½âÊÍÏÂÁиÅÄ

1) ²¢ÐÐͨÐÅ¡¢´®ÐÐͨÐÅ¡£ 2) ²¨ÌØÂÊ¡£

3) µ¥¹¤¡¢°ëË«¹¤¡¢È«Ë«¹¤¡£ 4) ÆæÅ¼Ð£Ñé¡£

´ð°¸£º

£¨1£©²¢ÐÐͨÐÅ£ºÊý¾ÝµÄ¸÷λͬʱ½øÐд«ËÍ¡£ÆäÌØµãÊÇ´«ËÍËٶȿ졢ЧÂʸߣ¬Êý¾ÝÓжàÉÙ룬¾ÍÐèÒªÓжàÉÙ¸ù´«ÊäÏß¡£µ±Êý¾ÝλÊý½Ï¶àºÍ´«Ë;àÀë½ÏԶʱ£¬¾Í»áµ¼ÖÂͨÐÅÏß·³É±¾Ìá¸ß, Òò´ËËüÊʺÏÓڶ̾àÀë´«Êä¡£

´®ÐÐͨÐÅ£ºÊý¾ÝһλһλµØ°´Ë³Ðò½øÐд«ËÍ¡£ÆäÌØµãÊÇÖ»ÐèÒ»¶Ô´«ÊäÏ߾ͿÉʵÏÖͨÐÅ£¬µ±´«ÊäµÄÊý¾Ý½Ï¶à¡¢¾àÀë½ÏԶʱ£¬Ëü¿ÉÒÔÏÔÖø¼õÉÙ´«ÊäÏߣ¬½µµÍͨÐųɱ¾£¬µ«ÊÇ´®Ðд«Ë͵ÄËÙ¶ÈÂý¡£

£¨2£©²¨ÌØÂÊ£ºÃ¿ÃëÖÓ´«Ë͵Ķþ½øÖÆÊýÂëµÄλÊý³ÆÎª²¨ÌØÂÊ£¨Ò²³Æ±ÈÌØÊý£©£¬µ¥Î»ÊÇbps£¨bit per second£©£¬¼´Î»/Ãë¡£

£¨3£©µ¥¹¤£ºÖ»ÔÊÐíÊý¾ÝÏòÒ»¸ö·½Ïò´«ËÍ£¬¼´Ò»·½Ö»ÄÜ·¢ËÍ£¬ÁíÒ»·½Ö»ÄܽÓÊÕ¡£

°ëË«¹¤£ºÔÊÐíÊý¾ÝË«Ïò´«ËÍ£¬µ«ÓÉÓÚÖ»ÓÐÒ»¸ù´«ÊäÏߣ¬ÔÚͬһʱ¿ÌÖ»ÄÜÒ»·½·¢ËÍ£¬ÁíÒ»·½½ÓÊÕ¡£

ȫ˫¹¤£ºÔÊÐíÊý¾Ýͬʱ˫Ïò´«ËÍ£¬ÓÉÓÚÓÐÁ½¸ù´«ÊäÏߣ¬ÔÚAÕ¾½«Êý¾Ý·¢Ë͵½BÕ¾µÄͬʱ£¬Ò²ÔÊÐíBÕ¾½«Êý¾Ý·¢Ë͵½AÕ¾¡£

£¨4£©ÆæÅ¼Ð£Ñ飺Ϊ±£Ö¤Í¨ÐÅÖÊÁ¿£¬ÐèÒª¶Ô´«Ë͵ÄÊý¾Ý½øÐÐУÑé¡£¶ÔÓÚÒ첽ͨÐÅ£¬³£ÓõÄУÑé·½·¨ÊÇÆæÅ¼Ð£Ñé·¨¡£

²ÉÓÃÆæÅ¼Ð£Ñé·¨£¬·¢ËÍʱÔÚÿ¸ö×Ö·û£¨»ò×Ö½Ú£©Ö®ºó¸½¼ÓһλУÑé룬Õâ¸öУÑéλ¿ÉÒÔÊÇ¡°0¡±»ò¡°1¡±£¬ÒÔ±ãʹУÑéλºÍËù·¢Ë͵Ä×Ö·û£¨»ò×Ö½Ú£©ÖС°1¡±µÄ¸öÊýÎªÆæÊý¡ª¡ª³ÆÎªÆæÐ£Ñ飬»òΪżÊý¡ª¡ª³ÆÎªÅ¼Ð£Ñé¡£½ÓÊÕʱ£¬¼ì²éËù½ÓÊÕµÄ×Ö·û£¨»ò×Ö½Ú£©Á¬Í¬ÆæÅ¼Ð£ÑéλÖС°1¡±µÄ¸öÊýÊÇ·ñ·ûºÏ¹æ¶¨¡£Èô²»·ûºÏ£¬¾ÍÖ¤Ã÷´«ËÍÊý¾ÝÊܵ½¸ÉÈÅ·¢ÉúÁ˱仯£¬CPU¿É½øÐÐÏàÓ¦´¦Àí¡£

10. MCS-51´®ÐпڿØÖƼĴæÆ÷SCONÖÐSM2¡¢TB8¡¢RB8ÓкÎ×÷Óã¿Ö÷ÒªÔÚÄļ¸ÖÖ·½Ê½ÏÂʹÓã¿ ´ð°¸£º

SM2£º¶à»úͨÐÅ¿ØÖÆÎ»£¬Ö÷ÒªÔÚ·½Ê½1¡¢2¡¢3ÏÂʹÓã» TB8£º´æ·Å·¢ËÍÊý¾ÝµÄµÚ9룬Ö÷ÒªÔÚ·½Ê½2¡¢3ÏÂʹÓã»

RB8£º´æ·Å½ÓÊÕÊý¾ÝµÄµÚ9λ»òֹͣ룬Ö÷ÒªÔÚ·½Ê½1¡¢2¡¢3ÏÂʹÓá£

11. ÊÔ·ÖÎö±È½ÏMCS-51´®ÐпÚÔÚËÄÖÖ¹¤×÷·½Ê½Ï·¢ËͺͽÓÊÕÊý¾ÝµÄ»ù±¾Ìõ¼þºÍ²¨ÌØÂʵIJúÉú·½·¨¡£

´ð°¸£º·¢ËÍÊý¾ÝµÄ»ù±¾Ìõ¼þ£º

·½Ê½0¡¢1¡¢2¡¢3£ºCPUÖ´ÐÐÒ»Ìõ½«Êý¾ÝдÈë·¢ËÍ»º³åÆ÷SBUFµÄÖ¸Á ½ÓÊÕÊý¾ÝµÄ»ù±¾Ìõ¼þ£º

·½Ê½0£ºÓÃÈí¼þʹREN=1£¨Í¬Ê±RI=0£©£»·½Ê½1£ºÓÃÈí¼þʹREN=1£¬Ò»Ö¡Êý¾Ý½ÓÊÕÍê±Ïºó£¬±ØÐëͬʱÂú×ãÒÔÏÂÁ½¸öÌõ¼þ£º¢ÙRI=0£»¢ÚSM2=0»ò½ÓÊÕµ½µÄֹͣλΪ1£¬Õâ´Î½ÓÊÕ²ÅÕæÕý

ÓÐЧ£¬½«8λÊý¾ÝËÍÈëSBUF£¬Í£Ö¹Î»ËÍRB8£¬ÖÃλRI¡£·ñÔò£¬Õâ´Î½ÓÊÕµ½µÄÊý¾Ý½«Òò²»ÄÜ×°ÈëSBUF¶ø¶ªÊ§¡£·½Ê½2¡¢3£ºÈí¼þʹREN=1£¬Í¬Ê±Âú×ãÒÔÏÂÁ½¸öÌõ¼þ£º¢Ù RI=0£»¢Ú SM2=0»ò½ÓÊÕµ½µÄµÚ9λÊý¾ÝΪ1£¨SM2=1£©£¬ÔòÕâ´Î½ÓÊÕÓÐЧ£¬8λÊý¾Ý×°ÈëSBUF£¬µÚ9λÊý¾Ý×°ÈëRB8£¬²¢ÓÉÓ²¼þÖÃλRI¡£·ñÔò£¬½ÓÊÕµÄÕâÒ»Ö¡Êý¾Ý½«¶ªÊ§¡£ ²¨ÌØÂʵIJúÉú·½·¨£º

ÔÚ·½Ê½0Ï£¬´®ÐпڵIJ¨ÌØÂÊÊǹ̶¨µÄ£¬¼´²¨ÌØÂÊ=fosc /12£»ÔÚ·½Ê½1¡¢3Ï£¬´®Ðпڲ¨ÌØÂÊÓɶ¨Ê±Æ÷T1µÄÒç³öÂʺÍSMODֵͬʱ¾ö¶¨¡£ÏàÓ¦¹«Ê½Îª£º²¨ÌØÂÊ=2SMOD¡ÁT1Òç³öÂÊ/32£»ÔÚ·½Ê½2Ï£¬´®ÐпڵIJ¨ÌØÂÊ¿ÉÓÉPCONÖеÄSMODλ¿ØÖÆ£ºÈôʹSMOD=0£¬ÔòËùÑ¡²¨ÌØÂÊΪfosc/64£»ÈôʹSMOD=1£¬Ôò²¨ÌØÂÊΪfosc/32¡£¼´ 2SMOD

¡Áfosc ²¨ÌØÂÊ= 64

12. ΪºÎT1ÓÃ×÷´®Ðпڲ¨ÌØÂÊ·¢ÉúÆ÷ʱ³£ÓÃģʽ2£¿Èôfosc=6MHz£¬ÊÔÇó³öT1ÔÚģʽ2Ï¿ÉÄܲúÉúµÄ²¨ÌØÂʵı仯·¶Î§¡£

´ð°¸£º¶¨Ê±Æ÷T1×÷Ϊ²¨ÌØÂÊ·¢ÉúÆ÷¿É¹¤×÷ÓÚģʽ0¡¢Ä£Ê½1ºÍģʽ2¡£ÆäÖÐģʽ2ÔÚT1Òç³öºó¿É×Ô¶¯×°Èëʱ¼ä³£Êý£¬±ÜÃâÁË֨װ²ÎÊý£¬Òò¶øÔÚʵ¼ÊÓ¦ÓÃÖгý·Ç²¨ÌØÂʺܵͣ¬Ò»°ã¶¼²ÉÓÃģʽ2¡£

Èôfosc=6MHz£¬T1ÔÚģʽ2Ï¿ÉÄܲúÉúµÄ²¨ÌØÂʵı仯·¶Î§Îª£º61.04 bps ¡« 15625 bps¡£

13. ¼òÊö¶à»úͨÐÅÔ­Àí¡£

´ð°¸£ºµ±Ö÷»úÑ¡ÖÐÓëÆäͨÐŵĴӻúºó£¬Ö»ÓиôӻúÄܹ»ÓëÖ÷»úͨÐÅ£¬ÆäËû´Ó»ú²»ÄÜÓëÖ÷»ú½øÐÐÊý¾Ý½»»», ¶øÖ»ÄÜ×¼±¸½ÓÊÕÖ÷»ú·¢À´µÄµØÖ·Ö¡¡£ÉÏÊöÒªÇóÊÇͨ¹ýSCON¼Ä´æÆ÷ÖеÄSM2ºÍTB8À´ÊµÏֵġ£µ±Ö÷»ú·¢Ë͵ØÖ·Ö¡Ê±Ê¹TB8=1£¬·¢ËÍÊý¾Ý֡ʱʹTB8=0£¬TB8ÊÇ·¢Ë͵ÄÒ»Ö¡Êý¾ÝµÄµÚ9룬´Ó»ú½ÓÊպ󽫵Ú9λÊý¾Ý×÷ΪRB8£¬ÕâÑù¾ÍÖªµÀÖ÷»ú·¢À´µÄÕâÒ»Ö¡Êý¾ÝÊǵØÖ·»¹ÊÇÊý¾Ý¡£ÁíÍ⣬µ±Ò»Ì¨´Ó»úµÄSM2=0ʱ£¬¿ÉÒÔ½ÓÊÕµØÖ·Ö¡»òÊý¾ÝÖ¡£¬¶øµ±SM2=1ʱֻÄܽÓÊÕµØÖ·Ö¡£¬Õâ¾ÍÄÜʵÏÖÖ÷»úÓëËùÑ¡´Ó»úÖ®¼äµÄµ¥¶ÀͨÐÅ¡£

14. ÊÔÓÃ8051´®ÐпÚÀ©Õ¹I/O¿Ú£¬¿ØÖÆ16¸ö·¢¹â¶þ¼«¹Ü×ÔÓÒÏò×óÒÔÒ»¶¨ËÙ¶ÈÂÖÁ÷·¢¹â£¬»­³öµç·²¢±àд³ÌÐò¡£

³ÌÐòÈçÏ£º

#include

#define uchar unsigned char #define uint unsigned int sbit high8 = P1^1; sbit low8 = P1^0; uchar a = 0x80; uchar count = 0x08;

void init() { SCON = 0x00; //´®¿Ú¹¤×÷·½Ê½0 ES = 1; //¿ª´®¿ÚÖÐ¶Ï EA = 1; //¿ª×ÜÖÐ¶Ï low8 = 1; //´ò¿ªµÍ8λ²¢ÐÐÊä³ö high8 = 0; //¹Ø±Õ¸ß8λ²¢ÐÐÊä³ö

}

void delay(void) //M ms ÑÓʱ³ÌÐò Îó²î 0us (6M) {

unsigned char a,b,c; for(c=23;c>0;c--)

for(b=152;b>0;b--) for(a=70;a>0;a--); }

int main() {

init(); SBUF = 0x00; //´®Ðпڷ¢ËÍÊý¾Ý while(1); //µÈ´ýÖжÏ

}

void recv() interrupt 4 { TI = 0; //Çå³ý·¢Ëͱê־λ

SBUF = a; delay(); a = a >> 1; //Êý¾ÝÏòÓÒÒÆÎ»Ò»´Î if(a == 0) //ÅжÏaÊÇ·ñΪ0

a= 0x80; count --; if(count == 0) //ÅжÏÊÇ·ñÏÔʾ¹»8´Î

{ count = 0x08; //ÖÃÊýÈí¼þ¼ÆÊýÆ÷

high8 = ~high8;

low8 = ~low8; //Çл»¸ßµÍ8λ²¢ÐÐÊä³ö

} }

15. ÊÔÉè¼ÆÒ»¸ö8051µ¥Æ¬»úµÄË«»úͨÐÅϵͳ£¬´®Ðпڹ¤×÷ÔÚ·½Ê½1£¬²¨ÌØÂÊΪ2400bps£¬±à³Ì½«¼×»úƬÄÚRAMÖÐ40H¡«4FHµÄÊý¾Ý¿éͨ¹ý´®Ðпڴ«Ë͵½ÒÒ»úƬÄÚRAMµÄ40H¡«4FHµ¥ÔªÖС£ ´ð°¸£º

Ë«·½Ô¼¶¨µÄͨÐÅЭÒéÈçÏ£º

¼×»úÏÈ·¢ËÍÇëÇóÒÒ»ú½ÓÊÕÐźš°0AAH¡±£¬ÒÒ»úÊÕµ½¸ÃÐźźó£¬ÈôΪ׼±¸ºÃ״̬£¬Ò»¸öÔò·¢ËÍÊý¾Ý¡°0BBH¡±×÷ΪӦ´ðÐźţ¬±íʾͬÒâ½ÓÊÕ¡£µ±¼×»ú·¢ËÍÍê16¸ö×Ö½Úºó£¬ÔÙÏòÒÒ

»ú·¢ËÍÒ»¸öÀÛ¼ÓУÑéºÍ¡£Ð£ÑéºÍÊÇÕë¶ÔÊý¾Ý¿é½øÐе쬼´ÔÚÊý¾Ý·¢ËÍʱ£¬·¢ËÍ·½¶Ô¿éÖеÄÊý¾Ý¼òµ¥ÇóºÍ£¬²úÉúÒ»¸öµ¥×Ö½ÚУÑé×Ö·û£¨Ð£ÑéºÍ£©£¬¸½¼Óµ½Êý¾Ý¿é½áβ¡£ÔÚÊý¾Ý½ÓÊÕʱ£¬½ÓÊÕ·½Ã¿½ÓÊÕÒ»¸öÊý¾ÝÒ²¼ÆËãÒ»´ÎУÑéºÍ£»½ÓÊÕÍêÊý¾Ý¿éºó£¬ÔÙ½ÓÊÕ¼×»ú·¢Ë͵ÄУÑéºÍ£¬²¢½«½ÓÊÕµ½µÄУÑéºÍÓëÒÒ»úÇó³öµÄУÑéºÍ½øÐбȽϣ¬Ïò¼×»ú·¢ËÍÒ»¸ö״̬×Ö£¬±íʾÕýÈ·£¨00H£©»ò³ö´í£¨0FFH£©£¬³ö´íÔòÒªÇó¼×»úÖØ·¢¡£¼×»úÊÕµ½ÊÕµ½ÒÒ»ú·¢Ë͵ĽÓÊÕÕýÈ·Ó¦´ðÐźţ¨00H£©ºó£¬¼´½áÊø·¢ËÍ£¬·ñÔò£¬¾ÍÖØ·¢Ò»´ÎÊý¾Ý¡£

¼×»ú²ÉÓòéѯ·½Ê½½øÐÐÊý¾Ý·¢ËÍ£¬ÒÒ»ú²ÉÓÃÖжϷ½Ê½½øÐÐÊý¾Ý½ÓÊÕ¡£Ë«·½Ô¼¶¨´«Êä²¨ÌØÂÊΪ2400bps£¬Á½»úÖ÷Ƶ¾ùΪ11.059MHz£¬Ë«»ú´®Ðпڶ¼¹¤×÷ÓÚ·½Ê½1£¬²é±í6-2¿ÉÖªSMOD=0£¬¶¨Ê±Æ÷T1²ÉÓù¤×÷ģʽ2£¬³õֵΪF4H¡£

¼×»ú·¢ËÍ×Ó³ÌÐò£º

#include #include

#define uchar unsigned char #define uint unsigned int uint i;

char data *p; //¶¨ÒåÒ»¸öÖ¸ÏòƬÄÚRAMµØÖ·µÄÖ¸Õë void init() {

TMOD = 0x20; //¶¨Ê±Æ÷T1¹¤×÷ÔÚ·½Ê½2

TH1 = 0xF4; // ²¨ÌØÂÊΪ2400bit/s

ES = 1; //¿ª´®¿ÚÖÐ¶Ï EA = 1; //¿ª×ÜÖÐ¶Ï SCON = 0x50; //´®¿Ú¹¤×÷ÔÚ·½Ê½1

PCON = 0x00; //SMOD = 0£»

TR1=1; //´ò¿ª¶¨Ê±Æ÷T1 }

void send(uchar data1)

//·¢ËÍ×Ó³ÌÐò

TL1 = 0xF4;

{

SBUF = data1; while(TI == 0); TI = 0; }

void main() {

uchar i,ack,checksum = 0; init();

p=0x40;//ƬÄÚRAMµØÖ·Îª0x40 for(i = 0;i < 16; i++) //³õʼ»¯Òª·¢Ë͵ÄÊý¾Ý

p[i] = i+1; while(1) { send(0xaa); while(!RI);

RI = 0;

ack = SBUF;

if(ack == 0xbb) { for(i = 0 ;i < 16 ;i ++) {

send(p[i]); //·¢ËÍÊý¾Ý checksum = checksum + p[i]; //ÇóУÑéºÍ

}

send(checksum); checksum = 0; while(!RI); RI = 0;

ack = SBUF; if(ack == 0x00) while(1);

//ÇåУÑéºÍ

//ÅжÏÊý¾ÝÊÇ·ñΪ0 //Í£Ö¹·¢ËÍ

} }

}

ÒÒ»ú½ÓÊÕ×Ó³ÌÐò£º

#include #include

#define uchar unsigned char #define uint unsigned int

uchar checksum = 0,i = 0,checksum_r;

char data *p; //¶¨ÒåÒ»¸öÖ¸ÏòƬÄÚRAMµØÖ·µÄÖ¸Õë

bit rec_flag = 0; void init() { TMOD = 0x20; //¶¨Ê±Æ÷T1¹¤×÷ÔÚ·½Ê½2

TH1 = 0xF4; // ²¨ÌØÂÊΪ2400bit/s

TL1 = 0xF4; ES = 1; //¿ª´®¿ÚÖÐ¶Ï EA = 1; //¿ª×ÜÖÐ¶Ï SCON = 0x50; //´®¿Ú¹¤×÷ÔÚ·½Ê½1 PCON = 0x00; //SMOD = 0£» TR1=1; //´ò¿ª¶¨Ê±Æ÷T1

}

void send(uchar data1) //´®¿Ú·¢ËÍ×Ó³ÌÐò

{

SBUF = data1; while(TI == 0); TI = 0;

}

void main() {

init(); p=0x40; //ƬÄÚRAMµØÖ·Îª0x20 while(1) //µÈ´ýÖÐ¶Ï { } }

void recv() interrupt 4 {

uchar ack = 0; if(RI) {

RI = 0; ack = SBUF;

//Çå³ý½ÓÊÕ±ê־λ

}

if(ack == 0xaa) //ÅжÏÊÇ·ñΪÇëÇó·¢ËÍÊý¾ÝÖ¡ { //·¢ËÍÓ¦´ðÐźŠsend(0xbb);

rec_flag = 1; //Êý¾Ý½ÓÊÕ±ê־λÖÃ1 } else { if(!rec_flag) //½ÓÊյIJ»ÊÇÊý¾Ý { checksum_r = SBUF;

if(checksum == checksum_r)//·¢ËÍÊý¾ÝµÄУÑéºÍÓë½ÓÊÕÊý¾ÝУÑéºÍ±È½Ï send(0x00); //ÏàµÈ·¢ËÍ00 else send(0xff); //²»µÈ·¢ËÍ0xff checksum = 0; } if(rec_flag) { p[i] = SBUF; checksum = checksum + p[i]; //ÇóУÑéºÍ i ++; if(i == 16) { i = 0; rec_flag = 0; } } } }

16. 8051ÒÔ·½Ê½2½øÐд®ÐÐͨÐÅ£¬¼Ù¶¨²¨ÌØÂÊΪ1200bps£¬µÚ9λ×÷ÆæÅ¼Ð£Ñé룬ÒÔÖжϷ½Ê½·¢ËÍ¡£Çë±àд³ÌÐò¡£ ´ð°¸£º

Ö÷³ÌÐò£º

#include

#define uchar unsigned char uchar i = 0; uchar a[10]; void main() {

SCON = 0x80; PCON = 0; ES = 1; EA = 1; while(1); }

void uart() interrupt 4 {

TI = 0;

if( i < 10 ) { ACC = a[i]; TB8 = P; SBUF = a[i]; i++; } }

17. 8051ÒÔ·½Ê½3½øÐд®ÐÐͨÐÅ£¬¼Ù¶¨²¨ÌØÂÊΪ1200bps£¬µÚ9λ×÷ÆæÅ¼Ñé룬ÒÔ²éѯ·½Ê½½ÓÊÕ¡£Çë±àд³ÌÐò¡£

´ð°¸£º

#include

#define uchar unsigned char uchar i,flag; uchar a[10]; void main() {

TMOD = 0x20; TL1 = 0xe8; TH1 = 0xe8; TR1 = 1;

SCON = 0xd0; PCON = 0; while(1) {

} }

if(RI) { RI = 0; ACC = SBUF; if( P == 0 ) { if( RB8 == 1 ) flag = 1; } else { if( RB8 == 1 ) { flag = 0; if( i < 10 ) { a[i]= SBUF; i++; } } else flag = 1; } }

18. RS-232C×ÜÏß±ê×¼ÊÇÈçºÎ¶¨ÒåÆäÂß¼­µçƽµÄ£¿Êµ¼ÊÓ¦ÓÃÖпÉÒÔ½«MCS-51µ¥Æ¬»ú´®

ÐпںÍPC»úµÄ´®ÐпÚÖ±½ÓÏàÁ¬Âð£¿ÎªÊ²Ã´£¿ ´ð°¸£º

RS-232C²ÉÓøºÂß¼­£¬¼´Âß¼­1Óã­5V¡«£­15V±íʾ£¬Âß¼­0Óã«5V¡«£«15V±íʾ¡£ PC»úÅäÖõÄÊÇRS-232C±ê×¼½Ó¿Ú£¬ÓëMCS-51µ¥Æ¬»úÊäÈë¡¢Êä³öµçƽ²»¼æÈÝ¡£Òò´Ëʵ¼ÊÓ¦ÓÃÖв»Äܽ«MCS-51µ¥Æ¬»ú´®ÐпںÍPC»úµÄ´®ÐпÚÖ±½ÓÏàÁ¬¡£

19. ΪʲôRS-485×ÜÏß±ÈRS-232C×ÜÏß¾ßÓиü¸ßµÄͨОàÀëºÍ¸üÔ¶µÄͨОàÀ룿 ´ð°¸£º

RS-232CÓÉÓÚ·¢ËÍÆ÷ºÍ½ÓÊÕÆ÷Ö®¼ä¾ßÓй«¹²Ðźŵأ¬²»¿ÉÄÜʹÓÃË«¶ËÐźţ¬Òò´Ë¹²Ä£ÔëÉù»áñîºÏµ½ÐźÅϵͳÖУ¬´Ó¶øÏÞÖÆÁËRS-232CµÄÐźŴ«ÊäËÙÂʺÍͨОàÀë¡£¶øRS-485×ÜÏßÎÞÂÛ·¢ËÍ»¹ÊǽÓÊÕÊý¾Ý£¬¾ùÓÃÁ½ÌõÏß´«ËÍË«¶Ë£¨²î·Ö£©Ðźţ¬Òò¶ø´ó´óÌá¸ßÁËͨÐÅËÙÂʺÍͨОàÀë¡£

¶¨Ê±Æ÷²¹³äÁ·Ï°Ì⣺

1£®8051¶¨Ê±Æ÷/¼ÆÊýÆ÷ÓÐÄļ¸ÖÖ¹¤×÷ģʽ£¿¸÷ÓÐÊ²Ã´ÌØµã£¿

´ð£º8051¶¨Ê±Æ÷/¼ÆÊýÆ÷ÓÐ0£¬1£¬2£¬3ËÄÖÖ¹¤×÷ģʽ¡£Ä£Ê½0Ϊ13λ1¶¨Ê±Æ÷/¼ÆÊýÆ÷£¬Ä£Ê½1Ϊ16λ1¶¨Ê±Æ÷/¼ÆÊýÆ÷£¬Ä£Ê½2Ϊ×Ô¶¯¸³³õÖµµÄ8λ¶¨Ê±Æ÷/¼ÆÊýÆ÷£¬Ä£Ê½3¿ÉÒÔÔö¼ÓÒ»¸ö8λ¶¨Ê±Æ÷£¨T1ûÓÐģʽ3£©¡£

2£®8051¶¨Ê±Æ÷×÷¶¨Ê±ºÍ¼ÆÊýʱ£¬Æä¼ÆÊýÂö³å·Ö±ðÓÉË­Ìṩ£¿

´ð£º8051¶¨Ê±Æ÷×÷¶¨Ê±Æ÷ʱ£¬ÊäÈëµÄ¼ÇÊýÂö³åÊÇÓɾ§ÌåÕñµ´Æ÷µÄÊä³ö¾­12·ÖƵºóµÃµ½µÄ£¬ËùÒÔ¶¨Ê±Æ÷¿É¿´×÷ÊǶԵ¥Æ¬»ú»úÆ÷ÖÜÆÚµÄ¼ÆÊýÆ÷¡£8051¶¨Ê±Æ÷×÷¼ÆÊýÆ÷ʱ£¬Ôò¶ÔÍⲿʼþ½øÐмÆÊý¡£

3£®8051¶¨Ê±Æ÷µÄÃÅ¿ØÐźÅGATEΪ1ʱ£¬¶¨Ê±Æ÷ÈçºÎÆô¶¯£¿

´ð£º8051¶¨Ê±Æ÷µÄÃÅ¿ØÐźÅGATEΪ1ʱ£¬Ö»ÓÐINT0£¨»òINT1£©Òý½ÅΪ¸ßµçƽÇÒTR0£¨»òTR1£©ÖÃ1ʱ£¬ÏàÓ¦µÄT0»òT1²ÅÄÜѡͨ¹¤×÷¡£

4£®¶¨Ê±Æ÷/¼ÆÊýÆ÷0ÒÑÔ¤ÖÃΪ156£¬ÇÒÑ¡¶¨ÓÃÓÚģʽ2µÄ¼ÆÊý·½Ê½£¬ÏÖÔÚT0Òý½ÅÉÏÊäÈëÖÜÆÚΪ1msµÄÂö³å£¬ÎÊ£º

(1) ´Ëʱ¶¨Ê±Æ÷/¼ÆÊýÆ÷0µÄʵ¼ÊÓÃ;ÊÇʲô£¿ (2) ÔÚʲôÇé¿öÏ£¬¶¨Ê±Æ÷/¼ÆÊýÆ÷0Òç³ö£¿ ´ð£º£¨1£©´Ëʱ¶¨Ê±Æ÷/¼ÆÊýÆ÷0µÄʵ¼ÊÓÃ;ÊÇ0¡£1SÂö³åÐźŷ¢ÉúÆ÷¡£ £¨2£©µ±T0ÿ¼ÇÊý100´Îºó¶¨Ê±Æ÷/¼ÆÊýÆ÷0Òç³ö¡£

5£®Éèfosc=12MHz£¬¶¨Ê±Æ÷0µÄ³õʼ»¯³ÌÐòºÍÖжϷþÎñ³ÌÐòÈçÏ£º

MAIN:

MOV MOV MOV SETB ?

TH0, #9DH

TL0, #0D0H TMOD, #01H TR0

ÖжϷþÎñ³ÌÐò£º

MOV MOV

? RETI

TH0, #9DH TL0, #0D0H

ÎÊ£º(1) ¸Ã¶¨Ê±Æ÷¹¤×÷ÓÚʲô·½Ê½£¿

(2) ÏàÓ¦µÄ¶¨Ê±Ê±¼ä»ò¼ÆÊýÖµÊǶàÉÙ£¿ ´ð£º£¨1£©¸Ã¶¨Ê±Æ÷ÒÔģʽ1¹¤×÷ÓÚ¶¨Ê±·½Ê½¡£ £¨2£©ÏàÓ¦µÄ¶¨Ê±Ê±¼äΪ25¡£136ms.

6£®8051µ¥Æ¬»úµÄfosc=6MHz£¬Èç¹ûÒªÇó¶¨Ê±Ê±¼ä·Ö±ðΪ0.1msºÍ5ms£¬µ±T0¹¤×÷ÔÚģʽ0¡¢Ä£Ê½1ºÍģʽ2ʱ£¬·Ö±ðÇó³ö¶¨Ê±Æ÷µÄ³õÖµ¡£

´ð£º£¨1£©¶¨Ê±Ê±¼äΪ0.1msʱ£ºÄ£Ê½0³õֵΪ8142¡¢Ä£Ê½1³õֵΪ65486£¬Ä£Ê½2³õÖµ206¡£

£¨2£©¶¨Ê±Ê±¼äΪ5msʱ£ºÄ£Ê½0³õֵΪ5692¡¢Ä£Ê½1³õֵΪ63036£¬Ä£Ê½2´Ëʱ¶¨Ê±Ê±¼ä²»¹»¡£

7£®ÒÔ¶¨Ê±Æ÷1½øÐÐÍⲿʼþ¼ÆÊý£¬Ã¿¼ÆÊý1000¸öÂö³åºó£¬¶¨Ê±Æ÷1תΪ¶¨Ê±¹¤×÷·½Ê½¡£¶¨Ê±10msºó£¬ÓÖתΪ¼ÆÊý·½Ê½£¬Èç´ËÑ­»·²»Ö¹¡£Éèfosc=6MHz£¬ÊÔÓÃģʽ1±à³Ì¡£

½â£ºÏÈÈ·¶¨T1×÷Ϊ¼ÆÊýÆ÷ʱ³õֵΪ£º64536£¨0FC68H£© T1×÷Ϊ¶¨Ê±Æ÷ʱ³õֵΪ£º60536£¨0EC78H£© ³ÌÐòÈçÏ£º

#include void main() {

TR1 = 1; while(1)

{ } }

TMOD = 0x50; TL1 = 0x68; TH1 = 0xfc;

while(TF1 == 0); TMOD = 0x10; TL1 = 0x78; TH1 = 0xe0; while(TF1 == 0);

8£®ÒÑÖª8051µ¥Æ¬»úµÄfosc=6MHz£¬ÊÔÀûÓÃT0ºÍP1.0Êä³ö¾ØÐβ¨¡£¾ØÐβ¨¸ßµçƽ¿í100¦Ìs£¬µÍµçƽ¿í300¦Ìs¡£

½â£ºÏÈÈ·¶¨ T0×÷Ϊ¶¨Ê±Æ÷¹¤×÷ÓÚģʽ2ʱ³õֵΪ£º¸ßµçƽΪ50£¬µÍµçƽΪ150¡£

²ÉÓÃÖжϷ½Ê½±à³Ì¡£ ³ÌÐòÈçÏ£º

#include

#define uchar unsigned char sbit SQU = P1^0; void main() {

TMOD = 0x02; TL0 = 50; IE = 0x82; SQU = 1; TR0 = 1; while(1) { } }

void t0_SQU() interrupt 1 {

if(SQU == 1) { SQU = 0; TL0 = 150; } else { SQU = 1; TL0 = 50; } }

9£®Éèfosc=12MHz£¬ÊÔ±àдһ¶Î³ÌÐò£¬¹¦ÄÜΪ£º¶Ô¶¨Ê±Æ÷T0³õʼ»¯£¬Ê¹Ö®¹¤×÷ÔÚģʽ2£¬²úÉú200¦Ìs¶¨Ê±£¬²¢ÓòéѯT0Òç³ö±êÖ¾µÄ·½·¨£¬¿ØÖÆP1.1Êä³öÖÜÆÚΪ2msµÄ·½²¨¡£

½â£ºÏÈÈ·¶¨ T0×÷Ϊ¶¨Ê±Æ÷ʱ³õֵΪ£º56 ³ÌÐòÈçÏ£º

#include

#define uchar unsigned char sbit SQU = P1^1; void main() {

TMOD = 0x02; TL0 = 56; TL0 = 56; SQU = 1; TR0 = 1; while(1) { if(TF0 == 1) { i++; if(i>4) { i = 0; SQU = ~SQU; } } } }

10£®ÒÑÖª8051µ¥Æ¬»úϵͳʱÖÓÆµÂÊΪ6MHz£¬ÀûÓÃÆä¶¨Ê±Æ÷²âÁ¿Ä³ÕýÂö³å¿í¶Èʱ£¬²ÉÓÃÄÄÖÖ¹¤×÷ģʽ¿ÉÒÔ»ñµÃ×î´óµÄÁ¿³Ì£¿Äܹ»²âÁ¿µÄ×î´óÂö¿íÊǶàÉÙ£¿

´ð£ºÊ×ÏÈÉèÖÃTMODÖÐGATEΪ1£¬ÒÔ¶¨Ê±·½Ê½¹¤×÷ÔÚģʽ1£¬ÍⲿÕýÂö³å´ÓÍⲿÖжÏÒý½ÅÒýÈ룬¿É»ñµÃ×î´óµÄÁ¿³Ì¡£

Äܹ»²âÁ¿µÄ×î´óÂö¿íΪ£º131ms.

µÚ6ÕÂ

1£®Í¨³£8031¸øÓû§ÌṩµÄI/O¿ÚÓÐÄö£¿ÎªÊ²Ã´£¿ ´ð°¸£º

MCS-51ϵÁе¥Æ¬»úËäÈ»ÓÐ4¸ö8λI/O¿ÚP0¡¢P1¡¢P2¡¢P3£¬µ«4¸öI/O¿Úʵ¼ÊÓ¦ÓÃʱ£¬²¢²»ÄÜÈ«²¿Áô¸øÓû§×÷ϵͳµÄI/O¿Ú¡£ÒòΪµ±µ¥Æ¬»úÔÚÍⲿÀ©Õ¹Á˳ÌÐò´æ´¢Æ÷¡¢Êý¾Ý´æ´¢Æ÷ʱ£¬¾ÍÒªÓÃP0ºÍP2¿Ú×÷ΪµØÖ·/Êý¾Ý×ÜÏߣ¬¶øÁô¸øÓû§Ê¹ÓõÄI/O¿ÚÖ»ÓÐP1¿ÚºÍÒ»²¿·ÖP3¿Ú¡£

2. ¼òÊöMCS-51ϵÁе¥Æ¬»úCPU·ÃÎÊÍⲿÀ©Õ¹³ÌÐò´æ´¢Æ÷µÄ¹ý³Ì¡£ ´ð°¸£º

P0¿Ú×÷ΪµØÖ·/Êý¾Ý¸´ÓõÄË«ÏòÈý̬×ÜÏߣ¬ÓÃÓÚÊä³ö³ÌÐò´æ´¢Æ÷µÄµÍ8λµØÖ·»òÊäÈëÖ¸ÁP2¿Ú¾ßÓÐÊä³öËø´æ¹¦ÄÜ£¬ÓÃÓÚÊä³ö³ÌÐò´æ´¢Æ÷µÄ¸ß8λµØÖ·¡£µ±ALEÓÐЧ£¨¸ßµçƽ£©Ê±£¬¸ß8λµØÖ·´ÓP2¿ÚÊä³ö£¬µÍ8λµØÖ·´ÓP0¿ÚÊä³ö£¬ÔÚALEµÄϽµÑذÑP0¿ÚÊä³öµÄµÍ8λµØÖ·Ëø´æÆðÀ´£¬È»ºóÔÚPSENÓÐЧ£¨µÍµçƽ£©ÆÚ¼ä£¬Ñ¡Í¨Íⲿ³ÌÐò´æ´¢Æ÷£¬½«ÏàÓ¦µ¥

ÔªµÄÊý¾ÝË͵½P0¿Ú£¬CPUÔÚPSENÉÏÉýÑØÍê³É¶ÔP0¿ÚÊý¾ÝµÄ²ÉÑù¡£

3. ¼òÊöMCS-51ϵÁе¥Æ¬»úCPU·ÃÎÊÍⲿÀ©Õ¹Êý¾Ý´æ´¢Æ÷µÄ¹ý³Ì¡£ ´ð°¸£º

µÚÒ»¸ö»úÆ÷ÖÜÆÚÊÇ´ÓÍⲿ³ÌÐò´æ´¢Æ÷¶ÁÈ¡MOVXÖ¸Áî²Ù×÷Â룬µÚ¶þ¸ö»úÆ÷ÖÜÆÚ²ÅÊÇÖ´ÐÐMOVXÖ¸Áî·ÃÎÊÍⲿÊý¾Ý´æ´¢Æ÷¡£ÔÚ¸ÃÖÜÆÚÖУ¬ÈôÊǶÁ²Ù×÷£¬ÔòRDÐźÅÓÐЧ£¨µÍµçƽ£©£¬P0¿Ú±äΪÊäÈ뷽ʽ£¬±»µØÖ·ÐźÅѡͨµÄÍⲿRAMij¸öµ¥ÔªÖеÄÊý¾Ýͨ¹ýP0¿ÚÊäÈëCPU£»ÈôÊÇд²Ù×÷£¬ÔòWRÐźÅÓÐЧ£¨µÍµçƽ£©£¬P0¿Ú±äΪÊä³ö·½Ê½£¬CPUÄÚ²¿Êý¾Ýͨ¹ýP0¿ÚдÈëµØÖ·ÐźÅѡͨµÄÍⲿRAMµÄij¸öµ¥ÔªÖС£

4. ÏÖÒªÇóΪ8051À©Õ¹2Ƭ2732×÷ΪÍⲿ³ÌÐò´æ´¢Æ÷£¬ÊÔ»­³öµç·ͼ£¬²¢Ö¸³ö¸÷оƬµÄµØÖ··¶Î§¡£

´ð°¸£º

µç·ͼÈçÏ£º

¸÷оƬµÄµØÖ··¶Î§£º 2732£¨1£©£º0B800H ~0BFFFH; 2732£¨2£©£º7800H ~7FFFH¡£

5. ÏÖÒªÇóΪ8051ÍâÀ©1Ƭ2864A£¬¼æ×÷³ÌÐò´æ´¢Æ÷ºÍÊý¾Ý´æ´¢Æ÷£¬Çë»­³öÓ²¼þÁ¬½Óͼ¡£ ´ð°¸£º

µç·ͼÈçÏ£º

6. ¼ÙÉèijһ8051µ¥Æ¬»úϵͳ£¬ÄâÀ©Õ¹2Ƭ2764 EPROMоƬºÍ2Ƭ6264SRAMоƬ£¬ÊÔ»­³öµç·ͼ£¬²¢ËµÃ÷´æ´¢Æ÷µØÖ··ÖÅäÇé¿ö¡£

´ð°¸£º

µç·ͼÈçÏ£º

P2.0~P2.458ALE8031EAGQ0~Q7A0~A7A8~A12A0~A7A8~A12A0~A7A8~A12A0~A7A8~A1274LS373OED0~D782764?1?OED0~D7CE2764?2?6264?1?OED0~D7CEWE6264?2?OED0~D7CEOED0~D7CEWEP0.0~P0.7PSENRDWRP2.5P2.5

´æ´¢Æ÷µØÖ··ÖÅ䣺

2764(1)£ºC000H¡«DFFFH£» 2764(2)£ºA000H¡«BFFFH£» 6264(1)£ºC000H¡«DFFFH£» 6264(2)£ºA000H¡«BFFFH¡£

7. Ò»¸ö8051Ó¦ÓÃϵͳÀ©Õ¹ÁË1Ƭ8155£¬¾§ÕñΪ12MHz£¬¾ßÓÐÉϵ縴λ¹¦ÄÜ£¬P2.1¡«P2.7×÷ΪI/O¿ÚÏßʹÓã¬8155µÄPA¿Ú¡¢PB¿ÚΪÊäÈë¿Ú£¬PC¿ÚΪÊä³ö¿Ú¡£ÊÔ»­³ö¸ÃϵͳµÄÂß¼­Í¼£¬²¢±àд³õʼ»¯³ÌÐò¡£

´ð°¸£º

ϵͳÂß¼­Í¼ÈçÏ£º

³õʼ»¯³ÌÐò£º

MOV DPTR, #0FFF8H MOV A, #0CH

MOVX DPTR, A

8. 8155TIN¶ËÊäÈëÂö³åƵÂÊΪ1MHz£¬Çë±àдÄÜÔÚTOUTÒý½ÅÊä³öÖÜÆÚΪ8ms·½²¨µÄ³ÌÐò¡£

´ð°¸£º ³ÌÐòÈçÏ£º

MOV DPTR,#7F04H ; Ö¸Ïò¶¨Ê±Æ÷µÍ8λ MOV A,#40H MOVX @DPTR,A ; ¼ÆÊý³£ÊýµÍ8λװÈ붨ʱÆ÷ INC DPTR ; Ö¸Ïò¶¨Ê±Æ÷¸ß8λ MOV A,#5FH ; É趨ʱÆ÷Êä³ö·½Ê½ÎªÁ¬Ðø·½²¨Êä³ö MOVX @DPTR,A ; ×°È붨ʱÆ÷¸ß8λ MOV DPTR,#7F00H ; Ö¸ÏòÃüÁî/״̬¿Ú

MOV A,#0C2H ; ÃüÁî×ÖÉ趨PA¿ÚΪ»ù±¾ÊäÈ뷽ʽ£¬PB¿ÚΪ»ù

±¾Êä³ö·½Ê½£¬²¢Æô¶¯¶¨Ê±Æ÷

MOVX @DPTR,A

9. ÏÖÒªÇó8155µÄA¿Ú»ù±¾ÊäÈ룬B¿Ú¡¢C¿Ú»ù±¾Êä³ö£¬Æô¶¯¶¨Ê±Æ÷¹¤×÷£¬Êä³öÁ¬Ðø·½²¨£¬Çë±àд8155µÄ³õʼ»¯³ÌÐò¡£

´ð°¸£º ³ÌÐòÈçÏ£º

MOV DPTR,#data 1 ; Ö¸Ïò¶¨Ê±Æ÷µÍ8λ MOV A,#data2 MOVX @DPTR,A ; ¼ÆÊý³£ÊýµÍ8λװÈ붨ʱÆ÷ INC DPTR ; Ö¸Ïò¶¨Ê±Æ÷¸ß8λ MOV A,#40 H ; É趨ʱÆ÷Êä³ö·½Ê½ÎªÁ¬Ðø·½²¨Êä³ö MOVX @DPTR,A ; ×°È붨ʱÆ÷¸ß8λ MOV DPTR,#data3 ; Ö¸ÏòÃüÁî/״̬¿Ú

MOV A,#0CEH ; ÃüÁî×ÖÉ趨PA¿ÚΪ»ù±¾ÊäÈ뷽ʽ£¬PB¡¢PC

¿ÚΪ»ù±¾Êä³ö·½Ê½£¬²¢Æô¶¯¶¨Ê±Æ÷

MOVX @DPTR,A

µÚ7ÕÂ

1.¼òÊö¼üÅÌɨÃèµÄÖ÷Ҫ˼·¡£ ´ð°¸£º

¼üÅÌɨÃèµÄÖ÷Ҫ˼·£ºÊ×ÏÈÈ·¶¨ÊÇ·ñÓмü°´Ï£¬Ïû³ý¶¶¶¯£¬ÈôÓмü°´Ï£¬Êä³öÖðÐлòÁеÄɨÃè×Ö£¬¶ÁÈ¡ÁлòÐеÄ״̬£¬È·¶¨°´¼ü¼üÖµ£¬È»ºóÔÙÅжϰ´¼üÊÇ·ñÊÍ·Å£¬ÈôÊÍ·Å£¬¼´¿É·µ»Ø¡£

2.¼òÊöÈí¼þÏû³ý¼üÅ̶¶¶¯µÄÔ­Àí¡£ ´ð°¸£º

Èí¼þÏû³ý¼üÅ̶¶¶¯µÄÔ­Àí£ºµ±CPU·¢ÏÖÓмü°´ÏµÄÇé¿öÏ£¬ÎªÁË·ÀÖ¹ÊÇ»úе¶¶¶¯µÄÎó¶¯×÷£¬¿ÉÒÔ²ÉÓÃÈí¼þÑÓʱ10ms£¬È»ºóÔٴμì²â°´¼üÊÇ·ñÈÔȻΪ±ÕºÏ״̬£¬ÈôÈÔÈ»±ÕºÏ£¬ÔòÈ·¶¨Óмü°´Ï£¬·ñÔò¾ÍÊǼüÅ̶¶¶¯£¬²»ÓèÀí²Ç¡£

3.ʲô½ÐLEDµÄ¶¯Ì¬ÏÔʾºÍ¾²Ì¬ÏÔʾ¡£ ´ð°¸£º

¾²Ì¬ÏÔʾÐÎʽ£¬¼´Æß¶ÎLEDÊýÂë¹ÜÔÚÏÔʾijһ¸ö×Ö·ûʱ£¬ÏàÓ¦µÄ¶Î£¨·¢¹â¶þ¼«¹Ü£©ºã¶¨µÄµ¼Í¨»ò½ØÖÁ£¬Ö±ÖÁ»»ÏÔÆäËû×Ö·ûΪֹ¡£

¶¯Ì¬ÏÔʾÊǽ«ËùÓÐÊýÂë¹ÜµÄ¶ÎÂëÏß¶ÔÓ¦²¢ÁªÔÚÒ»Æð£¬ÓÉÒ»¸ö8λµÄÊä³ö¿Ú¿ØÖÆ£¬Ã¿Î»ÊýÂë¹ÜµÄ¹«¹²¶Ë£¨³ÆÎ»Ñ¡Ïߣ©·Ö±ðÓÉһλI/O¿ÚÏß¿ØÖÆ£¬ÒÔʵÏÖ¸÷λµÄ·Öʱѡͨ¡£

4.ÒªÇóÀûÓÃ8051µÄP1¿ÚÀ©Õ¹Ò»¸ö2?2ÐÐÁÐʽ¼üÅ̵ç·£¬»­³öµç·ͼ£¬²¢¸ù¾ÝËù»æµç·±àд¼üɨÃè×Ó³ÌÐò¡£

´ð°¸£º

ÉèÐÐÏßH1¡«H2Á¬½Óµ½51µ¥Æ¬»úP1¿ÚµÄP1.0¡«P1.1£¬ÁÐÏßL1¡«L2Á¬½Óµ½P1¿ÚµÄP1.4¡«

P1.5¡£µç·ͼÈçÏ£º

¼üɨÃè×Ó³ÌÐò£º C³ÌÐòÈçÏ£º

uchar keysearch() //°´¼üº¯ÊýɨÃèÓмü°´Ï·ñ£¨·µ»ØÖµ²»µÈÓÚ0£¬ËµÃ÷Óмü°´Ï£©

{

uchar k; P1=0x0f; k=P1; k=~k;

k=k&0x0f; return k; }

uchar key() //°´¼üº¯Êý£¨·µ»ØÖµ£ºµÈÓÚ0xff£¬ËµÃ÷ûÓмü°´Ï£©

{

uchar a,c,kr,keynumb; a=keysearch(); if(a==0) return 0xff; else delay(10); //ÑÓʱȥ¶¶¶¯

a=keysearch(); if(a==0) return 0xff; else { a=0xef; for(kr=0;kr<2;kr++) { P1 = a; c = P1; if((c & 0x01)==0)keynumb=kr+0x00; if((c & 0x02)==0)keynumb=kr+0x02; a=_crol_(a,1); //Ñ­»·×óÒÆº¯Êý,ÐèÒªintrins.hÍ·ÎļþÖ§³Ö }

} do{

//°´¼üÊͷżì²â

a=keysearch(); }while(a!=0); return keynumb; //·µ»Ø°´¼üµÄ±àÂë¼üÖµ }

void keybranch(uchar k) //°´¼üµÄ¼üÖµ´¦Àíº¯Êý

{

switch(k) { case 0x00 : //Ìí¼ÓÐèÒªÖ´ÐеŦÄÜ;break; case 0x01 : //Ìí¼ÓÐèÒªÖ´ÐеŦÄÜ;break; case 0x02 : //Ìí¼ÓÐèÒªÖ´ÐеŦÄÜ;break; case 0x03 : //Ìí¼ÓÐèÒªÖ´ÐеŦÄÜ;break; default: break; } }

5.ÇëÔÚͼ7-1µÄ»ù´¡ÉÏ£¬Éè¼ÆÒ»¸öÒÔÖжϷ½Ê½¹¤×÷µÄ¿ª¹ØÊ½¼üÅÌ£¬²¢±àдÆäÖжϼü´¦Àí³ÌÐò¡£

´ð°¸£º

µç·ͼÈçÏ£º

Öжϼü´¦Àí³ÌÐò£º

void int_key() interrupt 0 {

delay(10); //delay 10 ms temp = P1;

if( (temp & 0x0f) == 0x0f ) break; temp = P1;

if((temp & 0x0f) == 0x0e) //key1´¦Àíº¯Êý

if((temp & 0x0f) == 0x0d) if((temp & 0x0f) == 0x0b) if((temp & 0x0f) == 0x07) }

//key2´¦Àíº¯Êý //key3´¦Àíº¯Êý //key4´¦Àíº¯Êý

6.״̬»òÊýÂëÏÔʾʱ£¬¶ÔLEDµÄÇý¶¯¿É²ÉÓÃµÍµçÆ½Çý¶¯£¬Ò²¿ÉÒÔ²ÉÓÃ¸ßµçÆ½Çý¶¯£¬¶þÕ߸÷ÓÐÊ²Ã´ÌØµã£¿

´ð°¸£º

¸ßµçƽÇý¶¯Òª²ÉÓù²Òõ¼«ÊýÂë¹Ü£¬±ØÐëÍâ½ÓÉÏÀ­µç×裻µÍµçƽÇý¶¯Òª²ÉÓù²Ñô¼«ÊýÂë¹Ü£¬µçԴЧÂÊÏà¶Ô½Ï¸ß¡£

7.ÓÃDAC0832½øÐÐD/Aת»»Ê±£¬µ±Êä³öµçѹµÄ·¶Î§ÔÚ0¡«5Vʱ£¬Ã¿±ä»¯Ò»¸ö¶þ½øÖÆÊýÆäÊä³öµçÑ¹Ìø±äÔ¼20mV£¬¼´Êä³öÊǾâ³Ý×´µÄ£¬²ÉÈ¡ºÎÖÖ´ëÊ©¿ÉʹÊä³öÐÅºÅ±È½ÏÆ½»¬£¿

´ð°¸£º

Á½ÖÖ·½·¨£º £¨1£©¿ÉÒÔ¼ÆËãÒÆ¶¯Æ½¾ùÖµ£»

£¨2£©¿ÉÒÔÉè¼ÆÂ˲¨Æ÷µÄ°ì·¨¡£

8.µ±ÏµÍ³µÄÖ÷ƵΪ6MHzʱ£¬Çë¼ÆËãͼ7-17ÖÐDAC0832²úÉú¾â³Ý²¨ÐźŵÄÖÜÆÚ¡£ ´ð°¸£º

T=2¦Ìs¡Á8¡Á256=4096¦Ìs

9.±àдͼ7-17ÖÐÓÃDAC0832²úÉúÈý½Ç²¨µÄÓ¦ÓóÌÐò¡£ ´ð°¸£º

³ÌÐò¹¦ÄÜ£ºÁ¬Ðø·ÃÎÊÍⲿDAC¼Ä´æÆ÷£¬²úÉú¾â³Ý²¨

#include #include

#define uchar unsigned char #define uint unsigned int

ÑÓʱº¯Êý

//Í·Îļþ°üº¬ //ºê¶¨Òå

void delay() {

uint i,j;

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

void main() Ö÷º¯Êý

{

unsigned char a=0;

while(1) { XBYTE[0x7FFF]=a; a++;

delay( ); } }

//¿ØÖƲ¨ÐÎÀÛ¼ÓÉî¶È

//¼ÓÈëÑÓʱº¯Êý,¿ØÖÆÆäÖÜÆÚ

10.¶Ôͼ7-24µÄA/Dת»»µç·£¬Èô²ÉÓÃÖжϷ½Ê½£¬±àдÏàÓ¦³ÌÐò¡£ ´ð°¸£º

ÔÚÓ²¼þµç·ÉÏ£¬Ó¦µ±½«EOCÒý½Å½Óµ½µ¥Æ¬»úµÄÍⲿÖжÏÒý½ÅÉÏÃæ£¬ÈçINT1£»

C³ÌÐòÈçÏ£º

//³ÌÐò¹¦ÄÜ£º¶Ô8·ģÄâÐźÅÂÖÁ÷²ÉÑù£¬²¢°Ñ½á¹ûÒÀ´Î´æµ½Êý×éÖÐ; #include //Í·Îļþ¶¨Òå

#include

unsigned char a[8]; unsigned char i; void main() Ö÷³ÌÐò {

EA = 1; IT1= 1; EX1= 1;

XBYTE[0x7FF8] = a[0]; while(1) { } }

void int_adc() interrupt 0 {

a[i] = XBYTE[0x7FF8+i]; i++; if(i>7) i = 0; }

11.µ±Í¼7-24µÄADC0809¶Ô8·ģÄâÐźŽøÐÐA/Dת»»Ê±£¬±àдÓòéѯ·½Ê½¹¤×÷µÄ²ÉÑù³ÌÐò£¬8·²ÉÑùÖµ´æ·ÅÔÚ30H¡«37Hµ¥Ôª¡£

´ð°¸£º

//³ÌÐò¹¦ÄÜ£º¶Ô8·ģÄâÐźÅÂÖÁ÷²ÉÑùÒ»´Î£¬²¢°Ñ½á¹ûÒÀ´Î´æ·ÅÔÚ30H¡«37Hµ¥Ôª;

#include //Í·Îļþ¶¨Òå

#include unsigned char a[8]; unsigned char p;

void delay(unsigned char m) ÑÓʱº¯Êý

{

unsigned char i,j; for(i=0;i

void main() Ö÷³ÌÐò

{

unsigned char i; p = 0x30;

XBYTE[0x7FF8] = a[0]; for(i=0;i<8;i++) {

delay(10); a[i] = XBYTE[0x7FF8+i]; *[p++] = a[i]; }

while(1); }

µÚ8ÕÂ

1.ÄÄЩ³¡ºÏÊʺÏʹÓõ¥Æ¬»úϵͳ£¿

µ¥Æ¬»úÒÔÆä×ÔÉíµÄÌØµã£¬ÆäÓ¦ÓÃÁìÓòÒÑÉøÍ¸Èë¸÷¸öÁìÓò¡£

Ö÷ÒªÓ¦ÓÃÔÚ£º ÖÇÄÜÒÇÆ÷ÒÇ±í¡¢ÖÇÄܼÒÓõçÆ÷¡¢ÊµÊ±¹¤Òµ¿ØÖÆ¡¢»úµçÒ»Ì廯¡£ »¹¹ã·ºÓ¦ÓÃÓڰ칫×Ô¶¯»¯ÁìÓò£¨È縴ӡ»ú£©¡¢Æû³µµç·¡¢Í¨ÐÅϵͳ£¨ÈçÊÖ»ú£©¡¢¼ÆËã»úÍâΧÉ豸µÈ£¬³ÉΪ¼ÆËã»ú·¢Õ¹ºÍÓ¦ÓõÄÒ»¸öÖØÒª·½Ïò¡£

µ¥Æ¬»úÓ¦ÓÃϵͳÉè¼ÆÁé»î£¬ÔÚϵͳӲ¼þ²»±äµÄÇé¿öÏ£¬¿Éͨ¹ý²»Í¬µÄ³ÌÐò¿ÉʵÏÖ²»Í¬µÄ¹¦ÄÜ£¬Òò´ËÕâ´Ó¸ù±¾¸Ä±äÁË´«Í³¿ØÖÆÏµÍ³µÄÉè¼ÆË¼ÏëºÍÉè¼Æ·½·¨¡£¹ýÈ¥±ØÐëÓÉÄ£Äâµç·¡¢Êý×ֵ緼°¼ÌµçÆ÷¿ØÖƵç·ʵÏֵĴ󲿷ֹ¦ÄÜ£¬ÏÖÔÚÒÑÄÜÓõ¥Æ¬»ú²¢Í¨¹ýÈí¼þ·½·¨ÊµÏÖ

2.´Óʵ¥Æ¬»úÓ¦ÓÃϵͳ¿ª·¢ÐèÒª¾ß±¸ÄÄЩ»ù±¾ÖªÊ¶ºÍÉ豸ÅäÖã¿

µ¥Æ¬»ú»ù´¡ÖªÊ¶¡¢¼ÆËã»úͨÐÅ»ù´¡ÖªÊ¶¡¢µ¥Æ¬»ú¿ª·¢°å¡¢ÏÂÔØÈí¼þ¼°ÉÏλ¼ÆËã»ú¡£ 3.¼òÊöµ¥Æ¬»úÓ¦Óÿª·¢¹ý³Ì¡£

4.ʲôÊÇISP¼¼Êõ£¿ÔÚµ¥Æ¬»ú¿ª·¢¹ý³ÌÖÐÈçºÎʹÓã¿ ISP:ÔÚϵͳ±à³Ì.

5.Éè¼ÆÍê³ÉÒ»¸öµç×ÓʱÖÓ£¬¿ÉÒÔ¸ù¾ÝÐèҪѡÔñʵÏÖÏÂÁй¦ÄÜ£º 1£©¾ßÓÐÏÔʾÄê¡¢Ô¡¢ÈÕ¡¢Ê±¡¢·Ö¡¢ÃëµÄ¹¦ÄÜ¡£ 2£©¾ßÓÐУÕý¹¦ÄÜ¡£

3£©¿ÉÒÔÑ¡ÓÃLEDÊýÂë¹Ü»òÕßLCDÏÔʾ¡£ 4£©Äܹ»ÏÔʾÐÇÆÚ¡¢Î¶ȵÈÐÅÏ¢£»£¨·¢»Ó²¿·Ö£©¡£ 5£©¾ßÓÐÕûµã±¨Ê±¡¢É趨ÄÖÖӵȸ½¼Ó¹¦ÄÜ¡££¨·¢»Ó²¿·Ö£©¡£ ²Î¿¼ÏÂÔØ°üµÚ8ÕÂÏîÄ¿6.