蜂鸣器报警显示实验
实验六 蜂鸣器报警 显示实验 一、实验 内容 一旦有报警信号产生,电路中蜂鸣器将鸣叫报警,同时旋转灯显示。
二、实验目的 1.巩固 Proteus 软件和 keil 软件的使用方法; 2.学习外部中断技术的基本使用方法; 3.学习定时器 T0,T1 的使用方法; 4.学习中断处理程序的编程方法。
三、实验电路及连线 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51LS2SOUNDER报警开启 / 关闭C122pFC222pFC310uFX112MR110kD1R2280D2R3280D3R4280D4R5280D5R6280D6R7280D7R8280D8R***45687 四、程序流程图
五、实验代码 #include
while(ms--){ for(i=0;i<120;i++);} } void main(){ P2 = 0x00;TMOD = 0x11;TH0 = 0x00;TL0 = 0xff;TH1 =(65536-45000)/256;TL1 =(65536-45000)%256;IT0 = 1;IE = 0x8b;IP = 0x01;TR0 = 0;TR1 = 0;while(1){ FRQ++;Delayms(1);} } void EX0_INT()interrupt 0 { TR0 =!TR0;TR1 =!TR1;
if(P2 == 0x00)P2 = 0xe0;else P2 = 0x00;} void T0_INT()interrupt 1 { TH0 = 0xfe;TL0 = FRQ;SPK = ~SPK;} void T1_INT()interrupt 3 { TH1 =(65536-45000)/256;TL1 =(65536-45000)%256;P2 = _crol_(P2,1);} 六、实验现象及结果分析
