有没有哪位驯龙高手3预告帮我讲解一下下面这两个原理图的原理

已解决问题
有哪位高手可以告诉我声光控电路的原理图
有哪位高手可以告诉我声光控电路的原理图
浏览次数:52
用手机阿里扫一扫
最满意答案
声光控电子开关电路图,电路由交流开关,电子开关,整形电路,检波器,声音放大电路组成。一种利用声、光双重控制的无触点开关。晚上,光线变暗时,可用声音自动开灯,定时40s左有后,自动熄灭,白天光线充足时,无论多大的声音干扰也不能开灯。它特别适用于住宅楼、办公楼楼道、走廊、仓库、地下室、厕所等公共场所的照明看自动控制,是一种集声、光、定时于一体的即节电又方便的自控开关。工作原理如图,它是该声、光定时开关原理方框图。由压电陶瓷蜂呜片、声音放大、检波、整形、光控、电子开关、定时电路和交流开关所组成。工作原理如图所示。陶瓷压电蜂呜片B把声音变成直流控制电压。白天,光电二极管vD6受光后,阻值变小,集成电路A的13脚电位被箍位到⑦脚地电位,则⑤脚呈低电位,C4内无电荷。⑧脚呈低电位,晶闸管vs截止,灯泡不亮。在Vs截止时,直流电压经R1降压后加到滤波电容c2、稳压二极管vD5上端,对c2充足电。当充到A的14脚与⑦脚为4v直流电压即可。vD5为稳压值4v左右的稳压二极管,以保证c&2两端电压不超过5v。天黑无光照射vD6时,vD6阻值变大,13脚电位将上升到开启电压值,A内部的电子开关受声控而工作,把c2储存的电荷通过⑤脚转储到c4中,则⑤脚电位上升C4通过K6把直流电压送到l0脚放大.经输出8脚通过限流电阻R2给vS控制端个正偏电压,VS导通,灯泡燃亮。发光40S左右,以放电完毕,8脚电位为低电位,VS问极无触发电压并处r反偏状态.则v3又断电灯熄火。灯泡发光时间的长短是由[时间常数R6、C4的参数所决定。R1、R2分别具有降压和减小对vs启动冲力电流.保护灯泡之功能,使灯泡寿命延长。C1为抗干忧电容.用于消除灯泡发光抖动现象。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok查看: 6673|回复: 17
发一个C51红外遥控解码程序,写的很巧妙,看的有点晕,哪位高手能再详细的解释一下,或再发些易
#include&reg52.h&
#define uint unsigned int
#define uchar unsigned char
sbit smglk=P1^0;//数码管锁存
sbit rs=P2^6;
sbit lcdcs=P2^7;
sbit lcdwr=P2^5;//保持低电平
sbit Rec=P3^2;//红外线接收头&&
sbit re=P3^4;//红外线接收头
void delay(uint ms)
& & & & uint i,j;
& & & & for (j=0;j&j++)
& & & & & & & & for (i=0;i&120;i++);
void delayus(uint us)
& & & & uint i,j;
& & & & for (j=0;j&j++)
& & & & & & & & for (i=0;i&12;i++);
/////////////////////////////////////////////////////////
void write_command(uchar command)
& & & & rs=0;
& & & & P0=
& & & & lcdcs=1;
& & & & lcdcs=0;
void write_data(uchar data0)
& & & & rs=1;
& & & & P0=data0;
& & & & lcdcs=1;
& & & & lcdcs=0;& & & &
void init_1602()
& & & & lcdwr=0;//读信息;
& & & & delay(15);
& & & & write_command(0x38);
& & & & delay(5);
& & & & write_command(0x0c);
& & & & delay(5);
& & & & write_command(0x06);
& & & & delay(5);
//////////////////////////////////////////////////////////////
void changeIO()
& & & & Rec=
//////////////////////////////////////////////////////////////
void main()
& & & & uchar&&j;
& & & & uchar i,key_value,remote_
& & & & uchar hwx_type[]=&REMOTE_TYPE:???&;//类型
& & & & uchar hwx[]=&KEY_VALUE:???&;//键值
& & & & smglk=0;
& & & & TMOD=0x01;
& & & & TR0=1;&&
& & & & init_1602();//初始化液晶
/////////////////////////////////////////////
& & write_command(0x80&&); //液晶显示位置
& & & & delay(5);
& & & & for (j=0;j&sizeof(hwx_type)-1;j++)
& & & & & & & & write_data(hwx_type[j]);
& & & & & & & & delay(5);
/////////////////////////////////////////////
& & write_command(0x80+0x40 ); //液晶显示位置
& & & & delay(5);
& & & & for (j=0;j&sizeof(hwx)-1;j++)
& & & & & & & & write_data(hwx[j]);
& & & & & & & & delay(5);
/////////////////////////////////////////////
& & & & while(1)
& & & & & & & & while(Rec)
& & & & & & & & {changeIO();
& & & & & & & & }; //等待接收信号
///////////////////////////////////////////////////////////////////////////////
& & & & & & & & t=(TH0&&8)+TL0; //取得脉冲宽度
& & & & & & & & if(t&168&&t&800); //0
& & & & & & & & & & & & else
& & & & & & & & & & & & & & & & if(t&1100&&t&1800) //1
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & if(i&8)
& & & & & & & & & & & & & & & & & & & & & & & & remote_type|=1&&(i-9);//取识别遥控器类型
& & & & & & & & & & & & & & & & & & & & if(i&24)//取出最后一字节
& & & & & & & & & & & & & & & & & & & & & & & & key_value|=1&&(i-25);//取按键值
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & else //重新解码
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & remote_type=0;
& & & & & & & & & & & & & & & & & & & & key_value=0;
& & & & & & & & & & & & & & & & & & & & i=0;
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & &
& & & & & & & & if(i++==32)
& & & & & & & & {
& & & & & & & & & & & & //P1=key_
& & & & & & & & & & & & if(remote_type==189) //识别遥控器,这里的几个判断你注意看哈,改成你的遥控器的
& & & & & & & &&&& & & &&&{
& & & & & & & & & & & & & & & &&&if (key_value==247)//1按键
& & & & & & & & & & & & & & & &&&{
& & & & & & & & & & & & & & & & & & & & & & & & P1=0
& & & & & & & & & & & & & & & &&&}
& & & & & & & & & & & & & & & &&&if (key_value==242)//0按键
& & & & & & & & & & & & & & & &&&{
& & & & & & & & & & & & & & & & & & & & & & & & P1=0x00;
& && && && && &&&}
& & & & & & & & & & & && & }& & & &
& & & & & & & & & & & &
///////////////////////////////////////////////////////////////////////
//显示遥控器类型
& & & & & & & & & & & & hwx_type[12]=(remote_type/100)%10 + '0';//赋值百
& & & & & & & & & & & & hwx_type[13]=(remote_type/10)%10 + '0';//赋值十
& & & & & & & & & & & & hwx_type[14]=(remote_type%10&&+ '0');//赋值个
& & & && && && &write_command(0x80); //液晶显示位置
& & & && &&&& & & & delay(5);
& & & & & & & &&&& & & & for (j=0;j&sizeof(hwx_type)-1;j++)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & write_data(hwx_type[j]);
& & & & & & & & & & & & & & & & delay(5);
& & & & & & & & & & & & }
///////////////////////////////////////////////////////////////////////
//显示按键值
& & & & & & & & & & & & hwx[10]=(key_value/100)%10 + '0';//赋值百
& & & & & & & & & & & & hwx[11]=(key_value/10)%10 + '0';//赋值十
& & & & & & & & & & & & hwx[12]=(key_value%10&&+ '0');//赋值个
& & & && && && &write_command(0x80+0x40); //液晶显示位置
& & & && &&&& & & & delay(5);
& & & & & & & &&&& & & & for (j=0;j&sizeof(hwx)-1;j++)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & write_data(hwx[j]);
& & & & & & & & & & & & & & & & delay(5);
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & &&&& & & & while(!Rec)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & changeIO();
& & & & & & & & & & & & };
& & & & //////////////////////////////////////////////////////////////////////////////////////
& & & & & & & & & & & & TL0=0; //重新计时
& & & & & & & & & & & & TH0=0;& & & & & & & & & & & & & & & & & & & & & & & &&&
这个程序是用定时器判断高电平宽度的,它们都是0.56ms低电平开始,然后0.56ms高电平是0,1.12ms高电平是1。但是这个定时器初值是O,没有中断,也没有中断服务函数,而且程序一开始就启动定时器计时。红外接收头是接在P3,2口上的没有接在P3,4口上。
那位高手能解释一下呢!不可能没有人看懂的。还望高手指点。
mark,待学习
回复【楼主位】xfdr
-----------------------------------------------------------------------
这是硬件原理图 (原文件名:原理图.pdf)
这个是红外遥控原理 (原文件名:红外线遥控原理.doc)
另外还有一个方法就是用定时器的门控位(在TR0为1时且GATE也为1时才开始计时)测量高电平的时间长短来判断是0还是1,在9MS低电平和4.5MS高电平过后,开始解码,一共是32位  如果计数值小于840说明是0,如果大于840的话说明是1
if(tt&840)
if(tt&840&&tt&1120)
{temp&=0x01;
if(i++==16)
key_value=
在9MS低电平和4.5MS高电平过后,这句话该怎么编写呢,平时红外接收头是高电平而且还有4.5MS的高电平呢。请高手指点!谢谢。
回复【7楼】xfdr
-----------------------------------------------------------------------
哈哈!终于让我给看懂了!这个解码程序挻简洁的,思路也不错,值得学习。另外一个思路就是上面提到的那个,两种方法大同小异。
while(Rec)//这里是等待高电平结束,如果没有结束则继续计时,
changeIO();
}; //等待接收信号
///////////////////////////////////////////////////////////////////////////////
t=(TH0&&8)+TL0; //取得脉冲宽度
。。。。。。。。。。。。中间省略掉一些
&&while(!Rec) //这里是等待高电平来后再计时,否则继续等待
changeIO();
//////////////////////////////////////////////////////////////////////////////////////
TL0=0; //高电平一来就重新开始计时&&
有&while(!Rec) //这里是等待高电平来后再计时,否则继续等待&
就不能称为巧妙,只是能解码,单任务,不实用
回复【9楼】daicp
有&while(!rec) //这里是等待高电平来后再计时,否则继续等待&
就不能称为巧妙,只是能解码,单任务,不实用&&
-----------------------------------------------------------------------
我也是个新手,我只是觉得这个程序比网上的那些简洁了好多,比较直观,也算容易理解吧,
我想这个对于新手还是好理解的吧。
期待有更好的解码方法。
通过硬件计数器,你可以设置一个软件的计数器,这样就灵活一些了
回复【10楼】xfdr
回复【9楼】daicp&&
有&while(!rec) //这里是等待高电平来后再计时,否则继续等待&&&
就不能称为巧妙,只是能解码,单任务,不实用& &
-----------------------------------------------------------------------
我也是个新手,我只是觉得这个程序比网上的那些简洁了好多,比较直观,也算容易理解吧,
我想这个对于新手还是好理解的吧。
期待有更好的解码方法。
-----------------------------------------------------------------------
可以试试用定时中断来处理,不要用等待的延时方法
回复【15楼】daicp
-----------------------------------------------------------------------
是不是能用中断的地方最好不用延时啊。这样是不是用了中断?就是把定时器的启动方式设置为用门控位来测量脉冲宽度不也很好吗,当门控位为高时就开始计时,结束时算出脉冲宽度,就可以判断0和1了,
阿莫电子论坛, 原"中国电子开发网"
, 原www.ourdev.cn, 原www.ouravr.com电源高手制作1500W逆变器(附带主板原理图+PCB)
11:47:32编辑:神话 关键字:&&
下图为EE55做的主变,因为这个是12V输入,我采用了完全的输入输出全隔离设计,所以变压器一共有3个绕组,稍后放出变压器的详细规格书,大家一看便知。
  下面是变压器的绕制数据,大家可以根据现在的一些材料用上都可以,尽量做到漏感足够小,否则40V的1404在12V下可能会受不了哦:如果看不清楚,请点击图片,即可。
  下面的是由3对IRF1404的管子担任升压部分的工作,我将散热器分离的,这样的好处是利用单面PCB好装配,下面不用垫东西,管子又能直接扭在了散热器上,以最佳的热传导的方式利于散热处理,我的电源是12V 130A的,输出AC功率到了1100W的时候,散热器微温,此时都没有用风扇。所以IRF1404在这里用上还是非常不错的,板子的位置是4对,我只安装的3对管子,有钱的兄弟,或者喜欢玩的哥们可以直接上4对,在频率40KHZ下从EE55里头出来没有任何问题。
  仔细看看下图左边散热器位置有个RT位置,这个是安装NTC温度传感器的地方,稍后我会拍出它的模样,并且放上参数。他是用来控制风扇的,做到温控风扇的效果。
  附上正品IRF1404照片:
