/*****************************Copyright (c)******************************
**--------------File Info--------------------------------------------------
** File name: main.c
** Last modified Date: 2011-04-09
** Last Version: 1.0
** Descriptions: The main() function example template
**-------------------------------------------------------------------------
** Created by: lxliu
** Created date: 2011-04-09
** Version: 1.0
**************************************************************************/
#include "config.h"
#define BEEP 1<<7 //P0.7控制蜂鸣器,低电平蜂鸣
/*************************************************************************
** 函数名称:DelayNS()
** 函数功能:长软件延时
** 入口参数:dly延时控制值,值越大,延时越长
** 出口参数:无
*************************************************************************/
void DelayNS(uint32 dly)
{
uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
/*************************************************************************
** 函数名称:main()
** 函数功能:用P0.7控制BEEP,让蜂鸣器蜂鸣
** 调试说明:需将跳线JP11和BEEP短接
*************************************************************************/
int main (void)
{
PINSEL0=0x00000000; //设置P0口为GPIO功能
IO0DIR=BEEP; //设置P0.7为输出
while(1)
{
IO0SET=BEEP; //蜂鸣器停止蜂鸣
DelayNS(10); //延时
IO0CLR=BEEP; //蜂鸣器蜂鸣
DelayNS(100); //延时
}
return 0;
}
/*****************************************************************************
** End Of File
******************************************************************************/
关键字:GPIO输出 蜂鸣器 蜂鸣
引用地址:
GPIO输出---控制蜂鸣器蜂鸣
推荐阅读最新更新时间:2024-03-16 15:00
STC89C52单片机用两个定时器控制蜂鸣器的频率和输出时间间隔
题目 同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800, 1k(hz)的方波。 遇到的问题 出现定时器紊乱的现象,这个时候需要把T1定时器的优先级设为高于T0优先级 具体代码如下: #include reg52.h typedef unsigned int unint; typedef unsigned char uchar; sbit beep = P1^5; sbit led = P2^0; uchar t1,bphz,times; uchar code table = { 500,300,200,1
[单片机]
STM8S学习笔记之二(STM8 GPIO输出功能)
拿到STM8板子之后,在IAR官方下载IAR for STM8s 30天试用版本,在电脑上安装后发现在安装IAR时,STLink的驱动也会全部自动的安装上去,方便啊。。因为之前我的AVR都是在IAR上开发的,所有对这个软件并不陌生,打开软件新建工程,Debug模式下,设置使用STLink仿真,将空白文件成功烧写进去了,看来,开饭环境搭建还是很简单的。。 接下来,进入主题,STM8S的IO口控制,这是学习一个单片机最最最基础的东西了。 STM8单片机IO与AVR差不多,可以配置为输入输出,同时还可以带上拉电阻下拉电阻。还有就是跟STM32几乎相同,某些IO口可以配置成模拟输入,模拟输入,复用端口,也可以配置成中
[单片机]
STM32学习笔记——控制GPIO输出点亮LED灯(直接操作存储器)
一.预备知识 使用51单片机控制IO口相对来说要简单得多,最小系统搭建完毕后直接通过软件往各IO口写“1”或者写“0”即可。但使用STM32控制IO口输入输出却远没有这么容易,经过一个下午的查阅文献及探索后,略微有了头绪。 个人所使用的STM32F103VBT6有100个引脚,其中有五组GPIO(GPIOA…GPIOE),每组有16个GPIO端口(GPIOx_Pin0…GPIOx_Pin15)共80个,每个GPIO端口都有: 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH); 两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR); 一个32位置位/复位寄存器(GPIOx_BSRR); 一个16位复位寄存器(
[单片机]
蜂鸣器控制高级程序
;目的:掌握蜂鸣器的控制程序 ;程序名字:蜂鸣器 ;这是一个非常好的一个控制蜂鸣器的程序,用到了定时器中断方式来定时,且弄能够用程序状态字中的CY标志位来进行运算, ;并且用到了CJNE中的比的不够CY为1,比大的话,为0来进行运算,使程序更加丰富 INTR_CNT EQU 30H ;作为定时器中断的计数值使用 MS10 EQU 9217 ; 对于11.0592的晶振来说,相当于10ms的计数 BUZZER EQU P1.0 ; ORG 0000H JMP START ORG 0003H RETI
[单片机]
8051单片机实战分析(以STC89C52RC为例) | 04 - 蜂鸣器驱动
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。 有源蜂鸣器和无源蜂鸣器的区别: 这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。 有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。 有源蜂鸣器示意图: 无源蜂鸣器示意图: 无源蜂鸣器的优点是:
[单片机]
STM32与无源蜂鸣器
使用有源蜂鸣器,只能发出固定的”滴滴“声,当然不能满足于此呀。使用无源蜂鸣器,只要输出不同频率的PWM波,即可发出不同的音符。不同的音符组合起来就是一个曲子了。 1 乐谱简析 1.1 音阶 音阶是音乐必不可少的要素,主要由声音的频率决定。通过给蜂鸣器不同频率的音频脉冲,可以产生不同的音阶,而要产生某频率的音频脉冲,最简单的办法是算出该音频的周期,然后将此周期除以2即为半周期的时间。通过程序控制单片机某引脚半周期为“高”、半周期为“低”,不断交替变换,即可产生该频率的矩形波,接到蜂鸣器上就可发出该频率的声音。若想改变音阶,只需要改变半周期时间即可。下表为各音调音符频率对照表,据此可产生不同音阶的音符。“#”表示半
[单片机]
51单片机基础之GPIO输出
代码: #include reg52.h //引用51单片机的头文件,包含寄存器等操作 sbit LED=P2^0; //定义P2^0引脚,这属于位操作,等下用于输出高低电平,以便于点亮LED灯 void delay(unsigned int u16) //unsigned是无符号类型,也就是非负数,这个函数可以实现0.6秒内的延时,本质上就是让CPU等待 { while(u16--); } void main(void) //主函数,程序都是从主函数开始执行的。 { while(1) //循环操作,一直执行程序 {
[单片机]
单片机指纹识别程序
制作出来的实物图如下: Altium Designer画的原理图和PCB图如下: 单片机源程序如下: #include reg52.h #include intrins.h #include lcd1602.h sbit buzzer=P2^0; //蜂鸣器 低电平打开蜂鸣器 sbit red= P1^0; //红色灯 表示录入模式 sbit green= P1^1; //绿色灯 表示识别模式 sbit k2=P3^4; //录入一次指纹 sbit k1=P3^3; //模式识别转换 sbit k3=P3^2; //清除所有指纹(10个指纹清除) #define Max_User 10 #d
[单片机]