µ¥Æ¬»úÔ­Àí¼°Ó¦Óà µÚÈý°æ ÁÖÁ¢ ÕÅ¿¡ÁÁ¿Îºó´ð°¸ ÏÂÔØ±¾ÎÄ

µÚÒ»ÕÂϰÌâ

1.ʲôÊǵ¥Æ¬»ú£¿µ¥Æ¬»úºÍͨÓÃ΢»úÏà±ÈÓкÎÌØµã£¿

´ð£ºµ¥Æ¬»úÓÖ³ÆÎªµ¥Æ¬Î¢¼ÆËã»ú£¬ËüµÄ½á¹¹ÌصãÊǽ«Î¢ÐͼÆËã»úµÄ»ù±¾¹¦Äܲ¿¼þ£¨ÈçÖÐÑë´¦ÀíÆ÷£¨CPU£©¡¢´æ´¢Æ÷¡¢ÊäÈë½Ó¿Ú¡¢Êä³ö½Ó¿Ú¡¢¶¨Ê±/¼ÆÊýÆ÷¼°ÖÕ¶ËϵͳµÈ£©È«²¿¼¯³ÉÔÚÒ»¸ö°ëµ¼ÌåоƬÉÏ¡£ ËäÈ»µ¥Æ¬»úÖ»ÊÇÒ»¸öоƬ£¬µ«ÎÞÂÛ´Ó×é³É»¹ÊÇ´ÓÂß¼­¹¦ÄÜÉÏÀ´¿´£¬¶¼¾ßÓÐ΢»úϵͳµÄ¶¨Òå¡£ÓëͨÓõÄ΢ÐͼÆËã»úÏà±È£¬µ¥Æ¬»úÌå»ýСÇÉ£¬¿ÉÒÔǶÈëµ½Ó¦ÓÃϵͳÖÐ×÷Ϊָ»Ó¾ö²ßÖÐÐÄ£¬ÊÇÓ¦ÓÃϵͳʵÏÖÖÇÄÜ»¯¡£

2.µ¥Æ¬»úµÄ·¢Õ¹ÓÐÄö½×¶Î£¿8λµ¥Æ¬»ú»á²»»á¹ýʱ£¬ÎªÊ²Ã´£¿

´ð£ºµ¥Æ¬»úµ®ÉúÓÚ1971Ä꣬¾­ÀúÁËSCM¡¢MCU¡¢SOCÈý´ó½×¶Î£¬ÔçÆÚµÄSCMµ¥Æ¬»ú¶¼ÊÇ8λ»ò4λµÄ¡£ÆäÖÐ×î³É¹¦µÄÊÇINTELµÄ8031£¬´ËºóÔÚ8031ÉÏ·¢Õ¹³öÁËMCS51ϵÁÐMCUϵͳ¡£»ùÓÚÕâһϵͳµÄµ¥Æ¬»úϵͳֱµ½ÏÖÔÚ»¹Ôڹ㷺ʹÓá£Ëæ×Ź¤Òµ¿ØÖÆÁìÓòÒªÇóµÄÌá¸ß£¬¿ªÊ¼³öÏÖÁË16λµ¥Æ¬»ú£¬µ«ÒòΪÐԼ۱Ȳ»ÀíÏ벢δµÃµ½ºÜ¹ã·ºµÄÓ¦Óá£90Äê´úºóËæ×ÅÏû·Ñµç×Ó²úÆ·´ó·¢Õ¹£¬µ¥Æ¬»ú¼¼ÊõµÃµ½Á˾޴óÌá¸ß¡£Ëæ×ÅINTEL i960ϵÁÐÌØ±ðÊǺóÀ´µÄARMϵÁеĹ㷺ӦÓã¬32λµ¥Æ¬»úѸËÙÈ¡´ú16λµ¥Æ¬»úµÄ¸ß¶ËµØÎ»£¬²¢ÇÒ½øÈëÖ÷Á÷Êг¡¡£È»¶ø£¬ÓÉÓÚ¸÷Ó¦ÓÃÁìÓò´óÁ¿ÐèÒªµÄÈÔÊÇ8λµ¥Æ¬»ú£¬Òò´Ë¸÷´ó¹«Ë¾·×·×ÍÆ³ö¸ßÐÔÄÜ¡¢´óÈÝÁ¿¡¢¶à¹¦ÄܵÄÐÂÐÍ8λµ¥Æ¬»ú¡£

Ŀǰ£¬µ¥Æ¬»úÕý³¯×ŸßÐÔÄÜºÍ¶àÆ·ÖÖ·¢Õ¹£¬µ«ÓÉÓÚMCS-51ϵÁÐ8λµ¥Æ¬»úÈÔÄÜÂú×ã¾ø´ó¶àÊýÓ¦ÓÃÁìÓòµÄÐèÒª£¬¿ÉÒԿ϶¨£¬ÒÔMCS-51ϵÁÐΪÖ÷µÄ8λµ¥Æ¬»ú£¬ÔÚµ±Ç°¼°ÒÔºóµÄÏ൱һ¶Îʱ¼äÄÚÈÔ½«Õ¼¾Ýµ¥Æ¬»úÓ¦ÓõÄÖ÷µ¼µØÎ»¡£

3.¾ÙÀý˵Ã÷µ¥Æ¬»úµÄÖ÷ÒªÓ¦ÓÃÁìÓò¡£

´ð£ºµ¥Æ¬»ú¹ã·ºÓ¦ÓÃÓÚÒÇÆ÷ÒÇ±í¡¢¼ÒÓõçÆ÷¡¢Ò½ÓÃÉ豸¡¢º½¿Õº½Ì졢רÓÃÉ豸µÄÖÇÄÜ»¯¹ÜÀí¼°¹ý³Ì¿ØÖƵÈÁìÓò£¬´óÖ¿ɷÖÈçϼ¸¸ö·¶³ë£º

ÖÇÄÜÒÇÆ÷

µ¥Æ¬»ú¾ßÓÐÌå»ýС¡¢¹¦ºÄµÍ¡¢¿ØÖƹ¦ÄÜÇ¿¡¢À©Õ¹Áé»î¡¢Î¢ÐÍ»¯ºÍʹÓ÷½±ãµÈÓŵ㣬¹ã·ºÓ¦ÓÃÓÚÒÇÆ÷ÒDZíÖУ¬½áºÏ²»Í¬ÀàÐ͵Ĵ«¸ÐÆ÷£¬¿ÉʵÏÖÖîÈçµçѹ¡¢µçÁ÷¡¢¹¦ÂÊ¡¢ÆµÂÊ¡¢Êª¶È¡¢Î¶ȡ¢Á÷Á¿¡¢ËÙ¶È¡¢ºñ¶È¡¢½Ç¶È¡¢³¤¶È¡¢Ó²¶È¡¢ÔªËØ¡¢Ñ¹Á¦µÈÎïÀíÁ¿µÄ²âÁ¿¡£²ÉÓõ¥Æ¬»ú¿ØÖÆÊ¹µÃÒÇÆ÷ÒDZíÊý×Ö»¯¡¢ÖÇÄÜ»¯¡¢Î¢ÐÍ»¯£¬ÇÒ¹¦ÄÜ±ÈÆð²ÉÓõç×Ó»òÊý×ֵ緸ü¼ÓÇ¿´ó¡£ÀýÈ羫ÃܵIJâÁ¿É豸£¨µçѹ±í¡¢¹¦Âʼƣ¬Ê¾²¨Æ÷£¬¸÷ÖÖ·ÖÎöÒÇ£©¡£

¹¤Òµ¿ØÖÆ

µ¥Æ¬»ú¾ßÓÐÌå»ýС¡¢¿ØÖƹ¦ÄÜÇ¿¡¢¹¦ºÄµÍ¡¢»·¾³ÊÊÓ¦ÄÜÁ¦Ç¿¡¢À©Õ¹Áé»îºÍʹÓ÷½±ãµÈÓŵ㣬Óõ¥Æ¬»ú¿ÉÒÔ¹¹³ÉÐÎʽ¶àÑùµÄ¿ØÖÆÏµÍ³¡¢Êý¾Ý²É¼¯ÏµÍ³¡¢Í¨ÐÅϵͳ¡¢Ðźżì²âϵͳ¡¢ÎÞÏ߸Ð֪ϵͳ¡¢²â¿ØÏµÍ³¡¢»úÆ÷È˵ÈÓ¦ÓÿØÖÆÏµÍ³¡£ÀýÈ繤³§Á÷Ë®ÏßµÄÖÇÄÜ»¯¹ÜÀí£¬µçÌÝÖÇÄÜ»¯¿ØÖÆ¡¢¸÷ÖÖ±¨¾¯ÏµÍ³£¬Óë

¼ÆËã»úÁªÍø¹¹³É¶þ¼¶¿ØÖÆÏµÍ³µÈ¡£ ¼ÒÓõçÆ÷ÏÖÔڵļÒÓõçÆ÷¹ã·º²ÉÓÃÁ˵¥Æ¬»ú¿ØÖÆ£¬´Óµç·¹ìÒ¡¢Ï´Ò»ú¡¢µç±ùÏä¡¢¿Õµ÷»ú¡¢²Êµç¡¢ÆäËûÒôÏìÊÓÆµÆ÷²Ä¡¢ÔÙµ½µç×Ó³ÓÁ¿É豸ºÍ°×É«¼ÒµçµÈ¡£

ÍøÂçºÍͨÐÅ

ÏÖ´úµÄµ¥Æ¬»úÆÕ±é¾ß±¸Í¨ÐŽӿڣ¬¿ÉÒԺܷ½±ãµØÓë¼ÆËã»ú½øÐÐÊý¾ÝͨÐÅ£¬ÎªÔÚ¼ÆËã»úÍøÂçºÍͨÐÅÉ豸¼äµÄÓ¦ÓÃÌṩÁ˼«ºÃµÄÎïÖÊÌõ¼þ£¬ÏÖÔÚµÄͨÐÅÉ豸»ù±¾É϶¼ÊµÏÖÁ˵¥Æ¬»úÖÇÄÜ¿ØÖÆ£¬´ÓÊÖ»ú£¬µç»°»ú¡¢Ð¡Ðͳ̿ؽ»»»»ú¡¢Â¥Óî×Ô¶¯Í¨Ðźô½Ðϵͳ¡¢ÁгµÎÞÏßͨÐÅ¡¢ÔÙµ½ÈÕ³£¹¤×÷ÖÐËæ´¦¿É¼ûµÄÒÆ¶¯µç»°£¬¼¯ÈºÒƶ¯Í¨ÐÅ£¬ÎÞÏßµç¶Ô½²»úµÈ¡£

Ò½ÓÃÉ豸ÁìÓò

µ¥Æ¬»úÔÚÒ½ÓÃÉ豸ÖеÄÓÃ;ÒàÏ൱¹ã·º£¬ÀýÈçÒ½ÓúôÎü»ú£¬¸÷ÖÖ·ÖÎöÒÇ£¬¼à»¤ÒÇ£¬³¬ÉùÕï¶ÏÉ豸¼°²¡´²ºô½ÐϵͳµÈµÈ¡£

Ä£¿é»¯ÏµÍ³

ijЩרÓõ¥Æ¬»úÉè¼ÆÓÃÓÚʵÏÖÌØ¶¨¹¦ÄÜ£¬´Ó¶øÔÚ¸÷ÖÖµç·ÖнøÐÐÄ£¿é»¯Ó¦Ó㬶ø²»ÒªÇóʹÓÃÈËÔ±Á˽âÆäÄÚ²¿½á¹¹¡£ÈçÒôÀÖ¼¯³Éµ¥Æ¬»ú£¬¿´ËƼòµ¥µÄ¹¦ÄÜ£¬Î¢ËõÔÚ´¿µç×ÓоƬÖУ¨ÓбðÓÚ´Å´ø»úµÄÔ­Àí£©£¬¾ÍÐèÒª¸´ÔÓµÄÀàËÆÓÚ¼ÆËã»úµÄÔ­Àí¡£È磺ÒôÀÖÐźÅÒÔÊý×ÖµÄÐÎʽ´æÓÚ´æ´¢Æ÷ÖУ¨ÀàËÆÓÚROM£©£¬ÓÉ΢¿ØÖÆÆ÷¶Á³ö£¬×ª»¯ÎªÄ£ÄâÒôÀÖµçÐźţ¨ÀàËÆÓÚÉù¿¨£©¡£ÔÚ´óÐ͵ç·ÖУ¬ÕâÖÖÄ£¿é»¯Ó¦Óü«´óµØËõСÁËÌå»ý£¬¼ò»¯Á˵ç·£¬½µµÍÁËË𻵡¢´íÎóÂÊ£¬Ò²·½±ãÓÚ¸ü»»¡£ Æû³µµç×Ó µ¥Æ¬»úÔÚÆû³µµç×ÓÖеÄÓ¦Ó÷dz£¹ã·º£¬ÀýÈçÆû³µÖеķ¢¶¯»ú¿ØÖÆÆ÷£¬»ùÓÚCAN×ÜÏߵįû³µ·¢¶¯»úÖÇÄܵç×Ó¿ØÖÆÆ÷¡¢GPSµ¼º½ÏµÍ³¡¢abs·À±§ËÀϵͳ¡¢Öƶ¯ÏµÍ³¡¢Ì¥Ñ¹¼ì²âµÈ¡£

´ËÍ⣬µ¥Æ¬»úÔÚ¹¤ÉÌ¡¢½ðÈÚ¡¢¿ÆÑС¢½ÌÓý¡¢µçÁ¦¡¢Í¨ÐÅ¡¢ÎïÁ÷ºÍ¹ú·Àº½¿Õº½ÌìµÈÁìÓò¶¼ÓÐ×ÅÊ®·Ö¹ã·ºµÄÓÃ;¡£

4.½«Ê®½øÖÆÊý37ת»»Îª¶þ½øÖÆ£¬BCDÂëºÍÊ®Áù½øÖÆÊý£¬²¢¶Ôת»»½á¹û½øÐжԱȷÖÎö¡£ ´ð£º37=(100101)B=(25)H£»BCD ÂëΪ 0011 0111£» ¿É¼û£¬Í¬Ò»¸öÊýÓò»Í¬½øÖƱíʾ£¬Æä½á¹ûÒ²²»Í¬¡£

5.д³öÏÂÁÐÊ®½øÖÆÊýÔÚ8λ΢»úÖеÄÔ­Â룬·´ÂëºÍ²¹ÂëÐÎʽ¡£ £¨1£©+36

Ô­Âë 0010 0100B ·´Âë 0010 0100B ²¹Âë 0010 0100B £¨2£©-36

Ô­Âë 1010 0100B ·´Âë 1101 1011B

²¹Âë 1101 1100B £¨3£©+127

Ô­Âë 0111 1111B ·´Âë 0111 1111B ²¹Âë 0111 1111B £¨4£©-128

Ô­Âë 1000 0000B ·´Âë 0111 1111B ²¹Âë 1000 0000B £¨5£©-121

Ô­Âë 1111 1001B ·´Âë 1000 0110B ²¹Âë 1000 0111B

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

´ð£º1000 1001B ÎÞ·ûºÅÊý£º137 ÓзûºÅÊý£º-9£» BCDÊý£º89£»

