佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1640|回复: 7

ir remote control

[复制链接]
发表于 7-8-2013 01:21 PM | 显示全部楼层 |阅读模式
i. 你要想做什么? 你的应用是什么?
我想做一个IR remote control来控制led的开关
ii. 你想要拿到什么效果
一个push button 对应一个led,按了push button有关的led就ON
iii. 你做了什么
在proteus simulate了我的program,program是我在网上找的(16f877a),我把它该去18f4520
iv. 你遇到了什么问题。
我的program可以在mplab simulate,但是在Proteus simulate得不到OUTPUT
v. 你用什么MCU?
p18f4520
vi. 你用什么语言? ASM /C/PICBasic/Keil?Compiler 版本?
c language-- mplab c18
vii. 有源码吗? 如是抄来的请注明出处, 请放链接。
tx
#include <p18f4520.h>
#pragma config PBADEN=OFF
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config DEBUG=ON
#pragma config OSC=HS
#define _XTAL_FREQ 20000000


#include <usart.h>
#include <pwm.h>
#include <timers.h>
void main()
{
         TRISB=0x0F;
         TRISCbits.TRISC6 = 0;     //initializing port as per datasheet p201
         TRISCbits.TRISC7 = 1;
         RCSTAbits.SPEN = 1;     
      
                     
     OpenUSART(USART_TX_INT_OFF &  
     USART_RX_INT_OFF &
     USART_ADDEN_OFF &  
     USART_ASYNCH_MODE &  
     USART_EIGHT_BIT &
     USART_CONT_RX &  
     USART_BRGH_LOW, 255);      


        TRISCbits.TRISC2 =0;
        T3CON=0x81;
        OpenTimer2(TIMER_INT_OFF & T2_PS_1_1 &T2_POST_1_1);
        SetDCPWM1(65);
        OpenPWM1(130);
   
        while(1)
        {
                if(PORTBbits.RB0==0)
                        {
                putrsUSART((const far rom char*) "a" );
                        }
                else if(PORTBbits.RB1==0)
                        {
                                putrsUSART((const far rom char*) "b" );
                        }
                else if(PORTBbits.RB2==0)
                        {
                                putrsUSART((const far rom char*) "c" );
                        }
                else if(PORTBbits.RB0==0)
                        {
                                 putrsUSART((const far rom char*) "d" );
                        }
        }
}


RX
#include <p18f4520.h>
#pragma config PBADEN=OFF
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config DEBUG=ON
#pragma config OSC=HS
#define _XTAL_FREQ 20000000

#include <usart.h>
unsigned char RxData;
void main()
{
         TRISCbits.TRISC6 = 1;     //initializing port as per datasheet p201
         TRISCbits.TRISC7 = 1;
         RCSTAbits.SPEN = 1;     


     OpenUSART(USART_TX_INT_OFF &  
     USART_RX_INT_OFF &
     USART_ADDEN_OFF &  
     USART_ASYNCH_MODE &  
     USART_EIGHT_BIT &
     USART_CONT_RX &  
     USART_BRGH_LOW, 255);  

     while(1)
        {
             RxData = ReadUSART();
                        if(RxData=='a')
                        {
                                PORTDbits.RD0=1;
                        }
                        else if(RxData=='b')
                        {
                                PORTDbits.RD1=0;
                        }
                        if(RxData=='c')
                        {
                                PORTDbits.RD2=1;
                        }
                        if(RxData=='d')
                        {
                                PORTDbits.RD3=1;
                        }
        }
}
viii. 有电路图吗?
http://s1294.photobucket.com/user/golden4787/media/NewBitmapImage_zpsc025bb53.png.html
ix. 你google 了吗? 你的搜索关键字是什么?
IR transmit,receiver
x. 有照片证明你做的东西吗?还是只是概念性的空谈?
xi. 是你自己的问题? 还是你帮人问的? 请说明
我的fyp想用remote control。。。谢谢





本帖最后由 golden4787 于 7-8-2013 02:05 PM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 7-8-2013 03:05 PM | 显示全部楼层
只要开关而已对吗?用sc2262跟2272来做会更简单吧!
回复

使用道具 举报

发表于 7-8-2013 05:38 PM | 显示全部楼层
【教学】简易IR 遥控电路 (16/03/2009 新增4ch 遥控概念)
http://cforum2.cari.com.my/forum.php?mod=viewthread&tid=1159631
回复

使用道具 举报

 楼主| 发表于 8-8-2013 03:23 PM | 显示全部楼层
GueyWee 发表于 7-8-2013 03:05 PM
只要开关而已对吗?用sc2262跟2272来做会更简单吧!

我之后需要加lcd 和其他功能在同一个pic
谢谢你的意见
回复

使用道具 举报

 楼主| 发表于 8-8-2013 03:30 PM | 显示全部楼层
pic 发表于 7-8-2013 05:38 PM
【教学】简易IR 遥控电路 (16/03/2009 新增4ch 遥控概念)
http://cforum2.cari.com.my/forum.php?mod=vi ...

我的program也是根据这贴的circuit和program来写的。。。但是我只有p18f4520,所以必须转去p18f的program。。。
但是我不懂我写的program或circuit是否正确,应为我之前没学过rs232和pwm。。
谢谢pic大大
回复

使用道具 举报

发表于 8-8-2013 04:11 PM | 显示全部楼层
golden4787 发表于 8-8-2013 03:30 PM
我的program也是根据这贴的circuit和program来写的。。。但是我只有p18f4520,所以必须转去p18f的program ...

1. 模拟试试 U1 RC6(TX) 直接接去U2RC7 (RX)。
2. 测量U1 RC2 ,是否有38Khz 的carrier。
回复

使用道具 举报

Follow Us
 楼主| 发表于 14-8-2013 08:20 PM | 显示全部楼层
pic 发表于 8-8-2013 04:11 PM
1. 模拟试试 U1 RC6(TX) 直接接去U2RC7 (RX)。
2. 测量U1 RC2 ,是否有38Khz 的carrier。

我模拟了rc6去rc7,可以function...但是加了rc2 ,and gate, ir 就不行了。。。
请问如何在proteus check carries?
谢谢
回复

使用道具 举报

发表于 17-8-2013 10:42 AM | 显示全部楼层
golden4787 发表于 14-8-2013 08:20 PM
我模拟了rc6去rc7,可以function...但是加了rc2 ,and gate, ir 就不行了。。。
请问如何在proteus check  ...


要活用。。你当然不能加上 gate, RC2, IR, proteus 没有那个model

你要检查有没有carrier, 就是用scope 示波器看。。



回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 29-3-2024 12:39 AM , Processed in 0.053916 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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