Ë«Ö±Á÷µç»úͬ²½¿ØÖÆϵͳ

·¢²¼Ê±¼ä : ÐÇÆÚ¶þ ÎÄÕÂË«Ö±Á÷µç»úͬ²½¿ØÖÆϵͳ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ

P3.4:T0Ö÷µç»úËÙ¶ÈÂö³åÊäÈë P3.2:INT0´Óµç»úËÙ¶ÈÂö³åÊäÈë

ÆäÖÐÔÚ8λPWMÂö¿íµ÷ÖÆģʽϵÄÊä³ö²¨ÐÎƵÂÊΪPCAʱÖÓƵÂʵÄ256·ÖƵ£¬8λPWMÕ¼¿Õ±È¹«Ê½Îª£º

256?PCACPHn0 £¨8£©

256´Ëʱ£¬Ö»Òª½«PCA0¿ªÆô£¬ÎªPCAÅäÖÃÒ»¸öʱÖÓÔ´£¬½«ÏàӦģ¿éÉèÔÚ8Ϊ

DutyCycle?PWMģʽÏ£¬²¢½«PWMÊä³ö¿ªÆô£¬ÔÙ½«¸ÃÄ£¿éÅäÖõ½Ò»¸öI/O¿ÚÉÏ£¬Ôò²»ÔÙÐèÒª´¦ÀíÆ÷µÄ¸ÉÔ¤£¬PCA»á×Ô¶¯µØÏòÍâ¶Ë¿ÚÊä³öPWM²¨£¬Ö»Óе±ÐèÒª¸Ä±äÕ¼¿Õ±ÈµÄʱºò£¬ÐÞ¸ÄһϸÃÄ£¿éµÄ²¶×½±È½Ï¼Ä´æÆ÷µÄÖµ¼´¿É¡£

20

Áù¡¢Éè¼ÆÐĵÃ

¾­¹ý½«½üÁ½Öܵĵ¥Æ¬»ú¿Î³ÌÉè¼Æ£¬ÖÕÓÚÍê³ÉÁËÁ½Ì¨Ö±Á÷µç»úËÙ¶Èͬ²½¿ØÖƵÄÉè¼Æ£¬»ù±¾´ïµ½Éè¼ÆÒªÇ󣬴ÓÐĵ×ÀïÀ´Ëµ£¬»¹ÊǺܸßÐ˵ģ¬±Ï¾¹Õâ´ÎÉè¼Æ°ÑʵÎﶼ×öÁ˳öÀ´¡£µ«¸ßÐËÖ®Ó಻µÃ²»Éî˼ѽ£¡

ÔÚ±¾´ÎÉè¼ÆµÄ¹ý³ÌÖУ¬ÎÒ·¢ÏֺܶàµÄÎÊÌ⣬ËäÈ»ÒÔÇ°»¹×ö¹ýÕâÑùµÄÉè¼Æµ«Õâ´ÎÉè¼ÆÕæµÄÈÃÎÒ³¤½øÁ˺ܶࡣ¶ÔÓÚµ¥Æ¬»úÉè¼Æ£¬ÆäÓ²¼þµç·ÊDZȽϼòµ¥µÄ£¬Ö÷ÒªÊǽâ¾ö³ÌÐòÉè¼ÆµÄÎÊÌ⣬¶ø³ÌÐòÉè¼ÆÊÇÒ»¸öºÜÁé»îµÄ¶«Î÷£¬Ëü·´Ó³ÁËÄã½â¾öÎÊÌâµÄÂß¼­Ë¼Î¬ºÍ´´ÐÂÄÜÁ¦£¬Ëü²ÅÊÇÒ»¸öÉè¼ÆµÄÁé»êËùÔÚ¡£Òò´ËÔÚÕû¸öÉè¼Æ¹ý³ÌÖд󲿷Öʱ¼äÊÇÓÃÔÚ³ÌÐòÉÏÃæµÄ¡£ºÜ¶à×Ó³ÌÐòÊÇ¿ÉÒÔ½è¼øÊé±¾Éϵģ¬µ«ÔõÑùÏνӸ÷¸ö×Ó³ÌÐò²ÅÊǹؼüµÄÎÊÌâËùÔÚ£¬ÕâÐèÒª¶Ôµ¥Æ¬»úµÄ½á¹¹ºÜÊìϤ¡£Òò´Ë¿ÉÒÔ˵µ¥Æ¬»úµÄÉè¼ÆÊÇÈí¼þºÍÓ²¼þµÄ½áºÏ£¬¶þÕßÊÇÃܲ»¿É·ÖµÄ¡£