7.¶ÔÏÂÁи÷×éÊý½øÐС°Ó롱£¬¡°»ò¡±ºÍ¡°Òì»ò¡±ÔËËã¡£ £¨1£©1010 1010 ºÍ 0000 0000 Óë 0000 0000 »ò 1010 1010

Òì»ò 1010 1010

(2) 0111 0111 ºÍ 1000 1000 Óë 0000 0000 »ò 1111 1111 Òì»ò 1111 1111

(3) 1110 1110 ºÍ 0111 0111 Óë 0110 0110 »ò 1111 1111 Òì»ò 1001 1001

(4) 0011 1100 ºÍ 1111 0000 Óë 0011 0000 »ò 1111 1100 Òì»ò 1100 1100

8.Proteus ISISµÄ¹¤×÷½çÃæÖаüº¬Äö´°¿Ú£¿²Ëµ¥À¸Öаüº¬ÄöÑ¡Ï ´ð£ºProteus ISISµÄ¹¤×÷½çÃæÖ÷Òª°üÀ¨±êÌâÀ¸¡¢²Ëµ¥À¸¡¢¹¤¾ßÀ¸¡¢×´Ì¬À¸¡¢·½Î»¿ØÖư´Å¥¡¢·ÂÕæ½ø³Ì¿ØÖư´Å¥¡¢¶ÔÏóÑ¡Ôñ´°¿Ú£¬Ô­Àíͼ±à¼­´°¿ÚºÍÔ¤ÀÀ´°¿ÚµÈ¡£

Ö÷²Ëµ¥À¸°üº¬Îļþ¡¢²é¿´¡¢±à¼­¡¢¹¤¾ß¡¢Éè¼Æ¡¢Í¼ÐΡ¢Ô´Îļþ¡¢µ÷ÊÔ¡¢¿â¡¢Ä£°å¡¢ÏµÍ³¡¢°ïÖúÑ¡Ïî¡£

9.ÀûÓÃISISÄ£¿é¿ª·¢µ¥Æ¬»úϵͳÐèÒª¾­¹ýÄöÖ÷Òª²½Ö裿 ´ð£º

£¨1£©Æô¶¯ISIS; £¨2£©»æÖƵç·ԭÀíͼ£» £¨3£©ÊäÈ뵥Ƭ»ú³ÌÐò£» £¨4£©½øÐÐÔ´´úÂëµ÷ÊÔ£» £¨5£©·ÂÕæÔËÐС£

10.ºÎνPCB£¿ÀûÓÃARESÄ£¿é½øÐÐPCBÉè¼ÆÐèÒª¾­¹ýÄöÖ÷Òª²½Ö裿

´ð£ºPCB£¨Printed Circuit Board£©£¬ÖÐÎÄÃû³ÆÎªÓ¡ÖƵ緰壬ÓÖ³ÆÓ¡Ë¢µç·°å¡¢Ó¡Ë¢Ïß·°å£¬ÊÇÖØÒªµÄµç×Ó²¿¼þ£¬Êǵç×ÓÔªÆ÷¼þµÄÖ§³ÅÌ壬Êǵç×ÓÔªÆ÷¼þµçÆøÁ¬½ÓµÄÌṩÕß¡£ÓÉÓÚËüÊDzÉÓõç×ÓÓ¡Ë¢ÊõÖÆ×÷µÄ£¬¹Ê±»³ÆÎª¡°Ó¡Ë¢¡±µç·°å¡£ ÀûÓÃARESÄ£¿é½øÐÐPCBÉè¼ÆµÄÖ÷Òª²½Ö裺

£¨1£©Æô¶¯ARES£» £¨2£©ÔªÆ÷¼þ²¼¾Ö£» £¨3£©ÔªÆ÷¼þ²¼Ïߣ» £¨4£©ÆÌÍ­£» £¨5£©ÈýάЧ¹ûͼ£» £¨6£©CADCAMÊä³ö¡£

µÚ2Õ MCS-51µ¥Æ¬»ú½á¹¹¼°Ô­Àí ϰÌâ

1£® MSC£­51µ¥Æ¬»úÄÚ²¿ÓÉÄÄЩ¹¦Äܲ¿¼þ×é³É£¬¸÷ÓÐʲô¹¦ÄÜ£¿ ´ð£ºÒÔ51µ¥Æ¬»úΪÀý£¬ÆäÄÚ²¿¹¦Äܲ¿¼þÓУº

¿ØÖÆÆ÷£ºÊǶÔÈ¡×Ô³ÌÐò´æ´¢Æ÷ÖеÄÖ¸Áî½øÐÐÒëÂ룬Ôڹ涨µÄʱ¿Ì·¢³ö¸÷ÖÖ²Ù×÷ËùÐèµÄ¿ØÖÆÐźţ¬Íê³ÉÖ¸ÁîËù¹æ¶¨µÄ¹¦ÄÜ£»

ÔËËãÆ÷£º¸ù¾Ý¿ØÖÆÆ÷·¢À´µÄÐźţ¬Ö´ÐÐËãÊõÂß¼­ÔËËã²Ù×÷£» ´æ´¢Æ÷£º°üÀ¨³ÌÐò´æ´¢ºÍÊý¾Ý´æ´¢Æ÷£»

¶¨Ê±Æ÷¼ÆÊýÆ÷£º2¸ö16λ¶¨Ê±Æ÷/¼ÆÊýÆ÷£¬¿É¶Ô»úÆ÷ÖÜÆÚ¼ÆÊý£¬Ò²¿É¶ÔÍⲿÊäÈëÂö³å¼ÆÊý£» ÖжÏϵͳ£º¿ÉÏìÓ¦Èý¸öÄÚ²¿ÖжÏÔ´ºÍÁ½¸öÍⲿÖжÏÔ´µÄÖжÏÇëÇó£» ÊäÈëÊä³ö½Ó¿Ú£º4¸ö8λ²¢ÐпںÍÒ»¸öȫ˫¹¤´®Ðпڣ» 2£®MSC£­51µ¥Æ¬»úÍⲿÒý½ÅµÄÃû³ÆÊÇʲô£¿¸÷ÓÐʲô¹¦ÄÜ£¿ ´ð£º(1) µçÔ´¼°¾§ÕñÒý½Å VCC(40½Å)£º+5VµçÔ´Òý½Å VSS(20½Å)£º ½ÓµØÒý½Å

XTAL1(19½Å)£»Íâ½Ó¾§ÕñÒý½Å£¨ÄÚÖ÷ŴóÆ÷ÊäÈë¶Ë£© XTAL2(18½Å)£ºÍâ½Ó¾§ÕñÒý½Å£¨ÄÚÖ÷ŴóÆ÷Êä³ö¶Ë£© (2) ¿ØÖÆÒý½Å

RST/VPD(9)Ϊ¸´Î»/ ±¸ÓõçÔ´Òý½Å ΪµØÖ·Ëø´æÊ¹ÄÜÊä³ö/ ±à³ÌÂö³åÊäÈë

£ºÊä³ö·ÃÎÊÆ¬Íâ³ÌÐò´æ´¢Æ÷¶ÁѡͨÐźŠ£ºÍⲿROMÔÊÐí·ÃÎÊ/ ±à³ÌµçÔ´ÊäÈë (3) ²¢ÐÐI/O¿ÚÒý½Å

P0.0¡«P0.7£¨39¡«32½Å£©¡ª¡ªP0¿Ú£» P1.0¡«P1.7£¨1¡«8½Å£©¡ª¡ªP1¿Ú£» P2.0¡«P2.7£¨21¡«28½Å£©¡ª¡ªP2¿Ú£» P3.0¡«P3.7£¨10¡«17½Å£©¡ª¡ªP3¿Ú¡£

3£®51ϵÁе¥Æ¬»úµÄ·â×°ÓÐÄÄЩÀàÐÍ£¿Çë˵Ã÷ÿһÖÖ·â×°Òý½ÅÖ®¼äµÄ¾àÀë¡£ ´ð£º51ϵÁе¥Æ¬»úµÄ·â×°ÓÐ:

40Òý½ÅË«ÁÐÖ±²å·â×°£¨DIP¡ª¡ªdual in-line package£©£¬Òý½ÅÖ®¼äµÄ¾àÀëÊÇ100mil()£» 44Òý½Å·½ÐÎ±âÆ½·â×°£¨QFP ¡ª¡ªquad flat package£©·½Ê½£¬Òý½ÅÖ®¼äµÄ¾àÀëÊÇ£» 44Òý½Å´øÒýÏßµÄËÜÁÏÐ¾Æ¬ÔØÌåPLCC(Plastic Leaded Chip Carrier)¡£

4£®Ê²Ã´ÊǸ´Î»£¿µ¥Æ¬»ú¸´Î»µç·ÓÐÄļ¸ÖÖ£¬¹¤×÷Ô­Àí·Ö±ðÊÇʲô£¿ ´ð£º¸´Î»¡ª¡ªÊ¹µ¥Æ¬»ú»Ö¸´Ô­Ê¼Ä¬ÈÏ״̬µÄ²Ù×÷¡£

µ¥Æ¬»ú¸´Î»µç·ÓÐ:Éϵ縴λµç·£¬Óɵç×èºÍµçÈݹ¹³É£¬Í¨¹ýÉϵçʱ£¬µçÈÝÏ൱ÓÚ¶Ì·¶øÊ¹¸´Î»Òý½ÅÔÚ¾§ÕñÓÐЧµÄÇé¿öϱ£³Ö2¸ö»úÆ÷ÖÜÆÚµÄ¸ßµçÆ½£»°´Å¥¿ª¹Ø¸´Î»µç·£¬ÓÉÁ½¸öµç×èµÄ·Öѹ¹¹³É£¬Í¨¹ýÊÖ¹¤°´Ï°´Å¥£¬Ê¹¸´Î»Òý½ÅÔÚ¾§ÕñÓÐЧµÄÇé¿öϱ£³Ö2¸ö»úÆ÷ÖÜÆÚµÄ¸ßµçÆ½¡£

5£®Í¨³£µÄ΢»úϵͳ´æ´¢Æ÷½á¹¹ÓÐÄļ¸ÖÖ£¿MCS-51µ¥Æ¬»ú´æ´¢Æ÷ÊôÓÚÄÄÒ»Àࣿ CS-51¿ÉѰַ¶à´ó¿Õ¼ä£¿

´ð£ºÍ¨³£µÄ΢»úϵͳ´æ´¢Æ÷½á¹¹ÓÐÁ½Öֽṹ£¬¼´¹þ·ð½á¹¹ºÍ·ëŵÒÀÂü½á¹¹(Ò²½ÐÆÕÁÖ˹¶Ù½á¹¹)£¬MCS-51µ¥Æ¬»ú´æ´¢Æ÷ÊôÓÚ£¬MCS-51¿ÉѰַ¿Õ¼äÊÇÁ½¸ö64KB£¬¼´64KBµÄ³ÌÐò´æ´¢¿Õ¼äºÍ64KBµÄÊý¾Ý´æ´¢¿Õ¼ä¡£ 6£®Æ¬ÄÚRAMÖеÍ128¸öµ¥Ôª»®·ÖΪÄÄÈý¸öÖ÷Òª²¿·Ö£¿¸÷²¿·ÖµÄÖ÷Òª¹¦ÄÜÊÇʲô£¿ ´ð£ºÆ¬ÄÚRAMÖеÍ128¸öµ¥Ôª»®·ÖΪÈý¸ö²¿·Ö£º ¢Ù¹¤×÷¼Ä´æÆ÷Çø£¨00H-1FH£©£¬

ËÄ×飬ÿ×é8¸ö£¬¿É×÷Óù¤×÷¼Ä´æÆ÷Çл»Ê¹Óã» ¢Ú¿ÉÎ»Ñ°Ö·Çø£¨20H-2FH£©£¬16B£¬Î»µØÖ·Îª00H-7FH£¬ÓÃ×÷Ϊ°´Î»Ñ°Ö·µÄ¿Õ¼ä£» ¢ÛÓû§RAMÇø£¨30H-7FH£©£¬80B£¬ÓÃ×÷ÆÕͨRAMµ¥Ôª»ò¶ÑÕ»¡£

7£®³ÌÐò״̬×ּĴæÆ÷PSW¸÷λµÄ¶¨ÒåÊÇʲô£¿ ´ð£º³ÌÐò״̬×ּĴæÆ÷PSW¸÷λµÄ¶¨ÒåÈçÏ£º

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 PSW.7£º½ø/½èλ±êÖ¾CY£¬¼Ó·¨ÓнøÎ»Ê±ÖÃ1£¬¼õ·¨ÓнèλʱÖÃ1£» PSW.6£º¸¨Öú½øÎ»±êÖ¾AC£¬¼Ó·¨ÔËËãµÍËÄλÏò¸ßÉÏËÄλÓнøÎ»Ê±ÖÃ1£» PSW.5¡¢PSW.1£ºÓû§±ê־λF0ºÍÓû§±ê־λF1£¬ ±£´æÓû§µÄλÊý¾Ý£»

PSW.4¡¢PSW.3£º¹¤×÷¼Ä´æÆ÷Ñ¡Ôñ¿ØÖÆÎ»RS1ºÍRS0£¬00ÖÁ11·Ö±ðÑ¡ÔñËÄ×鹤×÷Ö®Ò»×÷Ϊµ±Ç°¹¤×÷¼Ä´æÆ÷

PSW.2 £ºÒç³ö±ê־λOV£¬ÓзûºÅÊý¼Ó¡¢¼õÔËËã½á¹ûÓÐÒç³ö»ò³Ë³ýÉϽá¹ûÒì³£(³Ë·¨ÔËËã½á¹û´óÓÚ255¼´³Ë»ýÔÚBAÖУ¬»ò³ý·¨ÔËËã³ýÊýΪ0)ʱÖÃ1 PSW.0£ºÆæÅ¼±ê־λP£¬ÀÛ¼ÓÆ÷AÖÐ1µÄ¸öÊýÎªÆæÊýʱÖÃ1¡£

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

´ð£ºÊ±ÖÓÖÜÆÚÓÖ½ÐÕñµ´ÖÜÆÚ»òÅÄ£¬ÓÃP±íʾ£¬ÊÇMCS-51µ¥Æ¬»úÖÐ×îСµÄʱ¼äµ¥Î»£¬ÔÚÒ»¸öʱÖÓÖÜÆÚÄÚ£¬CPUÍê³ÉÒ»¸ö×î»ù±¾µÄ¶¯×÷¡£

»úÆ÷ÖÜÆÚ£ºÓÉ12¸öʱÖÓÖÜÆÚ¹¹³É£¬Íê³ÉÒ»¸ö»ù±¾²Ù×÷

Ö¸ÁîÖÜÆÚ£ºÊÇÖ´ÐÐÒ»ÌõÖ¸ÁîËùÐèµÄʱ¼ä£¬¸ù¾ÝÖ¸ÁîµÄ¸´ÔÓÐÔ£¬¿ÉÓÉ1~4¸ö»úÆ÷ÖÜÆÚ¹¹³É¡£ µ±Õñµ´ÆµÂÊΪ12MHzʱ£¬Ò»¸ö»úÆ÷ÖÜÆÚΪ1΢Ãë¡£ 9£®P0¡¢P1¡¢P2ºÍP3¿ÚµÄ½á¹¹ºÍ¹¦ÄÜ·Ö±ðÊÇʲô£¿

