19、51单片机视频教程 HL-1 蜂鸣器报警实验

合集下载

单片机驱动蜂鸣器产生警报声的设计

单片机驱动蜂鸣器产生警报声的设计
}
}
RA5=0;//RE1输出低电平
}
//***********************************************
//函数名:main(void);
//入口参数:无
//出口参数:无
//函数作用:MAIN函数
//说明:
//***********************************************
TRISA=0X00;//设置RA为输出口,关闭并行口
OPTION=0X8F;//分频给WDT,分频比为128
}
//***********************************************
//函数名:buzzer(void);
//入口参数:无
//出口参数:无
//函数作用:产生警报声
//1、硬件不需设置
//**************************************************
//**************************************************
//*****************定义头文件**********************
voidmain(void)
{
port_init();//调用端口初始化函数
while(1)
{
buzzer();//调用报警函数
delayms(250);//总延时1秒
CLRWDT();//清看门狗
delayms(250);
delayms(250);
delayms(250);
CLRWDT();//清看门狗
//**************************************************

之蜂鸣器报警

之蜂鸣器报警

原创)51单片机C语言程序设计--速学教程实例(入门篇)之蜂鸣器报警/******************************************************************* *******//* 名称:蜂鸣器报警演示 *//* 作者:苏涛*//* 时间:2011-01-18 * //* 单位:安徽建筑工业学院电子与信息工程学院 *//* 07级电子信息工程专业二班 *//******************************************************************* *******/#include <reg52.h> //头文件调用,写程序时都要加上#define uint unsigned int //宏定义,为了后面定义变量书写简便#define uchar unsigned charsbit SPK=P1^2; //定义喇叭端口/******************************************************************/ /* 名称:延时函数 *//* 功能:C语言中常用的while循环延时方法 *//* 延时长短可以通过变量初值来改变 */ /******************************************************************/ void delay(unsigned int cnt){while(--cnt);}/******************************************************************/ /* 名称:主函数 *//* 功能:有间隔地使蜂鸣器报警 *//******************************************************************/ void main(){uint i;while(1){for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短{delay(80); //参数决定发声的频率,估算值,可以自行更改参数SPK=!SPK;}SPK=1; //喇叭停止工作,间歇的时间,可更改delay(20000);}}。

19、51单片机视频教程 HL-1 蜂鸣器报警实验

19、51单片机视频教程 HL-1 蜂鸣器报警实验

用这些声明的东东,如果在头文件没有声明,那么就无法调用。
如何编写结构良好的程序
1、多采用函数和函数调用。 2、尽量采用多文件项目。
单文件项目和多文件项目多文件项目的优点
如何将单文件项目转换成为多文件项目
• 如何写头文件 • #ifndef DELAY_H • #define DELAY_H
• void delay();
51单片机视频教程
HL-1学习板蜂鸣器报警实验
讲师:星慈光
蜂鸣器发声
• 本讲任务:
• 如何驱动蜂鸣器发声
总结一下前面学过的C语言
• 1、什么是预处理程序处理的命令? • 2、什么是宏定义命令 • 3、文件包含是指什么? • 4、你明白函数是指什么吗? • 5、单片机最常用的运算是什么?
预处理程序处理命令
• 有源蜂鸣器和无源蜂鸣器:判断有源蜂鸣器和无源蜂鸣器,还可以用万用表 电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰 触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂 蜂鸣器,如 果能发出持续声音的,且电阻在蜂鸣器发声音
• 位操作是直接对二进制位进行的,位运算只适用 于无符号整型变量。
蜂鸣器
• 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计 算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时 器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器 两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、 “LB”、“JD”等)表示。
• #endif
源文件和头文件
扩展名为 .c 的文件,主要用以实现程序的各种功 能,我们称为代码文件。 扩展名为 .h 的文件,称为头文件。在头文件里主 要写一些函数声明、宏定义、特殊功能寄存器定 义、特殊功能位定义、数据结构定义,这样可以 在多个.c文件内共享(通过包含语句实现)。 大多数时候,源文件和头文件是成对出现的。

16、51单片机视频教程 HL-1 点亮一个发光管理论