升压部分的MOSFET每个栅极电阻我都是用的10R电阻。
  下图的7815边上的IRF3205是做反接保护的,也是采用直接接散热器的方式固定,这样好处是非常容易安装,电池的负极也能直接打在散热器上固定,用螺丝的方式,比焊接的方式来的更加可靠和方便。这个散热器顶部就有2个4MM的螺丝空位,可以将电池负极的铜鼻子直接打在上面。
  那个U5位置可以在24V机器上输入用的,如果是24V输入,需要将U5装上7812给UC3525供电,本次机器是12V输入,所以我直接将该元件短路了。
  边上有4个高压整流二极管,我这里采用了RHRP8120,因为我手头没有RHRP860管子了,所以只好用了这个管子,大家直接用RHRP860即可,不要用1200V的管子,浪费而且影响效率。
  下图这个芯片 是UC3525芯片,
  我这个UC3525是TI公司的。可以直接用别的规格代替,比如SG3525,KA2525芯片.......。
  下图基本上就是主板上全部的控制电路了,是不是非常的简单的。所有元件都是非常好找到,并且没有特殊的元件,我这个是尽量做成最简单,用最少的元件做到完善的功能,因为简单就不容易出问题,也容易调试。
  下图是7815的稳压器,专门用来给后极供电,前后级就从这里开始分离了。2个Y电容是用来做电磁辐射处理的,这是在给输入回路降噪,保证散热器上有极低的辐射噪音。后极也有单独的,用来接机壳到地的,下面的图就可以看到。
