久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3094|回復(fù): 1
收起左側(cè)

紅外遙控

[復(fù)制鏈接]
ID:82732 發(fā)表于 2015-9-25 09:48 | 顯示全部樓層 |閱讀模式
#include<12c5a.h>
#define QIANJIN   a=1;b=0;c=1;d=0;
#define HOUTUI    a=0;b=1;c=0;d=1;
#define ZUOZHUAN  a=0;b=1;c=1;d=0;
#define YOUZHUAN  a=1;b=0;c=0;d=1;
#define STOP      a=1;b=1;c=1;d=1;

sbit wei =P0^6;
sbit duan=P0^7;
sbit ting   =P2^7;
sbit xzdj1a =P0^0;//行走電機(jī)
sbit xzdj1b =P0^1;
sbit xzdj2a =P0^2;
sbit xzdj2b =P0^3;

sbit toua  =P0^6;//頭電機(jī)
sbit toub  =P0^7;
sbit shoua =P1^0;//手電機(jī)
sbit shoub =P1^1;
sbit wana  =P1^2;//腕電機(jī)
sbit wanb  =P1^3;
sbit zhoua =P1^4;//肘電機(jī)
sbit zhoub =P1^5;
sbit zhou1a=P1^6;
sbit zhou1b=P1^7;
sbit jiana =P2^0;//肩電機(jī)
sbit jianb =P2^1;
sbit jian1a=P2^2;
sbit jian1b=P2^3;
uchar irtime;    //紅外時(shí)間
uchar startflag; //起始標(biāo)志位
uchar irdata[33];//多少個數(shù)據(jù)
uchar bitnum;    //第幾位
uchar irreceok;  //紅外接收完成
uchar ircode[4]; //用戶碼和鍵值碼4位
uchar irprosok;  //紅外接收結(jié)束
uchar disp[4];   //分離出4位數(shù)據(jù)顯示

uchar code table[]={0xfe,0xfd,0xfb,0xf7};
                                //        0xef,0xbf,0xdf,0x7f};
uchar code smg[]={0xC0,0xF9,0xA4,0xB0,0x99,
                                        0x92,0x82,0xf8,0x80,0x90,0x88,
                                        0x83,0xC6,0xA1,0x86,0x8E};
