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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3809|回復: 0
收起左側(cè)

大神們幫幫忙卡這了。紅外遙控按鍵按下繼電器吸合松開斷開

[復制鏈接]
ID:208338 發(fā)表于 2017-6-6 11:53 | 顯示全部樓層 |閱讀模式
同上附上程序幫忙修改
謝謝·
主程序/*********************************************************************************************/
#include <STC12C2052AD.H> //頭文件
#include "Infrared.c"
extern bit irflag;
extern unsigned char ircode[4];
extern void InitInfrared(void);
sbit dj11 = P1^7;
sbit dj12 = P1^6;
sbit dj21 = P1^5;
sbit dj22 = P1^4;
sbit LED1 = P1^3;
sbit LED2 = P1^2;
sbit LED3 = P1^1;
/*********************************************************************************************/
/*********************************************************************************************/
void delay (unsigned int a){
unsigned int i;
while( --a != 0){
  for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/
/*********************************************************************************************
函數(shù)名:PWM初始化函數(shù)
調(diào)  用:PWM_init();
參  數(shù):無
返回值:無
結(jié)  果:將PCA初始化為PWM模式,初始占空比為0
備  注:需要更多路PWM輸出直接插入CCAPnH和CCAPnL即可
/**********************************************************************************************/
void PWM_init (void){
CMOD=0x02; //設置PCA定時器
  CL=0x00;
  CH=0x00;
CCAPM0=0x42; //PWM0設置PCA工作方式為PWM方式(0100 0010)
  CCAP0L=0x00; //設置PWM0初始值與CCAP0H相同
  CCAP0H=0x00; // PWM0初始時為0
CCAPM1=0x42; //PWM1設置PCA工作方式為PWM方式(使用時刪除//)
CCAP1L=0x00; //設置PWM1初始值與CCAP0H相同
  CCAP1H=0x00; // PWM1初始時為0
//CCAPM2=0x42; //PWM2設置PCA工作方式為PWM方式
//CCAP2L=0x00; //設置PWM2初始值與CCAP0H相同
  //CCAP2H=0x00; // PWM2初始時為0
//CCAPM3=0x42; //PWM3設置PCA工作方式為PWM方式
//CCAP3L=0x00; //設置PWM3初始值與CCAP0H相同
  //CCAP3H=0x00; // PWM3初始時為0
  CR=1; //啟動PCA定時器
}
/**********************************************************************************************/
/*********************************************************************************************
函數(shù)名:PWM0占空比設置函數(shù)
調(diào)  用:PWM0_set();
參  數(shù):0x00~0xFF(亦可用0~255)
返回值:無
結(jié)  果:設置PWM模式占空比,為0時全部高電平,為1時全部低電平
備  注:如果需要PWM1的設置函數(shù),只要把CCAP0L和CCAP0H中的0改為1即可
/**********************************************************************************************/
void PWM0_set (unsigned char a){
CCAP0L= a; //設置值直接寫入CCAP0L
  CCAP0H= a; //設置值直接寫入CCAP0H
}
/**********************************************************************************************/
/**********************************************************************************************/
void PWM1_set (unsigned char a){
CCAP1L= a; //設置值直接寫入CCAP0L
  CCAP1H= a; //設置值直接寫入CCAP0H
}
  void zz (void){
     dj11=0;
  dj21=0;
  dj12=1;
  dj22=1;
}
  void fz (void){
  dj11=1;
  dj21=1;
  dj12=0;
  dj22=0;}
  void zzw (void){

  dj11=1;
  dj22=1;
  dj12=0;
  dj21=0;}
  void yzw (void){
  dj11=0;
  dj22=0;
  dj12=1;
  dj21=1;}   
  void dz (void){
  dj11=0;
  dj22=0;
  dj12=0;
  dj21=0;}
/***********************************************************************************************/
  void main(void){
  unsigned char a;
PWM_init();
    dz();
    InitInfrared();
   while (1) {
PWM0_set(a);
PWM1_set(a);     
        if (irflag){  //接收到紅外數(shù)據(jù)時刷新顯示
    if(ircode[2]==0x40)zz();
    if(ircode[2]==0x44)fz();
    if(ircode[2]==0x43)dz();
    if(ircode[2]==0x0c)a=100;
    if(ircode[2]==0x18)a=80;
    if(ircode[2]==0x5e)a=60;
    if(ircode[2]==0x08)a=40;
  if(ircode[2]==0x1c)a=20;
  if(ircode[2]==0x5a)a=10;
  if(ircode[2]==0x42)a=5;
  if(ircode[2]==0x52)a=3;
   }}}
       紅外接收程序
sbit IR_INPUT = P3^2;  //紅外接收引腳  38K載波
bit irflag = 0;  //紅外接收標志,收到一幀正確數(shù)據(jù)后置1
unsigned char ircode[4];  //紅外代碼接收緩沖區(qū)
void InitInfrared()
{ EA=1;
IR_INPUT = 1;
TMOD= 0XF1;
TR0 = 0;
ET0 = 0;
IT0 = 1;
EX0 = 1;
}
unsigned int GetHighTime()
{
TH0 = 0;
TL0 = 0;
TR0 = 1;
while(IR_INPUT)
{
  if(TH0 > 0x40)
  {
   break;
  }
}
TR0 = 0;
return(TH0 * 256 + TL0);
}
unsigned int GetLowTime()
{
TH0 = 0;
TL0 = 0;
TR0 = 1;
while(!IR_INPUT)
{
  if(TH0 > 0x40)
  {
   break;
  }
}
TR0 = 0;
return(TH0 * 256 + TL0);
}
void EXINT1_ISR() interrupt 0
{
unsigned char i, j;
unsigned int time;
unsigned char byt;
time = GetLowTime();
if((time <8500) || (time > 9500))//引導嗎9ms低電平   
{
  IE0 = 0;
  return;
}
time = GetHighTime();
if((time<4000) || (time > 5000))  //引導嗎4.5ms高電平
{
  IE0 = 0;
  return;
}
for(i=0; i<4; i++)
{
  for(j=0; j<8; j++)
  {
   time = GetLowTime();
   if((time<360) ||(time >760))
   {
    IE0 = 0;
    return;
   }
   time = GetHighTime();
   if((time>360) && (time <760)) //大約560US左右取樣 低電平”0“
   {
    byt >>= 1;
   }
   else if((time>1490) && (time<1890)) //大約1690US左右取樣 高電平"1"
   {
    byt >>= 1;
    byt |= 0x80;
   }
   else
   {
    IE0 = 0;
    return;
   }
   }
   
  ircode[i] = byt;}
    if(ircode[2]!=~ircode[3]) //反碼檢查
        {
    return;
          }
   
     
irflag = 1;
IE0 = 0;
}

單片機程序.rar

33.49 KB, 下載次數(shù): 4

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产精品 | 亚洲天堂一区 | 96av麻豆蜜桃一区二区 | 国产精品日韩一区二区 | 久久精品国产免费 | 国产福利小视频 | 在线免费观看色 | 久艹网站 | 91 在线| 亚洲国产精品一区二区久久 | 羞羞视频在线观看免费观看 | 久久精品com | 99re视频在线观看 | av资源在线看 | av网站在线播放 | 日韩不卡在线观看 | 亚洲精品一区二区三区在线 | 欧美日韩福利视频 | 91综合网 | 成人特区 | 国产精品久久久久久 | 国产欧美日韩精品一区 | 欧美视频在线播放 | 免费一级毛片 | 国产精品99久久久久久久久久久久 | 国产精品久久久久久久久动漫 | 国产九九九九 | 亚洲在线| 国产精品久久一区二区三区 | 亚洲精品一区在线 | 成人区精品一区二区婷婷 | 五月精品视频 | 国产乱码高清区二区三区在线 | 黄色一级免费 | av大片在线观看 | 色婷婷激情综合 | 999精品视频 | 91久久国产精品 | 久久国产精品视频 | 日韩亚洲欧美一区 | 国产乱码精品1区2区3区 |