
Ç°ÃæÀý×ÓÖзֱð½éÉÜÁË°´¼ü¿ØÖÆ·¢¹â¶þ¼«¹ÜµÄÁÁÃ𣬵«ÊÇ·¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢×¢Òâµ½£¬ÔÚ³ÌÐòÖÐÐèÒªÒ»Ö±¼ì²â°´¼üµÄ״̬£¬ÕâÑùÃ÷ÏÔµÄÀË·ÑÁ˵¥Æ¬»úµÄ×ʲú£¬½µµÍÁ˵¥Æ¬»úµÄ¹¤×÷ЧÂÊ£¬¡£ÄÇôÓÐûÓÐÒ»ÖÖ·½·¨¿ÉÒÔÈõ¥Æ¬»ú²»ÓÃÒ»Ö±¼ì²â°´¼üµÄ״̬£¬¶øÖ»ÔÚÓа´¼ü¶¯×÷ʱ²ÅÈ¥ÏìÓ¦ÄØ£¿
µ±È»ÓУ¡µ¥Æ¬»úÖгýÁ˾ßÓлù±¾ÊäÈëÊä³ö¹¦ÄܵÄ×÷ÓÃÍ⣬»¹ÓÐרÃżì²âÍâ½çÐźŲ¢×÷³öÏìÓ¦µÄÖжÏϵͳ¡£ÔÚ±¾ÀýÖУ¬Í¨¹ýÀûÓÃÍⲿÖжÏʵÏÖµ¥Æ¬»ú¶Ô°´¼üʼþµÄÏìÓ¦ºÍ´¦Àí¡£
±¾ÀýÖÐÈý¸ö¹¦ÄÜÄ£¿éÃèÊöÈçÏ£º
¡ñ µ¥Æ¬»úϵͳ£º¶Ô°´¼üʼþ²úÉúµÄÖжÏʱ¼ä×÷³öÏìÓ¦£¬²¢ÔÚÊýÂë¹ÜÉÏÏÔʾ°´¼ü°´ÏµĴÎÊý¡£
¡ñ ÍâΧµç·£ºÍ¨¹ý½«°´¼üÁ¬½Óµ½µ¥Æ¬»úµÄÍⲿÖжϼì²â¶Ë¿Ú£¬ÊµÏÖÖжϲúÉúµç·£¬ÊýÂë¹ÜÏÔʾµç·ÓÃÓÚָʾ°´¼üµÄ°´ÏÂ״̬¡£
¡ñ Èí¼þ³ÌÐò£º±àдAVRµ¥Æ¬»úµÄÍⲿÖжϷþÎñ³ÌÐò£¬´Ó¶øʵÏÖ¶ÔÖжÏʼþµÄÏìÓ¦¡£
2.2.2 Æ÷¼þºÍÔÀí
1µ¥Æ¬»úµÄÖжÏϵͳ
¹ØÓÚÖжϵĸÅÄî¿ÉÒÔÔÚÒ»°ãµÄ½Ì²ÄÖÐÕÒµ½£¬±¾ÀýÖÐÖ»×ö¼òÒªÐðÊö£¬²»ÔÙÏêϸ˵Ã÷¡£
ÖжÏÊôÓÚÒ»ÖÖ¶ÔʼþµÄʵʱ´¦Àí¹ý³Ì¡£ÖжÏÔ´¿ÉÄÜËæʱֹͣµ¥Æ¬»úµ±Ç°ÕýÔÚ´¦ÀíµÄ¹¤×÷£¬×ª¶øÈ¥´¦ÀíÖжÏʼþ£¬´ýÖжÏʱ¼ä´¦ÀíÍê±ÏÖ®ºó£¬ÔÙ·µ»ØÔÀ´¹¤×÷µÄ¶Ïµã´¦£¬¼ÌÐøÔÀ´µÄ¹¤×÷¡£
¶ÔÓÚµ¥Æ¬»úµÄÖжÏϵͳ£¬ÐèÒªÁ˽âÕ⼸¸ö¸ÅÄÖжÏÔ´¡¢ÖжÏÐźš¢ÖжÏÏòÁ¿¡¢ÖжÏÓÅÏȼ¶¡¢ÖжÏǶÌס¢ÖжϿØÖÆ£¨ÆÁ±Î£©¡¢ÖжÏÏìÓ¦Ìõ¼þ¡¢ÖжÏÏìÓ¦¹ý³Ì£¨ÖжϷþÎñ³ÌÐò£©¡£
¡ñÖжÏÔ´
ÖжÏÔ´ÊÇÖ¸Äܹ»Ïòµ¥Æ¬»ú·¢³öÖжÏÇëÇóÐźŵIJ¿¼þºÍÉ豸¡£¶ÔÓÚµ¥Æ¬»úÀ´½²£¬ÍùÍù´æÔÚ¶à¸öÖжÏÔ´¡£ÖжÏÔ´Ò»°ã¿É·ÖΪÄÚ²¿ÖжÏÔ´ºÍÍⲿÖжÏÔ´¡£
µ¥Æ¬»úÄÚ²¿¼¯³ÉµÄÐí¶à¹¦ÄÜÄ£¿é£¬È綨ʱÆ÷¡¢´®ÐÐͨѶ¿Ú¡¢Ä£/Êýת»»Æ÷µÈ£¬ËüÃÇÔÚÕý³£¹¤×÷ʱÍùÍùÎÞÐèCPU²ÎÓ룬¶øµ±´¦ÓÚijÖÖ״̬»ò´ïµ½Ä³¸ö¹æ¶¨ÖµÐèÒª³ÌÐò ¿ØÖÆʱ£¬»áͨ¹ý·¢³öÖжÏÇëÇóÐźÅ֪ͨCPU¡£ÕâÒ»ÀàµÄÖжÏԴλÓÚµ¥Æ¬»úÄÚ²¿£¬³Æ×÷ÄÚ²¿ÖжÏÔ´¡£ÄÚ²¿ÖжÏÔ´ÔÚÖжÏÌõ¼þ½¨Á¢Ê±£¬Ò»°ãͨ¹ýƬÄÚÓ²¼þ»á×Ô¶¯²úÉúÖÐ ¶ÏÇëÇóÐźţ¬ÎÞÐë¿Í‘ô½éÈ룬ʹÓ÷½±ã¡£ÄÚ²¿ÖжÏÊÇCPU¾ÓªÆ¬ÄÚ×ʲúµÄÒ»ÖÖ¸ßЧµÄ;¾¶¡£
ϵͳÖеÄÍⲿÉ豸Ҳ¿ÉÒÔÓÃ×÷ÖжÏÔ´£¬ÕâʱҪÇóËüÃÇÄܹ»²úÉúÒ»¸öÖжÏÐźţ¨Í¨³£ÊǸߣ¨µÍ£©µçƽ»òÕßµçƽÌø±äµÄÉÏÉý£¨Ï½µ£©ÑØ£©£¬Ë͵½µ¥Æ¬»úµÄÍⲿÖжÏÇëÇóÒý ½Å¹©CPU¼ì²â¡£ÕâЩÖжÏԴλÓÚµ¥Æ¬»úÍⲿ£¬³ÆΪÍⲿÖжÏÔ´¡£Í¨³£ÓÃ×÷ÍⲿÖжÏÔ´µÄÓÐÊäÈëÊä³öÉ豸¡¢¿ØÖƶÔÏó¡¢ÒÔ¼°¹ÊÕÏÔ´µÈ¡£
¡ñ ÖжÏÐźÅ
ÖжÏÐźÅÊÇÖ¸ÄÚ²¿»òÍⲿÖжÏÔ´²úÉúµÄÖжÏÉêÇëÐźţ¬Õâ¸öÖжÏÐźÅÍùÍùÊǵçÐźŵÄijÖֱ仯ÐÎʽ£¬Í¨³£ÓÐÒÔϼ¸ÖÖÀàÐÍ£º
- Âö³åµÄÉÏÌøÑØ»òϽµÑØ£¨ÉÏÉýÑØ´¥·¢ÐÍ»òϽµÑØ´¥·¢ÐÍ£©
- ¸ßµçƽ»òµÍµçƽ£¨µçƽ´¥·¢ÐÍ£©
- µçƽµÄ±ä»¯£¨×´Ì¬±ä»¯´¥·¢ÐÍ£©
¶ÔÓÚµ¥Æ¬»úÀ´½²£¬²»Í¬µÄÖжÏÔ´£¬²úÉúʲôÀàÐ͵ÄÖжÏÐźÅÄܹ»´¥·¢ÉêÇëÖжϣ¬È¡¾öÓÚоƬÄÚ²¿µÄÓ²¼þ½á¹¹£¬¶øÇÒͨ³£Ò²¿ÉÒÔͨ¹ý¿Í‘ôµÄÈí¼þÀ´É趨¡£
µ¥Æ¬»úµÄÓ²¼þϵͳ»á×Ô¶¯¶ÔÕâЩÖжÏÐźŽøÐмì²â¡£Ò»µ©¼ì²âµ½¹æ¶¨µÄÐźųöÏÖ£¬½«»á°ÑÏàÓ¦µÄÖжϱê־λÖá°1¡±£¨ÔÚI/O¿Õ¼äµÄ¿ØÖÆ»ò״̬¼Ä´æÆ÷ÖУ©£¬Í¨ÖªCPU½øÐд¦Àí¡£
¡ñ ÖжÏÏòÁ¿
ÖжÏÔ´·¢³öµÄÇëÇóÐźű»CPU¼ì²âµ½Ö®ºó£¬Èç¹ûµ¥Æ¬»úµÄÖжϿØÖÆϵͳÔÊÐíÏìÓ¦Öжϣ¬CPU»á×Ô¶¯×ª»¯£¬Ö´ÐÐÒ»¸ö¹Ì¶¨µÄ³ÌÐò¿Õ¼äµØÖ·ÖеÄÖ¸Áî¡£Õâ¸ö¹Ì¶¨µÄµØÖ·³Æ×÷ÖжÏÈë¿ÚµØÖ·£¬Ò²½Ð×öÖжÏÏòÁ¿¡£ÖжÏÈë¿ÚµØÖ·ÍùÍùÊÇÓɵ¥Æ¬»úÄÚ²¿Ó²¼þ¾ö¶¨µÄ¡£
Ò»¸öµ¥Æ¬»úÓÐÈô¸É¸öÖжÏÔ´£¬Ã¿¸öÖжÏÔ´¶¼ÓÐ×Å×Ô¼ºµÄÖжÏÏòÁ¿¡£ÕâЩÖжÏÏòÁ¿Ò»°ãÔÚ³ÌÐò´æ´¢¿Õ¼äÖÐÕ¼ÓÃÒ»¸öÁ¬ÐøµÄµØÖ·¿Õ¼ä¶Î£¬³ÆΪÖжÏÏòÁ¿Çø¡£ÓÉÓÚÒ»¸öÖжÏ
ÏòÁ¿Í¨³£½öÕ¼¼¸¸ö×Ö½Ú»òÒ»ÌõÖ¸ÁîµÄ³¤¶È£¬ËùÒÔÔÚÖжÏÏòÁ¿ÇøÒ»°ã²»·ÅÖÃÖжϷþÎñ³ÌÐòµÄ¡£ÖжϷþÎñ³ÌÐòÒ»°ã·ÅÖÃÔÚ³ÌÐò´æ´¢Æ÷µÄÆäËüµØ·½£¬¶øÔÚÖжÏÏòÁ¿´¦·ÅÖÃÒ»
ÌõÌøתµ½ÖжϷþÎñ³ÌÐòµÄÖ¸Áî¡£ÕâÑù£¬CPUÏìÓ¦ÖжϺó£¬Ê×ÏÈ×Ô¶¯×ªÏòÖ´ÐÐÖжÏÏòÁ¿ÖеÄת»¯Ö¸ÁÔÙÌøתִÐÐÖжϷþÎñ³ÌÐò¡£
¡ñ ÖжÏÓÅÏȼ¶
µ¥Æ¬»úϵͳһ°ãÓжà¸öÖжÏÔ´£¬µ±Ä³Ò»Ê±¿ÌͬʱÓжà¸öÖжϲúÉúʱ£¬µ¥Æ¬»ú¸ÃÈçºÎ´¦ÀíÄØ£¿Õâ¾ÍÓÐÁËÖжÏÓÅÏȼ¶µÄ¸ÅÄî¡£
ͨ³££¬µ¥Æ¬»ú¿ÉÒÔ½ÓÊÕÈô¸É¸öÖжÏÔ´·¢³öµÄÖжÏÇëÇó¡£µ«ÔÚͬһʱ¿Ì£¬MCUÖ»ÄÜÏìÓ¦ÕâЩÖжÏÇëÇóÖеÄÆäÖÐÒ»¸ö¡£ÎªÁËÐÒÃâMCUͬʱÏìÓ¦¶à¸öÖжÏÇëÇó´øÀ´µÄ»ì
ÂÒ£¬ÔÚµ¥Æ¬»úÖÐΪÿһ¸öÖжÏÔ´¸³ÓèÒ»¸öÌض¨µÄÖжÏÓÅÏȼ¶¡£Ò»µ©Óжà¸öÖжÏÇëÇóÐźţ¬MCUÏÈÏìÓ¦ÖжÏÓÅÏȼ¶¸ßµÄÖжÏÇëÇó£¬È»ºóÔÙÖð´ÎÏìÓ¦ÓÅÏȼ¶´ÎÒ»¼¶µÄÖÐ
¶Ï¡£ÖжÏÓÅÏȼ¶Ò²·´Ó³Á˸÷¸öÖжÏÔ´µÄ¹Ø¼ü³Ì¶È£¬Í¬Ê±Ò²ÊÇÅÙÎöÖжÏǶÌ׵Ļù´¡¡£
¶ÔÓÚÖжÏÓÅÏȼ¶µÄÈ·¶¨£¬Í¨³£ÊÇÓɵ¥Æ¬»úµÄÓ²¼þ½á¹¹¹æ¶¨µÄ¡£Ò»°ãµÄÈ·¶¨¹æÔò·½Ê½ÎªÁ½ÖÖ£º
- ijÖж϶ÔÓ¦µÄÖжÏÏòÁ¿µØַԽС£¬ÆäÖжÏÓÅÏȼ¶Ô½¸ß£¨Ó²¼þÈ·¶¨·½Ê½£©¡£
- ͨ¹ýÈí¼þ¶ÔÖжϿØÖƼĴæÆ÷µÄÉ趨£¬¸Ä±äÖжϵÄÓÅÏȼ¶£¨¿Í‘ôÈí¼þ¿ÉÉèÖ÷½Ê½£¬×¢Ò⣺AVR²»Ö§³Ö£©¡£
ʵ¼ÊÉÏ£¬MCUÔÚÁ½ÖÖÇé¿öÏÂÐèÒª¶ÔÖжϵÄÓÅÏȼ¶½øÐÐÅжϣº
µÚÒ»ÖÖÇé¿öΪͬʱÓÐÁ½£¨¶à£©¸öÖжÏÔ´ÉêÇëÖжϡ£ÔÚÕâÖÖÇé¿öÏ£¬MCUÊ×ÏÈÏìÓ¦ÖжÏÓÅÏȼ¶×î¸ßµÄÄǸöÖжϣ¬¶ø½«ÆäËüµÄÖжϹÒÆð¡£´ýÓÅÏȼ¶×î¸ßµÄÖжϷþÎñ³ÌÐòÖ´ÐÐÍê³É·µ»Øºó£¬ÔÙ˳ÐòÏìÓ¦ÓÅÏȼ¶½ÏµÍµÄÖжϡ£
µÚ¶þÖÖÇé¿öÊǵ±MCUÕý´¦ÓÚÏìÓ¦Ò»¸öÖжϵĹý³ÌÖС£ÈçÒѾÏìÓ¦ÁËij¸öÖжϣ¬ÕýÔÚÖ´ÐÐΪÆä·þÎñµÄÖжϳÌÐòʱ£¬´ËʱÓÖ²úÉúÒ»¸öÆäËüµÄÖжÏÉêÇ룬ÕâÖÖÇé¿öÒ²³Æ×÷ÖжÏǶÌס£
¡ñ ÖжÏǶÌ×
¶ÔÓÚÖжÏǶÌ׵Ĵ¦Àí£¬²»Í¬µÄµ¥Æ¬»ú´¦ÀíµÄ·½Ê½ÊDz»Í¬µÄ£¬Ó¦¸ù¾ÝËùʹÓõ¥Æ¬»úµÄÌصãÕýȷʵÏÖÖжÏǶÌ׵Ĵ¦Àí¡£
°´ÕÕͨ³£µÄ¹æÔò£¬µ±MCUÕýÔÚÏìÓ¦Ò»¸öÖжÏBµÄ¹ý³ÌÖУ¬ÓÖ²úÉúÒ»¸öÆäËüµÄÖжÏAÉêÇëʱ£¬Èç¹ûÕâ¸öвúÉúÖжÏAµÄÓÅÏȼ¶±ÈÕýÔÚÏìÓ¦µÄÖжÏBÓÅÏȼ¶¸ßµÄ»°£¬¾Í
Ó¦¸ÃÔÝÍ£µ±Ç°µÄÖжÏBµÄ´¦Àí£¬×ªÈëÏìÓ¦¸ßÓÅÏȼ¶µÄÖжÏA£¬´ý¸ßÓÅÏȼ¶ÖжÏA´¦ÀíÍê³Éºó£¬ÔÙ·µ»ØÔÀ´µÄÖжÏBµÄ´¦Àí¹ý³Ì¡£Èç¹ûвúÉúÖжÏAµÄÓÅÏȼ¶±ÈÕýÔÚ´¦
ÀíÖжÏBµÄÓÅÏȼ¶µÍ£¨»òÏàͬ£©£¬ÔòÓ¦ÔÚ´¦ÀíÍ굱ǰµÄÖжÏBºó£¬ÔÙÏìÓ¦ÄǸöºó²úÉúµÄÖжÏAÉêÇ루Èç¹ûÖжÏAÌõ¼þ»¹½¨Á¢µÄ»°£©¡£
һЩµ¥Æ¬»ú£¨Èç8051½á¹¹£©µÄÓ²¼þÄܹ»×Ô¶¯ÊµÏÖÖжÏǶÌ׵Ĵ¦Àí£¬¼Èµ¥Æ¬»úÄÚ²¿µÄÓ²¼þµç·Äܹ»Ê¶±ðÖжϵÄÓÅÏȼ¶£¬²¢¸ù¾ÝÓÅÏȼ¶µÄ¸ßµÍ£¬×Ô¶¯Íê³É¶Ô¸ßÓÅÏȼ¶ÖжϵÄÓÅÏÈÏìÓ¦£¬ÊµÏÖÖжϵÄǶÌ×´¦Àí¡£
¶øÁíÒ»ÀàµÄµ¥Æ¬»ú£¬Èç·¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢ÕýÔÚѧϰµÄAVRµ¥Æ¬»ú£¬ÆäÓ²¼þϵͳ²»Ö§³Ö×Ô¶¯ÊµÏÖÖжÏǶÌ׵Ĵ¦Àí¡£Èç¹ûÔÚϵͳÉè¼ÆÖУ¬±ØÐëʹÓÃÖжÏǶÌ×´¦Àí£¬ÔòÐèÒªÓÉ¿Í‘ô±àдÏàÓ¦µÄ³ÌÐò£¬Í¨¹ýÈí¼þÉèÖÃÀ´ÊµÏÖÖжÏǶÌ׵ŦÄÜ¡£
¡ñ ÖжϿØÖÆ£¨ÆÁ±Î£©
µ¥Æ¬»úÓµÓÐÖÚ¶àÖжÏÔ´£¬µ«ÔÚijһ¾ßÌåÉè¼ÆÖÐͨ³£²¢²»ÐèҪʹÓÃËùÓеÄÖжÏÔ´£¬»òÕßÔÚϵͳÈí¼þÔËÐеÄijЩ¹Ø¼ü½×¶Î²»ÔÊÐíÖжϴò¶ÏÏÖÐгÌÐòµÄÔËÐУ¬Õâ¾ÍÐèÒªÒ»Ì×
Èí¼þ¿É¿ØÖƵÄÖжÏÆÁ±Î/ÔÊÐíϵͳ¡£ÔÚµ¥Æ¬»úµÄI/O¼Ä´æÆ÷ÖУ¬Í¨³£´æÔÚһЩÌØÊâµÄ±ê־λÓÃÓÚ¿ØÖÆ¿ª·Å»ò¹Ø±Õ£¨ÆÁ±Î£©MCU¶ÔÖжÏÏìÓ¦´¦Àí£¬ÕâЩ±êÖ¾³ÆΪÖÐ
¶ÏÆÁ±Î±ê־λ»òÖжÏÔÊÐí¿ØÖÆλ¡£¿Í‘ô³ÌÐò¿ÉÒԸıäÕâЩ±ê־λµÄÉèÖã¬ÔÚÐèÒªµÄʱºòÔÊÐíMCUÏìÓ¦Öжϣ¬¶øÔÚ²»ÐèÒªµÄʱºòÔò½«ÖжÏÇëÇóÐźÅÆÁ±Î£¨×¢Ò⣺²»ÊÇ
È¡Ïû£©£¬´Ëʱ¾¡¹Ü²úÉúÁËÖжÏÇëÇóÐźţ¬MCUÒ²²»»áÏìÓ¦ÖжÏÇëÇó¡£
´Ó¶ÔÖжÏÔ´µÄ¿ØÖƽǶȽ²£¬ÖжÏÔ´»¹¿É·Ö³É2Àࣺ
- ·ÇÆÁ±ÎÖжϡ£·ÇÆÁ±ÎÖжÏÊÇÖ¸MCU¶ÔÖжÏÔ´²úÉúµÄÖжÏÇëÇóÐźÅÊDz»ÄÜÆÁ±ÎµÄ£¬Ò²¾ÍÊÇ˵һµ©·¢ÉúÖжÏÇëÇó£¬MCU¿Ï¶¨ÏìÓ¦¸ÃÖжϡ£ÔÚµ¥Æ¬»úÖУ¬ÍⲿRESETÒý½Å²úÉúµÄ¸´Î»Ðźţ¬¾ÍÊÇÒ»¸ö·ÇÆÁ±ÎµÄÖжϡ£
- ¿ÉÆÁ±ÎÖжϡ£¿ÉÆÁ±ÎÖжÏÊÇÖ¸¿Í‘ô³ÌÐò¿ÉÒÔͨ¹ýÖжÏÆÁ±Î¿ØÖƱêÖ¾¶ÔÖжÏÔ´²úÉúµÄÖжÏÇëÇóÐźŽøÐпØÖÆ£¬¼ÈÔÊÐí»ò½ûÖ¹MCU¶Ô¸ÃÖжϵÄÏìÓ¦¡£ÔÚÓà »§³ÌÐòÖУ¬¿ÉÒÔÔ¤ÏÈÖ´ÐÐÒ»ÌõÔÊÐíÖжϵÄÖ¸ÁÕâÑùÒ»µ©·¢ÉúÖжÏÇëÇó£¬MCU¾ÍÄܹ»ÏìÓ¦Öжϡ£·´Ö®£¬¿Í‘ô³ÌÐòÒ²¿ÉÒÔÔ¤ÏÈÖ´ÐÐÒ»ÌõÖжϽûÖ¹£¨ÆÁ±Î£©Ö¸Áʹ MCU²»ÏìÓ¦ÖжÏÇëÇó¡£Òò´Ë£¬¿ÉÆÁ±ÎÖжϵÄÖжÏÇëÇóÄÜ·ñ¿ÉÒÔ±»MCUÏìÓ¦£¬×îÖÕÊÇÓÉ¿Í‘ô³ÌÐòÀ´¿ØÖƵġ£ÔÚµ¥Æ¬»úÖУ¬´ó¶àÊýµÄÖж϶¼ÊÇ¿ÉÆÁ±ÎµÄÖжϡ£
¡ñ ÖжÏÏìÓ¦Ìõ¼þ
µ¥Æ¬»úÔÚ¹¤×÷ʱ£¬ÔÚÿ¸ö»úÆ÷ÖÜÆÚ¶¼»á²éѯһϸ÷¸öÖжÏÔ´µÄÖжϱê¼Ç£¬´Ó¶øÅжÏÊÇ·ñÓÐÖжÏÉêÇ룬Èç¹ûÖжϱê־Ϊ1£¬ËµÃ÷ÓÐÖжÏÇëÇó·¢Éú¡£
×ÛºÏÇ°ÃæµÄ½éÉÜ£¬·¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢¿ÉÒÔÖªµÀ£¬ÔÚµ¥Æ¬»úÖУ¬¶ÔӦÿһ¸öÖжÏÔ´¶¼ÓÐÒ»¸öÏàÓ¦µÄÖжϱê־룬¸ÃÖжϱê־λ½«Õ¼¾ÝÖжϿØÖƼĴæÆ÷ÖеÄһλ¡£µ±µ¥Æ¬»ú¼ì²âµ½Ä³Ò»ÖжÏÔ´²úÉú·ûºÏÌõ¼þµÄÖжÏÐźÅʱ£¬ÆäÓ²¼þ»á×Ô¶¯½«¸ÃÖжÏÔ´¶ÔÓ¦µÄÖжϱê־λÖá°1¡±£¬Õâ¾ÍÒâζ×ÅÓÐÖжÏÐźŲúÉúÁË£¬ÏòMCUÉêÇëÖжϡ£
µ«Öжϱê־λµÄÖá°1¡±£¬²¢²»´ú±íMCUÒ»¶¨ÏìÓ¦¸ÃÖжϡ£ÎªÁ˺ÏÀí¿ØÖÆÖжÏÏìÓ¦£¬ÔÚµ¥Æ¬»úÄÚ²¿»¹ÓÐÏà¹ØµÄÓÃÓÚÖжϿØÖƵÄÖжÏÔÊÐí±ê־λ¡£×î¹Ø¼üµÄÒ»¸öÖжÏÔÊÐí±ê־λÊÇÈ«¾ÖÖжÏÔÊÐí±ê־λ¡£µ±¸Ã±ê־λΪ¡°0¡±£¬±íʾ½ûÖ¹MCUÏìÓ¦ËùÓеĿÉÆÁ±ÎÖжϵÄÏìÓ¦¡£´Ëʱ²»¹ÜÓзñÖжϲúÉú£¬MCU²»»áÏìÓ¦ÈκεÄÖжÏÇëÇó¡£Ö»ÓÐÈ«¾ÖÖжÏÔÊÐí±ê־λΪ¡°1¡±£¬²ÅÔÊÐíµ¥Æ¬»úÏìÓ¦Öжϡ£
MCUÏìÓ¦ÖжÏÇëÇóµÄµÚ¶þ¸öÌõ¼þÊÇÿ¸öÖжÏÔ´Ëù¾ßÓеĸ÷×Ô¶ÀÁ¢µÄÖжÏÔÊÐí±ê־λ¡£µ±Ä³¸öÖжÏÔÊÐí±ê־λΪ¡°0¡±Ê±£¬±íʾMCU²»ÏìÓ¦¸ÃÖжϵÄÖжÏÉêÇë¡£
´ÓÉÏÃæµÄÖжÏÏìÓ¦Ìõ¼þ¿´³ö£¬Ö»Óе±È«¾ÖÖжÏÔÊÐí±ê־λΪ¡°1¡±£¨ÓÉ¿Í‘ôÈí¼þÉèÖã©£¬ÖжÏAÔÊÐí±ê־λΪ¡°1¡±£¨ÓÉ¿Í‘ôÈí¼þÉèÖã©£¬ÖжÏA±ê־λΪ¡°1¡±
£¨·ûºÏÖжÏÌõ¼þʱÓÉÓ²¼þ×Ô¶¯ÉèÖûòÓÉ¿Í‘ôÈí¼þÉèÖã©Ê±£¬MCU²Å»áÏìÓ¦ÖжÏAµÄÇëÇóÐźţ¨Èç¹ûÓжà¸öÖжÏÇëÇóÐźÅͬʱ´æÔÚµÄÇé¿öÏ£¬»¹Òª¸ù¾ÝÖжÏAµÄÓÅÏÈ
¼¶À´È·¶¨£©¡£
¿Í‘ô³ÌÐò¶Ô¿ÉÆÁ±ÎÖжϵĿØÖÆ£¬Ò»°ãÊÇͨ¹ýÉèÖÃÏàÓ¦µÄÖжϿØÖƼĴæÆ÷À´ÊµÏֵġ£³ýÁËÉèÖÃÖжϵÄÏìÓ¦Ìõ¼þ£¬¿Í‘ô³ÌÐò»¹ÐèҪͨ¹ýÖжϿØÖÆÆ÷À´ÉèÖÃÖжϵÄÆäËûÌØÐÔ£¬È磺Öжϴ¥·¢ÐźŵÄÀàÐÍ¡¢ÖжϵÄÓÅÏȼ¶¡¢ÖжÏÐźŲúÉúµÄÌõ¼þµÈµÈ¡£
¡ñÖжÏÏìÓ¦¹ý³Ì£¨ÖжϷþÎñ³ÌÐò£©
µ±ËùÓеÄÖжÏÏìÓ¦Ìõ¼þ¶¼Âú×ãÁËÖ®ºó£¬¾ÍÒª½øÈëÖжÏÏìÓ¦¹ý³Ì½øÐÐÏàÓ¦´¦ÀíÁË¡£µ¥Æ¬»úÏìÓ¦ÖжϺó£¬Ê×ÏÈÒª°Ñµ±Ç°Ö¸ÁîµÄÏÂÒ»ÌõÖ¸ÁîµÄµØÖ·ËÍÈë¶ÑÕ»£¨±£»¤¶Ïµã£©£¬
È»ºó¸ù¾ÝÖжϱê¼Ç£¬½«ÏàÓ¦µÄÖжÏÈë¿ÚµØÖ·ËÍÈë³ÌÐòÖ¸Õ룬³ÌÐòתµ½ÖжÏÈë¿Ú´¦¼ÌÐøÖ´ÐУ¨ÖжϷþÎñ³ÌÐò£©£¬ÖжϳÌÐòÖ´ÐÐÍêºó£¬µ¥Æ¬»úÔٰѶÑÕ»Öб£´æµÄµØÖ·È¡
³ö£¬³ÌÐò´Ó¸Õ²ÅµÄÖжϴ¦¼ÌÐøÏòÏÂÖ´ÐС£
ÐèҪעÒâµÄÊÇ£¬µ¥Æ¬»úÓ²¼þËù×öµÄ±£»¤¹¤×÷Ö»ÊDZ£»¤Á˳ÌÐòµÄÒ»¸öÖ¸ÁîµØÖ·£¬Èç¹ûÖжÏÏìÓ¦¹ý³ÌÖÐÐÞ¸ÄÁËһЩ¼Ä´æÆ÷ºÍ±äÁ¿µÄÖµ£¬¾ÍÐèÒªÔÚÖжÏÏìÓ¦³ÌÐòÀïÃæ×Ô¼º¼ÓÒÔ±£»¤¡£
2¡¢AVRµ¥Æ¬»úµÄÍⲿÖжÏ
AVRµ¥Æ¬»úÓкܶàÖжϣ¬ÔÚºóÃæµÄʵÀýÖз¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢»áÖðÒ»½éÉÜ¡£±¾ÀýÖÐÖ»½éÉÜAVRµ¥Æ¬»úµÄÍⲿÖжϣ¬
ATmega16ÓÐINT0¡¢INT1ºÍINT23¸öÍⲿÖжÏÔ´£¬·Ö±ðÓÉоƬÍⲿÒý½ÅPD2¡¢PD3¡¢PB2ÉϵĵçƽµÄ±ä»¯»ò״̬×÷ΪÖжϴ¥·¢Ðźš£
¡ñÍⲿÖжϴ¥·¢·½Ê½ºÍÌصã
INT0¡¢INT1¡¢INT2µÄÖжϴ¥·¢·½Ê½È¡¾öÓÚ¿Í‘ô³ÌÐò¶ÔMCU¿ØÖƼĴæÆ÷MCUCRÒÔ¼°MCU¿ØÖÆÓë״̬¼Ä´æÆ÷MCUCSRµÄÉ趨¡£ÆäÖУ¬INT0ºÍINT1Ö§³Ö4ÖÖÖжϴ¥·¢·½Ê½£ºÉÏÉýÑØ´¥·¢¡¢Ï½µÑØ´¥·¢¡¢ÈÎÒâµçƽ±ä»¯´¥·¢¡¢µÍµçƽ´¥·¢¡£
INT2Ö§³ÖÉÏÉýÑØ´¥·¢ºÍϽµÑØ´¥·¢¡£
ÈÎÒâµçƽ±ä»¯´¥·¢±íʾֻҪÒý½ÅÉÏÓÐÂß¼µçƽµÄ±ä»¯¾Í»á²úÉúÖжÏÉêÇ루²»¹ÜÊÇÉÏÉýÑØ»¹ÊÇϽµÑض¼ÒýÆðÖжϴ¥·¢£©¡£ÔÚÕâ4ÖÖ´¥·¢·½Ê½ÖУ¬»¹ÓÐÒÔϵÄһЩ²»Í¬µÄÌص㣺
¡ñµÍµçƽ´¥·¢ÊDz»´øÖжϱêÖ¾ÀàÐ͵ģ¬¼´Ö»ÒªÖжÏÊäÈëÒý½ÅPD2»òPD3±£³ÖµÍµçƽ£¬ÄÇ
ô½«Ò»Ö±»á²úÉúÖжÏÉêÇë¡£
¡ñMCU¶ÔINT0ºÍINT1µÄÒý½ÅÉϵÄÉÏÉýÑØ»òϽµÑر仯µÄʶ±ð£¨´¥·¢£©£¬ÐèÒªI/OʱÖÓÐźŵĴæÔÚ£¨ÓÉI/OʱÖÓͬ²½¼ì²â£©£¬ÊôÓÚͬ²½±ßÑØ´¥·¢µÄÖжÏÀàÐÍ¡£
¡ñMCU¶ÔINT2µÄÒý½ÅÉϵÄÉÏÉýÑØ»òϽµÑر仯µÄʶ±ð£¨´¥·¢£©£¬ÒÔ¼°µÍµçƽµÄʶ±ð£¨´¥·¢£©ÊÇͨ¹ýÒì²½·½Ê½¼ì²âµÄ£¬²»ÐèÒªI/OʱÖÓÐźŵĴæÔÚ¡£Òò´Ë£¬Õâ
Àà´¥·¢ÀàÐ͵ÄÖжϾ³£×÷ΪÍⲿ»½ÐÑÔ´£¬ÓÃÓÚ½«´¦ÔÚIdleÐÝÃßģʽ£¬ÒÔ¼°´¦ÔÚ¸÷ÖÖÆäËüÐÝÃßģʽµÄMCU»½ÐÑ¡£ÕâÊÇÓÉÓÚ³ýÁËÔÚ¿ÕÏУ¨Idel£©Ä£Ê½
ʱ£¬I/OʱÖÓÐźŻ¹±£³Ö¼ÌÐø¹¤×÷£¬ÔÚÆäËü¸÷ÖÖÐÝÃßģʽÏ£¬I/OʱÖÓÐźžùÊÇ´¦ÔÚÔÝͣ״̬µÄ¡£
¡ñÈç¹ûʹÓõ͵çƽ´¥·¢·½Ê½µÄÖжÏ×÷Ϊ»½ÐÑÔ´£¬½«MCU´Óµôµçģʽ£¨Power-down£©Öл½ÐÑʱ£¬µçƽÀµÍºóÈÔÐèҪά³ÖÒ»¶Îʱ¼ä²ÅÄܽ«MCU»½ÐÑ£¬ÕâÊÇ
ΪÁËÌá¸ßÁËMCUµÄ¿¹ÔëÐÔÄÜ¡£ÀµÍµÄ´¥·¢µçƽ½«ÓÉ¿´ÃŹ·µÄʱÖÓÐźŲÉÑùÁ½´Î£¨ÔÚͨ³£µÄ5VµçÔ´ºÍ25¡æʱ£¬¿´ÃŹ·µÄʱÖÓÖÜÆÚΪ1?s£©¡£Èç¹ûµçƽÀµÍ±£³Ö
2´Î²ÉÑùÖÜÆÚµÄʱ¼ä£¬»òÕßÒ»Ö±±£³Öµ½MCUÆô¶¯ÑÓʱ£¨start-up
time£©¹ý³ÌÖ®ºó£¬MCU½«±»»½ÐѲ¢½øÈëÖжϷþÎñ¡£Èç¹û¸ÃµçƽµÄ±£³Öʱ¼äÄܹ»Âú×ã¿´ÃŹ·Ê±ÖÓµÄÁ½´Î²ÉÑù£¬µ«ÔÚÆô¶¯ÑÓʱ£¨start-up
time£©¹ý³ÌÍê³É֮ǰ¾ÍÏûʧÁË£¬ÄÇôMCUÈÔ½«±»»½ÐÑ£¬µ«²»»á´¥·¢ÖжϽøÈëÖжϷþÎñ³ÌÐò¡£ËùÒÔ£¬ÎªÁ˱£Ö¤¼ÈÄܽ«MCU»½ÐÑ£¬ÓÖÄÜ´¥·¢Öжϣ¬Öжϴ¥·¢µçƽ
±ØÐëά³Ö×ã¹»³¤µÄʱ¼ä¡£
¡ñÈç¹ûÉèÖÃÁËÔÊÐíÏìÓ¦ÍⲿÖжϵÄÇëÇó£¬ÄÇô¼´±ãÊÇÒý½ÅPD2¡¢PD3¡¢PB2ÉèÖÃΪÊä³ö·½Ê½¹¤×÷£¬Òý½ÅÉϵĵçƽ±ä»¯Ò²»á²úÉúÍⲿÖжϴ¥·¢ÇëÇó¡£ÕâÒ»ÌØÐÔΪ¿Í‘ôÌṩÁËʹÓÃÈí¼þ²úÉúÖжϵÄ;¾¶¡£
£¨3£©ÓëÍⲿÖжÏÏà¹ØµÄ¼Ä´æÆ÷ºÍ±ê־λ
ÔÚATmega16ÖУ¬³ýÁ˼ĴæÆ÷SREGÖеÄÈ«¾ÖÖжÏÔÊÐí±ê־λIÍ⣬ÓëÍⲿÖжÏÓйصļĴæÆ÷ÓÐ4¸ö£¬¹²ÓÐ11¸ö±ê־λ¡£·Ö±ðÊÇ£ºMCU¿ØÖƼĴæÆ÷¡ªMCUCR¡¢MCU¿ØÖƺÍ״̬¼Ä´æÆ÷¡ªMCUCSR¡¢Í¨ÓÃÖжϿØÖƼĴæÆ÷¡ªGICR¡¢Í¨ÓÃÖжϱêÖ¾¼Ä´æÆ÷¡ªGIFR¡£Æä×÷Ó÷ֱðÊÇ3¸öÍⲿÖжϸ÷×ÔµÄÖжϱê־λ¡¢ÖжÏÔÊÐí¿ØÖÆλºÍÓÃÓÚ¶¨ÒåÍⲿÖжϵĴ¥·¢ÀàÐÍ¡£
¾ßÌå¼Ä´æÆ÷¸÷¸ö±ê־λµÄÒâÒåºÍÈçºÎÉèÖã¬Çë²éÔÄÏà¹ØATmega16µÄÊý¾ÝÊֲᣬÔڴ˲»×ö¹ý¶àÃèÊö¡£
ÐèҪעÒâµÄÊÇ£ºÔÚϵͳ³ÌÐòµÄ³õʼ»¯²¿·ÖÖжÔÍⲿÖжϽøÐÐÉèÖÃʱ£¨¶¨Òå»ò¸Ä±ä´¥·¢·½Ê½£©£¬Ó¦ÏȽ«GICR¼Ä´æÆ÷ÖиÃÖжϵÄÖжÏÔÊÐíλÇåÁ㣬½ûÖ¹MCUÏìÓ¦¸ÃÖжϺóÔÙÉèÖÃISCnλ¡£
¶øÔÚ¿ª·ÅÖжÏÔÊÐíÇ°£¬Ò»°ãӦͨ¹ýÏòGIFR¼Ä´æÆ÷ÖеÄÖжϱê־λINTFnдÈëÂß¼¡°1¡±£¬½«¸ÃÖжϵÄÖжϱê־λÇå³ý£¬È»ºó¿ª·ÅÖжϡ£ÕâÑù¿ÉÒÔ·ÀÖ¹ÔڸıäISCnµÄ¹ý³ÌÖÐÎó´¥·¢Öжϡ£
3¡¢°´¼üµç·
°´¼üµç·ÓëÉÏһʵÀýÏàͬ£¬ÔÚ´ËÂÔÈ¥¡£
4¡¢ÍⲿÖжϳÌÐòµÄ±àд
·¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢ÒѾ֪µÀ£¬ÒªÊµÏÖÖжϳÌÐò£¬Ê×ÏÈÒªÔÚÖ÷³ÌÐòÀïÃæ¶ÔÏà¹ØÖжϼĴæÆ÷½øÐÐÖжϲúÉúÌõ¼þµÄÉèÖá£È»ºó¾ÍÊDZàдÖжϷþÎñ³ÌÐò¡£
±¾ÀýÖÐÖжϼĴæÆ÷µÄÉèÖÃÈçÏ£º
MCUCR |= (1 << ISC11) | (1 << ISC01) | (1 << ISC00);
//INT0ÉèÖÃΪÉÏÉýÑØÖжϣ¬INT1ΪϽµÑØÖжÏÇëÇó
GICR |= (1 << INT0) | (1 << INT1); //ÔÊÐíINT0¡¢INT1ÖжÏ
GIFR |= (1 << INTF1) | (1 << INTF0); //Çå³ýINT0¡¢INT1Öжϱê־λ
sei(); //ʹÄÜÈ«¾ÖÖжÏ
ÖжϷþÎñ³ÌÐòµÄ±àд¾ßÓÐÒ»¶¨µÄ¸ñʽ£¬ÔÚ²»Í¬±àÒë»·¾³Ï¸÷²»Ïàͬ£¬ÔÚWINAVR(GCC)»·¾³ÏÂÓÐÁ½ÖÖ·½Ê½£¬·Ö±ðÊÇ£º
¡ñ SIGNAL(ÖжÏÏòÁ¿Ãû)
{
¡ //ÖжϷþÎñ³ÌÐòÄÚÈÝ
}
¡ñ ISR(ÖжÏÏòÁ¿Ãû )
{
¡ //ÖжϷþÎñ³ÌÐòÄÚÈÝ
}
ÔÚÕâÁ½ÖÖ·½Ê½ÖУ¬ÐèÒª·Ö±ðÌí¼ÓÍ·Îļþ£º#include <avr/signal.h>ºÍ#include <avr/interrupt.h>¡£
ºêINTERRUPT µÄÓ÷¨ÓëSIGNAL ÀàËÆ£¬Çø±ðÔÚÓÚSIGNAL Ö´ÐÐʱȫ¾ÖÖжϴ¥·¢Î»±»Çå³ý¡¢ÆäËûÖжϱ»½ûÖ¹£»INTERRUPT Ö´ÐÐʱȫ¾ÖÖжϴ¥·¢Î»±»ÖÃλ¡¢ÆäËûÖжϿÉǶÌ×Ö´ÐС£
ÁíÍâavr-libc ÌṩÁ½¸öAPI º¯ÊýÓÃÓÚÖÃλºÍÇåÁãÈ«¾ÖÖжϴ¥·¢Î»£¬ËüÃÇÊǾ³£Óõ½µÄ£¬
·Ö±ðÊÇ£ºvoid sei(void) ºÍvoid cli(void) ÓÉinterrupt.h¶¨Òå
ÔÚ±¾ÊµÀýÖУ¬·¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢²ÉÓðüº¬Í·Îļþ#include <avr/interrupt.h>£¬µÄ·½Ê½£¬Ê¹ÓÃISR(ÖжÏÏòÁ¿Ãû ){¡}À´±àдÖжϺ¯Êý¡£
2.2.3 µç·
±¾ÊµÀýµÄ°´¼üµç·Èçͼ2.2.1Ëùʾ£¬ÊýÂë¹Ü½Ó¿Úµç·ÓëʵÀý1.3Öеĵç·Ïàͬ£¬Ôڴ˲»ÔÙ¸ø³ö¡£
ͼ2.2.1 °´¼üµç·
1¡¢µç·ÔÀí
±¾ÊµÀýÓÃK1¡¢K2Á½¸ö°´¼ü·Ö±ðÁ¬½Óµ½µ¥Æ¬»úµÄPD2¡¢PD3¶Ë¿Ú£¬PD2¡¢PD3ͬʱҲÊǵ¥Æ¬»úµÄÍⲿÖжÏINT0¡¢INT1µÄÁ½¸öÒý½Å¡£µ±°´¼ü°´ÏÂʱ£¬ÍⲿÖжÏINT0¡¢INT1µÄÁ½¸öÒý½ÅµÄµçƽ·¢Éú±ä»¯£¬´Ó¶ø²úÉúÍⲿÖжϡ£
2¡¢ÔªÆ÷¼þÑ¡Ôñ
ÔÚÕâÀïÁгöºÍ±¾ÀýÏà¹ØµÄ¡¢¹Ø¼ü²¿·ÖµÄÆ÷¼þÃû³Æ¼°ÆäÔÚµç·ÖеÄ×÷Óá£
¡ñ ATmega16£ºµ¥Æ¬»ú£¬¼ì²â°´¼ü°´ÏÂÇé¿ö²¢¿ØÖÆÊýÂë¹ÜÏÔʾÊý×Ö¡£
¡ñÊýÂë¹Ü£ºÏÔʾ°´¼ü״̬¡£
¡ñ R10£º×èֵΪ10KµÄµç×裬ÏÂÀÏÞÁ÷µç×è¡£
¡ñ K1¡¢K2£º°´¼ü£¬µ±°´¼ü°´ÏÂʱ£¬Óë°´¼üÁ¬½ÓµÄµ¥Æ¬»ú¶Ë¿ÚµÄµçƽ·¢Éú±ä»¯£¬²úÉúÍⲿÖжϡ£
3¡¢¹Ü½ÅÁ¬½Ó
ÔÚÕâÀïÁгöºÍ±¾ÀýÏà¹ØµÄ¡¢¹Ø¼ü²¿·ÖµÄµ¥Æ¬»ú¶Ë¿ÚÓëÍâΧµç·µÄÁ¬½Ó¡£
¡ñ PB0-PB7£ºÁ¬½ÓÊýÂë¹ÜµÄ8¸ö¶Î£¬¿ØÖÆÊýÂë¹ÜµÄÏÔʾ¡£
¡ñ PD2¡¢PD3£ºÁ¬½Ó°´¼üK1¡¢K2£¬¼ì²âÁ½¸ö°´¼üµÄ״̬¡£
¡ñPC6£ºÊýÂë¹Üѡͨ¶Ë¿Ú£¬¸Ã¶Ë¿Úͨ¹ýÈý¼«¹Ü9013¿ØÖÆÊýÂë¹ÜµÄѡͨ£¬µ±PC6Êä³ö¸ßµçƽʱ£¬ÊýÂë¹Üѡͨ¡£
2.1.4 ³ÌÐòÉè¼Æ
1¡¢³ÌÐò¹¦ÄÜ
³ÌÐòµÄ¹¦ÄÜÊÇ¿ØÖÆÒ»¸ö8¶ÎÊýÂë¹ÜÏÔʾ¡°0¡±£¡°F¡±16¸öÊ®Áù½øÖƵÄÊý×Ö¡£µ±ÏµÍ³Éϵçʱ£¬ÏÔʾ¡°0¡±¡£K1¼üµÄ×÷ÓÃÊǼӡ°1¡±¿ØÖƼü£º°´1´ÎK1¼ü£¬ÏÔʾ
Êý×Ö¼Ó1£¬ÒÀ´ÎÀàÍÆ¡£µ±µÚ15´Î°´K1¼üʱ£¬ÏÔʾ¡°F¡±£¬µÚ16´Î°´K1¼ü£¬ÏÔʾÓÖ´Ó¡°0¡±¿ªÊ¼¡£K2¼üµÄ×÷ÓÃÊǼõ1¿ØÖƼü£º°´1´ÎK1¼ü£¬ÏÔʾÊý×Ö¼õ
1£¬¼õµ½¡°0¡±ºó£¬ÔÙ´Ó¡°F¡±¿ªÊ¼¡£
¡ñ °´¼ü¿ª¹ØµÄÈí¼þÈ¥¶¶ºÍÊÍ·Å
ÉÏÒ»¸öʵÀýÒѾ½²¹ýÕâÖÖ·½·¨£¬±¾Àý²»ÔÙÖظ´¡£
¡ñ µ¥Æ¬»úÍⲿÖжϵıà³Ì
ÔÚ±¾ÀýÖУ¬ÐèҪʹÓõ¥Æ¬»úµÄINT0¡¢INT1£¬ËùÒÔÔÚ³ÌÐòÖÐÐèÒª¶ÔÏàÓ¦µÄ¼Ä´æÆ÷½øÐÐÉèÖ㬲¢ÇÒ±àдÖжϷþÎñ³ÌÐò¡£
¡ñ ¿ØÖÆ1λÊýÂë¹ÜµÄÏÔʾ
ÔÚINT0ÖжϷþÎñ³ÌÐòÖУ¬µ±°´¼üK1°´ÏÂÒ»´Î£¬ÊýÂë¹ÜÏÔʾµÄÊý×Ö¼Ó1£»ÔÚINT1µÄÖжϷþÎñ³ÌÐòÖУ¬µ±°´¼üK2°´ÏÂÒ»´Î£¬ÊýÂë¹ÜÏÔʾµÄÊý×Ö¼õ1¡£
2¡¢Ê×Òª±äÁ¿ºÍº¯Êý˵Ã÷
±¾ÀýÖÐÐèÒª±àдÖжϺ¯Êý£¬º¯ÊýµÄ¹¦ÄÜÊÇ£ºµ±ÓÐÍⲿÖжϷ¢Éúʱ£¬³ÌÐòÌøתµ½ÖжϺ¯ÊýÖ´ÐÐÊýÂë¹ÜÏÔʾµÄ³ÌÐò£¬´¦ÀíÍêºóÌø»ØÖ÷³ÌÐò¼ÌÐøÖ´ÐС£
³ÌÐòÖÐÓõ½±äÁ¿CounterºÍ Disp_Buff[16] ¡£±äÁ¿CounterÓÃÓÚָʾ°´¼ü°´ÏµĴÎÊý£¬Êý×é Disp_Buff[16]´æ·ÅÊýÂë¹ÜÏÔʾµÄ×ÖÐαàÂë¡£
3¡¢Ê¹ÓÃWINAVR¿ª·¢»·¾³£¬makefileÎļþͬǰÃæµÄÀý×Ó£¬Ö±½Ó¸´ÖƵ½±¾ÊµÀý³ÌÐòµÄÎļþ¼ÐÖм´¿É¡£
4¡¢³ÌÐò´úÂë
[code="c"]
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h> //ÖжϺ¯ÊýÍ·Îļþ
unsigned char Disp_Buff[16] = {0xaf,0xa0,0xc7,0xe6,0xe8,0x6e,0x6f,0xa2,
0xef,0xee,0xeb,0x6d,0x0f,0xe5,0x4f,0x4b};
//ÊýÂë¹Ü×ÖÐÍÂë±íÏÔʾ:0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
volatile unsigned char Counter; //°´¼ü°´Ï´ÎÊý±äÁ¿£¬Èç¹ûÔÚÖжÏÖе÷ÓÃÈ«¾Ö±äÁ¿£¬±ØÐë¼Ó
//volatileÀ´¶¨Ò壬·ñÔò±äÁ¿²»»á±ä»¯
int main(void)
{
PORTB = 0X00; //
DDRB = 0Xff; //
PORTC &= ~(1 << PC6); //ÅäÖÃÊýÂë¹Ü0µÄλѡͨ¿ÚΪµÍµçƽ£¬²»µ¼Í¨ÊýÂë¹Ü
DDRC |= (1 << PC6); ///ÅäÖÃÊýÂë¹Ü0µÄλѡͨ¿ÚΪÊä³ö£¬Ñ¡Í¨ÊýÂë¹Ü0
PORTD = 0X08; //Ò»¶¨ÒªÊ¹ÄÜK2µÄÉÏÀµç×裬·ñÔò»áÓиÉÈÅ
DDRD = 0XF3; //K1¡¢K2°´¼ü(PD2¡¢PD3)ÉèÖÃΪÊäÈë¶Ë¿Ú
MCUCR |= (1 << ISC11) | (1 << ISC01) | (1 << ISC00);
//INT0ÉèÖÃΪÉÏÉýÑØÖжϣ¬INT1ΪϽµÑØÖжÏÇëÇó
GICR |= (1 << INT0) | (1 << INT1); //ÔÊÐíINT0¡¢INT1ÖжÏ
GIFR |= (1 << INTF1) | (1 << INTF0); //Çå³ýINT0¡¢INT1Öжϱê־λ
Counter = 0; //°´¼ü°´Ï´ÎÊý±äÁ¿ÇåÁã
PORTC |= (1 << PC6); //ѡͨÊýÂë¹Ü0
sei(); //ʹÄÜÈ«¾ÖÖжÏ
while(1)
{
PORTB = Disp_Buff[Counter]; //ÊýÂë¹ÜÏÔʾ°´¼ü°´Ï´ÎÊý
}
}
//ÍⲿÖжÏ0º¯Êý£¬µ±°´¼üK1°´Ïº󣬽øÈë´ËÖжÏ
ISR(INT0_vect )
{
_delay_ms(20); //°´¼ü°´Ï£¬ÑÓʱһ»áÔÙÅжÏÊÇ·ñ°´Ï£¬ ÒÔÏû³ý¸ÉÈÅ
if((PIND & (1 << PD2))) // °´¼üÕæÕý°´Ïº󣬽øÐÐÏàÓ¦´¦Àí
{
if(++Counter >= 16) Counter = 0; //´ÎÊý´óÓÚ15£¬ÇåÁã
while((PIND & (1 << PD2)));//µÈ´ý°´¼üÊÍ·Å
}
}
//ÍⲿÖжÏ1º¯Êý£¬µ±°´¼üK2°´Ïº󣬽øÈë´ËÖжÏ
ISR(INT1_vect)
{
_delay_ms(20); //Åжϰ´¼ü°´Ï£¬ÑÓʱһ»áÔÙÅжÏÊÇ·ñ°´Ï£¬ ÒÔÏû³ý¸ÉÈÅ
if(!(PIND & (1 << PD3))) // °´¼üÕæÕý°´Ïº󣬽øÐÐÏàÓ¦´¦Àí
{
if(Counter) --Counter; // ´ÎÊý¼õ1
else Counter = 15; // ´ÎÊýΪÁãÔò¸Ä³É15
while(!(PIND & (1 << PD3))); //
}
}
ÔÚÓïÑÔCÓïÑÔ±àдµ¥Æ¬»ú³ÌÐò¹ý³Ì£¬Èç¹ûҪʹÓÃÍⲿÖжϷþÎñ³ÌÐòʱ£¬Òª¾¡Á¿¼õÉÙÖжϷþÎñ³ÌÐòµÄÄÚÈݺͳ¤¶È¡£ÒòΪÔÚÖ÷³ÌÐòÖпÉÄÜ»¹ÒªÏàÓ¦±ðµÄÖжϣ¬Èç¹ûÒ»¸öÖжϷþÎñ³ÌÐò¹ý³¤£¬ºÜ¿ÉÄÜ»áÓ°Ïìµ½Ö÷³ÌÐò¶ÔÆäËûÖжϵÄÏìÓ¦¡£
³£ÓõĴ¦Àí·½·¨ÊÇ£ºÔÚÖжϷþÎñ³ÌÐòÖÐÖ»¸Ä±ä±äÁ¿µÄÖµ£¬»òÕßÉèÖø÷ÖÖ±êÖ¾£¬ÔÚÖ÷³ÌÐòÀïÃæ¶Ô±äÁ¿»ò±êÖ¾½øÐÐÅжϺʹ¦Àí¡£±¾ÊµÀýΪÁËÑÝʾµÄ·½±ã£¬ÔÚÖжϳÌÐòÖнø
ÐÐÁËËùÓеIJÙ×÷¡£Ó¦¸Ã˵Ã÷µÄÊÇ£¬ÕâÖÖ·½·¨ÊǼ«²»¿ÉÈ¡µÄ¡£¸üΪºÏÀíµÄ·½·¨ÊÇ£ºÔÚÖжϷþÎñ³ÌÐòÀïÃæÖ»¸Ä±äCounterµÄÖµ¡£ÆäÓಿ·Ö¶¼·Åµ½Ö÷³ÌÐòÀïÃæ½øÐд¦
Àí¡£
ÁíÍâÐèÒªÌرðÇ¿µ÷µÄÒ»µãÊÇ£¬ÔÚÓÃWINAVR±àдÖжϷþÎñ³ÌÐòʱ£¬Èç¹ûÖжϷþÎñ³ÌÐòÖÐÓõ½ÁËÈ«¾Ö±äÁ¿£¬ÔòÔÚ¶¨ÒåÈ«¾Ö±äÁ¿Ê±£¬±ØÐëÔÚ±äÁ¿µÄÊý¾ÝÀàÐÍÇ°¼Ó
volatileÀ´¶¨Ò壬·ñÔò¸Ã±äÁ¿ÔÚÖжϷþÎñ³ÌÐòÖв»»á±ä»¯¡£ÕâÊÇÒòΪÔÚÓÃCÓïÑÔ±àдµ¥Æ¬»ú³ÌÐòʱ£¬¶¼»áÓõ½±àÒëÆ÷µÄ¡°¸ÄÉÆ¡±´úÂ빦ÄÜ£¬ÒÔʹ³ÌÐò¸ü¼Ó¼ò
½à¡¢½ô´Õ¡£µ«ÊDZϾ¹±àÒëÆ÷µÄ¸ÄÉÆÊǺÜËÀ°åµÄ£¬Ëû»á°ÑһЩ¶Ô±äÁ¿µÄ¶Á²Ù×÷¸ÄÉƵô¡£ÕâÑù¾Íµ¼ÖÂÔÚÈ«¾ÖÖжÏÖÐʹÓõıäÁ¿±»¸ÄÉƳÉÒ»¸ö¾²Ö¹±äÁ¿£¬¼´¸Ã±äÁ¿µÄÖµ²»ÔÙ
¸Ä±ä¡£ËùÒÔ·¢¹ú¼ÊÌìÉúÓ®¼ÒÒ»´¥¼´·¢Òª°ÑÕâЩ±äÁ¿¶¨ÒåΪvolatile£¬Òâ˼ÊÇÌáʾ±àÒëÆ÷£º¸Ã±äÁ¿ÊǺÜÈÝÒױ仯µÄ£¬²»×¼¶Ô¸Ã±äÁ¿µÄ¶ÁÈ¡½øÐиÄÉÆ¡£ÕâÑùÔÚÖжÏÖÐÿ´Î¶Ô±äÁ¿µÄ¶Á
д¾Í¶¼¿ÉÒÔÕýÈ·µÄÖ´ÐÐÁË¡£