ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/4/19 20:06:00ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
»ùÓÚKeilC51ºÍProteus»¨ÑùÁ÷Ë®µÆÏµÍ³µÄÉè¼Æ
×÷ÕߣºÌ·ÑÞ´º ÖìÓÖÃô ÁõÄ¿ÀÚ À´Ô´£º¡¶Èí¼þ¹¤³Ì¡·2018ÄêµÚ11ÆÚ
Õª Òª£ºµ¥Æ¬»ú¼¼ÊõÈÕÒæ³ÉÊ죬Òѹ㷺ӦÓÃÓÚ¹¤Òµ×Ô¶¯»¯¡¢½»Í¨¿ØÖÆ¡¢ÖÇÄÜÒDZíµÈÖÚ¶àÁìÓò¡£ÎªÁ˽øÒ»²½Ñо¿²¢ÍØÕ¹µ¥Æ¬»úµÄÓ¦Ó㬱¾ÎÄÀûÓÃ80C51µ¥Æ¬»ú¡¢KeilC51ºÍProteusÈí¼þ¶Ô»¨ÑùÁ÷Ë®µÆÏµÍ³½øÐÐÁËÍêÕûµÄÈíÓ²¼þ¿ª·¢ÓëÉè¼Æ¡£ProteusÔÚÏß·ÂÕæÑéÖ¤ÁËϵͳÉè¼ÆµÄÎȶ¨ÐÔºÍÕýÈ·ÐÔ¡£¸ÃϵͳµÄ¿ò¼Ü½á¹¹¾ßÓÐÁ¼ºÃµÄ¿ÉÒÆÖ²ÐÔ£¬¿É¸ù¾Ýʵ¼ÊÐèÇóÉú³É²»Í¬µÄÖÇÄÜÅÉÉú²úÆ·£¬¾ßÓнÏÇ¿µÄʵ¼ÊÖ¸µ¼ÒâÒåºÍÓ¦ÓüÛÖµ¡£
¹Ø¼ü´Ê£ºKeilC51£»Proteus£»µ¥Æ¬»ú£»LEDÁ÷Ë®µÆ£»ÏµÍ³Éè¼Æ ÖÐͼ·ÖÀàºÅ£ºTP399 ÎÄÏ×±êʶÂ룺A ÎÄÕ±àºÅ£º2096-1472£¨2018£©-11-14-03 1 ÒýÑÔ£¨Introduction£©
µ¥Æ¬»úÎÞÂÛ´Ó×é³É»¹ÊÇÂß¼¹¦ÄÜÉ϶¼¾ßÓÐ΢»úϵͳµÄÌØÐÔ£¬ÊÇÒ»ÃÅʵ¼ùÐÔºÜÇ¿µÄÈíÓ²¼þ½áºÏµÄ¼¼Êõ£¬ÇÒÌå»ýСÇÉ£¬Òò´Ë¿ÉÒÔǶÈëµ½¸÷ÖÖÓ¦ÓÃϵͳÖÐ×÷Ϊָ»Ó¾ö²ßÖÐÐÄ£¬ÊµÏÖϵͳµÄÖÇÄÜ»¯[1-3]¡£Ä¿Ç°±È½ÏÁ÷Ðеĵ¥Æ¬»ú·ÂÕæÈí¼þºÍ¼¯³É¿ª·¢Èí¼þ·Ö±ðΪProteusºÍKeil¡£
Proteus²»½ö¾ßÓÐÆäËûEDA¹¤¾ßÈí¼þµÄ·ÂÕæ¹¦ÄÜ£¬»¹ÄÜ·ÂÕæµ¥Æ¬»ú¼°ÍâΧÆ÷¼þ£¬ÊÇĿǰÊÀ½çÉÏΨһ½«µç··ÂÕæÈí¼þ¡¢PCBÉè¼ÆÈí¼þºÍÐéÄâÄ£ÐÍ·ÂÕæÈí¼þÈýºÏÒ»µÄÉè¼ÆÆ½Ì¨£¬Æä´¦ÀíÆ÷Ä£ÐÍÖ§³Ö8051¡¢HC11¡¢PIC10/12/16/18/24/30/DsPIC33¡¢AVR¡¢ARM¡¢8086ºÍMSP430µÈ¡£KeilÊǵ¹úKeil Software¹«Ë¾³öÆ·µÄµ¥Æ¬»ú¼¯³É¿ª·¢»·¾³£¬¸ÃÈí¼þÖ§³Ö51µ¥Æ¬»úµÄËùÓмæÈÝ»ú£¬Ëü°üÀ¨ÁËC±àÒëÆ÷¡¢ºê»ã±à¡¢Á¬½ÓÆ÷¡¢¿â¹ÜÀí¼°Ò»¸ö¹¦ÄÜÇ¿´óµÄ·ÂÕæµ÷ÊÔÆ÷ÔÚÄÚµÄËùÓпª·¢Ä£¿é[4-7]¡£
2 Ó²¼þµç·Éè¼Æ£¨Design of hardware circuit£©
¸ÃϵͳµÄÓ²¼þµç·Ö÷Òª°üÀ¨Ê±Öӵ緣¨²ÉÓÃÄÚ²¿Ê±ÖÓ·½Ê½£¬¾§ÕñƵÂÊΪ12MHz£©¡¢¸´Î»µç·¡¢ÊäÈëºÍÊä³öµç·ËIJ¿·Ö¡£ÆäÖÐÊäÈëµç·ÊÇËĸö°´Å¥¿ª¹ØK1¡ªK4£¬²¢Í¨¹ýËÄÊäÈëÓëÃÅ74AS21½«°´¼üÐÅÏ¢´ÓÍⲿÖжÏÒý½Å0£¨P3.2£©¶ÁÈëϵͳ£¬ÒÔ´¥·¢Öжϣ¬ÈÃCPU¼°Ê±ÏìÓ¦°´¼ü²Ù×÷¡£ÓÉÓÚ80C51µ¥Æ¬»úP0¿ÚµÄÄÚ²¿µç·½á¹¹ÎÊÌ⣬P0¿Ú×÷ΪI/Oʱ±ØÐë½ÓÉÏÀµç×è¡£Êä³ö²¿·ÖÓɰ˸ö¹²ÑôÐÍ·¢¹â¶þ¼«¹Ü¼°ÏÞÁ÷µç×裨200¦¸£©×é³É¡£ÀûÓÃProteus·ÂÕæÈí¼þÉú³ÉµÄÓ²¼þµç·Èçͼ1Ëùʾ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
°´Å¥¿ª¹ØK1¡ªK4¶ÔÓ¦µÄ¹¦ÄÜÈçÏ¡£
£¨1£©K1£ºÆô¶¯°´Å¥£¬µ±K1°´ÏÂʱ£¬Á÷Ë®µÆ×ÔÉ϶øÏ£¬ÓÖ×Ô϶øÉÏÂÖÁ÷±»µãÁÁ£¬¼´D1¡úD2¡úD3¡D8¡úD7¡úD6¡úD5¡D1£¬·´¸´Öظ´£¬Ö±µ½ÓÐÐµİ´æI°´Ï£¬ÉÁ˸¼ä¸ôÊÇ50ms¡£¼ò¼ÇΪģʽ1·½Ê½¡£
£¨2£©K2£ºµ±K2°´ÏÂʱ£¬Á÷Ë®µÆ×ÔÉ϶øÏ£¬ÓÖ×Ô϶øÉϼä¸ô±»µãÁÁ£¬¼´
D1¡úD3¡úD5¡úD7¡úD8¡úD6¡úD4¡úD2£¬·´¸´Öظ´£¬Ö±µ½ÓÐÐµİ´¼ü°´Ï£¬ÉÁ˸¼ä¸ôÊÇ50ms¡£¼ò¼ÇΪģʽ2·½Ê½¡£
£¨3£©K3£ºµ±K3°´ÏÂʱ£¬D1¡¢D3¡¢D5ºÍD7ͬʱ±»µãÁÁ£¬È»ºóD2¡¢D6¡¢D4¡¢D8ͬʱ±»µãÁÁ£¬·´¸´Öظ´£¬Ö±µ½ÓÐÐµİ´¼ü°´Ï£¬¼ä¸ôÊÇ1s¡£¼ò¼ÇΪģʽ3·½Ê½¡£
£¨4£©K4£º¹Ø±Õ°´Å¥£¬µ±K4°´ÏÂʱ£¬Á÷Ë®µÆD1¡ªD8ͬʱ±»µãÁÁ£¬ÉÁ˸Èý´Î£¨¼ä¸ôΪ100ms£©ºó£¬È«²¿Ï¨Ãð¡£¼ò¼ÇΪģʽ4·½Ê½¡£
3 KeilC51»·¾³Ïµıà³Ì£¨Programming in the KeilC51£© 3.1 Èí¼þ±à³ÌÒªµã·ÖÎö
£¨1£©Í¨¹ýP0¿ÚµÄµÍËÄλÒý½Å½«°´¼üÐÅÏ¢¶ÁÈ¡½øÀ´£¬Óɵç·Á¬½Ó·½Ê½¿ÉÖª£¬ÎÞ°´¼ü°´ÏÂʱ£¬ËĸöÒý½ÅÈ«²¿Îª¸ßµçƽ£¬ÈôÓа´¼ü°´Ï£¬¶ÔÓ¦µÄÒý½Å½«ÓÉ¸ßµçÆ½±äΪµÍµçƽ¡£¿ÉÀûÓÃÖ¸ÁîP0&0x0f»ñÈ¡P0¿ÚµÍËÄλÒý½ÅµçƽµÄ±ä»¯ÐÅÏ¢¡£
£¨2£©¶¨Òåλ±äÁ¿on_off¡¢style1¡¢style2£¬¸ù¾ÝÕâÈý¸öλµçƽµÄ±ä»¯À´¿ØÖƳÌÐòµÄ×ªÒÆ¡£ÕâÀïÐèÓõ½¹Ø¼ü×Öbit£¬¶ø²»ÊÇsbit£¬ËäÈ»¶þÕß¶¼¿ÉÒÔ½øÐÐ붨Òå£¬Çø±ðÔÚÓÚsbitÖ»ÄÜÓÃÀ´¶ÔÌØÊ⹦ÄܼĴæÆ÷µÄλ½øÐж¨Ò壬ÈçÒÔÏÂд·¨bit on_off£»sbit botton1=P3^2ÊÇÕýÈ·µÄ£¬¶øsbit on_off£»bit botton1=P3^2ÊÇ´íÎóµÄ¡£
£¨3£©P2¿Ú½ÓµÄÊǹ²Ñô¼«LED·¢¹â¶þ¼¶¹Ü£¬Òò´ËÖ»ÓжÔÓ¦Òý½ÅÊä³öµÍµçƽʱµÈ²Å»á±»µãÁÁ£¬¿É½«D1¡¢D2¡¢D3¡D8±»µãÁÁʱP2¿Ú¶ÔÓ¦µÄÊä³ö·Åµ½Ò»¸öÊý×éÖУ¬¼´led[]={0xfe£¬0xfd£¬0xfb£¬0xf7£¬0xef£¬0xdf£¬0xbf£¬0x7f}¡£
£¨4£©¸Ãϵͳ¿Éͨ¹ý²éѯ·¨ºÍÖжϷ¨Á½ÖÖ˼·À´ÊµÏÖ¡£Óë²éѯ·¨Ïà±È£¬ÖжϷ¨¾ßÓÐÒÔÏÂÓŵ㣺Ê×ÏÈ£¬Ö»ÓÐÔÚ°´¼ü°´ÏÂʱ£¬CPU²ÅÖ´ÐÐÏà¹ØµÄÖжϳÌÐò£¬¶øÆäËûʱ¼äÊDz»Õ¼ÓÃCPUµÄʱ¼ä£»Æä´Î£¬ÖжϷ¨¿ÉÒÔ¸ü¼°Ê±¿ìËÙµØÏìÓ¦°´¼ü²Ù×÷¡£Òò´Ë£¬ÎªÁËÌá¸ßCPUµÄ¹¤×÷ЧÂÊ£¬±¾ÏµÍ³²ÉÓÃÖжÏɨÃ跽ʽ½øÐÐÉè¼ÆÊµÏÖ¡£
£¨5£©¹ØÓÚÖжϷ½Ê½µÄ¼¸µã˵Ã÷£º£¨1£©ÒªÊ¹ÓÃÍⲿÖжϣ¬±ØÐ뽫ÖжÏÔÊÐí´ò¿ª£¬¼´¶ÔÖжÏÔÊÐí¼Ä´æÆ÷IE½øÐÐÕýÈ·ÉèÖá£IEµÄ×Ö½ÚµØÖ·ÎªA8H£¬ËùÒÔ¼´¿ÉÒÔ×Ö½Ú²Ù×÷£¬ÓÖ¿ÉÒÔλ²Ù×÷£¬ÈçÒª¿ªÆôÍⲿÖжÏ0£¬¼´¿ÉдIE=0x81H£¬Ò²¿ÉдEX0=1£¬EA=1£¬¶þÕßµÄ×÷ÓÃÊǵÈͬµÄ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
£¨2£©ÍⲿÖжϰüÀ¨µçƽ´¥·¢£¨ITx=0£©£¨ÍⲿÖжÏÔ´½ÓP3.2½Åʱ£¬x=0£»ÍⲿÖжÏÔ´½ÓP3.3½Åʱ£¬x=1£©ºÍ±ßÑØ´¥·¢£¨ITx=1£©Á½ÖÖ´¥·¢·½Ê½¡£ÆäÖбßÑØ´¥·¢µÄÍⲿÖжÏÇëÇó£¬ÔÚCPUÏìÓ¦ÖжϺó£¬×Ô¶¯ÓÉÓ²¼þ¶ÔÖжÏÇëÇó±ê־λEIxÇå0£¬¼´ÏµÍ³×Ô¶¯³·ÏúÖжÏÇëÇó£»¶øµçƽ´¥·¢µÄÍⲿÖжÏÇëÇó£¬Ó²¼þ²»ÄÜ×Ô¶¯¶ÔÖжÏÇëÇó±ê־λEIxÇå0£¬±ØÐëÔÚ³·ÏúP3.2»òP3.3Òý½ÅÉÏµÄµÍµçÆ½ºó£¬ÔÙÀûÓÃÈí¼þ¶ÔÖжÏÇëÇó±ê־λÇå0£¬±È½Ï·±Ëö¡£Òò´Ë±¾ÏµÍ³²ÉÓñßÑØ´¥·¢·½Ê½¡£ 3.2 ³ÌÐòÁ÷³Ìͼ
¸ÃϵͳµÄ³ÌÐòÁ÷³ÌͼÈçͼ2Ëùʾ¡£ 3.3 ϵͳԴ´úÂë
¸Ã»¨ÑùÁ÷Ë®µÆÏµÍ³µÄÍêÕûÔ´´úÂëÈçÏ£º
#include£»Í·Îļþreg51.h»òreg52.hÖаüº¬Á˶Ô8051Ð͵¥Æ¬»úÌØÊ⹦ÄܼĴæÆ÷£¨SFR£©ÃûµÄ¼¯ÖÐ˵Ã÷¡£
Unsigned char led[]={0xfe£¬0xfd£¬0xfb£¬0xf7£¬0xef£¬0xdf£¬0xbf£¬0x7f}£» void delay£¨unsigned char time£©£»//ÑÓʱº¯ÊýµÄÉùÃ÷ bit on_off=0£¬ style1=0£¬ style2=0£»//¶¨Òåλ¿ØÖƱäÁ¿ button£¨£© interrupt 0{ //ÖжÏ0º¯Êý switch£¨P0&0x0f£© {
case 0x0e£º on_off=1£¬ style1=1£»break£» //ģʽ1·½Ê½µÄÆô¶¯Ìõ¼þ
case 0x0d£º on_off=1£¬ style1=0£» style2=1£»break£» //ģʽ2·½Ê½µÄÆô¶¯Ìõ¼þ case 0x0b£º on_off=1£¬ style1=0£»style2=0£»break£» //ģʽ3·½Ê½µÄÆô¶¯Ìõ¼þ case 0x07£º on_off=0£»break£» //ģʽ4·½Ê½µÄÆô¶¯Ìõ¼þ }}
void main£¨£© { char i£»
IT0=1£»EX0=1£»EA=1£» //±ßÑØ´¥·¢¡¢ÍⲿÖжÏ0ÔÊÐí¡¢×ÜÖжÏÔÊÐí