关键字:&&
来源: 互联网
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
实验功能:通过KEY1按键来控制W25Q128的写入,通过另外一个按键KEY0来控制W25Q128的读取。硬件电路:软件配置://以下是SPI模块的初始化代码,配置成主机模式
&//SPI口初始化//这里针是对SPI1的初始化void SPI1_Init(void){ & GPIO_InitTypeDef &GPIO_InitS SPI_InitTypeDef &SPI_InitS& RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟
最近做了个小东西,使用的是很简单的一个单片机STC15F104W,但是功能很好用。这里简单介绍下本人使用STC15F104W实现的PWM脉冲高电平方式。本人要捕获的PWM脉冲周期是20ms,高电平介于1~2ms。主要使用的是外部中断和定时器,STC15F104W有4个外部中断,这里采用外部中断0,可以响应上升沿和下降沿。(P3.2)外部中断0捕获引脚P3.2的上升沿和下降沿:上升沿开启定时器0计时,下降沿终止定时器0计时,这样读取计时寄存器的值即可获得高电平时间:TH0*256+TL0;具体程序段://*******************************************************//函数名
日荷兰奈梅亨 – 埃赋隆半导体(Ampleon)今天宣布推出专为诸如数字视频广播(DVBT)和特高频(UHF)模拟电视等UHF广播应用设计的BLF989射频(RF)功率晶体管。这款140W(平均值——峰值为700W)的晶体管采用埃赋隆最新的Gen9HV高压LDMOS(横向扩散金属氧化物半导体)工艺,是采用该工艺技术的首款广播器件。该器件通常具有>34%的高工作效率(AB类),并且采用陶瓷SOT539封装形式,安装吊耳可有可无。&BLF989具有>40:1的同类最佳的坚固耐用性,同时具有卓越的工作稳定性和产品一致性特性,这有助于射频功率设备制造商的整个design-in和生产过程。&该晶体管能够
KeilMDK 编译警告如下:.\Output\STM32.axf: Warning: L6304W: Duplicate input file .\output\diskio.o ignored..\Output\STM32.axf: Warning: L6304W: Duplicate input file .\output\ff.o ignored..\Output\STM32.axf: Warning: L6304W: Duplicate input file .\output\sdcard.o ignored.分析原因:警告,重复的输入文件查找工程目录,发现一个文件被两次包含,添加到工程下,就是这样了,去除重复的部分
的简单应用方法。&2. 串口转以太网的基本结构图2.1利用W7100A实现的串口转以太网转换器iMCU7100EVB可以不需要额外的设备就能实现‘串口转以太网转换器’,这是因为iMCU7100EVB中分别含有一个RJ45、RS232以及一个W7100A芯片。这篇文档中,使用‘串口转以太网函数’在串行设备和以太网设备之间发送/接收信息更多关于串口的相关信息,请参阅‘如何使用W7100A的UART’。同时,关于以太网的详细信息,请参阅‘如何实现W7100A的TCP’和‘如何实现W7100A的UDP’。&3. 串口转以太网演示本章节将演示具有TCP服务器功能的‘串口转以太网’。iMCU7100EVB在演示中作为一个具有
&&&&& while(1)& PutByte(GetByte());&&&& //回送(Echo-back)接收到的数据}UART在模式1下可以交换使用定时器1(Timer1)和定时器2(Timer2)来设定波特率的值。在这一章节,利用定时器2(Timer2)来设定波特率的值。详细请参考W7100A数据手册。在示例代码中,将SCON寄存器设置为0x50,选择定时器2(Timer2)为波特率产生器模式。为了能够正确的设定波特率的值,还需要将TH2和TL2分别设为0xFF和0xE8。这样设置完成后,波特率的值就是115200bps
热门资源推荐
最新模拟电子文章
最新视频课程
相关热搜器件单片机蜂鸣器工作原理是什么?哪位高手可以指教一下_百度知道
单片机蜂鸣器工作原理是什么?哪位高手可以指教一下
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
贰雨儿知道合伙人
采纳数:31
获赞数:244
这张图片上,三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。
ildzxuanya知道合伙人
ildzxuanya
获赞数:61
很简单的原理,就是用一个口,输出方波,这个方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,还能产生简单的音乐
oldfisher57知道合伙人
oldfisher57
采纳数:418
获赞数:2419
你可以认为蜂鸣器就是一个喇叭。当有一定频率的电流通过时就能发出音来。
匿名用户知道合伙人
3.3V改成你要的电压就OK啦。
yuyijun103知道合伙人
yuyijun103
擅长:暂未定制
用PNP的三极管是错误!
2条折叠回答
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。已解决问题
哪位 高手 帮我分析一下 单片机电动智能小车 的原理图2
各位大哥 ,小弟想知道 这部分电路时实现什么功能的 ,元件都是什么 ,请帮忙 ,谢谢!
浏览次数:44
用手机阿里扫一扫
最满意答案
你这个电路肯定画错了。U14、U15是三端稳压集成电路。比如像LM7805、LM7812等等。实际多少电压输出要看你选择的器件了。你把两个输出并联,是为了提高系统的带载能力,也就是加大输出电流。但是你的电源指示灯画错了。这样子是不会亮的,你要把发光二极管的负极接地,而不是接U14的三脚。追问:这图&不是我画的&,是在网上找的资料&,我也不确定画的对不对
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok

我要回帖

更多关于 驯龙高手另外一只夜煞 的文章

 

随机推荐