16、51单片机视频教程 HL-1 点亮一个发光管理论
• 头文件在K软e <系统文件名> # include “用户文件名”
系统自带文件,文件名必须由< >括起来,程序员无需人工添加 该文件到工程中。编译时,会自
动在系统的目录中寻找到它。
预处理指令,相 当于汇编中的伪 指令。
仅在编译过程中 起作用。
用#开头
# include是文件包含指令 这条指令会导致预处理器
把#include后面跟的文件 的内容替换到这条指令的
位置。
用户文件,文件名必须由 “ ”
括起来,程序员必须人工添 加该文件到项目中。编译 时,会在当前项目的目录中 寻找到它。
特殊功能位定义
• 也可以说是特殊功能位声明。 • Sbit:一般用来定义一个特殊功能寄存器(SFR)的可寻址的某一位 。利用它,可以访问8051单片机 • 特殊功能寄存器( SFR )中的可寻址位。 • 一般格式: • Sbit 位变量名=特殊功能寄存器名^位位置 • Sbit LED1=P0^1 • 注意:SFR可寻址位只能通过特殊功能位定义的方式来使用它,大部分在STC.H头文件中已经定义了,
电流
电流,是指电荷的定向移动。电源的电动势形成了电压,继而产生了电 场力,在电场力的作用下,处于电场内的电荷发生定向移动,形成了电流。 电流的大小称为电流强度(简称电流,符号为I),是指单位时间内通过导线 某一截面的电荷量,每秒通过1库仑的电量称为1「安培」(A)。安培是国际 单位制中所有电性的基本单位。 除了A,常用的单位有毫安(mA)、微安 (μA) 。
用户不需要再自己定义,但端口寄存器的某一位需要用户自己定义。
I/O端口驱动能力
• 思考一会 • 1、发光管和单片机的什么脚连接? • 2、可以直接连吗?
• 每个I/O口允许最大20mA的灌电流,可以直接驱动LED。 • 高电平输出时,一般是对负载提供电流,其提供的电流叫“拉电流”; • 低电平输出时,一般是要吸收负载的电流,其吸收的电流叫“灌电流”。

51单片机项目教程项目 5 蜂鸣器实验

51单片机项目教程项目 5  蜂鸣器实验

图5- 9蜂鸣器实物结果
当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和 RXD脚分别用于发送和接收数据。
5.2技术准备
方式1发送时,数据位由TXD端输出,发送一帧信息为10位:1位起始 位0,8位数据位(先低位)和1位停止位1。当CPU执行一条数据写 SBUF的指令,就启动发送。发送开始时,内部发送控制信号变为有 效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期, 便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部 发送完毕后,中断标志位TI置1。 方式1接收时(REN = 1),数据从RXD(P3.1)引脚输入。当检测到 起始位的负跳变,则开始接收。当一帧数据接收完毕后,同时满足以 下两个条件,接收才有效。 (1)RI = 0,即上一帧数据接收完成时,RI = 1发出的中断请求已被 响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 (2)SM2 = 0或收到的停止位 = 1(方式1时,停止位已进入RB8), 则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标 志RI置“1”。
5.2技术准备
5.2.2 了解实验板蜂鸣器电路
图5- 3蜂鸣器电路
5.2技术准备
5.2.3 蜂鸣器驱动电路
蜂鸣器驱动电路如图5-4所示。
图5- 4蜂鸣器驱动电路
5.2技术准备
5.2.4串行口的结构
单片机串口结构如图5-5所示。有两个物理上独立的接收、发送缓冲器 SBUF(属于特殊功能寄存器),可同时发送、接收数据。控制寄存器共 有两个:特殊功能寄存器SCON和PCON。发送和接收引脚分别是TXD (P3.0)和RXD(P3.1)。
SM0 0 0 1 1 SM1 0 1 0 1 工作 方式 0 1 2 3 功能简介 移位寄存器 8位UART 9位UART 9位UART 比特率 OSC/12 可变 OSC/32或 OSC/64 可变

HL-1说明书