´ð£ºP0¿ÚµÄÿһλÓÉ1¸öËø´æÆ÷ ¡¢2¸öÈý̬»º³åÆ÷ ¡¢1¸öÊä³ö¿ØÖƵç·£¨·ÇÃÅ X¡¢ÓëÃÅ¡¢µç×Ó¿ª¹ØMUX¡¢Êä³öÇý¶¯µç·¹¹³É£¬Æä¹¦ÄܼȿÉÒÔ×÷ΪͨÓÃI/O¿ÚʵÏÖÊäÈë/Êä³ö¹¦ÄÜ£¬Ò²¿É×÷Ϊµ¥Æ¬»úµØÖ·ÏߵĵÍ8λºÍÊý¾ÝÏßʵÏÖÍⲿÀ©Õ¹¹¦ÄÜ¡£ÔÚÓÃ×÷ÊäÈëÊä³ö¿Úʱ£¬ÐèÍâ½ÓÉÏÀ­µç×è¡£

P1¿ÚµÄÿһλÓÉ1¸öËø´æÆ÷ ¡¢1¸ö³¡Ð§Ó¦¹ÜÇý¶¯Æ÷VºÍ2¸öÈý̬ÃÅ»º³åÆ÷¹¹³É£¬Æä×÷ÓÃÊÇÓÃ×÷ÊäÈëÊä³ö¿Ú

P2¿ÚµÄÿһλÓÉ1¸öËø´æÆ÷¡¢2¸öÈý̬»º³åÆ÷¡¢1¸öÊä³ö¿ØÖƵ¥Ôª¡¢1¸öÊä³öÇý¶¯µ¥Ôª¹¹³É£¬Æä¹¦ÄÜÊÇÓÃ×÷ÊäÈëÊä³ö¿Ú£¬»òµØÖ·×ÜÏߵĸß8λ¡£

P3¿ÚµÄÿһλÓÉ1¸öËø´æÆ÷¡¢2¸öÈý̬»º³åÆ÷¡¢1¸öµÚ¶þ¹¦ÄÜ¿ØÖƵ¥Ôª ¡¢1¸öÊä³öÇý¶¯µ¥Ôª¹¹³É£¬Æä×÷ÓÃÊÇÓÃ×÷ÊäÈëÊä³ö¿Ú»òµÚ¶þ¹¦ÄÜ¡£

10£®51µ¥Æ¬»úÒý½ÅALEµÄ×÷ÓÃÊÇʲô£¿µ±51²»Íâ½Ó´æ´¢Æ÷ʱ£¬ALEÉϵÄÊä³öµÄÂö³åƵÂÊÊǶàÉÙ£¿

´ð£º51µ¥Æ¬»úÒý½ÅALEµÄ×÷ÓÃÊǶÔÍⲿ´æ´¢Ñ°Ö·Ê±Ëø´æP0¿ÚÊä³öµÄµÍ8λµØÖ·£¬µ±51²»Íâ½Ó´æ´¢Æ÷ʱ£¬ALEÉϵÄÊä³öµÄÂö³åƵÂÊÊÇfosc/6¡£

µÚ3Õ µ¥Æ¬»úµÄ»ã±àÓïÑÔÓë³ÌÐòÉè¼Æ ϰÌâ

1£®MCS-51µ¥Æ¬»úÓÐÄļ¸ÖÖѰַ·½Ê½£¿ÊÊÓÃÓÚʲôµØÖ·¿Õ¼ä£¿

´ð£ºMCS-51µ¥Æ¬»úÓÐ7ÖÖѰַ·½Ê½£ºÖ±½ÓѰַ¡¢¼Ä´æÆ÷Ѱַ¡¢¼Ä´æÆ÷¼ä½ÓѰַ¡¢Á¢¼´Ñ°Ö·¡¢±äַѰַ¡¢Î»Ñ°Ö·¡¢Ïà¶ÔѰַ¡£

Ö±½ÓѰַ·½Ê½£º²Ù×÷ÊýµÄµØÖ·ÓÉÖ¸ÁîÖ±½Ó¸ø³ö£¬ÊÊÓÃÓÚÆ¬ÄÚRAMµÄËùÓеØÖ·¿Õ¼ä£»Èç MOV A£¬68H

MOV A£¬PSW

¼Ä´æÆ÷Ѱַ·½Ê½£ºÖ¸Áî¸ø³öµÄÊǼĴæÆ÷µÄ±àÂ룬²Ù×÷ÊýÔÚ±àÂëÖ¸¶¨µÄ¼Ä´æÆ÷ÖУ¬ÊÊÓÃÓÚÆ¬ÄÚ00HÖÁ1FHµÄ32¸ö×Ö½Ú£¬ÓÃR0,¡­,R7±íʾ£¬Í¨¹ýPSWµÄRS1ºÍRS0Ñ¡Ôñ×éºÅÈ·¶¨¶ÔÓ¦32¸ö×Ö½ÚÖÐµÄÆäÖÐ8¸ö£¬»¹ÓÐÀÛ¼ÓÆ÷A£¬ÒÔ¼°³Ë³ý·¨Ö¸ÁîÖеÄAºÍB¼Ä´æÆ÷£¬Î»Ñ°Ö··½Ê½ÖеIJ¼¶ûÀÛ¼ÓÆ÷C£»

MOV A£¬R1 MUL AB INC DPTR

¼Ä´æÆ÷¼ä½ÓѰַ·½Ê½£ºÖ¸Áî¸ø³öµÄÊǼĴæÆ÷µÄ±àÂ룬²Ù×÷ÊýµØÖ·ÔÚ±àÂëÖ¸¶¨µÄ¼Ä´æÆ÷ÖУ¬ÊÊÓÃÓÚÆ¬ÄÚRAMµÄÈ«²¿¿Õ¼ä£¬ÆäÖÐ52ϵÁÐÖеÄ80HÖÁFFHÖ»ÄÜÓüĴæÆ÷¼ä½ÓѰַ£»Èç MOV A£¬@R0

MOV A£¬@R1 MOVX A£¬@DPTR

Á¢¼´Ñ°Ö··½Ê½£º²Ù×÷Êý±¾ÉíÔÚÖ¸ÁîÖÐÖ±½Ó£¬¸ø³öÊÊÓÃÓÚÓÃ8λÁ¢¼´Êý¶ÔƬÄÚRAMËùÓеØÖ·µ¥Ôª¸³Öµ£¬Ò²¿ÉÓÃ16λÁ¢¼´Êý¶ÔDPTR¸³Öµ£» Èç

MOV A£¬#0E2H MOV DPTR£¬#2000H

±äַѰַ·½Ê½£ºÒÔDPTR»òPC×÷Ϊ»ùµØÖ·¼Ä´æÆ÷£¬ÒÔÀÛ¼ÓÆ÷A×÷Ϊ±äÖ·¼Ä´æÆ÷£¬½«»ùÖ·¼Ä´æÆ÷Óë±äÖ·¼Ä´æÆ÷µÄÄÚÈÝÏà¼ÓÐγɲÙ×÷ÊýµÄʵ¼ÊµØÖ·µÄÒ»ÖÖѰַ·½Ê½£¬±äַѰַ·½Ê½ÊÊÓÃÓÚ³ÌÐò´æ´¢Æ÷ROM£¬½öÓÐÈýÌõÖ¸ÁîÈçÏ£º

MOVC A£¬@A+DPTR MOVC A£¬@A+PC JMP @A+DPTR

λѰַ·½Ê½£ºÖ¸ÁîÖÐÖ±½Ó¸ø³ö²Ù×÷ÊýËùÔÚµ¥ÔªµÄλµØÖ·£¬ÊÊÓÃÓÚÆ¬ÄÚRAMÖеØÖ·20HÖÁ2FHÖеÄ16¸ö×Ö½ÚÖеÄ128¸öλµØÖ·¿Õ¼äºÍ80HÖÁFFHÖеØÖ·ÖпÉÒÔ±»8Õû³ýµÄËùÓÐSFRÖеÄÿ¸öλµØÖ·¿Õ¼ä£»Èç

MOV C£¬7FH MOV F0£¬C MOV C£¬ACC.7

Ïà¶ÔѰַ·½Ê½£ºÎªÏà¶Ô×ªÒÆÖ¸Áî¶øÉ裬ָÁîÖÐÖ±½Ó¸ø³ö×ªÒÆµÄÏà¶ÔÆ«ÒÆÁ¿£¬Æä×ªÒÆÄ¿±êÔÚµ±Ç°Ö¸Áî-128ÖÁ£«127×Ö½Ú·¶Î§ÄڵĵØÖ·¿Õ¼ä¡£Èç

SJMP START

HERE£º SJMP HERE £»µÈЧÓÚ£º SJMP $

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

´ð£ºMCS-51µ¥Æ¬»úµÄPSW³ÌÐò״̬×ÖÖÐÎÞZERO(Áã)±ê־룬ÅжÏijÄÚ²¿Êý¾Ýµ¥ÔªµÄÄÚÈÝÊÇ·ñΪÁãÊÇÄÜͨ¹ýÈ¡Êýµ½AÀÛ¼ÓÆ÷£¬ÔÙÅжÏAÖеÄÿһλÊÇ·ñΪÁãÀ´È·¶¨ÆäÖµÊÇ·ñΪÁã¡£

3£®±à³Ì½«ÄÚ²¿RAMµÄ20H--30Hµ¥ÔªÄÚÈÝÇåÁã¡£

½â£ºÉèÒ»¸öƬÄÚRAMÖ¸ÕëR0£¬ÏÈÖ¸ÏòÊ×µØÖ·20H£¬Í¨¹ýÀÛ¼ÓÆ÷AÇåÁ㣬Ȼºó²ÉÓüä½ÓѰַ·½Ê½ÒÀ´Î½«AÖеÄÁãÖµ´«Ë͵½Ö¸ÕëËùÖ¸µÄƬÄÚRAMµ¥Ôª£¬Ã¿´«ËÍÒ»¸ö×Ö½Ú£¬µØÖ·Ö¸Õë¼Ó1£¬Ö±µ½´ïµ½µØÖ·Îª30H»ò´ïµ½¼ÆÊýÆ÷¹æ¶¨µÄ17¸ö×Ö½ÚΪֹ¡£ ³ÌÐò1£º

MOV R0,#20H ;ÉèµØÖ·Ö¸Õë³õÖµ CLR A ;ÀÛ¼ÓÆ÷Çå0

CONT: MOV @R0,A ;ÖÃ0Ö¸ÕëËùÖ¸µ¥Ôª INC R0 ;µØÖ·Ö¸Õë¼Ó1

CJNE R0,#31H,CONT ;Ö¸Õë䳬¹ýÖÕµãÔò¼ÌÐø SJMP $ ;ÔÝÍ£ ³ÌÐò2£º

MOV R0,#20H ;ÉèµØÖ·Ö¸Õë³õÖµ CLR A ;ÀÛ¼ÓÆ÷Çå0

MOV R7,#17 ;¼ÆÊýÆ÷¸³³õÖµ£¬´Ó20Hµ½30H¹²17¸ö×Ö½Ú CONT: MOV @R0,A ;ÖÃ0Ö¸ÕëËùÖ¸µ¥Ôª

INC R0 ;µØÖ·Ö¸Õë¼Ó1

DJNZ R7, CONT ;¼ÆÊýÆ÷¼õ1£¬·Ç0£¬Ôò¼ÌÐø SJMP $ ;ÔÝÍ£

4£®±à³Ì²éÕÒÄÚ²¿RAMµÄ32H¡«41Hµ¥ÔªÖÐÊÇ·ñÓÐ0AAHÕâ¸öÊý¾Ý£¬ÈôÓÐÕâÒ»Êý¾Ý£¬Ôò½«50Hµ¥ÔªÖÃΪ0FFH£¬·ñÔò½«50Hµ¥ÔªÇåÁã¡£

½â£ºÉèÒ»¸öƬÄÚRAMÖ¸ÕëR0£¬ÏÈÖ¸ÏòÊ×µØÖ·32H£¬±È½Ï@R0Óë#0AAH£¬ÈôÏàµÈ£¬ÔòÍ˳öÑ­»·£¬¸ø50Hµ¥Ôª¸³0FFH£¬Èô²»ÏàµÈ£¬ÔòR0¼Ó1Ϊ¼ÌÐø±È½ÏÏÂÒ»¸ö×Ö½Ú×ö×¼±¸£¬Ö±µ½´ïµ½µØÖ·Îª41H»ò´ïµ½¼ÆÊýÆ÷¹æ¶¨µÄ16¸ö×Ö½ÚΪֹ»¹Ã»ÕÒµ½£¬Ôò¸ø50Hµ¥Ôª¸³00H

³ÌÐò1£º

MOV R0,#32H ;ÉèµØÖ·Ö¸Õë³õÖµ

CONT: CJNE @R0,#0AAH,NEXT;±È½Ï²éÕÒÖµÓëÖ¸ÕëËùÖ¸µ¥ÔªµÄÖµ£¬²»ÏàµÈ×ªÒÆ MOV A,#0FFH ;ÏàµÈ£¬Ôò×¼±¸ºÃÒª¸³µÄ±êÖ¾Öµ0FFH

SJMP DOWN ;ת´æµ½±£´æ½á¹û´¦ NEXT: INC R0 ;Ð޸ĵØÖ·Ö¸Õë

CJNE R0,#42H,CONT ;ÈôÖ¸ÕëδԽ¹ýÖյ㣬Ôò¼ÌÐø

MOV A,#00H ;²éÕÒʧ°Ü£¬Ôò½«00H´æÈë½á¹û±êÖ¾µ¥Ôª DOWN: MOV 50H,A ;½«±È½Ï½á¹û±êÖ¾´æÈë50Hµ¥Ôª

SJMP $ ;ÔÝÍ£ END ³ÌÐò2£º

MOV R7,#16 ;¼ÆÊýÆ÷¸³³õÖµ£¬´Ó20Hµ½30H¹²16¸ö×Ö½Ú MOV R0,#32H ;ÉèµØÖ·Ö¸Õë³õÖµ

CONT: CJNE @R0,#0AAH,NEXT ;±È½Ï²éÕÒÖµÓëÖ¸ÕëËùÖ¸µ¥ÔªµÄÖµ£¬²»ÏàµÈ×ªÒÆ MOV A,#0FFH ;ÏàµÈ£¬Ôò×¼±¸ºÃÒª¸³µÄ±êÖ¾Öµ0FFH SJMP DOWN ;ת´æµ½±£´æ½á¹û´¦ NEXT: INC R0 ;Ð޸ĵØÖ·Ö¸Õë

DJNZ R7,CONT ;¼ÆÊýÆ÷¼õ1£¬·Ç0£¬Ôò¼ÌÐø

MOV A,#00H ;²éÕÒʧ°Ü£¬Ôò½«00H´æÈë½á¹û±êÖ¾µ¥Ôª DOWN: MOV 50H,A ;½«±È½Ï½á¹û±êÖ¾´æÈë50Hµ¥Ôª

SJMP $ ;ÔÝÍ£ END

5£®²éÕÒ20H¡«4FHµ¥ÔªÖгöÏÖ00HµÄ´ÎÊý£¬²¢½«²éÕÒ½á¹û´æÈë50Hµ¥Ôª¡£ ½â£º´Ó20Hµ½4FH¹²48¸ö×Ö½Ú

MOV R7,#48 ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ MOV R0,#20H ;ÉèµØÖ·Ö¸Õë³õÖµ

