ÀË·Ñ£¬ÊÂʵҲÊÇÈç´Ë£¬¾ø´ó¶àÊý¼òµ¥ÈÎÎñ£¬CPU¶¼ÊÇÔÚ¡°¿Õת¡± £¨Ñ»·Ì¤²½ÑÓʱ£© ¡£¶ÔÈÎÎñ×Ü ½á»¹¿ÉÒÔÖªµÀ£¬ºÜ¶àÈÎÎñÐèÒª CPU ²»¶Ï¡°¹ØÕÕ¡± £¬ÆäʵÕâÖÖ¡°²»¶Ï¡±Ò²ÊÇÓм«Ï޵쬱ÈÈçÊý Âë¹Ü¶¯Ì¬É¨Ã裬Äܹ»×öµ½40Hz ¾Í¿ÉÒÔÁË£¬ÓÖÈç¼üÅÌɨÃ裬Äܹ»×öµ½20Hz£¨¾ÑéÖµ£©£¬»ù±¾ÉÏ Ò²¾Í²»»á¶ªÓÐЧ°´¼ü¼üÖµÁË£¬ÔÙÈçLCDˢУ¬ÎÒ¾õµÃ×öµ½ 10Hz ¾Í¿ÉÒÔÁË£¬µÈµÈ¡£¿´À´£¬¾ø ´ó¶àÊýÈÎÎñ¶¼Êǹ¤×÷ÔÚµÍËÙÆµ¶È¡£¶øÎÒÃǵÄCPUÒ»µ©ÔËÐÐÆðÀ´£¬ËÙ¶ÈÓֺܿ죬CPU±¾Éí¾ÍÊÇ ¿¿ºÜ¿ìµÄËÙ¶ÈÖ´Ðкܼòµ¥µÄÖ¸ÁîÀ´Ê¤Èθ´ÔÓµÄÈÎÎñ£¨Âß¼£©µÄ¡£Èç¹ûÓа취°Ñ¡°¿ì¡±µÄ CPU ·Ö³É¶à¸öÂýµÄCPU£¬È»ºó¸ø²»Í¬µÄÈÎÎñ·ÖÅ䲻ͬËٶȵÄCPU£¬ÕâÖÖÉèÏëÊDz»ÊǺܺÃÄØ£¡È·Êµ ºÜºÃ£¬ÏÂÃæ¾Í¿´ÈçºÎ½«¡°¿ì¡±µÄCPU»®·Ö³É¶à¸ö¡°Âý¡±µÄ CPU¡£
¸ù¾ÝÕâÖÖÏë·¨£¬ÎÒÃÇÐèÒªºÏÀí·ÖÅäCPU×ÊÔ´À´¡°¹ØÕÕ¡±²»Í¬µÄÈÎÎñ£¬×îºÃÄܹ»¸ù¾ÝÈÎÎñ ±¾ÉíºÏÀíÕ¼ÓÃCPU×ÊÔ´£¬Ê×ÏÈ¿´Èçͼ 3 ËùʾµÄÁ÷³Ìͼ£¬¸÷¸öÈÎÎñÁ÷³Ì¶ÀÁ¢£¬¸÷ÈÎÎñͨ¹ýÈ«¾Ö ±äÁ¿À´½»»¥ÐÅÏ¢£¬ÔÚÁ÷³ÌÖÐÓÐÒ»¸öÖØÒªµÄÄ£¿é¡°ÈÎÎñÇл»¡±£¬¾ÍÊÇÈÎÎñÇл»Ä£¿éʵÏÖ CPU ºÏ Àí·ÖÅ䣬Õâ¸öÈÎÎñÇл»Ä£¿éÊÇÔõôʵÏÖµÄÄØ£¿
(ÔÎļþÃû:2.JPG)
ͼ3 ¶àÈÎÎñ¸´ÔÓÁ÷³Ìͼ
Ê×ÏÈÐèÒªÀí½â£¬CPU Ò»µ©ÔËÐÐÆðÀ´£¬¾ÍÎÞ·¨Í£Ö¹£¨Ó²¼þÖ§³ÖʱÖÓÍ£Ö¹µÄ²»ÔÚÕâÀïÌÖÂÛ£©£¬ ËÄܹ»¿ØÖÆÒ»ÅúÍÑçÖµÄÂíÄØ£¿¶ÔÁË£¬ÓÐÖжϣ¬ÖжÏÄܹ»ÈÃCPU»Øµ½Ìض¨µÄλÖã¬ÉèÏ룬Äܲ» ÄÜÓÃÒ»¸ö¶¨Ê±Öжϣ¬ÖÜÆÚÐԵĽ« CPUÕâÆ¥ÔËÐÐ×ŵÄÍÑçÖµÄÂíÕÙ»½»ØÀ´£¬ÖØÐ¸øËü°²ÅÅÌØ¶¨µÄ ÈÎÎñ£¬ÊÂʵÉÏ£¬ÈÎÎñÇл»¾ÍÊÇÕâÑùʵÏֵġ£
(ÔÎļþÃû:3.JPG)
ͼ 4 ¶¨Ê±ÖжÏʵÏÖÈÎÎñÇл»
Èçͼ 4A Ëùʾ£¬CPU ÔÚ¿ÕÏÐÈÎÎñÑ»·µÈ´ý£¬¶¨Ê±ÖжϽ« CPU ÖÜÆÚÐÔ»½»Ø£¬¸ù¾ÝÈÎÎñÉè¼Æ Á˲»Í¬µÄÏìӦƵ¶È£¬Âú×ãÌõ¼þµÄÈÎÎñ½«»ñµÃCPU×ÊÔ´£¬CPUΪ²»Í¬ÈÎÎñ¡°¹ØÕÕ¡±Íê³Éºó£¬ÔÙ ´Î·µ»Ø¿ÕÏÐÈÎÎñ£¬Èç´ËÖܶø¸´Ê¼£¬¶ÔÓÚ¸÷¸öÈÎÎñ¶øÑÔ£¬ºÃÏñ¸÷×ÔÓµÓÐÒ»¸ö¶ÀÁ¢µÄCPU£¬¸÷×Ô ¶ÀÁ¢ÔËÐС£ÓÃÕâÖÖ˼Ïë¹¹½¨µÄ³ÌÐò¿ò¼Ü£¬×î´óµÄºÃ´¦ÊÇÈÎÎñºÜÈÝÒײüô£¬ÏµÍ³Äܹ»×öµÃºÜ¸´ ÔÓ¡£
ÔÚ³ä·Ö¿¼Âǵ¥Æ¬»úÖжÏÌØÐÔ£¨ÔÚÄÄÀïÖжϾͷµ»Øµ½ÄÄÀºó£¬Êµ¼Ê¿ÉÐеÄÈÎÎñÇл»Èçͼ 4BËùʾ£¬¶¨Ê±ÖжϿÉÄÜ·¢ÉúÔÚÈÎÎñµ÷¶È£¬Ëæ»úÈÎÎñÖ´ÐеÄÈκÎʱºò£¬Í¼ÖÐ×î´óµÄ¿ò¿òËùʾ£¬ ²»¹ÜÖжÏÔÚºÎʱ·¢Éú£¬Ëü¶¼»áÕý³£·µ»Ø£¬¶¨Ê±ÖжÏËù²úÉúµÄÓ°ÏìÖ»ÔÚÈÎÎñµ÷¶ÈÄ£¿éÆð×÷Ó㬠¼´ÒÀ´ÎÈò»Í¬µÄÈÎÎñ°´²»Í¬µÄ½ÚÅľÍÐ÷¡£ÈÎÎñµ÷¶È»á°´Ò»¶¨µÄÓÅÏȼ¶Ö´ÐоÍÐ÷ÈÎÎñ¡£ ×ܽ᲻ͬµÄÈÎÎñÐèÒªCPU¹ØÕյįµ¶È£¬Ñ¡Ôñ×î¿ìµÄÄǸöƵ¶ÈÀ´É趨¶¨Ê±Æ÷ÖжϵĽÚÅÄ£¬ Ò»°ãÑ¡Ôñ 200Hz£¬»òÕß 100Hz ¶¼¿ÉÒÔ¡£ÁíÍâÔÙ¸øÃ¿¸öÈÎÎñÉ趨һ¸ö½ÚÅÄ¿ØÖƼÆÊýÆ÷ C£¬Ò²¾Í ÊǶ¨Ê±Æ÷ÿÖж϶àÉٴκóÖ´ÐÐÈÎÎñÒ»´Î¡£ÀýÈçÈ¡¶¨Ê±ÖжϽÚÅÄΪ 200Hz£¬¸øÈÎÎñÉ趨µÄ C=10£¬ ÔòÈÎÎñÖ´ÐÐÆµ¶ÈΪ 200/10=20Hz£¬Èç¹ûÊÇÊýÂë¹ÜɨÃ裬°´ 40Hz ²»ÉÁ˸¹æÂÉ£¬ÔòÈÎÎñ½ÚÅÄ¿ØÖÆ ¼ÆÊýÆ÷ C=5 ¼´¿É¡£ÔÚ³ÌÐòÉè¼ÆÖУ¬C ´ú±í×ÅÈÎÎñÔËÐеĽÚÅÄ¿ØÖƲÎÊý£¬ÎÒÃÇϰ¹ßÓà delay À´ ÃèÊö£¬²»Í¬µÄÈÎÎñÓÃtask0£¬task1¡¡À´ÃèÊö¡£ Ã÷Ìì¼ÌÐøÐ´ÈçºÎÓôúÂëʵÏÖ£¡2009-6-29 ÏÂÃæÎÒÃÇÀ´ÓôúÂëʵÏÖÒÔÉ϶àÈÎÎñ³ÌÐòÉè¼ÆË¼Ïë¡£ Ê×ÏÈÊÇÈÎÎñÇл» while(1) {
if(task_delay[0]==0) task0(); //task0¾ÍÐ÷£¬ if(task_delay[1]==0) task1(); //task1¾ÍÐ÷£¬ ¡¡ }
ºÜÏÔÈ»£¬Ö´ÐÐÈÎÎñµÄÌõ¼þÊÇÈÎÎñÑÓʱÁ¿task_delay=0£¬ÄÇôÈÎÎñÑÓʱÁ¿ËÀ´¿ØÖÆÄØ£¿¶¨Ê± Æ÷°¡£¡¶¨Ê±Æ÷Öж϶ÔÈÎÎñÑÓʱÁ¿¼õÒ»Ö±µ½¹éÁ㣬±êÖ¾ÈÎÎñ¾ÍÐ÷¡£µ±Ã»ÓÐÈÎÎñ¾ÍÐ÷ʱ£¬ÈÎÎñÇÐ »»±¾Éí¾ÍÊÇÒ»¸öIdle ÈÎÎñ¡£ void timer0(void) interrupt 1 {
if(task_delay[0]) task_delay[0]--; if(task_delay[1]) task_delay[1]--; ¡¡ }
ÀýÈç timer0 µÄÖжϽÚÅÄΪ 200Hz£¬task0_delay ³õֵΪ 10£¬Ôò task0()Ö´ÐÐÆµ¶ÈΪ 200/10=20Hz¡£
ÓÐÁËÒÔÉÏ»ù´¡£¬ÎÒÃÇÀ´Éè¼ÆÒ»¸ö¼òµ¥¶àÈÎÎñ³ÌÐò£¬½øÒ»²½ÉîÈëÀí½âÕâÖÖ³ÌÐòÉè¼ÆË¼Ïë¡£ ÈÎÎñÒªÇó£ºÓõ¥Æ¬»ú²»Í¬ IO ½ÅÊä³ö 1Hz£¬5Hz£¬10Hz£¬20Hz ·½²¨Ðźţ¬Õâ¸ö³ÌÐòºÜ¶Ì£¬½« Ö±½Ó¸ø³ö¡£ #include \
#define TIME_PER_SEC 200 //¶¨ÒåÈÎÎñʱÖÓÆµÂÊ£¬200Hz #define CLOCK 22118400 //¶¨ÒåʱÖÓ¾§Õñ£¬µ¥Î»Hz #define MAX_TASK 4 //¶¨ÒåÈÎÎñÊýÁ¿
extern void task0(void); //ÈÎÎñÉùÃ÷ extern void task1(void); extern void task2(void); extern void task3(void);
sbit f1Hz = P1^0; //¶Ë¿Ú¶¨Òå
sbit f5Hz = P1^1; sbit f10Hz = P1^2; sbit f20Hz = P1^3;
unsigned char task_delay[4]; //ÈÎÎñÑÓʱ±äÁ¿¶¨Òå
//¶¨Ê±Æ÷0³õʼ»¯ void timer0_init(void) {
unsigned char i;
for(i=0;i