/*******************************************************************/ /* TX-1Cµ¥Æ¬»úʵÑé°åʵÑéÀý³Ì */ /* 2007Äê8ÔµڶþÆÚÅàѵ°à¿ÎºóϰÌâÏê½â */ /* ×÷Õߣº¹ùÌìÏé */ /* ÓÊÏ䣺txmcu@163.com */ /* ÍøÕ¾£ºwww.txmcu.com(ÌìÏéµç×Ó) */ /*¡¾°æÈ¨¡¿Copyright(C)ÌìÏéµç×Ó www.txmcu.com All Rights Reserved */ /*¡¾ÉùÃ÷¡¿´Ë³ÌÐò½öÓÃÓÚѧϰÓë²Î¿¼£¬ÒýÓÃÇë×¢Ã÷°æÈ¨ºÍ×÷ÕßÐÅÏ¢£¡ */ /* */ /*******************************************************************/ /* ͬʱÓÃÁ½¸ö¶¨Ê±Æ÷¿ØÖÆ·äÃùÆ÷·¢Éù£¬ ¶¨Ê±Æ÷0¿ØÖÆÆµÂÊ£¬¶¨Ê±Æ÷1¿ØÖÆÍ¬¸ö ƵÂʳÖÐøµÄʱ¼ä£¬¼ä¸ô2sÒÀ´ÎÊä³ö 1£¬10£¬50,100£¬200,400,800, 1k£¨hz£©µÄ·½²¨£ Éè¾§ÕñƵÂÊΪ12MHz¡£ */ /*********************************************************/ #include //52µ¥Æ¬»úÍ·Îļþ #include //°üº¬ÓÐ×óÓÒÑ­»·ÒÆÎ»×Óº¯ÊýµÄ¿â #define uint unsigned int //ºê¶¨Òå #define uchar unsigned char //ºê¶¨Òå sbit beep=P2^3; uchar tt; uint fre,flag; void main() //Ö÷º¯Êý { fre=50000; beep=0; TMOD=0x11;//ÉèÖö¨Ê±Æ÷0,¶¨Ê±Æ÷1Ϊ¹¤×÷·½Ê½1 TH0=(65536-fre)/256; TL0=(65536-fre)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1;//¿ª×ÜÖÐ¶Ï ET0=1;//¿ª¶¨Ê±Æ÷0ÖÐ¶Ï ET1=1; TR1=1; TR0=1;//Æô¶¯¶¨Ê±Æ÷0 while(1);//µÈ´ýÖжϲúÉú } void timer0() interrupt 1 //¶¨Ê±Æ÷0ÖÐ¶Ï { TR0=0; //½øÖжϺóÏȰѶ¨Ê±Æ÷0ÖжϹرգ¬·ÀÖ¹ÄÚ²¿³ÌÐò¹ý¶à¶øÔì³ÉÖж϶ªÊ§ TH0=(65536-fre)/256; TL0=(65536-fre)%256; tt++; if(flag<40) //ÒÔϼ¸¸öif·Ö±ðÓÃÀ´Ñ¡È¡²»Í¬µÄƵÂÊ if(tt==10) { tt=0; fre=50000; beep=~beep; } if(flag>=40&&flag<80) { tt=0; fre=50000; beep=~beep; } if(flag>=80&&flag<120) { tt=0; fre=10000; beep=~beep; } if(flag>=120&&flag<160) { tt=0; fre=5000; beep=~beep; } if(flag>=160&&flag<200) { tt=0; fre=2500; beep=~beep; } if(flag>=200&&flag<240) { tt=0; fre=1250; beep=~beep; } if(flag>=240&&flag<280) { tt=0; fre=625; beep=~beep; } if(flag>=280&&flag<320) { tt=0; fre=312; beep=~beep; } if(flag>=320&&flag<360) { tt=0; fre=156; beep=~beep; } TR0=1; } void timer1() interrupt 3 //¶¨Ê±Æ÷1ÖжÏÓÃÀ´²úÉú2Ãëʱ¼ä¶¨Ê± { TH1=(65536-50000)/256; TL1=(65536-50000)%256; flag++; if(flag==360) { flag=0; fre=50000; } }