CONT: CJNE @R0,#00H,NEXT ;±È½Ï²éÕÒÖµÓëÖ¸ÕëËùÖ¸µ¥ÔªµÄÖµ£¬²»ÏàµÈ×ªÒÆ INC R6 ;ÏàµÈ£¬0µÄ¸öÊý¼ÆÊýÆ÷¼Ó1

NEXT: INC R0 ;Ð޸ĵØÖ·Ö¸Õë

DJNZ R7,CONT ;¼ÆÊýÆ÷¼õ1£¬·Ç0£¬Ôò¼ÌÐø MOV 50H,R6 ;±£´æOµÄ¸öÊý¼ÆÊýÖµµ½50Hµ¥Ôª SJMP $ ;ÔÝÍ£ END END

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

ORL 17H,A XRL A,@R0 CPL A END

´ð£º

ANL A,#17H ;A=03H

ORL 17H,A ;(17H)=0011 0100 ¡Å 0000 0011=0011 0111 XRL A,@R0 ;A= 0000 0011 ¡Å 0011 0111 =0011 0100 CPL A ;A=1100 1011

7£®ÒÑÖªµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬·Ö±ðÉè¼ÆÑÓʱΪ0.1s¡¢1sµÄ×Ó³ÌÐò¡£ ´ð£ºÒÑÖªµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬Ôò»úÆ÷ÖÜÆÚΪ1us£¬ÑÓʱ×Ó³ÌÐòÊÇͨ¹ýÖ´ÐÐÖ¸ÁîÐòÁÐÖлúÆ÷ÖÜÆÚÊýÀ´´ïµ½£¬Èç¹ûÒª0.1s£¬¼´100ms£¬Ò²¾ÍÊÇ100000us£¬ËùÒÔÐèÒª»úÆ÷ÖÜÆÚÊý´ïµ½100000¡£ÒªÑÓʱ´ïµ½1S£¬¿Éͨ¹ý¶ÔÑÓʱΪ0.1ÃëµÄ×Ó³ÌÐòµ÷ÓÃ10´ÎÀ´ÊµÏÖ¡£

DELAY100MS: MOV R6,#200 ;1¸ö»úÆ÷ÖÜÆÚ D1: MOV R7,#250 ;1¸ö»úÆ÷ÖÜÆÚ D2: NOP ;1¸ö»úÆ÷ÖÜÆÚ

DJNZ R7,D2 ;2¸ö»úÆ÷ÖÜÆÚ£¬3*251=753

DJNZ R6,D1 ;2¸ö»úÆ÷ÖÜÆÚ£¬(1+753+2)*132=99792 RET ;2¸ö»úÆ÷ÖÜÆÚ£¬1+99792+2=99795,Ô¼100ms DELAY1S: MOV R7,#10 ;¼ÆÊý10´Î 1

LOOP: ACALL DELAY100MS ;ÑÓʱ100ms×Ó³ÌÐò 99795+2 DJNZ R7,LOOP ;δ´ïµ½10´ÎÔò¼ÌÐø 10*(2+99795+2) RET ;·µ»Ø2+10*(2+99795+2)=997992

8£®ÄÚ²¿RAM´Ó20Hµ¥Ôª¿ªÊ¼´¦ÓÐÒ»Êý¾Ý¿é£¬ÒÔODHΪ½áÊø±êÖ¾£¬ÊÔͳ¼Æ¸ÃÊý¾Ý¿éµÄ³¤¶È£¬½«¸ÃÊý¾Ý¿éË͵½ÍⲿÊý¾Ý´æ´¢Æ÷7E01H¿ªÊ¼µÄµ¥Ôª£¬²¢½«³¤¶È´æÈë7E00Hµ¥Ôª¡£

½â£º´Ó20HµÄÖ¸ÕëÓÃR0£¬´ÓÍⲿRAM7E01¿ªÊ¼µÄÖ¸ÕëÓÃDPTR£¬¼ÆÊýÆ÷ÓÃR7 MOV R7,#0 ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ

MOV R0,#20H ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ

MOV DPTR,#7E01H ;ÉèÆ¬ÍâRAMµØÖ·Ö¸Õë³õÖµ CONT: MOV A,@R0 ;ȡƬÄÚRAMÖеÄÒ»¸ö×Ö½Ú MOVX @DPTR,A ;´æÈëÆ¬ÍâRAMÖ¸ÕëËùÖ¸µ¥Ôª INC R7 ;³¤¶È¼ÆÊýÆ÷¼Ó1

INC R0 ;ƬÄÚRAMµØÖ·Ö¸Õë¼Ó1 INC DPTR ;ƬÍâRAMµØÖ·Ö¸Õë¼Ó1 CJNE A,#0DH,CONT ;δ´ïµ½½áÊø±êÖ¾ MOV A,R7 ;È¡¿é¼ÆÊý³¤¶ÈÖµ MOVX @DPTR,A ;±£´æ SJMP $ ;ÔÝÍ£ END

9£®ÄÚ²¿RAM´ÓDATA¿ªÊ¼µÄÇøÓòÖдæ·Å×Å10¸öµ¥×Ö½ÚÊ®½øÖÆÊý£¬ÇóÆäÀۼӺͣ¬²¢½«½á¹û´æÈëSUMºÍSUM+1µ¥Ôª¡£

½â£ºR7¼ÆÊý£¬R6±£´æÀۼӺ͸ß8룬R0ÓÃ×÷µØÖ·Ö¸Õë ORG 0000H LJMP MAIN ORG 100H SUM EQU 30H DATAA EQU 40H

MAIN: MOV R7,#10 ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ MOV R0,#DATAA ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ CLR A ;ÀÛ¼ÓÆ÷Çå0

MOV R6,A ;ÀÛ¼Ó½á¹ûµÄ¸ß8λ

CONT: ADD A,@R0 ;¼ÓRAMÖеÄÒ»¸ö×Ö½Úµ½ACC DA A

JNC NEXT ;ÈôÎÞ½øÎ»Ôò²»Óùܸß8λ INC R6 ;ÓнøÎ»£¬¸ß8λ¼Ó1

NEXT: INC R0 ;ƬÄÚRAMµØÖ·Ö¸Õë¼Ó1 DJNZ R7,CONT ;δÍê¼ÌÐø MOV SUM,A ;±£´æµÍ8λ MOV SUM+1,R6 ;±£´æ¸ß8λ SJMP $ ;ÔÝÍ£ END

10£®ÄÚ²¿RAM´ÓDATA1ºÍDATA2µ¥Ôª¿ªÊ¼´¦´æ·Å×ÅÁ½¸öµÈ³¤µÄÊý¾Ý¿é£¬Êý¾Ý¿éµÄ³¤¶ÈÔÚLENµ¥ÔªÖС£Çë±à³Ì¼ì²éÕâÁ½¸öÊý¾Ý¿éÊÇ·ñÏàµÈ£¬ÈôÏàµÈ£¬½«0FFHдÈëRESULTµ¥Ôª£¬·ñÔò½«0дÈëRESULTµ¥Ôª¡£

½â£º´ÓDATA1¿ªÊ¼µÄÖ¸ÕëÓÃR0£¬´ÓDATA2¿ªÊ¼µÄÖ¸ÕëÓÃR1£¬¼ÆÊýÆ÷ÓÃR7 LEN EQU 10 DATA1 EQU 30H DATA2 EQU 40H RESULT EQU 50H

MOV R7,#LEN ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ

MOV R0,#DATA1 ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ MOV R1,#DATA2 ;ÉèÆ¬ÍâRAMµØÖ·Ö¸Õë³õÖµ

CONT: MOV A,@R0 ;ȡƬÄÚRAM R0ËùÖ¸µÄµÄÒ»¸ö×Ö½Ú

MOV 7FH,@R1 ;½«R1ËùÖ¸µ¥ÔªÄÚÈÝÈ¡µ½Æ¬ÄÚRAMµØÖ·7FHÖÐ CJNE A,7FH,NOEQ ;±È½Ï£¬²»ÏàµÈÔò½áÊø

INC R0 ;DATA1 RAMµØÖ·Ö¸Õë¼Ó1 INC R1 ;DATA2 RAMµØÖ·Ö¸Õë¼Ó1 DJNZ R7,CONT ;δÍ꣬¼ÌÐø MOV A,#0FFH ;ÏàµÈ,×¼±¸Ð´ÈëFFH SJMP DOWN ;תдÈë½á¹û´¦

NOEQ: MOV A,#0 ;²»ÏàµÈ,×¼±¸Ð´Èë00H DOWN: MOV RESULT,A ;±£´æ±È½Ï½á¹û±êÖ¾ SJMP $ ;ÔÝÍ£ END

11£®±àÖÆ³ÌÐò£¬½«ÄÚ²¿RAMÖÐM1¡¢M2¡¢M3ºÍM4µ¥ÔªÖеÄÎÞ·ûºÅÊýxl¡¢x2¡¢x3ºÍx4Ïà¼Ó£¬²¢°ÑºÍ´æÈëROºÍR1(R0ÖÐΪ¸ß8λ)ÖС£

½â£º

M1 EQU 30H M2 EQU 40H M3 EQU 45H M4 EQU 4FH

MOV A,M1 ;È¡µÚÒ»¸öÊý ADD A,M2 ;ÓëµÚ¶þ¸öÊýÏà¼Ó

JNC NEXT1 ;Èç¹ûÎÞ½øÎ»£¬Ôò×ªÒÆÖÁµÚÈý¸öÏà¼Ó MOV R0,#1 ;ÓнøÎ»£¬¸ß8λÖÃ1 NEXT1: ADD A,M3 ;ÓëµÚÈý¸öÊýÏà¼Ó

JNC NEXT2 ;ûÓнøÎ»£¬ÔòתÖÁµÚËĸöÊýÏà¼Ó INC R0 ;ÓнøÎ»£¬¸ß8λ¼Ó1 NEXT2: ADD A,M4 ;ÓëµÚËĸöÊýÏà¼Ó JNC NEXT3 ;ûÓнøÎ»£¬ÔòתÖÁ½áÊø INC R0 ;ÓнøÎ»£¬¸ß8λÔÙ¼Ó1 NEXT3: MOV R1,A ;µÍ8λ±£´æµ½R1 SJMP $ ;ÔÝÍ£ END

µÚ4Õ µ¥Æ¬»úµÄC51ÓïÑÔ Ï°Ìâ

1£®CÓïÑÔµÄÓŵãÊÇʲô£¿C³ÌÐòµÄÖ÷Òª½á¹¹ÌصãÊÇʲô£¿

´ð£ºCÓïÑÔÊÇÒ»Öָ߼¶ÓïÑÔ£¬Ñ§Ï°±ÈµÍ¼¶ÈÝÒ×£¬²»ÐèÒª¾ßÌå×éÖ¯¡¢·ÖÅä´æ´¢Æ÷×ÊÔ´ºÍ´¦Àí¶Ë¿ÚÊý¾Ý£¬¿ÉÒÔÖ±½ÓÇý¶¯µ¥Æ¬»úµÄËùÓÐ×ÊÔ´¡£

C³ÌÐòÒÔº¯ÊýΪµ¥Î»£¬ÓÉÒ»¸öÖ÷º¯ÊýºÍÈô¸É¸öÆäËûº¯Êý¹¹³É£¬Ö÷º¯ÊýÊdzÌÐòµÄÈë¿Ú£¬ÆäËûº¯ÊýÓÉÖ÷º¯ÊýÖ±½Ó»ò¼ä½Óµ÷ÓᣳÌÐò¿ÉÒÔÓÉÒ»¸öÎļþ»ò¶à¸öÎļþ×é³É¡£ÎļþÀàÐͰüÀ¨Í·ÎļþºÍCÓïÑÔÔ´Îļþ£¬Ò²¿ÉÒÔÊÇ»ã±àÓïÑÔÎļþ£¬C³ÌÐò¿ÉÓë»ã±àÓïÑÔ»ìºÏ±à³Ì¡£

2£®C51ÓïÑԵıäÁ¿¶¨Òå°üº¬ÄÄЩ¹Ø¼üÒòËØ£¿ÎªºÎÕâÑù¿¼ÂÇ£¿ ´ð£ºCÓïÑԵıäÁ¿¶¨Òå¸ñʽÈçÏ£º [´æ´¢ÖÖÀà] Êý¾ÝÀàÐÍ [´æ´¢ÀàÐÍ] ±äÁ¿Ãû ÆäÖУº

´æ´¢ÖÖÀàÓë±ê×¼CÓïÑÔÏàͬ£¬°üÀ¨£º×Ô¶¯ÐÍ(auto)¡¢ÍⲿÐÍ(extern)¡¢¾²Ì¬ÐÍ(static)¡¢¼Ä´æÆ÷ÐÍ(register)¡£

Êý¾ÝÀàÐͳýÁ˰üº¬±ê×¼CÓïÑÔÀàÐ͵Ä×Ö·ûÐÍ(char)£¬ÕûÐÍ(int)£¬³¤ÕûÐÍ(long)£¬¸¡µãÐÍ(float)£¬Ë«¾«¶ÈÐÍ(double)Í⣬»¹Óжþ½øÖÆÎ»ÐÍ(bit)£¬ÌØÊ⹦ÄܼĴæÆ÷ÐÍ(sfr)£¬SFR¿ÉλѰַµÄλÀàÐÍ(sbit)¡£

´æ´¢ÀàÐͰüÀ¨£ºÆ¬ÄÚRAMÇø(data)¡¢Æ¬ÄÚ¿ÉÎ»Ñ°Ö·Çø(bdata)£¬Æ¬ÄÚRAM¼ä½ÓÑ°Ö·Çø(idata)£¬Æ¬ÍâRAMÒ³Ñ°Ö·Çø(pdata)£¬Æ¬ÍâRAMÇø(xdata)¡¢ROMÇø(code)¡£

Ö»ËùÒԱȱê×¼CÓïÑÔ¶àÁË´æ´¢ÀàÐÍ£¬¾ÍÊÇÒòΪMCS£­51µ¥Æ¬»úµÄ´æ´¢½á¹¹ÖÐÓÐËĸöÎïÀí´æ´¢¿Õ¼ä(ƬÄÚRAM¡¢Æ¬ÄÚROM£¬Æ¬ÍâRAM£¬Æ¬ÍâROM)£¬Èý¸öÂß¼­µØÖ·¿Õ¼ä(ƬÄÚRAM£¬Æ¬ÍâRAM£¬ROM)£¬¶øÇÒÓжàÖÖѰַ·½Ê½£¨Ö±½ÓѰַ¡¢¼ä½ÓѰַ¡¢Ò³ÃæÑ°Ö·¡¢Î»Ñ°Ö·£©ËùÖ£¬ËùÒÔÔÚ¶¨Òå±äÁ¿Ê±£¬Òª¸ù¾ÝÆäËùÔÚλÖúÍѰַ·½Ê½Ã÷È·Ö¸¶¨´æ´¢ÀàÐÍ¡£

3£®C51Óë»ã±àÓïÑÔµÄÌØµã¸÷ÓÐÄÄЩ£¿ÔõÑùʵÏÖÁ½ÕßµÄÓÅÊÆ»¥²¹£¿

