蜂鸣器911报警--定时计数器实验/***********************************************************************************************/ 911报警声音 *//* 设置,将蜂鸣器旁边的跳线跳上,下载程序到实验班,会听到急促的报警声 */ /***********************************************************************************************/ #include<>#include<>sbit SPK=P3^7;unsignedcharfrq;voiddelayms(unsignedcharms);main(){ TMOD=0x01; frq=0x00; TH0=0x00; TL0=0xff; TR0=1; IE=0x82; while(1) { frq++; delayms(1); }}voidtimer0()interrupt1using1{ TH0=0xfe; TL0=frq; SPK=~SPK; }voiddelayms(unsignedcharms) //延时子程序{ unsignedchari; while(ms--) { for(i=0;i<120;i++); }}看程序应该是发出的声音频率越来越高,然后突然降低,再越来越高,如此循环main(){TMOD=0x01;//设定时方式1,16位定时器frq=0x00;TH0=0x00;//赋初值TL0=0xff;//赋初值TR0=1;//开始计数IE=0x82;//允许中断while(1){frq++;//每个毫秒增加频率,直至frq=0,频率下降,如此循环delayms(1);}}voidtimer0()interrupt1using1{TH0=0xfe;TL0=frq;//根据frq改变定时器的值SPK=~SPK;//发出占空比50%的音频}#include<>#defineuintunsignedint#defineucharunsignedcharsbitd=P2^3;uintaa;voiddelay(uintz);voidxulei();voidmain(){xulei();while(1){P1=0xfe;d=!d;delay(1);}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidxulei(){aa=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}voidzhongduan()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;if(aa==10){aa=0;
蜂鸣器911报警. 来自淘豆网m.daumloan.com转载请标明出处.