草庐IT

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

设计任务及要求设计任务:以51单片机为核心,设计和制作一个温度报警器,能在LCD上显示环境的温度与希望温度上下限阀值,并能设置希望温度上下限阀值,系统上电的时候显示的是当前环境温度和设定的温度阀值,通过按键来修改温度上下限阀值,再次上电时保持上一次的温度设置。根据温度传感器测得的温度做如下处理:温度当温度低于设定下限温度时,蜂鸣器发出报警声和绿光报警,并且通过继电器控制加热设备提升温度至正常温度,然后加热设备停止工作;当温度高于设定上限温度时,蜂鸣器发出报警声和红光报警,并且通过继电器控制散热设备降低温度至正常温度,然后散热设备停止工作。设计要求:(1)确定系统设计方案;(2)进行系统的硬件设

51单片机制作简易数字电压表

首先打开proteus软件导入各个元器件,并连线。 接下来介绍下adc0808的导入方法 频率发生器的导入方法: 接下来就要编写c程序了,代码都是经过测试的,可以方型复制使用。#include"reg52.h"//引入头文件#defineuintunsignedint//把无符号整型简写成uintsbitSTART=P3^0;//START接到P3.0口sbitEOC=P3^1;//EOC接到P3.1口sbitOE=P3^2;//OE接到P3.2口sbitRS=P3^3;//RS接到P3.3口sbitRW=P3^4;//RW接到P3.4口sbitE=P3^5;//E接到P3.5口uintdia

【Proteus仿真】【51单片机】声光控节能灯设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介本项目使用Proteus8仿真51单片机控制器,使用人体红外传感器、声音传感器、光线传感器模块,PCF8591ADC模块、LED灯等。系统运行后,声/光/红外同时控制灯亮灭,光敏控制灯在白天不亮,只在晚上声控检测到声音或红外检测到人靠近时灯亮,声音消失或人离开后延时5秒灯熄灭。二、软件设计/*作者:嗨小易(QQ:3443792007)*///系统参数初始化voidsys_parm_init(void){ sys_ctrl.light=0; sys_ctrl.flag=0; sys_ctrl.sec=0; sys_ctrl.led_

51单片机的超声波测距系统【proteus仿真+程序+报告+原理图】

1、主要功能该系统由AT89C51单片机+数码管模块+LED指示灯模块+按键模块构成。利用51单片机实现超声波测距功能。利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。系统定时发射超声波,在启动发射电路的同时启动单片机内部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,单片机检测到这个负跳变信号后,停止内部计时器计时,读取时间,计算距离,测量结果输出给数码管显示。同时可以通过按键设定报警距离,如果距离过大或者过小,蜂鸣器都会报警。可实现基本功能:1、超声波测量距离按键功能:1、设置报警值的上限2、设置报

基于51单片机的矩阵键盘(线反转法)

1.矩阵键盘简介矩阵键盘使用的方法与独立按键类似,但是比独立按键节省I/O,同时使用方法变得相对复杂了,首先展示硬件连接。上图所示就是4X4矩阵键盘的常见接法,按行来看,每个按键的左端接在一起,按列来看,每个按键的右端接在一起,共占用8个I/O,接到51单片机的P1端口。2.代码解释对于矩阵键盘,常用的方法有两种,一个是线反转法,另一个是行列扫描法,本文介绍线反转法。首先插入模块化编程编程的内容,新建两个文件命名为keyboard.h与keyboard.c并添加到工程中,然后在h文件中定义一个宏,便于与硬件连接发生改变时而进行代码的修改。编程思路,首先给矩阵键盘的端口Matrixkey_Por

51单片机定时器中断TMOD

最近在学定时器中断TMOD,写程序时,要对定时器进行配置对TMOD进行赋值时,拌了好久。。。。如何根据所用的   定时器0/1, 工作方式0/1/2/3   对TMOD赋值呢?我们知道:1.TMOD长这样: 由八位组成,前四位是T1的参数;后四位是T0的参数;GATE和C/T'不用多讲,2.M1和M0长这样: 例如TMOD=0x01(16进制)=00000001,可见前4位为0.后四位是1,可见用的是T0,T0的数值是0001;查表可知是方式1.,完毕打卡:今天是学习51单片机的第三天 

51单片机静态数码管显示

51单片机静态数码管显示数码管介绍数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件。 数码管引脚定义数码管从上右下左中有ABCDEFGDP,共10个引脚,其中3、8号引脚是连接到所有二极管的阴极,A二级管对应7号和38号引脚,B二极管对应6号和38号引脚。所有阴极连接到一起的叫共阴数码管。所有阳极连接到一起的叫共阳数码管。单数码管 四个一体数码管四个一体数码管的每个数码管的共阴或共阳极连接到一起,占用一个引脚。其他二极管引脚的每段对应的连接到一起,占用8个引脚。  动态数码管显示四位一体的数码管每一时刻4个位置的数字只能同时显示相同的数字,我们可以利用人眼时间差

C51单片机实现呼吸灯

   呼吸灯的效果是灯的亮度由暗缓慢变亮再缓慢变暗。   实现思路是改变小灯亮与暗在单位周期的占空比。如下图具体代码如下:#includetypedefunsignedintu16;typedefunsignedcharu8;sbitLED=P2^0;voiddelay(u16i){ while(i--);}voidmain(){u16i; while(1) { for(i=10;i=10;i=i-10) { LED=0; //亮 delay(i); LED=1;//灭 delay(2000-i); } //呼吸灯由亮变暗 } }

51单片机--矩阵键盘

一、接线(4×4)将16个键盘排成4行4列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,所以共有4行4列8根线,连接到单片机的GPIO口。二、原理总体来说检测该键对应IO口是否为低电平。1、检测时,先将一行设为低电平,其余几行为高电平。2、然后立即轮流检测一次各列是否为低电平,若检测到某一列为低电平,可以确定是某行某列的按键,设置此按键的键值。3、用同样的方法轮流设置各行为低电平,再轮流检测各列是否为低电平,这样就可以检测完所有的按键,扫描所有的键值。4、也可以设置列为低电平再检测各行。三、例子通过数码管,按键显示对应的键值,按键行接P3.0-P3.3

C51实现0到99数字显示

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、实验要求二、实验代码和原理图1.实验代码2.原理图总结一、实验要求用2位数码管显示计时时间,最小计时单位为“秒”,计时范围00~99s。当第1次按一下并松开计时功能键时,秒表开始计时并显示;第2次按一下并松开计时功能键时,停止计时,将计时的时间值送到数码管显示;如果计时到99s,将重新开始从0计时;第3次按一下并松开计时功能键,秒表清0。再次按一下计时功能键,则重复上述计时过程。二、实验代码和原理图1.实验代码#include"reg51.h"#defineuintunsignedintuintcount=0;stat