´ð£ºC51Êǽṹ»¯ÓïÑÔ£¬´úÂë½ô´Õ£»½Ó½ü×ÔÈ»ÓïÑÔ£¬³ÌÐò¿É¶ÁÐÔÇ¿£¬Ò×ÓÚµ÷ÊÔ¡¢Î¬»¤£»¿âº¯Êý·á¸»£¬±à³Ì¹¤×÷Á¿Ð¡£¬¿Éʹ²úÆ·¿ª·¢ÖÜÆÚ¶Ì£»¾ßÓлúÆ÷¼¶¿ØÖÆÄÜÁ¦£¬¹¦ÄܺÜÇ¿£¬ÊʺÏÓÚǶÈëʽϵͳ¿ª·¢£»»ã±àÖ¸ÁîÎ޹أ¬Ò×ÓÚÕÆÎÕ£¬ÉÏÊÖ¿ì¡£

»ã±àÓïÑÔÓŵãÊDZàдµÄ³ÌÐò´úÂ뾫Á¶¡¢Ö´ÐÐËٶȿ죬ÔÚÏàͬ¹¦ÄÜÏ£¬»ã±àÓïÑÔ³ÌÐò¿ÉÄܱÈCÓïÑÔ³ÌÐòЧÂʸߡ£È±µãÊǶԳÌÐòÔ±ÒªÇó¸ß£¬±ØÐë¶Ôµ¥Æ¬»úµÄÓ²¼þ½á¹¹·Ç³£ÊìϤ²ÅÄܱà³Ì£¬²»±ãÓÚ±àд±È½Ï¸´ÔӵijÌÐò¡£

¿É¸ù¾ÝÐèÒª¶ÔÒªÇóʱ¼äÐÔºÜÇ¿µÄ´úÂëÓûã±àÓïÑÔ±àд£¬ÆäËü²¿·ÖÓÃCÓïÑÔ±àд£¬Á½Õß»ìºÏ±à³Ì¾Í¿ÉÒÔʵÏÖÓÅÊÆ»¥²¹¡£

4£®Ö¸³öÏÂÃæ³ÌÐòµÄÓï·¨´íÎó£º #include main(){ a=C£» int a=7,C delay(10) void delay();{ cgar i£»

for(i=O; i<=255; ¡±++¡±); }

´ð£º

#include main(){

a=C£» //aºÍC±ØÐëÏȶ¨Òå²Å¿ÉʹÓà int a=7,C //ȱ·ÖºÅ£¬Ó¦¸ÃÌáÔÚʹÓÃǰ˵Ã÷

delay(10) //ÑÓʱ×Ó³ÌÐò±ØÐëÏȶ¨Ò壬»òÏÈÓк¯ÊýÔ­ÐÍ˵Ã÷ void delay();{ //×÷Ϊº¯Êý¶¨Ò壬Óк¯Êý¶¨Òå²»ÄÜǶÌ×µÄÎÊÌ⣬

//¼´²»ÄÜÔÚÒ»¸öº¯ÊýÄÚ¶¨ÒåÁíÒ»¸öº¯Êý£¬¶øÇÒ¡°{¡±Ç°²»Ó¦ÓзֺŠ//×÷Ϊº¯ÊýÔ­ÐÍ˵Ã÷£¬Ó¦¸Ã·ÅÔÚº¯Êýµ÷ÓÃ֮ǰ,ÇÒÆäºó²»Ó¦¸Ã½Óº¯ÊýÌå cgar i£» //×Ö·ûÐÍÓ¦¸ÃÊÇunsigned char for(i=O; i<=255; ¡±++¡±);// ¡±++¡±Ó¦¸Ä³Éi++ }

//Ö÷º¯ÊýûÓнáÊø£¬È±¡±}¡±

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

´ð£º char bdata a; float xdata b; int xdata *c;

6£®±à³Ì½«8051µÄÄÚ²¿Êý¾Ý´æ´¢Æ÷20Hµ¥ÔªºÍ35Hµ¥ÔªµÄÊý¾ÝÏà³Ë£¬½á¹û´æµ½ÍⲿÊý¾Ý´æ´¢Æ÷ÖÐ(ÈÎÒâλÖÃ)¡£

½â£º·½·¨Ò»£ºÓÃǶÈëʽ»ã±àÓïÑÔʵÏÖ #include void main()

{ #pragma asm MOV A,20H MOV B,35H MUL AB

MOV DPTR,#1234H MOVX @DPTR,A INC DPTR MOV A,B MOVX @DPTR,A #pragma endasm }

·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ #include #include int movdata(char); void main() {

unsigned int xdata x; unsigned char *ptr,a,b; ptr=0x25; a=*ptr; ptr=0x30;

b=*ptr; x=a*b; }

7£®8051µÄƬÄÚÊý¾Ý´æ´¢Æ÷25Hµ¥ÔªÖдæ·ÅÓÐÒ»¸ö0¡«10µÄÕûÊý£¬±à³ÌÇóÆäƽ·½¸ù(¾«È·µ½5λÓÐЧÊý×Ö)£¬½«Æ½·½¸ù·Åµ½30Hµ¥ÔªÎªÊ×Ö·µÄÄÚ´æÖС£

½â£º·½·¨Ò»£ºÓÃCÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³ÌʵÏÖ //ÓÃCÓïÑÔ±àдµÄÖ÷º¯ÊýMAIN.C #include #include char getdata(char); void main() {

char a=0x25,c; float f; c=getdata(a); f=sqrt(c); }

;Óûã±àÓïÑÔ±àдµÄÈ¡Êý¾Ý×Óº¯Êý£¬Ö»ÓÐÒ»¸öµØÖ·²ÎÊýÔÚR7ÖУ¬·µ»ØÖµÎªÖ¸¶¨µØÖ·µ¥ÔªÖеÄÄÚÈÝ£¬ÓÃR7·µ»ØÖ÷º¯Êý¡£

PUBLIC _GETDATA DE SEGMENT CODE RSEG DE

_GETDATA: MOV A,R7 ;È¡µØÖ·²ÎÊý MOV R0,A MOV A,@R0

MOV R7,A ;·µ»ØµØÖ·µ¥ÔªÖеÄÄÚÈÝ EXIT: RET END

·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ //MAIN.C

#include #include int movdata(char); void main() { char n; char *ptr; float *ptr2; float f; ptr=0x25; n=*ptr; f=sqrt(n); ptr2=0x30; *ptr2=f;

}

8£®½«ÍⲿRAM 10H¡«15Hµ¥ÔªµÄÄÚÈÝ´«Ë͵½ÄÚ²¿RAM 10H¡«15Hµ¥Ôª¡£ ½â£º·½·¨Ò»£º²ÉÓÃCÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³Ì

//ÓÃCÓïÑÔ±àдµÄÖ÷º¯ÊýMAIN.C #include char movdata(char,char); void main() {

char a=0x10,b=0x06; movdata(a,b); }

;Óûã±àÓïÑÔ±àдµÄÒÆ¶¯Êý¾Ý×Óº¯ÊýMOVDATA£¬ÆäÖеÚÒ»¸ö²ÎÊýÔÚR7ÖÐΪÊ×µØÖ·£¬µÚ¶þ¸ö²ÎÊýÔÚR5ÖÐΪ×Ö½ÚÊý

PUBLIC _MOVDATA DE SEGMENT CODE RSEG DE

_MOVDATA: MOV A,R7 ;È¡²ÎÊý MOV R0,A

LOOP: MOVX A,@R0 MOV @R0,A DJNZ R5,LOOP EXIT: RET

END

·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ //MAIN.C

#include int movdata(char); void main() {

char n=6;

char *ptr1=0x10; char xdata *ptr2; ptr2=0x20; while(n--){ *ptr2++=*ptr1++; } }

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

½â£º·½·¨Ò»£º #include void main() {

unsigned int *ptr; //ÉèÖÃÒ»¸öÄÚ²¿RAMÖ¸Õë unsigned int x,y,z;

ptr=0x20; //Ö¸Ïò0x20µ¥Ôª x=*ptr; //È¡µÚÒ»¸öÊý ptr=0x22; //Ö¸Ïò0x22µ¥Ôª y=*ptr; //È¡µÚ¶þ¸öÊý

z=(x>y)?x:y; //½«Á½ÊýÖеĽϴóÕ߸³¸øz ptr=0x24; //Ö¸ÏòµØÖ·Îª0x24µÄÄ¿±êµ¥Ôª *ptr=z; //½«´óÊý´æÈëÄ¿±êµ¥Ôª } ·½·¨¶þ£º

#include #include void main() {

unsigned int x,y,z;

x=DBYTE[0X20]*256+DBYTE[0X21]; y=DBYTE[0X22]*256+DBYTE[0X23]; z=(x>y)?x:y; //½«Á½ÊýÖеĽϴóÕ߸³¸øz DBYTE[0X24]=z/256; DBYTE[0X25]=z%6; } ·½·¨Èý£º

#include unsigned int x _at_ 0x20;

unsigned int y _at_ 0x22; unsigned int z _at_ 0x24; void main() {

z=(x>y)?x:y; }

µÚ4Õ µ¥Æ¬»úµÄC51ÓïÑÔ Ï°Ìâ

1£®CÓïÑÔµÄÓŵãÊÇʲô£¿C³ÌÐòµÄÖ÷Òª½á¹¹ÌصãÊÇʲô£¿

´ð£ºCÓïÑÔÊÇÒ»Öָ߼¶ÓïÑÔ£¬Ñ§Ï°±ÈµÍ¼¶ÈÝÒ×£¬²»ÐèÒª¾ßÌå×éÖ¯¡¢·ÖÅä´æ´¢Æ÷×ÊÔ´ºÍ´¦Àí¶Ë¿ÚÊý¾Ý£¬¿ÉÒÔÖ±½ÓÇý¶¯µ¥Æ¬»úµÄËùÓÐ×ÊÔ´¡£

C³ÌÐòÒÔº¯ÊýΪµ¥Î»£¬ÓÉÒ»¸öÖ÷º¯ÊýºÍÈô¸É¸öÆäËûº¯Êý¹¹³É£¬Ö÷º¯ÊýÊdzÌÐòµÄÈë¿Ú£¬ÆäËûº¯ÊýÓÉÖ÷º¯ÊýÖ±½Ó»ò¼ä½Óµ÷ÓᣳÌÐò¿ÉÒÔÓÉÒ»¸öÎļþ»ò¶à¸öÎļþ×é³É¡£ÎļþÀàÐͰüÀ¨Í·ÎļþºÍCÓïÑÔÔ´Îļþ£¬Ò²¿ÉÒÔÊÇ»ã±àÓïÑÔÎļþ£¬C³ÌÐò¿ÉÓë»ã±àÓïÑÔ»ìºÏ±à³Ì¡£

2£®C51ÓïÑԵıäÁ¿¶¨Òå°üº¬ÄÄЩ¹Ø¼üÒòËØ£¿ÎªºÎÕâÑù¿¼ÂÇ£¿ ´ð£ºCÓïÑԵıäÁ¿¶¨Òå¸ñʽÈçÏ£º [´æ´¢ÖÖÀà] Êý¾ÝÀàÐÍ [´æ´¢ÀàÐÍ] ±äÁ¿Ãû ÆäÖУº

´æ´¢ÖÖÀàÓë±ê×¼CÓïÑÔÏàͬ£¬°üÀ¨£º×Ô¶¯ÐÍ(auto)¡¢ÍⲿÐÍ(extern)¡¢¾²Ì¬ÐÍ(static)¡¢¼Ä´æÆ÷ÐÍ(register)¡£

Êý¾ÝÀàÐͳýÁ˰üº¬±ê×¼CÓïÑÔÀàÐ͵Ä×Ö·ûÐÍ(char)£¬ÕûÐÍ(int)£¬³¤ÕûÐÍ(long)£¬¸¡µãÐÍ(float)£¬Ë«¾«¶ÈÐÍ(double)Í⣬»¹Óжþ½øÖÆÎ»ÐÍ(bit)£¬ÌØÊ⹦ÄܼĴæÆ÷ÐÍ(sfr)£¬SFR¿ÉλѰַµÄλÀàÐÍ(sbit)¡£

´æ´¢ÀàÐͰüÀ¨£ºÆ¬ÄÚRAMÇø(data)¡¢Æ¬ÄÚ¿ÉÎ»Ñ°Ö·Çø(bdata)£¬Æ¬ÄÚRAM¼ä½ÓÑ°Ö·Çø(idata)£¬Æ¬ÍâRAMÒ³Ñ°Ö·Çø(pdata)£¬Æ¬ÍâRAMÇø(xdata)¡¢ROMÇø(code)¡£

Ö»ËùÒԱȱê×¼CÓïÑÔ¶àÁË´æ´¢ÀàÐÍ£¬¾ÍÊÇÒòΪMCS£­51µ¥Æ¬»úµÄ´æ´¢½á¹¹ÖÐÓÐËĸöÎïÀí´æ´¢¿Õ¼ä(ƬÄÚRAM¡¢Æ¬ÄÚROM£¬Æ¬ÍâRAM£¬Æ¬ÍâROM)£¬Èý¸öÂß¼­µØÖ·

¿Õ¼ä(ƬÄÚRAM£¬Æ¬ÍâRAM£¬ROM)£¬¶øÇÒÓжàÖÖѰַ·½Ê½£¨Ö±½ÓѰַ¡¢¼ä½ÓѰַ¡¢Ò³ÃæÑ°Ö·¡¢Î»Ñ°Ö·£©ËùÖ£¬ËùÒÔÔÚ¶¨Òå±äÁ¿Ê±£¬Òª¸ù¾ÝÆäËùÔÚλÖúÍѰַ·½Ê½Ã÷È·Ö¸¶¨´æ´¢ÀàÐÍ¡£

3£®C51Óë»ã±àÓïÑÔµÄÌØµã¸÷ÓÐÄÄЩ£¿ÔõÑùʵÏÖÁ½ÕßµÄÓÅÊÆ»¥²¹£¿

´ð£ºC51Êǽṹ»¯ÓïÑÔ£¬´úÂë½ô´Õ£»½Ó½ü×ÔÈ»ÓïÑÔ£¬³ÌÐò¿É¶ÁÐÔÇ¿£¬Ò×ÓÚµ÷ÊÔ¡¢Î¬»¤£»¿âº¯Êý·á¸»£¬±à³Ì¹¤×÷Á¿Ð¡£¬¿Éʹ²úÆ·¿ª·¢ÖÜÆÚ¶Ì£»¾ßÓлúÆ÷¼¶¿ØÖÆÄÜÁ¦£¬¹¦ÄܺÜÇ¿£¬ÊʺÏÓÚǶÈëʽϵͳ¿ª·¢£»»ã±àÖ¸ÁîÎ޹أ¬Ò×ÓÚÕÆÎÕ£¬ÉÏÊÖ¿ì¡£

»ã±àÓïÑÔÓŵãÊDZàдµÄ³ÌÐò´úÂ뾫Á¶¡¢Ö´ÐÐËٶȿ죬ÔÚÏàͬ¹¦ÄÜÏ£¬»ã±àÓïÑÔ³ÌÐò¿ÉÄܱÈCÓïÑÔ³ÌÐòЧÂʸߡ£È±µãÊǶԳÌÐòÔ±ÒªÇó¸ß£¬±ØÐë¶Ôµ¥Æ¬»úµÄÓ²¼þ½á¹¹·Ç³£ÊìϤ²ÅÄܱà³Ì£¬²»±ãÓÚ±àд±È½Ï¸´ÔӵijÌÐò¡£