ÒªÉè¼ÆÒ»¸ö³É¹¦µÄµç·£¬±ØÐëÒªÓÐÄÍÐÄ£¬ÒªÓмá³ÖµÄÒãÁ¦¡£ÔÚÕû¸öµç·µÄÉè¼Æ¹ý³ÌÖУ¬»¨·Ñʱ¼ä×î¶àµÄÊǸ÷¸öµ¥Ôªµç·µÄÁ¬½Ó¼°µç·µÄϸ½ÚÉè¼ÆÉÏ£¬ÈçÔÚ¶àÖÖ·½°¸µÄÑ¡ÔñÖУ¬ÎÒÃÇ×Ðϸ±È½Ï·ÖÎöÆäÔ­ÀíÒÔ¼°¿ÉÐеÄÔ­Òò¡£Õâ¾ÍÒªÇóÎÒÃǶÔÓ²¼þϵͳÖи÷×é¼þ²¿·ÖÓгä·Ö͸³¹µÄÀí½âºÍÑо¿£¬²¢ÄܶÔÖ®Áé»îÓ¦Óá£Íê³ÉÕâ´ÎÉè¼Æºó£¬ÎÒÔÚÊé±¾ÀíÂÛ֪ʶµÄ»ù´¡ÉÏÓÖÓÐÁ˸üÉî²ã´ÎµÄÀí½â¡£

ͬʱÔÚ±¾´ÎÉè¼ÆµÄ¹ý³ÌÖУ¬ÎÒ»¹Ñ§»áÁ˸ßЧÂʵIJéÔÄ×ÊÁÏ¡¢ÔËÓù¤¾ßÊé¡¢ÀûÓÃÍøÂç²éÕÒ×ÊÁÏ¡£ÎÒ·¢ÏÖ£¬ÔÚÎÒÃÇËùʹÓõÄÊé¼®ÉÏÓÐһЩ֪ʶÔÚʵ¼ÊÓ¦ÓÃÖÐÆäʵ²¢²»ÊÇÊ®·ÖÀíÏ룬¸÷ÖÖ²ÎÊý¶¼ÐèÒª×Ô¼ºÈ¥µ÷Õû¡£Å¼¶ø»¹»áÓöµ½´íÎóµÄ×ÊÁÏÏÖÏó£¬Õâ¾ÍÒªÇóÎÒÃÇÓ¦¸ü¼Ó×¢ÖØʵ¼ù»·½Ú¡£

×îºó»¹ÒªÔڴ˸Ðл¸÷λ±ÏÒµÉè¼ÆµÄÖ¸µ¼ÀÏʦÃǺÍÎÒµÄ×éÔ±ÃÇ£¬ËûÃÇÔÚÕû¸ö¹ý³ÌÖж¼¸øÓèÁËÎÒ³ä·ÖµÄ°ïÖúÓëÖ§³Ö¡£

21

Æß¡¢²Î¿¼ÎÄÏ×

[1]³ÂÓÂ.µçÁ¦Í϶¯Óë¿ØÖÆ.±±¾©£ºÈËÃñÓʵç³ö°æÉ磬2011

[2] ÷ÏþéÅ.×Ô¶¯¿ØÖÆÔª¼þ¼°Ïß·.¹þ¶û±õ£º¹þ¶û±õ¹¤Òµ´óѧ³ö°æÉ磬 2001 [3] ºúÊÙËÉ.×Ô¶¯¿ØÖÆÔ­Àí.±±¾©£º¿Æѧ³ö°æÉ磬2007

[4]Íõƽ.¼ÆËã»ú¿ØÖƼ¼Êõ¼°Ó¦ÓÃ.±±¾©£º»úе¹¤Òµ³ö°æÉ磬2010 [5]ÏòÃô.΢¿ØÖÆÆ÷Ô­Àí¼°Ó¦ÓÃ.±±¾©£ºÈËÃñÓʵç³ö°æÉ磬2012

22

°Ë¡¢¸½Â¼

#include \ void system_check(void) {

P2M0 &= (~(1<<7)); /*½«ÏàӦλÇå0*/ P2M1 &= (~(1<<7)); P2M0 |= 1<<7; /*ÉèÖÃÏàÓ¦IO¿ÚÍÆÍìÊä³ö*/ }

void timer_init( u8 fosc, u8 div, u8 number, u16 time, u8 pre) //¹¤×÷·½Ê½1 {

u16 fosc_fre = 0;

fosc_time = (u32)fosc * 1000000 /(u32)div; fosc_time /= (u32)pre;

fosc_fre = (u16)(fosc_time /1000 * (u32)time /1000); /*fosc_time <65536*/

if( TIM0 == number ) {

time0 = ( 65536 - fosc_fre ); TMOD |= 0x01; /* the timer0 mode 1 */

TL0 = time0; TH0 = time0>>8;

ET0 = 1; if( 1 == pre ) AUXR |= 0x80; /* the timer0 clk = fclk */ else AUXR &= 0x7f; /* the timer0 clk = fclk/12*/ }

EA =1; }

void counter_init( u8 number ) {

if( TIM1 == number ) { TMOD |= 0x50; /* the counter1 mode 1 */ ET1 =1; }

}

23

ÁªÏµºÏͬ·¶ÎÄ¿Í·þ£ºxxxxx#qq.com(#Ì滻Ϊ@)