一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: LBQ691477940
收起左侧

[51单片机] 用STC12C2052-1T单片机学习型红外遥控开关

  [复制链接]
发表于 2011-4-26 12:35 | 显示全部楼层
把阅读权限下降一点,让大家都学习一下不是更好
 楼主| 发表于 2011-4-26 12:43 | 显示全部楼层
楼上的朋友只有把阅读权限设在比较合适的位置才有利于看到更多的好作品不是吗?说权限高的几乎都是去年就注册了到现在都还未达到一定的权限说明什么呢?不就是很少发贴分享你自己的杰作和只看贴不回贴的原因吗!
发表于 2011-4-29 09:46 | 显示全部楼层
很好  这个用途很大  希望楼主把源程序发出来共享一下  非常感谢!
发表于 2011-4-30 10:52 | 显示全部楼层
指正:               STC12C2052学习型2路红外遥控开关
P3.6  =  1路 按钮开关低电平有效  (STC12C2052 没有3.6端口)
P3.7  =  2路 按钮开关低电平有效

另外测试了程序也不正常!希望楼主改正!
 楼主| 发表于 2011-4-30 17:06 | 显示全部楼层
指正:               STC12C2052学习型2路红外遥控开关
P3.6  =  1路 按钮开关低电平有效  (STC12C2052 ...
DIY 发表于 2011-4-30 10:52 [url=https://www.yleee.com.cn/images/common/back.gif]https://www.yleee.com.cn/images/common/back.gif[/url]



    注释文字没改 请参考电路图上的接法,请问程序有什么问题?谢谢!
发表于 2011-5-5 14:12 | 显示全部楼层
呵呵 原理图看不清楚没仔细看  程序正常 。STC12C2052学习型4路单稳态红外遥控开关可以实现吗?开关按一下 输出一个1秒的低电平 想把这个用在遥控钟上面 用P1口低4位显示输出 高4位控制输出 P3低4位开关  劳驾  留个地址 可以送19264蓝模液晶模块给你意思意思
发表于 2011-5-6 20:35 | 显示全部楼层
阅读权限太高了
发表于 2011-5-7 09:25 | 显示全部楼层
好东西,记号一个,以后用得着。
发表于 2011-5-7 12:12 | 显示全部楼层
LBQ691477940 楼主    在吗?
发表于 2011-5-25 09:21 | 显示全部楼层
/******************************************************************************************
pt2262解码软件修正版
使用了位操作代替前版本的位寻址,使用三个字节变量存储获取的数据,便于以后将地址和数据进行操作
增加了两次数据比对的功能,降低误码的干扰
2007.8.24
接受模块的信号输出端接INT0中断口。。。
P1.0,p1.1上接LED显示接受的情况。。。
用pt2262无线遥控器解码测试通过。。。
注意:使用的是4M的晶振以减少mcu对接受模块的干扰。。。
程序开发:
运行平台:51hei单片机开发板+315m无线模块,用杜邦线连接.
使用时可能要改变检测的特征值,视遥控的中心频率而定,可以通过pt2262上的电阻改变*******************************************************************************************/
#include <reg52.h>
unsigned int tmp,t1=0;
unsigned char i9=0,t2;
char *dataTMP;
unsigned char dataTMP0,dataTMP1,dataTMP2,datacheck;
unsigned  char bdata oeCON;
sbit UD0=oeCON^0;
sbit UD1=oeCON^1;
sbit OC0=oeCON^2;
sbit OC1=oeCON^3;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p32=P3^2;
bit flagF=1,press;
void up_down();
void open_close();
void delay(unsigned char);
void main()
{ IT0=1;
EX0=1;
TMOD=0x09;
EA=1;
TR0=1;
P3=0xff;
UD0=1;
UD1=0;
OC0=1;
OC1=0;
while(1)
{ p10=p32;
if(datacheck==0xff)
{
  /**********编码解析后执行代码*******************

  ***********************/
}   
}
/*************************************************************
中断服务程序
通过探头flagF的值判断是否接收到sync信号
接收到的数据存入dataTMP的三个变量中
连续按键的确认:
   等待i9的值变为0;
延时
   再次检测i9的值是否为0;
   是0则认为按键中止。
*************************************************************/
int0() interrupt 0
{
tmp=TH0*256+TL0;
TH0=0x0;
TL0=0x0;
if(flagF)
{
  if(tmp>1295&&tmp<1300)
  {p11=~p11;flagF=0;}
}
else
{
   if(i9<9) dataTMP=&dataTMP0;
            else
   {dataTMP=i9<17?(&dataTMP1):(&dataTMP2);}
   (*dataTMP)<<=1;
  if(tmp>100&&tmp<150)
   (*dataTMP)=(*dataTMP)|0x01;
  else if(!(tmp>10&&tmp<100))
   {
   flagF=1;
   i9=0;     
   }
  
  if(i9==24)
  {
   if(datacheck!=dataTMP2)
   datacheck=dataTMP2;
   else
   datacheck=0xff;  /*按键确认*/
  }
  i9++;
}
}
/*******************
延时函数
  时间:1-2s
*******************/
void delay(unsigned char k)
{unsigned char i;
for(i=0;i<k;i++)
for(tmp=0;tmp<10300;tmp++);  
}

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-28 13:33 , Processed in 0.047617 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表