¿É¸ù¾ÝÐèÒª¶ÔÒªÇóʱ¼äÐÔºÜÇ¿µÄ´úÂëÓûã±àÓïÑÔ±àд£¬ÆäËü²¿·ÖÓÃCÓïÑÔ±àд£¬Á½Õß»ìºÏ±à³Ì¾Í¿ÉÒÔʵÏÖÓÅÊÆ»¥²¹¡£

4£®Ö¸³öÏÂÃæ³ÌÐòµÄÓï·¨´íÎó£º #include main(){ a=C£» int a=7,C delay(10) void delay();{ cgar i£»

for(i=O; i<=255; ¡±++¡±); } ´ð£º

#include main(){

a=C£» //aºÍC±ØÐëÏȶ¨Òå²Å¿ÉʹÓà int a=7,C //ȱ·ÖºÅ£¬Ó¦¸ÃÌáÔÚʹÓÃǰ˵Ã÷

delay(10) //ÑÓʱ×Ó³ÌÐò±ØÐëÏȶ¨Ò壬»òÏÈÓк¯ÊýÔ­ÐÍ˵Ã÷ void delay();{ //×÷Ϊº¯Êý¶¨Ò壬Óк¯Êý¶¨Òå²»ÄÜǶÌ×µÄÎÊÌ⣬

//¼´²»ÄÜÔÚÒ»¸öº¯ÊýÄÚ¶¨ÒåÁíÒ»¸öº¯Êý£¬¶øÇÒ¡°{¡±Ç°²»Ó¦ÓзֺŠ//×÷Ϊº¯ÊýÔ­ÐÍ˵Ã÷£¬Ó¦¸Ã·ÅÔÚº¯Êýµ÷ÓÃ֮ǰ,ÇÒÆäºó²»Ó¦¸Ã½Óº¯ÊýÌå cgar i£» //×Ö·ûÐÍÓ¦¸ÃÊÇunsigned char for(i=O; i<=255; ¡±++¡±);// ¡±++¡±Ó¦¸Ä³Éi++ }

//Ö÷º¯ÊýûÓнáÊø£¬È±¡±}¡±

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

´ð£º char bdata a; float xdata b; int xdata *c;

6£®±à³Ì½«8051µÄÄÚ²¿Êý¾Ý´æ´¢Æ÷20Hµ¥ÔªºÍ35Hµ¥ÔªµÄÊý¾ÝÏà³Ë£¬½á¹û´æµ½ÍⲿÊý¾Ý´æ´¢Æ÷ÖÐ(ÈÎÒâλÖÃ)¡£

½â£º·½·¨Ò»£ºÓÃǶÈëʽ»ã±àÓïÑÔʵÏÖ #include void main() { #pragma asm MOV A,20H MOV B,35H

MUL AB

MOV DPTR,#1234H MOVX @DPTR,A INC DPTR MOV A,B MOVX @DPTR,A #pragma endasm }

·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ #include #include int movdata(char); void main() {

unsigned int xdata x; unsigned char *ptr,a,b; ptr=0x25; a=*ptr; ptr=0x30; b=*ptr; x=a*b; }

7£®8051µÄƬÄÚÊý¾Ý´æ´¢Æ÷25Hµ¥ÔªÖдæ·ÅÓÐÒ»¸ö0¡«10µÄÕûÊý£¬±à³ÌÇóÆäƽ·½¸ù(¾«È·µ½5λÓÐЧÊý×Ö)£¬½«Æ½·½¸ù·Åµ½30Hµ¥ÔªÎªÊ×Ö·µÄÄÚ´æÖС£

½â£º·½·¨Ò»£ºÓÃCÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³ÌʵÏÖ //ÓÃCÓïÑÔ±àдµÄÖ÷º¯ÊýMAIN.C #include #include char getdata(char); void main() {

char a=0x25,c; float f; c=getdata(a); f=sqrt(c); }

;Óûã±àÓïÑÔ±àдµÄÈ¡Êý¾Ý×Óº¯Êý£¬Ö»ÓÐÒ»¸öµØÖ·²ÎÊýÔÚR7ÖУ¬·µ»ØÖµÎªÖ¸¶¨µØÖ·µ¥ÔªÖеÄÄÚÈÝ£¬ÓÃR7·µ»ØÖ÷º¯Êý¡£

PUBLIC _GETDATA DE SEGMENT CODE RSEG DE

_GETDATA: MOV A,R7 ;È¡µØÖ·²ÎÊý MOV R0,A MOV A,@R0

MOV R7,A ;·µ»ØµØÖ·µ¥ÔªÖеÄÄÚÈÝ EXIT: RET END

·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ //MAIN.C

#include #include int movdata(char); void main() { char n; char *ptr; float *ptr2; float f; ptr=0x25; n=*ptr; f=sqrt(n); ptr2=0x30; *ptr2=f; }

8£®½«ÍⲿRAM 10H¡«15Hµ¥ÔªµÄÄÚÈÝ´«Ë͵½ÄÚ²¿RAM 10H¡«15Hµ¥Ôª¡£ ½â£º·½·¨Ò»£º²ÉÓÃCÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³Ì

//ÓÃCÓïÑÔ±àдµÄÖ÷º¯ÊýMAIN.C #include char movdata(char,char); void main() {

char a=0x10,b=0x06; movdata(a,b); }

;Óûã±àÓïÑÔ±àдµÄÒÆ¶¯Êý¾Ý×Óº¯ÊýMOVDATA£¬ÆäÖеÚÒ»¸ö²ÎÊýÔÚR7ÖÐΪÊ×µØÖ·£¬µÚ¶þ¸ö²ÎÊýÔÚR5ÖÐΪ×Ö½ÚÊý

PUBLIC _MOVDATA DE SEGMENT CODE RSEG DE

_MOVDATA: MOV A,R7 ;È¡²ÎÊý MOV R0,A

LOOP: MOVX A,@R0 MOV @R0,A DJNZ R5,LOOP EXIT: RET END

·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ //MAIN.C

#include int movdata(char); void main() {

char n=6;

char *ptr1=0x10; char xdata *ptr2; ptr2=0x20; while(n--){ *ptr2++=*ptr1++; } }

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

½â£º·½·¨Ò»£º #include void main() {

unsigned int *ptr; //ÉèÖÃÒ»¸öÄÚ²¿RAMÖ¸Õë unsigned int x,y,z;

ptr=0x20; //Ö¸Ïò0x20µ¥Ôª x=*ptr; //È¡µÚÒ»¸öÊý ptr=0x22; //Ö¸Ïò0x22µ¥Ôª

y=*ptr; //È¡µÚ¶þ¸öÊý

z=(x>y)?x:y; //½«Á½ÊýÖеĽϴóÕ߸³¸øz ptr=0x24; //Ö¸ÏòµØÖ·Îª0x24µÄÄ¿±êµ¥Ôª *ptr=z; //½«´óÊý´æÈëÄ¿±êµ¥Ôª } ·½·¨¶þ£º

#include #include void main() {

unsigned int x,y,z;

x=DBYTE[0X20]*256+DBYTE[0X21]; y=DBYTE[0X22]*256+DBYTE[0X23]; z=(x>y)?x:y; //½«Á½ÊýÖеĽϴóÕ߸³¸øz DBYTE[0X24]=z/256; DBYTE[0X25]=z%6; } ·½·¨Èý£º

#include unsigned int x _at_ 0x20; unsigned int y _at_ 0x22; unsigned int z _at_ 0x24; void main()

{

z=(x>y)?x:y; }

µÚ5Õ µ¥Æ¬»úµÄÖжÏϵͳ ϰÌâ

1£®Ê²Ã´ÊÇÖжϡ¢ÖжÏÔ´¡¢ÖжÏÓÅÏȼ¶ºÍÖжÏǶÌ×£¿

´ð£ºÖжÏÊÇÖ¸µ¥Æ¬»úÄÚ²¿ÓÐÒ»¸öÖжϹÜÀíϵͳ£¬Ëü¶ÔÄÚ²¿µÄ¶¨Ê±Æ÷ʼþ¡¢´®ÐÐͨÐŵķ¢ËͺͽÓÊÕ¼°Íⲿʼþ£¨Èç¼üÅ̰´¼ü¶¯×÷£©µÈ½øÐÐ×Ô¶¯µÄ¼ì²âÅжϡ£µ±CPUÕýÔÚ´¦Àíij¼þÊÂÇ飨ÀýÈçÕýÔÚÖ´ÐÐÖ÷³ÌÐò£©µÄʱºò£¬Íⲿ»òÄÚ²¿·¢ÉúµÄijһʼþ£¨Èçij¸öÒý½ÅÉÏµçÆ½µÄ±ä»¯£¬Ò»¸öÂö³åÑØµÄ·¢Éú»ò¼ÆÊýÆ÷µÄ¼ÆÊýÒç³öµÈ£©ÇëÇóCPUѸËÙ´¦Àí£¬ÓÚÊÇ£¬ÖжϹÜÀíϵͳ»áÖÃλÏàÓ¦±ê־֪ͨCPUÔÝʱÖÐÖ¹µ±Ç°µÄ¹¤×÷£¬Ñ¸ËÙתȥ´¦ÀíËù·¢ÉúµÄʼþ¡£´¦ÀíÍê¸Ãʼþºó£¬Ôٻص½Ô­À´±»ÖÐÖ¹µÄµØ·½£¬¼ÌÐøÔ­À´µÄ¹¤×÷£¬ÕâÑùµÄ¹ý³Ì³ÆÎªÖжϡ£

Òý·¢ÖжϵÄʼþ³ÆÎªÖжÏÔ´¡£

½«ÖжÏʼþ°´ÇáÖØ»º¼±·ÖÈô¸É¼¶±ð½ÐÖжÏÓÅÏȼ¶¡£

ÔÊÐíÖжÏÓÅÏȼ¶¸ßµÄÖжÏÔ´ÖжÏÕýÔÚÖ´ÐеĵÍÓÅÏȼ¶µÄÖжϷþÎñ³ÌÐò½ÐÖжÏǶÌס£

2£®Ê²Ã´½ÐÖжÏÔ´£¿MCS-51ÓÐÄÄЩÖжÏÔ´£¿¸÷ÓÐÊ²Ã´ÌØµã£¿ËüÃǵÄÖжÏÏòÁ¿µØÖ··Ö±ðÊǶàÉÙ£¿

´ð£ºÖжÏÔ´¼´Òý·¢ÖжϵÄʼþ¡£

MCS-51µ¥Æ¬»úÓÐ5¸öÖжÏÔ´£¬ËüÃÇÊÇÍⲿÖжÏ0£¬¶¨Ê±Æ÷T0£¬ÍⲿÖжÏ1£¬¶¨Ê±Æ÷T1£¬´®Ðпڡ£

ÍⲿÖжÏÔ´ÊÇÓÉÒý½ÅµÄ´¥·¢ÐźÅÒýÆðµÄÖжϣ¬¶¨Ê±Æ÷ÖжÏÔ´ÊÇÓÉÓÚ¶¨Ê±Æ÷¼ÆÊýÆ÷µÄÒç³öÒý·¢µÄÖжϣ¬´®ÐпÚÊÇÓÉÓÚ´®ÐÐͨÐŵķ¢ËÍ»ò½ÓÊÕÒý·¢µÄÖжϡ£

ÍⲿÖжÏ0£¬¶¨Ê±Æ÷T0£¬ÍⲿÖжÏ1£¬¶¨Ê±Æ÷T1£¬´®ÐпÚÎå¸öÖжÏÔ´µÄÖжÏÏòÁ¿µØÖ·ÒÀ´ÎΪ£º0003H£¬000BH£¬0013H£¬001BH£¬0023H¡£

3£®MCS-51ÖжϵÄÖжÏÏìÓ¦Ìõ¼þÊÇʲô£¿ ´ð£º(1) ÖжÏÔ´ÓÐÖжÏÇëÇó£»

(2) ´ËÖжÏÔ´ÔÊÐíλΪ1£¬¼´ÖжÏÔ´¿ÉÒÔÏòCPU·¢ÖжÏÇëÇó£» (3) CPU¿ª×ÜÖжÏ,¼´EA=1£» (4) ÎÞͬ¼¶»òÕ߸ü¸ß¼¶ÖжÏÕýÔÚ·þÎñ

4£®MCS-51µÄÖжÏÏìÓ¦¹ý³ÌÊÇÔõÑùµÄ£¿

´ð£º(1) ½«ÏàÓ¦µÄÖжÏÓÅÏȼ¶×´Ì¬´¥·¢Æ÷ÖÃ1£¬ÒÔ×è¶ÏºóÀ´µÄͬ¼¶ºÍµÍ¼¶ÖжÏÇëÇó£» (2) ÓÉÓ²¼þÇå³ýÏàÓ¦µÄÖжÏÇëÇó±êÖ¾£¬´®Ðпڵķ¢ËͺͽÓÊÕÖжϳýÍ⣻

(3) Ö´ÐÐÒ»ÌõÓ²¼þLCALLÖ¸Á¼´°Ñ³ÌÐò¼ÆÊýÆ÷PCµÄÄÚÈÝѹÈë¶ÑÕ»±£´æ£¬ÔÙ½«ÏàÓ¦µÄÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·ËÍÈëPC£»

5£®±àд³öÍⲿÖжÏ1ΪÏÂÌøÑØ´¥·¢µÄÖжϳõʼ»¯³ÌÐò¡£ ½â£º