HL-1说明书
慧净单片机学习网: 慧净淘宝网:/
HL-1 开发板使用说明书 慧净电子-做人人都买得起的 51 单片机开发板
3.6 利用定时器和蜂鸣器唱歌.......................................................................... 3.7 模数转换 ADC 的应用......................................................................... 3.8 继电器的应用........................................................................ 3.9 DS18B20 温度测量显示实验...................................................................... 3.10 1602 字符液晶显示................................................................................... 3.11 EEPROM AT24C02 实验......................................................................... 3.12 串口通讯实验............................................................................................ 联系方式...................................................................................................................

基于51单片机的温度报警器设计

基于51单片机的温度报警器设计

基于51单片机的温度报警器设计引言:温度报警器是一种用来检测环境温度并在温度超过设定阈值时发出警报的装置。

本文将基于51单片机设计一个简单的温度报警器,以帮助读者了解如何利用单片机进行温度监测和报警。

一、硬件设计硬件设计包括传感器选择、电路连接以及报警装置的设计。

1.传感器选择温度传感器的选择非常重要,它决定了监测温度的准确性和稳定性。

常见的温度传感器有热敏电阻(如NTC热敏电阻)、热电偶以及数字温度传感器(如DS18B20)。

在本设计中,我们选择使用DS18B20数字温度传感器,因为它具有高精度和数字输出的优点。

2.电路连接将DS18B20与51单片机连接,可以采用一根三线总线(VCC、GND、DATA)的方式。

具体连接方式如下:-将DS18B20的VCC引脚连接到单片机的VCC引脚(一般为5V);-将DS18B20的GND引脚连接到单片机的GND引脚;-将DS18B20的DATA引脚连接到单片机的任意IO引脚。

3.报警装置设计报警装置可以选择发出声音警报或者显示警报信息。

在本设计中,我们选择使用蜂鸣器发出声音警报。

将蜂鸣器的一个引脚连接到单片机的任意IO引脚,另一个引脚连接到单片机的GND引脚。

二、软件设计软件设计包括温度读取、温度比较和报警控制的实现。

1.温度读取通过51单片机的IO引脚和DS18B20进行通信,读取DS18B20传感器返回的温度数据。

读取温度数据的具体步骤可以参考DS18B20的通信协议和单片机的编程手册。

2.温度比较和报警控制将读取到的温度数据和设定的阈值进行比较,如果温度超过阈值,则触发报警控制。

可以通过控制蜂鸣器的IO引脚输出高电平或低电平来控制蜂鸣器是否发出声音警报。

三、工作原理整个温度报警器的工作原理如下:1.首先,单片机将发出启动信号,要求DS18B20开始温度转换。

2.单片机等待一段时间,等待DS18B20完成温度转换。

3.单片机向DS18B20发送读取信号,并接收DS18B20返回的温度数据。

18、51单片机视频教程 HL-1 发光管闪烁实验

18、51单片机视频教程 HL-1 发光管闪烁实验

• for(j=i;j>0;j--)

for(k=125;k>0;k--);
•}
了解一下实验板初始化
• 初始化就是把变量赋为默认值,把控件设为默认状态,把设准备 的准备好。 但是如果是整个系统初始化那就不一样了。在汇编语言中, 为变量分配空间时,初始化过的变量的初值位于可执行文件代码段数 据后,会占用一定空间,不必要的初始化会造成磁盘空间的浪费。在C 语言等高级语言中,为每一个变量赋初值被视为良好的编程习惯,有 助于减少出现Bugs的可能性。因此,是否对不必要的变量初始化依情 况而定。
编写一个闪灯程序
• 直接复制上一个亮灯程序,增加延时功能,可以实现闪灯功能。
STC89C52与STC12C5A60S2(1T)芯片速度比较
• 购了1T芯片的同学可以下载LED闪烁程序进行比较,查看闪灯的 闪动速度,有什么不同。
谢谢
51单片机视频教程
HL-1学习板发光管闪烁实验
讲师:星慈光
发光管闪烁实验
• 没有数电、模电方面基础的同学,有不熟悉的同学也可回看 上几讲的内容,本讲在C语言方面增加了几个新的函数。
• 延时函数delay • for循环语句
main函数
main函数,又称主函数,是程序执行的起点,main是相对来说的。
怎样编写精确的延时函数
• 实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高 CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。
• 1 使用定时器/计数器实现精确延时 • 2 软件延时与时间计算 • 在很多情况下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面
•{ • 语句1; • 语句2;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档