c语言蜂鸣警报加循环,如何在此单片机程序基础上加入蜂鸣器报警啊
/**************************************************************************************
* DS18B20温度传感器实验 *
实现现象:下载程序后,在温度传感器接口处,按照丝印方向插好温度传感器,数码管就会显示
检测的温度值,
注意事项:
***************************************************************************************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include"temp.h"
#include
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit beep=P1^5;
int temp;
char num=0;
u8 DisplayData[8];
u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : datapros()
* 函数功能 : 温度读取处理转换函数
* 输 入 : temp
* 输 出 : 无
*******************************************************************************/
void datapros(int temp)
{
float tp;
if(temp< 0) //当温度值为负数
{
DisplayData[0] = 0x40; // -
//因为读取的温度是实际温度的补码,所以减1,再取反求出原码
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算加上0.5,还是在小数点后面。
}
else
{
DisplayData[0] = 0x00;
tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
//如果温度是正的那么,那么正数的原码就是补码它本身
temp=tp*0.0625*100+0.5;
//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算加上0.5,还是在小数点后面。
}
DisplayData[1] = smgduan[temp / 10000];
DisplayData[2] = smgduan[temp % 10000 / 1000];
DisplayData[3] = smgduan[temp % 1000 / 100] | 0x80;
DisplayData[4] = smgduan[temp % 100 / 10];
DisplayData[5] = smgduan[temp % 10];
}
/*******************************************************************************
* 函数名 :DigDisplay()
* 函数功能 :数码管显示函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void DigDisplay()
{
u8 i;
for(i=0;i<6;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1; break;//显示第5位
}
P0=DisplayData[5-i];//发送数据
delay(100); //间隔一段时间扫描
P0=0x00;//消隐
}
}
void clock_h_l()
{
if((temp<= 30) && (temp >= 20))
{
beep = ~beep; //蜂鸣器报警
}
else
{
beep = 1;
}
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
while(1)
{
datapros(Ds18b20ReadTemp()); //数据处理函数
DigDisplay();//数码管显示函数
}
}
c语言蜂鸣警报加循环,如何在此单片机程序基础上加入蜂鸣器报警啊相关推荐
- c语言中语句开始的标志是,第一个单片机程序(C语言编写)
第一个单片机程序: #include //包含特殊功能寄存器定义的头文件 sbitLED = P0^0; //位地址声明,注意:sbit 必须小写.P 大写! void main(){ //任何一个 ...
- 电子器件系列27:无源蜂鸣片
一.简介原理 网上原创的太少,没什么干货,基本上都在用这个链接: 蜂鸣片,蜂鸣器的原理以及驱动电路的个人理解_消雨匆匆-CSDN博客_蜂鸣片工作原理 二.参数说明 谐振频率: 谐振频率指的是在含有电容 ...
- pythonfor循环100次_【零基础学Python】For循环和RANGE()函数
while循环不断循环,而其条件是True.那如果要限制循环代码块的次数,就可以使用for循环语句和range()函数来执行. 在代码中,一条for语句始终包含以下内容:for关键字 变量名 in关键 ...
- 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。...
未能加载文件或程序集"Oracle.DataAccess"或它的某一个依赖项.试图加载格式不正确的程序. 上一篇文章说到了DLL引用问题,主要是说的程序中如果使用过了反射,则反射创 ...
- 基于51单片机的蜂鸣计算器设计
一.课程设计内容及要求 蜂鸣计算器设计: 利用普中科技HC6800-ES V2.0单片机开发板设计一款带蜂鸣器的电子计算器.主要使用开发板上的数码管.LED点阵.矩阵键盘.蜂鸣器等模块功能.开发板配有 ...
- C语言循环选择还有,C语言第五讲,语句 顺序循环选择.(示例代码)
C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...
- oracle数据库buffer,Oracle数据库导入Buffer不足出现主机蜂鸣
测试新的系统要求把用户的数据库导入在本地测试.由于原数据库比较大有40G.所以计划在本地测试时只要建好数据库,再导出部分数据保证测试能正常就可以了. 第一步:在本地建数据库 1,在cmd窗口中,以管理 ...
- C语言第五讲,语句 顺序循环选择.
C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...
- 台式计算机打不了蜂鸣,电脑主机启动不了,开机蜂鸣器也不响,主板指示灯
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:电脑主机启动不了,开机蜂鸣器也不响,主板指示灯亮电源回答:清理一下里面各个接口,和内存条就OK了 参考回答:这个不好说那里的问题,有 ...
最新文章
- Hibernate的基本操作数据库,增加,修改,删除,查询
- 和cnn结合_写给小白的R-CNN介绍
- java字符串的哈希码_获取Java中字符串的哈希码
- 苹果cms v10 仿电影淘淘PC+WAP模板
- Nginx基本数据结构之ngx_array_t
- CentOS 6.4用源代码安装LNMP环境
- JavaScript概念梳理
- 十大最受欢迎的 React Native 应用开发编辑器
- 计算机基础1.4习题答案,中职计算机应用基础习题集及答案~.doc
- FFmpeg推流以后自动结束的方法
- java基础代码详解
- 2021 IDEA最新版安装教程(可激活)
- html怎么修改像素,PS怎么修改像素又不改变尺寸?
- matlab 打不开excel文件
- 计算机领域论文 网站,各类论文网站大全
- excel打开html非常慢,excel打开速度很慢的解决方法
- 自学iOS开发系列----UI(视图编程入门:UIView)
- html的meta总结,html标签中meta属性使用介绍
- Win10 发布UWD图形驱动程序 有助于小幅提高性能
- 使用wifi网卡笔记5---AP模式
热门文章
- PacBio软件总览 - 初级分析
- tensorflow tensor 张量 部分采样 切片和索引
- 【统计学习方法】K近邻对鸢尾花(iris)数据集进行多分类
- 【pytorch】torch.mean的使用
- java 随机生成常用汉字_Java随机生成中文汉字
- mysql数据库语句q_mysql数据库命令大全,mysql基本命令大全
- linux编译模块时怎么包含其他c文件夹,如何在导入符号出现在已编译的Linux内核模块中时,可选地使用它们?...
- 升级mysql服务器二进制备份_MySQL二进制日志备份和恢复详解
- react 合并数组_React 数组合并去重,实现请求三遍返回三组数据的合并去重。
- java rtmp_搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...