欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
求助STC15系列單片機解碼EV1527
[打印本頁]
作者:
zerojhy
時間:
2019-4-3 21:13
標題:
求助STC15系列單片機解碼EV1527
虛心請教大家如何改正,STC15系列單片機如何解EV1527的碼
#include "reg51.h"
void Clear_HL();//清零函數
void INTERRUPT_0();//中斷函數開啟條件
void Adress_HL();//地址碼21,15
void Synchronize_01();//同步碼
void key_1();//
#define u16 unsigned int
#define u8 unsigned char
//同步碼比較
#define Synchronize_MIN_H0 3 //高電平最小
#define Synchronize_MAX_H0 10 //高電平最大
#define Synchronize_MIN_H1 100//低電平最小
#define Synchronize_MAX_H1 420 //低電平最大
//地址碼比例2:1,1:5
#define Adress0_MIN_15 8
#define Adress0_MAX_15 10
#define Adress1_MAX_15 45
#define Adress0_MIN_21 30
#define Adress0_MAX_21 35
#define Adress1_MAX_21 15
//引腳定義
sbit IO_HL=P3^1;//DO口檢測外界高低電平
sbit realy=P3^5;//繼電器引腳
//
u8 interrupt1=0;//中斷控制
u8 flage=0;//定時計數標志
u8 Synchronize_0=0;//同步碼標志0
u8 Synchronize_1=0;//同步碼標志1
u8 AD0=0;//計數低電平
u8 AD1=0;//計數高電平
u8 DATA0=0;//
u8 DATA1=0;//
u8 temp=0;//判斷標志
u8 a[25];
void INT_TIME()//定時器中斷時間20us
{
TMOD=0x01;//選擇定時器模式0
TH0=(65536-20)%256;//預置數高八位20us
TL0=(65536-20)/256;//預置數低八位20us
EA=interrupt1;//打開總中斷
ET0=1; //中斷0
TR0=1;//打開定時器
}
void Timer0() interrupt 1 //定時器中斷
{
Synchronize_01();//開始判斷
flage++;//累加標志
TH0=(65536-20)%256;//預置數高八位20us
TL0=(65536-20)/256;//預置數低八位20us
}
//主函數
void main()
{
INTERRUPT_0();//中斷開啟
INT_TIME();//中斷配置函數
Clear_HL();// 清零函數
key_1();//繼電器輸出函數
while(temp==1)
{
flage=0;
AD1=0;
AD0=0;
while(IO_HL==1)
{
AD1=flage;
}
while(IO_HL==0)
{
AD0=flage;
}
if(AD1>=Adress0_MIN_15&&AD1<=Adress0_MAX_15&&AD0>=Adress0_MAX_15&&AD0<=Adress1_MAX_15)
{
DATA1++;
a[DATA1+DATA0]=1;
}
else if(AD1>=Adress0_MIN_21&&AD1<=Adress0_MAX_21&&AD0>=Adress0_MAX_21&&AD0<=Adress1_MAX_21)
{
DATA0++;
a[DATA1+DATA0]=0;
}
}
}
void Synchronize_01()//確定同步碼
{
if(IO_HL==1)
{
Synchronize_1++;
}
else
{
Synchronize_0++;
}
if((flage==460)&&(Synchronize_1>=Synchronize_MIN_H0)&&(Synchronize_1<=Synchronize_MAX_H0)&&(Synchronize_0>=Synchronize_MIN_H1)&&(Synchronize_0<=Synchronize_MAX_H1))
{
temp=1;//若為同步碼則為1
}
}
void INTERRUPT_0()//中斷開啟
{
if(IO_HL==1)
{
interrupt1=1;//開啟中斷
}
}
void Clear_HL()//清零函數
{
if((DATA1+DATA0)==24)
{
u8 i=0;
interrupt1=0;
temp=0;
for(i=0;i<=25;i++)
{
a[i]=0;
}
}
}
void key_1()//反轉
{
if(a[21]==0)
{
realy=1;
}
}
復制代碼
作者:
水深藍
時間:
2019-9-29 11:51
樓主解碼EV1527解決了么
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1