单片机
返回首页

单片机报警声

2016-11-23 来源:eefocus

两个简单的报警程序,希望能对大家有所启发,让单片机发出更美妙的音响

/***********************************************
*  标题: 简单报警声程序                                                    
*  日期:  2008-4-30                                                              
*  yongsheng.gys@163.com                                                
***********************************************/

#include

#include

 sbit     SPK = P3^4;

 unsigned char frq;

 void delayms(unsigned char ms)   

// 延时子程序

{                               

      unsigned char i;

      while(ms--)

      {

           for(i = 0; i < 120; i++);

      }

}

 

void timer0() interrupt 1 using 1

{

      TH0 = 0xfe;

      TL0 = frq;

      SPK = ~SPK;

}

 

main()

{

      TMOD = 0x01;

      frq = 0x00;

      TH0 = 0x00;

      TL0 = 0xff;   

      TR0 = 1;

      IE = 0x82; 

      while(1)

      {

           frq++;

           delayms(1);         //改变此处可以改变报警声的节奏长度

      }

}

 

 

 /***********************************************
*  标题: 单片机演奏消防车的报警声音                           
*  日期:  2008-4-30                                                             
*  yongsheng.gys@163.com                                               
***********************************************/

#include

#include

sbit     SPK = P3^4;       //喇叭接到P3.4上

unsigned char frq;

unsigned char flag;             

void delayms(unsigned char ms)   

// 延时子程序

{                               

      unsigned char i;

      while(ms--)

      {

           for(i = 0; i < 120; i++);

      }

}

 

void timer0() interrupt 1 using 1

{

      TH0 = 0xfe;

      TL0 = frq;

      SPK = ~SPK;

}

 

void main()

{   

      TMOD = 0x01;

      frq = 0x00;

      TH0 = 0x00;

      TL0 = 0xff;   

      TR0 = 1;

      IE = 0x82;

      flag=0;

      while(1)

      {

           switch(flag)

           {    case 0:frq++;break;             //flag标志置0时,frq递增

                 case 1:frq--;break;               //flag标志置1时,frq递减

           }

           if (!(frq^0xff)) flag=1;          //当frq增加到FFH时,flag置1,准备frq递减    

           if (!(frq^0x00)) flag=0;         //当frq递减到00H时,flag置0,准备frq递增

           delayms(15);                          //^为逻辑异或改变此值可改变节奏

      }

}     

 

单片机报警声 - gys - 电子爱好者    


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 如何利用ESP8266制作一个简单的四轴飞行器

  • 非常简单的150W功放电路图

  • 基于IC555的可变PWM振荡器电路

  • 优化电路板布局的简单方法

  • 分享一个电网倾角计电路

    相关电子头条文章