使用单片机驱动蜂鸣器产生警报声

发布者:幸福旅程最新更新时间:2016-11-17 来源: eefocus关键字:单片机  驱动蜂鸣器  警报声 手机看文章 扫描二维码
随时随地手机看文章

//************************************************** 
//实验目的: 
//熟悉使用单片机驱动蜂鸣器产生警报声 
//************************************************** 

//************************************************** 
//硬件设置: 
//1、硬件不需设置 
//************************************************** 

//************************************************** 
//*****************定义头文件********************** 
//************************************************** 
#include<PIC.h> 

//************************************************** 
//******************定义配置位********************* 
//************************************************** 
__CONFIG(0x3545);        
//FLASH代码不保护,RB6和RB7为调试模式,FLASH不写保护,数据代码不保护 
//RB3为数字IO口,低电压复位使能,上电延时开,看门狗开,4M晶体XT振荡器 

//************************************************** 
//******************定义常量*********************** 
//************************************************** 
#define uchar unsigned char 
#define uint  unsigned int 

//*********************************************** 
//函 数 名:delayms(uchar time); 
//入口参数:time 
//出口参数:无 
//函数作用:延时 
//说    明: 
//*********************************************** 
void delayms(uchar time) 

  uint i; 
  while(time--) 
  { 
    for(i=93;i>0;i--){;} 
  } 


//*********************************************** 
//函 数 名:port_init(void); 
//入口参数:无 
//出口参数:无 
//函数作用:端口初始化 
//说    明: 
//*********************************************** 
void port_init(void) 

  PORTA=0X00;  //RA口输出低电平 
  ADCON1=0X07; //设置RA口,RE口为普通IO口 
  TRISA=0X00;  //设置RA为输出口,关闭并行口 
  OPTION=0X8F; //分频给WDT,分频比为128 


//*********************************************** 
//函 数 名:buzzer(void); 
//入口参数:无 
//出口参数:无 
//函数作用:产生警报声 
//说    明: 
//*********************************************** 
void buzzer(void) 

  RA5=1;         //RE1输出高电平 
  delayms(150); 
  RA5=0;         //RE1输出低电平 
  delayms(50); 
  RA5=1;         //RE1输出高电平 
  delayms(150); 
  RA5=0;         //RE1输出低电平 


//*********************************************** 
//函 数 名:main(void); 
//入口参数:无 
//出口参数:无 
//函数作用:MAIN函数 
//说    明: 
//*********************************************** 
void main(void) 

  port_init();      //调用端口初始化函数 
  while(1) 
  { 
    buzzer();      //调用报警函数 
    delayms(250);  //总延时1秒 
    CLRWDT();      //清看门狗 
    delayms(250); 
    delayms(250); 
    delayms(250); 
    CLRWDT();      //清看门狗 
  } 
}

关键字:单片机  驱动蜂鸣器  警报声 引用地址:使用单片机驱动蜂鸣器产生警报声

上一篇:PIC单片机驱动步进电机先正转后反转
下一篇:PIC16F630的I/O口的操作流水灯

推荐阅读最新更新时间:2024-03-16 15:20