void Int1_init(){ IT1=1;

EA=1;EX1=1; //IE=0x84;// IE|=0x84; }

6£®ÓÐÒ»ÍⲿÖжÏÔ´£¬½ÓÈëINT0¶Ë£¬µ±ÆäÖÐÓÐÖжÏÇëÇóʱ£¬ÒªÇóCPU°ÑÒ»¸ö´ÓÄÚ²¿RAM 30Hµ¥Ôª¿ªÊ¼µÄ50¸ö×Ö½ÚµÄÊý¾Ý¿é´«Ë͵½ÍⲿRAM´Ó1000H¿ªÊ¼µÄÁ¬Ðø´æ´¢Çø¡£Çë±àд¶ÔÓ¦µÄ³ÌÐò¡£

½â£º

#include void main(){ IT0=1 ; EA=1; EX0=1; while(1) ; }

void intx0() interrupt 0 using 1{ char * ptr1=0x30;

char xdata * ptr2=0x1000; for(i=0;i<50;i++) *ptr2++=*ptr1++; }

7£®Éèfosc = 12MHz£¬ÀûÓö¨Ê±Æ÷£¬TO(¹¤×÷ÔÚ·½Ê½2)ÔÚP1.1Òý½ÅÉÏ»ñÈ¡Êä³öÖÜÆÚΪO.4msµÄ·½²¨Ðźţ¬¶¨Ê±Æ÷Òç³öʱ²ÉÓÃÖжϷ½Ê½´¦Àí£¬Çë±àд£¬T0µÄ³õʼ»¯³ÌÐò¼°ÖжϷþÎñ³ÌÐò¡£

½â£ºfosc = 12MHz£¬Ôò»úÆ÷ÖÜÆÚ=1us£»µ±T0¹¤×÷ÔÚ·½Ê½2ʱ£¬Æä×î´ó¶¨Ê±Ê±¼äΪ256us£¬ÒªÊä³öÖÜÆÚΪ0.4mS¼´400usµÄ·½²¨Ðźţ¬ÔòÆä¸ß¡¢µÍµçƽӦ¸÷Ϊ200us£¬ÏÔÈ»µ±¶¨Ê±Æ÷T0°´·½Ê½2¹¤×÷ʱ£¬Ö»Ðè¼ÆÊý´ïµ½200´Î¼´¿É£¬Òò´ËÆäʱ¼ä³£Êý³õֵΪ256-200=56¡£ÔÚT0µÄÖжϷþÎñ³ÌÐòÖУ¬Ö»Ð轫P1.1Òý½ÅÇó·´¼´¿É¡£

#include sbit P1_1=P1^1;

void timer0()interrupt 1 using 1{ P1_1=!P1_1; }

void main(){ P1_1=0; TMOD=0x02; TH0=56; TL0=56; IE=0x82; TR0=1; for(;;){}

}

8£®Éèfosc = 6MHz£¬ÒªÇóÿ¸ô50ms£¬´ÓÄÚ²¿RAMÒÔ30H¿ªÊ¼µÄÊý¾Ý´æ´¢Çø´«ËÍÒ»¸ö×Ö½ÚÊý¾Ýµ½ÍⲿRAMÒÔ2000H¿ªÊ¼µÄÁ¬Ðø´æ´¢Çø£¬¹²´«ËÍ50¸öÊý¾Ý¡£ÒªÇ󣺲ÉÓö¨Ê±Æ÷T1ÒÔ·½Ê½2ʵÏÖ¶¨Ê±£¬Êý¾Ý´«ËÍÔÚÖжϷþÎñ³ÌÐòÖÐÍê³É¡£

½â£ºfosc = 6MHz£¬»úÆ÷ÖÜÆÚ=12/6*10-6S=2us,T1¹¤×÷ÔÚ·½Ê½2ʱ£¬×î´ó¶¨Ê±Ê±¼äΪ512us£¬Òª¶¨Ê±50ms,¿ÉÒÔ¼ÆÊý100´Î£¬Ã¿´Î¶¨Ê±500usÀ´ÊµÏÖ£¬·½Ê½2¶¨Ê±500usÐè¼ÆÊý250´Î£¬¹ÊÆäʱ¼ä³£ÊýΪ256-250=6¡£

#include char intcnt=0; char movcnt=0; char * ptr1=0x30;

char xdata *ptr2=0x2000; void timer1()interrupt 3 using 1{ intcnt++; if(intcnt==100){ if(mocnt<50){ *ptr2++=*ptr1++; movcnt++; }

else EX1=0; intcnt=0; }

}

void main(){ TMOD=0x20; TH1=6; TL1=6; IE=0x84; TR1=1; for(;;){} }

9£®805lµ¥Æ¬»úÖ»ÓÐÁ½¸öÍⲿÖжÏÔ´£¬ÈôÒªÀ©Õ¹³É8¸öÍⲿÖжÏÔ´£¬Çë»­³öʵÏÖÕâÖÖÀ©Õ¹µÄÓ²¼þÏß·ͼ£¬²¢ËµÃ÷ÈçºÎÈ·¶¨¸÷ÖжÏÔ´µÄÓÅÏȼ¶¡£

½â£ºÓð´Å¥¿ª¹ØÄ£ÄâÖжÏÔ´µÄÖжÏÇëÇó£¬INT0µ¥¶À×÷Ϊһ¸öÖжÏÔ´£¬INT1À©Õ¹³É7¸öÖжÏÔ´£¬ÓÐÖжÏÇëÇóʱ£¬½èÖúÓÚP2¿Úʶ±ðÊÇÕâÆß¸öÖжÏÔ´ÊÇÄĸöÇëÇóÖжϣ¬ÎªÁËÑéÖ¤ÕýÈ·ÐÔ£¬Èç¹ûÊÇINT0

Öжϣ¬ÔòÔÚP0¿ÚµÄÊýÂë¹ÜÉÏÏÔʾ0£¬ÊÇINT1Öжϣ¬Ôò¸ù¾Ý´ÓÉϵ½ÏÂÊÇÄĸöÖжÏÔ´ÔÚP0¿ÚµÄÊýÂë¹ÜÉÏÏÔʾ1¡ª7¡£¾ßÌåµç·ºÍ³ÌÐòÈçÏ£º

#include

char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; void INT0_srv (void) interrupt 0 using 1 //ÍⲿÖжÏ0´¦Àí³ÌÐò { P0=led_mod[0]; }

void INT1_srv (void) interrupt 2 using 2 //ÍⲿÖжÏ1´¦Àí³ÌÐò { char intnum; intnum=P2; switch(intnum){

case 0xfe:P0=led_mod[1];break; case 0xfd:P0=led_mod[2];break; case 0xfb:P0=led_mod[3];break; case 0xf7:P0=led_mod[4];break; case 0xef:P0=led_mod[5];break; case 0xdf:P0=led_mod[6];break; case 0xbf:P0=led_mod[7]; } }

void main(){ EA=1;

EX0=1; EX1=1; P0=0; while(1); }

µÚ6Õ µ¥Æ¬»úµÄ¶¨Ê±Æ÷/¼ÆÊýÆ÷ ϰÌâ

1£®MCS-51ϵÁеÄ8051µ¥Æ¬»úÄÚÓм¸¸ö¶¨Ê±/¼ÆÊýÆ÷£¿Ã¿¸ö¶¨Ê±/¼ÆÊýÆ÷Óм¸ÖÖ¹¤×÷·½Ê½£¿ÈçºÎÑ¡Ôñ£¿

´ð£ºMCS-51ϵÁеÄ8051µ¥Æ¬»úÄÚÓÐ2¸ö¶¨Ê±/¼ÆÊýÆ÷£¬¼´T0ºÍT1£¬Ã¿¸ö¶¼¿ÉÒÔ±à³ÌΪ¶¨Ê±Æ÷»ò¼ÆÊýÆ÷£¬T0ÓÐËÄÖÖ¹¤×÷·½Ê½(·½Ê½0¡ª13λ¡¢·½Ê½1¡ª16λ¡¢·½Ê½2-¿É×Ô¶¯×°Èë³õÖµµÄ8λ¡¢·½Ê½3-Á½¸ö8λ)£¬T1ÓÐÈýÖÖ¹¤×÷·½Ê½(ÓëT0ÏàͬµÄǰÈýÖÖ)£¬Í¨¹ý¶ÔTMODµÄÉèÖÃÑ¡Ôñ£¬Æä¸ßËÄλѡÔñT1£¬µÍËÄλѡÔñT0¡£

2£®Èç¹û²ÉÓõľ§ÕñƵÂÊΪ3MHz£¬¶¨Ê±/¼ÆÊýÆ÷TO·Ö±ð¹¤×÷ÔÚ·½Ê½0¡¢1ºÍ2Ï£¬Æä×î´óµÄ¶¨Ê±Ê±¼ä¸÷Ϊ¶àÉÙ£¿

´ð£ºÈç¹û²ÉÓõľ§ÕñƵÂÊΪ3MHz£¬»úÆ÷ÖÜÆÚΪ12¡Á1/(3*106)=4us£¬ÓÉÓÚ¶¨Ê±/¼ÆÊýÆ÷TO¹¤×÷ÔÚ·½Ê½0¡¢1ºÍ2ʱ£¬Æä×î´óµÄ¼ÆÊý´ÎÊýΪ8192¡¢65536ºÍ256ËùÒÔ£¬Æä×î´ó¶¨Ê±Ê±¼ä·Ö±ðÊÇ£º·½Ê½0Ϊ8192¡Á4us£½32.768ms¡¢·½Ê½1Ϊ65536¡Á4us£½262.144ms¡¢·½Ê½2Ϊ256¡Á4us£½1024us¡£

3£®¶¨Ê±/¼ÆÊýÆ÷TO×÷Ϊ¼ÆÊýÆ÷ʹÓÃʱ£¬Æä¼ÆÊýƵÂʲ»Äܳ¬¹ý¾§ÕñƵÂʵĶàÉÙ£¿ ´ð£ºÓÉÓÚ¶¨Ê±/¼ÆÊýÆ÷TO×÷Ϊ¼ÆÊýÆ÷ʹÓÃʱ£¬ÊǶÔÍⲿÒý½ÅÊäÈëµÄÂö³å½øÐмÆÊý£¬ CPUÔÚÿ¸ö»úÆ÷ÖÜÆÚ²ÉÑùÒ»´ÎÒý½Å£¬µ±Ç°Ò»´Î²ÉÑùΪ¸ßµçƽ£¬ºóÒ»´Î²ÉÑùΪµÍµçƽ£¬ÔòΪһ´ÎÓÐЧ¼ÆÊýÂö³å£¬ËùÒÔÈç¹û¾§ÕñƵÂÊΪfosc£¬ÔòÆä²ÉÑùƵÂÊfosc/12£¬Á½´Î²ÉÑù²ÅÄܾö¶¨Ò»´Î¼ÆÊýÓÐЧ£¬ËùÒÔ¼ÆÊýƵÂʲ»Äܳ¬¹ýfosc/24¡£

4£®¼òµ¥ËµÃ÷¶¨Ê±/¼ÆÊýÆ÷ÔÚ²»Í¬¹¤×÷ģʽϵÄÌØµã¡£

´ð£º·½Ê½0Ϊ13λµÄ¶¨Ê±/¼ÆÊýÆ÷£¬ÓÉTHxµÄ8λºÍTLxµÄµÍ5λ¹¹³É¡¢·½Ê½1Ϊ16λµÄ¶¨Ê±/¼ÆÊýÆ÷,ÓÉTHxµÄ8λºÍTLxµÄ8λ¹¹³É£¬·½Ê½2Ϊ8λµÄ¶¨Ê±/¼ÆÊýÆ÷£¬TLxΪ¼Ó1¼ÆÊýÆ÷£¬THxΪ¼ÆÊý³õÖµ¼Ä´æÆ÷¡£·½Ê½3Ö»ÄÜÓÃÓÚT0£¬Êǽ«T0µÄµÍ8λÓÃ×÷Ò»¸ö¶ÀÁ¢µÄ¶¨Ê±/¼ÆÊýÆ÷£¬¶ø¸ß8λµÄTH0ÓÃ×÷Ò»¸ö¶ÀÁ¢µÄ¶¨Ê±Æ÷£¬²¢½èÓÃT1µÄTR1ºÍTF1×÷Ϊ¸ß8λ¶¨Ê±Æ÷µÄÆôÍ£¿ØÖÆÎ»ºÍÒç³ö±ê־λ¡£

5£®¶¨Ê±Æ÷¹¤×÷ÔÚ·½Ê½2ʱÓкÎÌØµã£¿ÊÊÓÃÓÚʲôӦÓó¡ºÏ£¿

´ð£º¶¨Ê±Æ÷¹¤×÷ÔÚ·½Ê½2ʱÊÇÒ»¸ö¿É×Ô¶¯×°Èëʱ¼ä³£Êý³õÖµµÄ8λ¶¨Ê±/¼ÆÊýÆ÷£¬TLxΪ¼Ó1¼ÆÊýÆ÷£¬THxΪ¼ÆÊý³õÖµ¼Ä´æÆ÷¡£ÓÉÓÚÆä»Ö¸´³õÖµÓÉÓ²¼þ×Ô¶¯Íê³É£¬ËùÒÔµ±ÐèÒª·´¸´¼ÆÊýʱ£¬Ó÷½Ê½2¿ÉÒÔ·½±ãµØÊµÏÖ¾«È·µÄ¶¨Ê±¡£

6£®Ò»¸ö¶¨Ê±Æ÷µÄ¶¨Ê±Ê±¼äÓÐÏÞ£¬ÈçºÎ²ÉÓÃÁ½¸ö¶¨Ê±Æ÷µÄ´®Ðж¨Ê±À´ÊµÏֽϳ¤Ê±¼äµÄ¶¨Ê±£¿ ´ð£ºÒ»¸ö¶¨Ê±Æ÷µÄ¶¨Ê±Ê±¼äÓÐÏÞ£¬¿É²ÉÓÃÁ½¸ö¶¨Ê±Æ÷µÄ´®Ðж¨Ê±À´ÊµÏֽϳ¤Ê±¼äµÄ¶¨Ê±£¬±ÈÈ磬µ±fosc£½12MHzʱ£¬µ¥¸ö¶¨Ê±/¼ÆÊýÆ÷²ÉÓ÷½Ê½1µÄ×î´ó¶¨Ê±Ê±¼äΪ65.536ms£¬´ËʱÈôÓÃÁíÒ»¸ö¶¨Ê±/¼ÆÊýÆ÷°´·½Ê½1½øÐÐÒç³ö´ÎÊý¼ÆÊý£¬ÔÚ¶¨Ê±Æ÷Òç³öÖжÏʱ£¬¸ø¼ÆÊýÆ÷·¢Ò»¸ö¼ÆÊýÂö³å£¬ÇÒÁ½Õß¾ùΪ·½Ê½Ò»£¬ÔòÁ½Õß´®ÐпɴﵽµÄ¶¨Ê±Ê±¼äΪ65536¡Á65.536ms=4294967.296ms¡£

7£®ÉèMCS-51µ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬Çë±à³ÌʹP1.O¶ËÊä³öƵÂÊΪ20kHzµÄ·½²¨¡£ ½â£ºfosc = 12MHz£¬ËùÒÔ»úÆ÷ÖÜÆÚΪ1us¡£20kHzµÄ·½²¨ÖÜÆÚΪ1/(20¡Á1000)=50us£¬·½²¨¼´¸ßµçƽºÍµÍµçƽºÍʱ¼äÏàµÈ£¬ËùÒÔÖ»ÐèÉèÒ»¸ö¶¨Ê±Æ÷¶¨Ê±25us½«P1.OÇó·´Ò»´Î¼´¿É¡£ÓÉÓÚÌâĿûÓй涨£¬ËùÒÔ¿ÉÒÔÓòéѯ·½Ê½£¬Ò²¿ÉÒÔÓÃÖжϷ½Ê½½øÐбà³ÌʵÏÖ¡£

·½·¨Ò»£º²ÉÓòéѯ·½Ê½ÊµÏÖ #include

sbit P1_0=P1^0;//¶¨ÒåÊä³öÒý½Å±äÁ¿ void main(){

P1_0=0; //Êä³ö³õֵΪ0 TMOD=0x02; //T0·½Ê½2¶¨Ê±

TH0=256-25; //¼Æ25´Î£¬¼ÆÊý³õֵΪģ256¼õ25 TL0=TH0; TR0=1; //Æô¶¯T0 while(1) //ÎÞÏÞÑ­»· if(TF0){ //²éѯT0Òç³ö±êÖ¾ TF0=0; //Òç³ö±êÖ¾¸´Î» P1_0=!P1_0; //Êä³öÇó·´ } }

·½·¨¶þ£º²ÉÓÃÖжϷ½Ê½ÊµÏÖ #include

sbit P1_0=P1^0; //¶¨ÒåÊä³öÒý½Å±äÁ¿ void main(){

P1_0=0; //Êä³ö³õֵΪ0 TMOD=0x02; //T0·½Ê½2¶¨Ê±

TH0=256-25; //¼Æ25´Î£¬¼ÆÊý³õֵΪģ256¼õ25 TL0=TH0;

