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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5120|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)解2262碼 315兆無線模塊源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76127 發(fā)表于 2015-4-8 21:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)解2262無線電遙控碼 成功后用串口輸出
作者  rewtewer
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit p00=P0^0;
sbit p01=P0^1;
sbit p02=P0^2;
sbit p03=P0^3;
sbit p04=P0^4;
sbit p05=P0^5;
sbit p06=P0^6;
sbit p07=P0^7;
sbit p32=P3^2;
sbit p34=P3^4;
sbit p35=P3^5;
sbit p36=P3^6;
sbit p37=P3^7;
sbit p11=P1^1;//繼電器輸出;
sbit p12=P1^2;//蜂鳴器;
bit ts1;//秒時(shí)鐘;
bit tms100;//100毫秒時(shí)鐘;
bit uf=0;//正在解碼中標(biāo)志位;
bit b;//數(shù)據(jù)碼接收正確并收完成標(biāo)志;
bit bw1,bw2,bw3,bw4,bw10,bw11;
uchar a1;//接收位計(jì)數(shù);
uchar  *p;
uint setdata;
uint  address1;//數(shù)據(jù)幀地址;
uint  dataint1;//數(shù)據(jù)幀數(shù)據(jù);
uint  datatemp[4];
  
void delay(uint a)
{
while(a--);
}
void suma(uint a,uchar b)//數(shù)碼管顯示(動(dòng)態(tài)掃描);
{ //a為要顯示的數(shù),B為要顯示位的位數(shù);
   static uchar b1,b2;
  uchar code sumadata[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

  
  if(a>9)b2=1;
  else b2=0;
  if(a>99)b2=2;
  if(a>999)b2=3;
  if(b1>b2)b1=0;
   if(b1>=b)b1=0;
  P1|=0xf0;
  if(b1==0)P2=sumadata[a%10];
  if(b1==1)P2=sumadata[a%100/10];
  if(b1==2)P2=sumadata[a%1000/100];
  if(b1==3)P2=sumadata[a/1000];
  if(b)P1&=~(0X80>>b1);
b1++;
}
void int0init()//外部中斷初始化;
{

IT0=1;
EX0=1;
EA=1;
uf=0;
}
void timer0init()//定時(shí)器0初始化;
{
  TMOD=0X09;
  TR0=1;
}
void time1init()//定時(shí)器1初始化;
{
  TMOD&=0X0F;
  TMOD|=0X10;
  TH1=0X4B;
  TL1=0XFF;
  TR1=1;
  ET1=1;
  EA=1;
}
/////////////////////////////////////////////////////////////////////
void int0() interrupt 0 //外部中斷處理;
{
uint j;
p05=!p05;
   j=TH0;
   j=j<<8;
   j|=TL0;
   TR0=0;
   TH0=0 ;
   TL0=0;
   TR0=1;
if(!uf)
  {
   if(!TF0)
   {
   if((j<14000)&&(j>10000))
   {
   uf=1,a1=0,p01=!p01;
  datatemp[0]=0;
  datatemp[1]=0;
  datatemp[2]=0;
  datatemp[3]=0;
}
   }
   else TF0=0,uf=0,a1=0;
  }
  else
  {
   
   if(a1<64)
   {
   
if((j>200)&&(j<850))//判斷窄脈沖;
{
p02=!p02;
    datatemp[a1/16]|=0x01<<(a1%16);
  a1++;
}
   
  else
{
  if(j>900&&j<2250) //判斷寬脈沖;
  {
  
  p03=!p03;
  a1++;
  }
  else
  {
   p07=!p07;
   a1=0;
   uf=0;
   
   }
  }
}
}
  if(a1>=64)
  {
if((datatemp[0]==~datatemp[1])&&(datatemp[2]==~datatemp[3]))
{
   address1=datatemp[0];
   dataint1=datatemp[2];
   
  b=1;
}

p00=!p00;
uf=0;
a1=0;
//EA=0;

  }
}

////////////////////////////////////////////////////////////////
void usartinit() //串行通信初始化;
{
/*RCAP2H=(65535-12000000/9600/16 )/256;
RCAP2L=(65535-12000000/9600/16 )&0xFF;
T2CON=0x34; */
RCAP2H=(65535-11059200/9600/16 )/256;
RCAP2L=(65535-11059200/9600/16 )&0xFF;
T2CON=0x34;
TR2=1;
SM0=0;
SM1=1;
REN=1;
SM2=1;
//ES=1;
// EA=1;
}
void time1() interrupt 3 //定時(shí)器1中斷函數(shù),用于系統(tǒng)時(shí)鐘;
{
static uchar a;
  TH1=0X4B;
  TL1=0XFF;
  if(a>=20)a=0;
  if(a<10)ts1=1;
  else ts1=0;
  a++;
  tms100=!tms100;
  bw10=1;
}
void main(void)
{
bit x1,x2;
uchar f,fw1,fw2,fs=4;
IP=0X01;
IPH=0X01;//設(shè)定外部中斷0為最高優(yōu)先級(jí)別;
usartinit();
timer0init();
int0init();
time1init();
while(1)
{
if(b)
{
if(f<2)p=&address1;
  else p=&dataint1;

if(f==0)SBUF=p[0],f++;
else
{
  if(TI==1)
  {
    TI=0;
if(f==1)SBUF=p[1];
  if(f==2)SBUF=p[0];
    if(f==3)SBUF=p[1];
if(f>=4)
{
   f=0,b=0;EA=1;
}
  f++;
}
}
}
if(!b)EA=1,f=0;
delay(100);
if(bw2)
{
if(ts1)fs=4;
else fs=0;
suma(setdata,fs);
}
else fs=4,suma(dataint1,fs);
if(!p35&&!bw1&&!bw2)
{
  delay(4000);
  if(!p35)bw1=1,bw2=1;
}
if(!p35&&!bw1&&bw2)
{
delay(4000);
if(!p35)bw2=0,bw1=1;
}
if(p35)bw1=0;
if(bw2)
{
   if(!p36&&!bw3)
   {
    delay(2000);
if(!p36)
{
  if(setdata<9999)setdata++,bw3=1;
}
   }
   if(p36)bw3=0,fw1=0;
   if(!p37&&!bw4)
   {
    delay(2000);
if(!p37)
{
  if(setdata>0)setdata--,bw4=1;
}
   }
  if(p37)bw4=0,fw2=0;
  if(bw3&&bw11)
  {
    if(fw1<40)fw1++;
else
{
if(setdata<9999)setdata++;
}
  
  }
  if(bw4&&bw11)
  {
  if(fw2<40)fw2++;
  else
  {
if(setdata>0)setdata--;
  }
  }
}
bw11=0;
if(dataint1>=setdata&&!x1&&x2)x1=1;
if(dataint1<setdata)x1=0,x2=1;
if(!p34)
{
   delay(2000);
   if(!p34)x1=0,x2=0;
}


if(x1)
{
if(ts1)p11=0,p12=1;
else p11=1,p12=0;
}
else p11=1,p12=1;

if(bw10)bw11=1;bw10=0;
if(TF0)uf=0;
}
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:77387 發(fā)表于 2015-5-10 11:47 | 只看該作者
不錯(cuò),收藏了
回復(fù)

使用道具 舉報(bào)

板凳
ID:79329 發(fā)表于 2015-5-10 17:40 | 只看該作者
樓主牛逼
回復(fù)

使用道具 舉報(bào)

地板
ID:66287 發(fā)表于 2015-5-28 16:03 | 只看該作者
樓主牛
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人精品 | 高清久久 | 午夜私人影院在线观看 | 国产成人综合av | 日韩高清www | 鲁一鲁资源影视 | 91精品国产91久久久久游泳池 | 国产激情91久久精品导航 | 精产国产伦理一二三区 | 国产成人免费视频网站视频社区 | 亚洲xxxxx| 亚洲一区二区三区免费 | 国产精品无码专区在线观看 | 中文字幕在线不卡播放 | 韩国毛片视频 | 欧美a在线看 | 一级免费毛片 | 亚洲精品视频一区 | 日本啊v在线 | 国产一区二区免费 | 日本高清视频在线播放 | avmans最新导航地址 | 国产精品国产馆在线真实露脸 | 久久久久久亚洲精品 | 在线免费观看a级片 | 免费看啪啪网站 | www日日日 | 久久久久久www | 91久久夜色精品国产网站 | 国产在线中文 | 91精品国产综合久久婷婷香蕉 | 在线免费观看视频黄 | 久久亚洲一区二区三 | 欧美中文字幕一区二区三区亚洲 | 亚洲福利在线视频 | 九九热在线免费视频 | 午夜不卡福利视频 | 国产一区在线免费 | 在线一区视频 | 欧美午夜视频 | 一区中文字幕 |