使用STC12C5204AD单片机的数字电压表
这是一块使用STC12C5204AD数字电压表的制作程序,P0.0-P0.3 共阴数码管位驱动端,P2口为共阴数码管段a-g及dp的段驱动端口,P0、P2口设置为推挽输出方式,段输出加470欧限流电阻,AD为8位,转换电压分度5/256=0.0195312V,分流电阻为实测阻值,AD值*0.0195312v/对地分流电阻,算出分流电流,然后用分流电流*分流电阻与限流电阻之和即为要显示的输入电压值。业余使用,精度已经够用了,比那个小的指针的要准确多了。其中涉及到端口设置的地方大家对照芯片手册更正。 #include STC12C52.H //STC12C5204AD头文件 (6 K) 下载次数:15 #include in
[单片机]
51单片机控制多普勒血流计系统的设计和实现
0 引言 多普勒血流计的出现标志着在微血管灌流方面取得重大进步。本设计采取双通道装置拾取多普勒信号,有效地抑制噪声信号,采用单片机来对信号进行控制及处理,既简化了电路,又有助于信号的处理及读取。运用12位的AD574A不但提高了信号精度,利用其双极性,也省去了以往信号处理中复杂的乘方、开方电路或绝对值电路。通过四位LED显示,直观、准确地读取血细胞灌流量的瞬时相对定量值,可精确到小数点后两位。并同时配有扬声器来形象表示信号的强弱和变化。还可通过绘图仪,对信号进行长时间检测、记录,以便研究和分析。 1 系统总体方案 系统组成框图如图1所示。系统工作时,从激光探头发射出一束激光照射到组织上,并穿透组织形成一个半径为1mm的半球,
[单片机]
51<font color='red'>单片机</font>控制多普勒血流计系统的设计和实现
如何使用STM8定时器
定时器主要功能是记录时间的,比如电饭煲加热20分钟后自动停止加热,就是通过定时器来完成的,其实定时器就像我们日常用的闹钟一样,今天以市场上广为使用的意法半导体的STM8单片机为例和大家分享一下,如何使用定时器? 方法/步骤 使用IAR FOR STM8打开一个工程。 初始化定时器。 并设置允许定时器中断,就是说定时器时间到了之后,会进入中断。 在定时器中断中进行一些标志位的设置,以及一些必要的功能操作。 这样程序会周而复始的循环进入中断,对该中断次数计数,就可以完成更长时间的计时功能。 6 定时器每次的中断,也可以作为系统的时钟,来切换一些任务的执行与否。 END
[单片机]
如何使用STM8定时器
STM32单片机GPIO口的学习
  GPIO:   STM32的(64引脚的)IO口一共有3个,分别是PA、PB、PC.   STM32的IO端口可以由软件配置成8种模式:   1,输入浮空   2,输入上拉   3,输入下拉   4,模拟输入   5,开漏输出   6,推挽输出   7,推挽复用功能   8,开漏复用功能   STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。   注意(在配置ST
[单片机]
51单片机精确延迟程序
51单片机精确延时程序(晶振12MHz,一个机器周期1us.) 几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响. 一. 500ms延时子程序:(晶振12MHz,一个机器周期1us.)   void delay500ms(void)   {   unsigned char i,j,k;   for(i=15;i 0;i--)   for(j=202;j 0;j--)   for(k=81;k 0;k--);   }   计算分析:   程序共有三层循环   一层循环n:R5*2 = 81*2 = 162us DJNZ 2us   二层循环m:R6
[单片机]
看门狗定时器是什么?
看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,在单片机程序的调试和运行中都有着重要的意义。它的主要功能是在发生软件故障时,通过使器件复位(如果软件未将器件清零)将单片机复位。也可以用于将器件从休眠或空闲模式唤醒。 看门狗定时器工作原理 使能时,WDT 将递增,直到溢出,或称“超时”。除非处于休眠或空闲模式,WDT 超时会强制器件复位。为避免WDT 超时复位,用户必须定期用PWRSAV 或CLRWDT 指令将看门狗定时器清零。如果WDT 在休眠或空闲模式下超时,器件将唤醒并从PWRSAV 指令执行处继续执行代码。在上述两种情况下,WDTO 位(RCON 4 )都会置1,表示该器件复位或唤醒事件是由
[单片机]
单片机作为PLC的新用法
1引言 可编程控制器(PLC)是微机技术与继电器常规控制技术相结合的产物,是在顺序控制器和微机控制器的基础上发展起来的新型控制器。它的高可靠性、简单直观易于掌握的编程方式,以及越来越完善的功能,使得它在工业控制领域得到了广泛应用,特别是在特定场合以及大规模控制系统中使用。但它也存在一些不足:内存有限,编程优化调试困难;价格高;针对性差。当环境条件尚好,控制量不大,控制逻辑不复杂,控制要求不高时,它的优势不但不能完全发挥出来,而且会使控制系统成本提高。 鉴于此,根据不同的控制目的,按照PLC的工作方式及控制理念,设计有针对性的小规模经济型控制系统,具有明显的实用性。 单片机具有较强的开关量逻辑记忆、判断,数据
[单片机]
<font color='red'>单片机</font>作为PLC的新用法
51单片机的主要组成结构分析详解
随着微电子技术的快速发展,以ARM为主的32位MCU(微控制器)已普及开来,8位MCU已被很多人认为将被淘汰,更何况其中的老古董MCS-51系列单片机。但从目前的形势来看,8位MCU还牢牢占据着工业控制领域的主导地位,一个原因是8位MCU的开发成本比较低,也有大量的成熟设计方案,还有一个原因是历史的延续,新的产品还处在不断变化中,老产品则是经数十年的淘汰而留存下来的精品。 MCS-51系列单片机正是如此,自1980年由Intel推出后,获得很大成功,并不断改进而形成系列,成为最普遍使用的单片机内核和指令系统。后来,ATMEL、NXP等多家著名半导体公司推出兼容和增强的51系列单片机,应用普遍,因此成为单片机教学的主要示例,熟悉其
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved