qq_34902504 2016-05-15 06:51 采纳率: 50%
浏览 1453

大神求助,请帮将下面的51程序12M晶振控制的程序调成22.1184M晶振控制的程序

/*-----------------------------------------------
Ãû³Æ£ºÒ£¿Ø¼ÌµçÆ÷

------------------------------------------------*/
#include //°üº¬Í·Îļþ£¬Ò»°ãÇé¿ö²»ÐèÒª¸Ä¶¯£¬Í·Îļþ°üº¬ÌØÊ⹦ÄܼĴæÆ÷µÄ¶¨Òå

sbit SSR=P0^0;
sbit IR=P3^2; //ºìÍâ½Ó¿Ú±êÖ¾

/*------------------------------------------------
È«¾Ö±äÁ¿ÉùÃ÷
------------------------------------------------*/

unsigned char irtime;//ºìÍâÓÃÈ«¾Ö±äÁ¿

bit irpro_ok,irok;
unsigned char IRcord[4];
unsigned char irdata[33];

/*------------------------------------------------
º¯ÊýÉùÃ÷
------------------------------------------------*/

void Ir_work(void);
void Ircordpro(void);

/*------------------------------------------------
¶¨Ê±Æ÷0Öжϴ¦Àí
------------------------------------------------*/

void tim0_isr (void) interrupt 1 using 1
{
irtime++; //ÓÃÓÚ¼ÆÊý2¸öϽµÑØÖ[表情]¼äµÄʱ¼ä
}

/*------------------------------------------------
ÍⲿÖжÏ0Öжϴ¦Àí
------------------------------------------------*/
void EX0_ISR (void) interrupt 0 //ÍⲿÖжÏ0·þÎñº¯Êý
{
static unsigned char i; //½ÓÊÕºìÍâÐźŴ¦Àí
static bit startflag; //ÊÇ·ñ¿ªÊ¼´¦Àí±ê־λ

if(startflag)

{
if(irtime=33)//Òýµ¼Âë TC9012µÄÍ·Â룬9ms+4.5ms
i=0;
irdata[i]=irtime;//´æ´¢Ã¿¸öµçƽµÄ³ÖÐøʱ¼ä£¬ÓÃÓÚÒÔºóÅжÏÊÇ0»¹ÊÇ1
irtime=0;
i++;
if(i==33)
{
irok=1;
i=0;
}
}
else
{
irtime=0;
startflag=1;
}

}

/*------------------------------------------------
¶¨Ê±Æ÷0³õʼ»¯
------------------------------------------------*/
void TIM0init(void)//¶¨Ê±Æ÷0³õʼ»¯
{

TMOD=0x02;//¶¨Ê±Æ÷0¹¤×÷·½Ê½2£¬TH0ÊÇÖØ×°Öµ£¬TL0ÊdzõÖµ
TH0=0x00; //ÖØÔØÖµ
TL0=0x00; //³õʼ»¯Öµ
ET0=1; //¿ªÖжÏ
TR0=1;

}
/*------------------------------------------------
ÍⲿÖжÏ0³õʼ»¯
------------------------------------------------*/
void EX0init(void)
{
IT0 = 1; //Ö¸¶¨ÍⲿÖжÏ0ϽµÑØ´¥·¢£¬INT0 (P3.2)
EX0 = 1; //ʹÄÜÍⲿÖжÏ
EA = 1; //¿ª×ÜÖжÏ
}
/*------------------------------------------------
¼üÖµ´¦Àí
------------------------------------------------*/

void Ir_work(void)//ºìÍâ¼üֵɢת³ÌÐò
{

    if(IRcord[2]==0x45)
        SSR = 0;

if(IRcord[2]==0x47)
    SSR = 1;


      irpro_ok=0;//´¦ÀíÍê³É±êÖ¾

}
/*------------------------------------------------
ºìÍâÂëÖµ´¦Àí
------------------------------------------------*/
void Ircordpro(void)//ºìÍâÂëÖµ´¦Àíº¯Êý
{
unsigned char i, j, k;
unsigned char cord,value;

k=1;
for(i=0;i {
for(j=1;j {
cord=irdata[k];
if(cord>7)//´óÓÚijֵΪ1£¬Õâ¸öºÍ¾§ÕñÓоø¶Ô¹Øϵ£¬ÕâÀïʹÓÃ12M¼ÆË㣬´ËÖµ¿ÉÒÔÓÐÒ»¶¨Îó²î
value|=0x80;
if(j {
value>>=1;
}
k++;
}
IRcord[i]=value;
value=0;

}
irpro_ok=1;//´¦ÀíÍê±Ï±ê־λÖÃ1
}

/*------------------------------------------------
Ö÷º¯Êý
------------------------------------------------*/
void main(void)
{

EX0init(); //³õʼ»¯ÍⲿÖжÏ
TIM0init();//³õʼ»¯¶¨Ê±Æ÷

while(1)//Ö÷Ñ­»·
{
if(irok) //Èç¹û½ÓÊÕºÃÁ˽øÐкìÍâ´¦Àí
{

Ircordpro();
irok=0;
}

if(irpro_ok)                   //Èç¹û´¦ÀíºÃºó½øÐй¤×÷´¦Àí£¬Èç°´¶ÔÓ¦µÄ°´¼üºóÏÔʾ¶ÔÓ¦µÄÊý×ÖµÈ
  {
   Ir_work();
  }

}
}

  • 写回答

1条回答 默认 最新

  • 普通网友 2016-10-07 17:09
    关注

    求助,请帮将下面的51程序12M晶振控制的程序调成22.1184M晶振控制的程序
    红外解码c51编程
    /*-----------------------------------------------
    Ãû³Æ£ºÒ£¿Ø¼ÌµçÆ÷
    ------------------------------------------------*/
    #include //°üº¬Í·Îļþ£¬Ò»°ãÇé¿ö²»ÐèÒª¸Ä¶¯£¬Í·Îļþ°üº¬ÌØÊ⹦ÄܼĴæÆ÷µÄ¶¨Òå
    sbit SSR=P0^0;
    sbit IR=P3^2; //ºìÍâ½Ó¿Ú±êÖ¾
    /*------------------------------------------------
    È«¾Ö±äÁ¿ÉùÃ÷
    ------------------------------------------------*/
    unsigned char irtime;//ºìÍâÓÃÈ«¾Ö±äÁ¿
    bit irpro_ok,irok;
    unsigned char IRcord[4];
    unsigned char irdata[33];
    /*------------------------------------------------
    º¯ÊýÉùÃ÷
    ------------------------------------------------*/
    void Ir_work(void);

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