加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的声控灯设计【光照,声音,红外】(仿真)

3小时前
75
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

设计一个声、光、红外同时控制的门灯系统:

1、光敏控制灯在白天不亮,只在晚上声控检测到声音或者红外检测到人靠近时灯亮;

2、声音消失或人离开后延时30秒灯熄灭。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit ADCLK=	P1^0;//时钟,初始状态为0
sbit ADDI=	P1^1;//数据输入
sbit ADDO =	P1^2; // 数据输出
sbit ADCS=	P1^3;

sbit led=P3^3;//灯

sbit man=P3^2;//人体

sbit voice=P3^1;//声音

uint miao=0;//计时

//将AD转换来的二进制数转换为十进制数
unsigned int zhuanhuan()  //AD转换,返回结果
{
	unsigned char i = 0,channel=2;
	unsigned char j;
	unsigned int dat = 0;
	unsigned char ndat = 0;

	ADDI = 1;//输入引脚拉高
	_nop_();//延时1us
	_nop_();//延时1us
	ADCS = 0;//片选
	_nop_();//延时1us
	_nop_();//延时1us
	ADCLK = 1;//拉高时钟
	_nop_();//延时1us
	_nop_();//延时1us
	ADCLK = 0;//拉低时钟
	_nop_();//延时1us
	_nop_();//延时1us
	ADCLK = 1;//拉高时钟
	ADDI = channel & 0x1;
	_nop_();//延时1us
	_nop_();//延时1us
	ADCLK = 0;//拉低时钟
	_nop_();//延时1us
	_nop_();//延时1us
	ADCLK = 1;//拉高时钟
	ADDI = (channel >> 1) & 0x1;
	_nop_();//延时1us
	_nop_();//延时1us
	ADCLK = 0;//拉低时钟
	ADDI = 1;//输出1
	_nop_();//延时1us
	_nop_();//延时1us
	dat = 0; //存储清零
	for (i = 0; i < 8; i++)	//循环8次
	{
		dat |= ADDO;//读取引脚
		ADCLK = 1; //拉高时钟
		_nop_();//延时1us
		_nop_();//延时1us
		ADCLK = 0;//拉低时钟
		_nop_();//延时1us
		_nop_();//延时1us
		dat <<= 1;//左移
		if (i == 7) dat |= ADDO;//读取引脚
	}

 

  • 有需要资料的可了解一下.docx

相关推荐

电子产业图谱