/*void delay_50ms(uint t)//12m晶振50ms秒延時(shí)
{
        uint j;
        for(;t>0;t--)
        for(j=6245;j>0;j--);
}
void delay_1ms(uint t)//12m晶振1ms秒延時(shí)
{
        uint j,k;
        for(j=t;j>0;j--)
        for(k=120;k>0;k--);
}*/
void delay_50us(uint t)//12m晶振50us秒延時(shí)
{
        uchar j;
        for(;t>0;t--)
        for(j=19;j>0;j--);
}
void timer0init() //定時(shí)器初始化
{
//        TMOD=0X12;//T1方式1.T0方式2
        TMOD=0X02;//T0方式2
        TH0=0X00;//高8位清零
        TL0=0X00;//低8位清零
        EA=1;
        ET0=1;
        TR0=1;        
}
void int0init()//外部中斷1初始化
{
        IT1=1; //下降沿觸發(fā)
        EX1=1; //打開外部中斷1
        EA=1;  // 開總中斷
}
void irwork()//分離16進(jìn)制紅外數(shù)據(jù)
{
        disp[2]=ircode[0]/16;//鍵值碼
        disp[1]=ircode[0]%16;
        disp[3]=ircode[2]/16;//識別碼
        disp[0]=ircode[2]%16;


}
void  shoushen()
{
        shoua=1;
        shoub=0;
}
void  shouzhua()
{
        shoua=0;
        shoub=1;
}
void  wanzuo()
{
         wana =1;
        wanb=0;
}
void  wanyou()
{
         wana =0;
        wanb=1;
}
void zhouzuo()
{
  zhoua=1;
  zhoub=0;
}
void zhouyou()
{
  zhoua=0;
  zhoub=1;
}
void zhoushang()
{
  zhou1a=1;
  zhou1b=0;
}
void zhouxia()
{
  zhou1a=0;
  zhou1b=1;
}
void xzqianjin()
{
        xzdj1a =1;
        xzdj1b =0;
        xzdj2a =1;
        xzdj2b =0;
}
void xzhoutui()
{
        xzdj1a =0;
        xzdj1b =1;
        xzdj2a =0;
        xzdj2b =1;
}
void xzzuozhuan()
{
        xzdj1a =0;
        xzdj1b =1;
        xzdj2a =1;
        xzdj2b =0;
}
void xzyouzhuan()
{
        xzdj1a =1;
        xzdj1b =0;
        xzdj2a =0;
        xzdj2b =1;
}
void jianshang()
{
        jiana=1;
        jianb=0;
}
void jianxia()
{
        jiana=0;
        jianb=1;
}
void jianqian()
{
   jian1a=1;
   jian1b=0;
}
void jianhou()
{
   jian1a=0;
   jian1b=1;
}
void tingsha()
{
        P0=0Xff;
        P2 =0XFF;
        P1=0XFF;
}
void display()//顯示
{
        P2=0xfe;
        wei=1;
        wei=0;
        delay_50us(50);

        P2=smg[disp[0]];
        delay_50us(50);
        duan=1;
        duan=0;
        P2=0xff;

        P2=0xfd;
        wei=1;
        wei=0;
        delay_50us(50);

        P2=smg[disp[1]];
        delay_50us(50);
        duan=1;
        duan=0;
        P2=0xff;

        P2=0xfb;
        wei=1;
        wei=0;
        delay_50us(50);

        P2=smg[disp[2]];
        delay_50us(50);
        duan=1;
        duan=0;
        P2=0xff;

        P2=0xf7;
        wei=1;
        wei=0;
        delay_50us(50);

        P2=smg[disp[3]];
        delay_50us(50);
        duan=1;
        duan=0;
        P2=0xff;

}
/*void display()//顯示
{
        uchar i;        
        for(i=0;i<4;i++)
        {
                duan=1;
                duan=0;
                P2=smg[disp[i]];
                delay_50us(50);
                wei=1;
                wei=0;
                P2=table[i];
                delay_50us(20);
        }
}*/
void irpros()//紅外處理
{
        uchar k,i,j;
        uchar value;   //紅外數(shù)據(jù)值
        k=1;           //從第一個數(shù)據(jù)碼開始
        for(j=0;j<4;j++)//只取出4組碼
        {
                for(i=0;i<8;i++)//8位數(shù)據(jù)循環(huán)8次
                {
                //右移一位。移動7次。從低位開始移
                        value=value>>1;
                //循環(huán)這個判斷語句8次.判斷是1 還是0
                //大于7為 1. 小于7為 0
                        if(irdata[k]>7)
                        {                                
                                value=value|0x80;
                        }
                        k++;
                }
        //把數(shù)據(jù)放到數(shù)組中
                ircode[j]=value;        
        }
        irprosok=1;
}
void main()
{        
        timer0init() ;
        int0init();
        while(1)
        {
                if(irreceok)
                {
                        irpros();
                        irreceok=0;
                }
                if(irprosok)
                {
                        irwork();
                        irprosok=0;
                }
                display();
                switch(ircode[2])
                {
                //        case 0x05: QIANJIN ;break;
                //        case 0x06: HOUTUI  ;break;
                //        case 0x07: ZUOZHUAN;break;
                //        case 0x08: YOUZHUAN;break;
                //        case 0x04: STOP ;   break;

                        case 0x02: xzqianjin(); break;//電視遙控器鍵值
                        case 0x0a: xzhoutui()  ;break;//電視遙控器鍵值
                        case 0x07: xzzuozhuan();break;//電視遙控器鍵值
                        case 0x05: xzyouzhuan(); break;//電視遙控器鍵值
                        case 0x06: tingsha();  break;//電視遙控器鍵值
                        case 0x18: tingsha();  break;

                        case 0x17: shoushen(); break;
                        case 0x14: shouzhua(); break;

                        case 0x16: wanzuo();   break;
                        case 0x13: wanyou();   break;

                        case 0x15: zhoushang();break;
                        case 0x12: zhouxia();  break;

                        case 0x11: zhouzuo();  break;
                        case 0x1a: zhouyou();  break;

                        case 0x10: jianqian(); break;
                        case 0x0e: jianhou();  break;

                        case 0x0f: jianshang();break;
                        case 0x19: jianxia();  break;




                        default:break;
                }        
        }
}
void timer0() interrupt 1//定時(shí)器0中斷服務(wù)函數(shù)
{
        irtime++; //加到255自動清零再加
}
void int0() interrupt 2//定時(shí)器1中斷服務(wù)函數(shù)
{
        if(startflag)
        {
                if(irtime>32)//檢測引導(dǎo)碼
                {
                        bitnum=0;
                }
                irdata[bitnum]=irtime;
                irtime=0;
                bitnum++;
                if(bitnum==33)
                {
                        bitnum=0;
                        irreceok=1;//紅外接收結(jié)束
                }
        }
        else
        {
                startflag=1;
                irtime=0;
        }

}


回復(fù)

使用道具 舉報(bào)

ID:84745 發(fā)表于 2015-10-9 10:54 來自觸屏版 | 顯示全部樓層
看看好用不
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲品质自拍视频网站 | 一区在线观看 | 黄色成人国产 | 成人特区| www.五月天婷婷 | 日韩色在线 | 国产精品福利视频 | 免费h在线 | 国产激情99| 精品一区二区三区四区 | 亚洲国产成人精品女人久久久 | 中文字幕一区二区三区在线观看 | 中文字幕一区二区三区精彩视频 | 亚洲高清视频一区 | 欧美日韩精品一区二区三区四区 | 亚洲成a人片 | 日韩av在线一区二区 | 日本高清视频在线播放 | 成年人免费看 | 午夜影院黄 | 欧美一区视频 | 91免费观看国产 | 国产成人综合网 | 天堂成人国产精品一区 | 亚洲高清视频在线观看 | 日韩成人在线一区 | 亚洲综合字幕 | 欧美一级二级三级视频 | 亚洲人在线| 成人精品鲁一区一区二区 | 7777精品伊人久久精品影视 | 草久久| www.日本国产 | 久久久久一区 | 中文字幕在线播放第一页 | 亚洲精品一区国语对白 | 亚洲自拍偷拍欧美 | 亚洲成人一区二区 | 国产一区二区三区精品久久久 | 免费同性女女aaa免费网站 | 国产精品欧美一区二区三区不卡 |