打印
[PIC®/AVR®/dsPIC®产品]

求助:一个关于16F74的问题

[复制链接]
1168|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huasanshao0206|  楼主 | 2013-11-4 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟初学单片机,菜鸟一枚,最近写了一个无线通信的程序,用的是PIC16F74,RA3作为无线信号接收脚,平时电平为2.5V左右,程序是这样的:先检测2ms的低电平,再检测高电平,然后开始解码。可是我上电以后什么信号都没发就老是直接开始解码了,测RA3电平也还是2.5V。不知道为什么会直接通过前面的检测进入解码函数。求大神们指教,希望说得详细点,谢谢!
沙发
huasanshao0206|  楼主 | 2013-11-5 10:05 | 只看该作者

使用特权

评论回复
板凳
lnulibin| | 2013-11-5 11:52 | 只看该作者
最好把程序和硬件电路贴出来,大家好研究一下。
这么问不好回答的。

使用特权

评论回复
地板
huasanshao0206|  楼主 | 2013-11-6 10:32 | 只看该作者
lnulibin 发表于 2013-11-5 11:52
最好把程序和硬件电路贴出来,大家好研究一下。
这么问不好回答的。

好的,电路图不在我这,以下是程序:
#include<pic.h>
#define uchar unsigned char
#define uint  unsigned int
#define LRN RA3           
#define A1 RB1
#define RFIN RB0           
#define LED RD2

void delay(uint x);
void receive();
void decode();
void delayus(uchar x,uchar y);
__CONFIG(0x3B31);
void main()
{
        TRISB=0x01;
        TRISD=0;
        TRISA=0xFF;
       
        PORTA=0;
        PORTD=0;
        PORTB=0;
        while(1)
        {
                receive();
        }
}
void receive()
{
        if(RFIN==0)
        {
                delay(2);     //延时2ms
                if(RFIN==0)
                {
                        delay(4);
                        if(RFIN==1)
                                decode();    //解码函数
                        else
                        {
                                delay(10);
                                if (RFIN==0)
                                        return;
                                else
                                        decode();
                        }
                }
                else
                        return;
        }
        else
                return;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

36

帖子

0

粉丝