IE=0x82; //ÔÊÐíCPUÏìÓ¦Öжϣ¬ÔÊÐíT0·¢ÖжÏÇëÇó TR0=1; //Æô¶¯T0

for(;;){} //ÎÞÏÞÑ­»·µÈ´ýÖÐ¶Ï }

timer0()interrupt 1 using 1{ P1_0=!P1_0; //Êä³öÇó·´

}

8£®²ÉÓö¨Ê±/¼ÆÊýÆ÷TO¶ÔÍⲿÂö³å½øÐмÆÊý£¬Ã¿¼ÆÊý10O¸öÂö³å£¬TOÇл»Îª¶¨Ê±¹¤×÷·½Ê½¡£¶¨Ê±1msºó£¬ÓÖתΪ¼ÆÊý·½Ê½£¬Èç´ËÑ­»·²»Ö¹¡£¼Ù¶¨MCS-5lµ¥Æ¬»úµÄ¾§ÌåÕñµ´Æ÷µÄƵÂÊΪ6MHz£¬ÒªÇóT0¹¤×÷ÔÚ·½Ê½1״̬£¬Çë±àд³öÏàÓ¦³ÌÐò¡£

6½â£º¾§ÌåÕñµ´Æ÷µÄƵÂÊΪ6MHz,Ôò»úÆ÷ÖÜÆÚΪ12¡Á1/(6*10)= 2us, Òª¶¨Ê±1ms£¬ Ðè¼ÆÊý´ÎÊýΪ1000/2=500´Î #include sbit P1_0=P1^0; void main(){ while(1){

TMOD=0x05;//T0¼ÆÊý£¬·½Ê½Ò»

TH0=(65536-100)/256;//¼ÆÊý100´Î TL0=(65536-100)%6; TR0=1;

while(!TF0);//µÈ´ý¼ÆÊý100´ÎµÄÒç³ö TF0=0; //Òç³ö±êÖ¾¸´Î»

TMOD=0x01;//T0¶¨Ê±£¬·½Ê½Ò»

TH0=(65536-500)/256;//¼ÆÊý100´Î TL0=(65536-500)%6; TR0=1; //Æô¶¯T0

while(!TF0); //µÈ´ý¶¨Ê±Ê±¼äµ½1msµÄÒç³ö TF0=0; //Òç³ö±êÖ¾¸´Î»

} }

9£®É赥Ƭ»úµÄfosc = 12MHz£¬Ê¹P1.OºÍP1.1·Ö±ðÊä³öÖÜÆÚΪ1msºÍlOmsµÄ·½²¨£¬ÇëÓö¨Ê±Æ÷TO·½Ê½2±à³ÌʵÏÖ¡£

½â£ºfosc = 12MHz£¬ËùÒÔ»úÆ÷ÖÜÆÚΪ1us¡£

ҪʹP1.0Êä³öÖÜÆÚΪ1000usµÄ·½²¨£¬¿ÉÒÔͨ¹ý¶¨Ê±ÖжϷ½Ê½ÊµÏÖ£¬¶¨Ê±Ê±¼äΪ250us£¬¶¨Ê±¼ÆÊý2´ÎÀ´ÊµÏÖ£¬¶ÔP1.0Çó·´¼´¿É¡£

ҪʹP1.1Êä³öÖÜÆÚΪ10msµÄ·½²¨£¬Ò²¿ÉÒÔͨ¹ý¶¨Ê±ÖжϷ½Ê½ÊµÏÖ£¬¶¨Ê±Ê±¼äΪ5ms£¬µ±Ê±¼äµ½Ê±£¬¶ÔP1.1Çó·´¼´¿É¡£ÓÉÓÚ5ms/250us=20£¬ËùÒÔÒ²¿ÉÒÔͨ¹ý¶Ô250usµÄ¶¨Ê±¼ÆÊý20´ÎÀ´ÊµÏÖ¡£³ÌÐòÈçÏ£º

#include

sbit P1_0=P1^0;//Êä³öÖÜÆÚΪ400usµÄ·½²¨µÄÒý½Å sbit P1_1=P1^1; //Êä³öÖÜÆÚΪ10msµÄ·½²¨µÄÒý½Å

unsigned char num1=0,num2=0;//ÖжϴÎÊý¼ÆÊýÆ÷£¬³õֵΪ0 void main(){

P1_0=0; //Êä³ö³õֵΪ0 P1_1=0; //Êä³ö³õֵΪ0 TMOD=0x02; //T0·½Ê½2¶¨Ê±

TH0=256-250;//¼Æ200´Î£¬¼ÆÊý³õֵΪģ256¼õ200 TL0=TH0;

IE=0x82; //ÔÊÐíCPUÏìÓ¦Öжϣ¬ÔÊÐíT0·¢ÖжÏÇëÇó TR0=1; //Æô¶¯T0

for(;;){} //ÎÞÏÞÑ­»·µÈ´ýÖжÏ

}

void timer0()interrupt 1 using 1{ num1++;num2++; //ÖжϴÎÊý¼Ó1 if(num1==2) // ÖжϴÎÊý´ïµ½2´Î { P1_0=!P1_0; //Êä³öP1_0Çó·´ num1=0; //ÖжϴÎÊý¸´Î»Îª0 }

if(num2==20){ // ÖжϴÎÊý´ïµ½20´Î num2=0; //ÖжϴÎÊý¸´Î»Îª0 P1_1=!P1_1; //Êä³öP1_1Çó·´ } }

10£®±àд³ÌÐò£¬ÒªÇóʹÓÃTO£¬²ÉÓ÷½Ê½2¶¨Ê±£¬ÔÚP1.0Êä³öÖÜÆÚΪ400usÕ¼¿Õ±ÈΪ10:1µÄ¾ØÐÎÂö³å¡£

½â£ºÉèfosc = 12MHz£¬Ôò»úÆ÷ÖÜÆÚΪ1us¡£ÉèP1.0³õֵΪ0¡£

ÖÜÆÚΪ400us£¬¿É¶¨Ò巽ʽ2¶¨Ê±£¬¼ÆÊý³õֵΪ256-40£¬Ò»¸öÖÜÆÚÖжÏ10´ÎΪ400us£¬ÔÚÖжϼÆÊýΪ1ºÍ2(»òÈÎÒâÁ½´Î¼ÆÊýÖ®¼ä)ʱ£¬¶ÔP1.0Çó·´¼´¿É¡£ #include

sbit P1_0=P1^0; //Êä³öÖÜÆÚÒý½Å

unsigned char cnt=0; //ÖжϴÎÊý¼ÆÊýÆ÷£¬³õֵΪ0 void main(){

P1_0=0; //Êä³ö³õֵΪ0 TMOD=0x02; //T0·½Ê½2¶¨Ê±

TH0=256-40; //¼Æ40´Î£¬¼ÆÊý³õֵΪģ256¼õ40

TL0=TH0;

IE=0x82; //ÔÊÐíCPUÏìÓ¦Öжϣ¬ÔÊÐíT0·¢ÖжÏÇëÇó TR0=1; //Æô¶¯T0

for(;;){} //ÎÞÏÞÑ­»·µÈ´ýÖÐ¶Ï }

void timer0()interrupt 1 using 1{ cnt++;//ÖжϴÎÊý¼Ó1

if(cnt==1||cnt==2) P1_0=!P1_0; //ÖжϴÎÊýΪ1»ò2ʱ¶ÔÊä³öÒý½ÅÇó·´ if(cnt==10)cnt=0; //ÖжϴÎÊý´ïµ½10ʱ¸´Î»Îª0

} µÚÆßÕÂ

7.1. ʲôÊ´®ÐÐÒ첽ͨÐÅ£¿ÔÚ´®ÐÐÒ첽ͨÐÅÖУ¬Êý¾ÝÖ¡µÄ´«Êä¸ñʽÊÇʲô£¿º¬ÒåÈçºÎ£¿ ´ð£º´®ÐÐÒ첽ͨÐÅÊÇÖ¸ÔÚ´®ÐÐͨÐÅÖз¢ËͶ˺ͽÓÊÕ¶Ë¿ÉÒÔÓɸ÷×ÔµÄʱÖÓÀ´¿ØÖÆÊý¾ÝµÄ·¢ËͺͽÓÊÕ£¬ÕâÁ½¸öʱÖÓÔ´±Ë´Ë¶ÀÁ¢£¬»¥²»Í¬²½¡£

Êý¾ÝÖ¡µÄ´«Êä¸ñʽ£ºÆðʼ룬Êý¾Ýλ£¬ÆæÅ¼Ð£ÑéλºÍֹͣλ

º¬Ò壺ÆðʼλÓÃÓÚʵÏÖ·¢ËͺͽÓÊÕË«·½É豸֮¼äµÄͬ²½£»Êý¾Ýλ°üº¬ËùÒª´«ÊäµÄÐÅÏ¢£»ÆæÅ¼Ð£ÑéλÓÃÓÚÅжϽÓÊÕÊý¾ÝµÄÕýÈ·ÐÔ£»Í£Ö¹Î»±íʾһ֡Êý¾Ý·¢ËͽáÊø£¬¿ªÊ¼ÏÂÒ»Ö¡Êý¾ÝµÄ´«Êä¡£

7.3. 89C51µ¥Æ¬»ú´®ÐÐͨÐŽӿڿØÖƼĴæÆ÷Óм¸¸ö£¿Ã¿¸ö¼Ä´æÆ÷µÄº¬ÒåÊÇʲô£¿ ´ð£º ÓеçÔ´¿ØÖƼĴæÆ÷PCONºÍ´®ÐпڿØÖƼĴæÆ÷SCON PCONÖÐSMODÓë´®¿ÚͨÐÅÓйء£

SMOD=0; ´®¿Ú·½Ê½1£¬2£¬3ʱ£¬²¨ÌØÂÊÕý³£¡£ SMOD=1; ´®¿Ú·½Ê½1£¬2£¬3ʱ£¬²¨ÌØÂʼӱ¶ ÆäÓàÓë´®ÐÐͨÐÅÎÞ¹Ø SCONÖÐ

SM0¡¢SM1£º´®Ðпڹ¤×÷·½Ê½¿ØÖÆÎ» SM2£º¶à»úͨÐÅ¿ØÖÆÎ»

REN£º´®ÐпڽÓÊÕʹÄÜ¿ØÖƶˣ»REN=1ʱ£¬ÔÊÐí½ÓÊÕ£¬REN=0ʱ£¬½ûÖ¹½ÓÊÕ TB8£º·¢ËͽÓÊÕÊý¾Ýλ8

RB8£º½ÓÊÕÊý¾Ýλ8

TI£º·¢ËÍÖжϱê־λ£»TI=1±íʾ֡·¢ËͽáÊø£¬TI¿ÉÓÉÈí¼þÖÃ0 RI£º½ÓÊÕÖжϱê־λ£»RI=1±íʾ֡½ÓÊÕÍê³É£¬RI¿ÉÓÉÈí¼þÖÃ0

7.4. ÔÚ·½Ê½1ºÍ·½Ê½3µÄͨÐÅģʽÏ£¬²¨ÌØÂÊͨ¹ýÄǸö¶¨Ê±Æ÷Çý¶¯²úÉú£¿²ÉÓúÎÖÖ¶¨Ê±·½Ê½£¿Èç¹ûÒªÇó²ÉÓþ§ÕñΪ11.0592MHz£¬²úÉúµÄ´«ËͲ¨ÌØÂÊΪ2400b/s£¬Ó¦¸ÃÔõÑù¶Ô¶¨Ê±Æ÷³õʼ»¯²Ù×÷£¿

´ð£ºÓɶ¨Ê±Æ÷1Çý¶¯²úÉú£¬²ÉÓö¨Ê±Æ÷1µÄ¹¤×÷·½Ê½2£¬×Ô¶¯´Ó×°³õÖµ µ±¾§ÕñΪ11.0592MHz£¬²¨ÌØÂÊΪ2400b/s,Óɲ¨ÌØÂʹ«Ê½£º

²¨ÌØÂÊ=(2SMOD/32)?fOSC/(12?(256? a))a?256?11.0592?106/(384?2400) ¿ÉÇóµÃ³õÖµaΪF4H ³õʼ»¯²Ù×÷£º TMOD=0x20; TL1=0xF4; TH1=0xF4; PCON=0x00; SCON=0x00; TR1=1;

8.3 ÔÚÓɵ¥Æ¬»ú80C51ºÍһƬADC0809×é³ÉµÄÊý¾Ý²É¼¯ÏµÍ³ÖУ¬¼ÙÉèADC0809µÄµØÖ·Îª0x7ff8~0x7fff£¬»­³ö½Ó¿Úµç·ͼ£¬²¢±àдÿ¸ô1msÂÖÁ÷²É¼¯Ò»´Î8¸öͨµÀÊý¾ÝµÄ³ÌÐò¡£²ÉÑù100´Îȡƽ¾ùÖµ¡£

´ð£ºµç·ͼÊéÉÏʵÀýÓУ¬×öÁËÈçÏ¸Ķ¯

1.¿ØÖƶËADDA£¬ADDB£¬ADDC·Ö±ð½ÓP2^0£¬P2^!,P2^2. 2.ɾȥÁËÒëÂëÆ÷ÓëÂß¼­Æ÷¼þÆ÷¼þ£¬74LS373,74HC14,74HC02£¬ 3.Öжϼì²â¶ËEOC½ÓP3^2¡£ ²Î¿¼³ÌÐòÈçÏ£¬×Ô¼ºÐ´µÄû¾­¹ý·ÂÕæ£¬ #include #include

#define uchar unsigned char//ºê¶¨Òå #define uint unsigned int

#define AD_0 XBYTE[0xff8]//¶¨ÒåͨµÀ·ÃÎʵØÖ· #define AD_1 XBYTE[0xff9] #define AD_2 XBYTE[0xffa] #define AD_3 XBYTE[0xffb] #define AD_4 XBYTE[0xffc] #define AD_5 XBYTE[0xffd] #define AD_6 XBYTE[0xffe] #define AD_7 XBYTE[0xfff] sbit busy=P3^2;//¶¨ÒåÖжÏÇëÇó¶Ë uchar count=0;//¶¨Òå²ÉÑù´ÎÊý

uchar datcode[100]={0};//¶¨ÒåÊý¾Ý´æ·ÅÊý×é int dat=0,dat1=0;//¶¨ÒåÁÙʱÊý¾ÝÓë×îÖÕÆ½¾ùÊý¾Ý uchar i,j,num;//¶¨Òå±äÁ¿ void main()

{

TMOD=0x01;//¶¨Ê±Æ÷0 ¹¤×÷·½Ê½1 TL0=(65536-1000)/256;//1msÖжÏÒ»´Î TH0=(65536-1000)%6;

EA=1;//¿ª×ÜÖжϣ¬¶¨Ê±Æ÷Öжϣ¬´ò¿ª¶¨Ê±Æ÷0 ET0=1; TR0=1;

while(count<100)//100´ÎÊý¾ÝÇóºÍº¯Êý {

dat1=dat1+datcode[i]; count++; }

dat=dat1/100; if(count>=100) count=0; }

void timer0() interrupt 1//ÖжϺ¯Êý {

TMOD=0x01;

TL0=(65536-1000)/256; TH0=(65536-1000)%6; AD_0=0;//Æô¶¯0ͨµÀADת»»