[北京卫视《养生堂》全集(共862集)【超清视频】ev1527解码
/*ev1527解码,这里使用的是的330k的振荡电阻,电压为12v,查表可得
16LCK=1.44ms,即一个周期LCK=90us,可得4clk=360us,124clk=11160us,
12clk=1080us,编程时需要考虑电压和电阻的误差。用at89s52解码12mhz晶振*/ #include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit P3_2=P3^...
ev1527解码
/*ev1527解码,这里使用的是的330k的振荡电阻,电压为12v,查
可得
16LCK=1.44ms,即一个周期LCK=90us,可得4clk=360us,124clk=11160us,
12clk=1080us,编程时需要考虑电压和电阻的误差。用at89s52解码12mhz晶振*/ #include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit P3_2=P3^2;
/*---------------------------------变量列表---------------------------
---------*/
ulong ReadCode;
/*---------------------------------函数列表---------------------------
---------*/
void delay_200(void); //200us精确延时
void delay_720(void); //720us精确延时
void delay_131(void); //131ms精确延时
void init(void); //初始化子程序
void INT0_intrupt(); //中断处理子程序(解码程序)
/*-----------------------------主程序入口-----------------------------
---------*/
main()
{
init();
while(1)
{
P0=ReadCode&0x0f;
}
}
/*---------------------------------初始化子程序-----------------------
---------*/
void init(void)
{
EA=1; //打开CPU总中断请求
EX0=1; //打开INT0中断请求
IT0=1; //设定INT0的触发方式为脉冲负边沿触发 }
/*-------------------------------200us精确延时------------------------
---------*/
void delay_200(void)
{
uchar i,j;
for(i=0x05;i>0;i--)
for(j=0x12;j>0;j--);
}
/*-------------------------------720us精确延时------------------------
---------*/
void delay_720(void) //误差 0us 720us
{
unsigned char a,b;
for(b=3;b>0;b--)
for(a=118;a>0;a--);
}
/*-------------------------------131ms精确延时------------------------
--------*/
void delay_131(void)
{
uchar i,j;
for(i=0xfe;i>0;i--)
for(j=0xfe;j>0;j--);
}
/*-------------------------外部中断0子程序(解码程序)------------------
---------*/
void INT0_intrupt(void) interrupt 0 using 1 {
uint i;
bit BitState_2;
EX0=0;
//////////////////////////////找起始
位//////////////////////////////////////////
for(i=53;i>0;i--) //重复20次,在3750微秒内出现高电平就退出解
码程序 11160us(这里55.8*200us)
{
delay_200();
if(P3_2==1) goto kk;
}
while(P3_2==0);
///////////////////////////////接收数
据///////////////////////////////////////////
for(i=0;i<24;i++)
{
delay_720();
BitState_2=P3_2;
ReadCode=ReadCode<<1;
ReadCode=ReadCode|BitState_2;
if(P3_2==1) while(P3_2==1);
while(P3_2==0);
}
////////////////////////////////校验及运算数
据/////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////
kk: EX0=1;
}
本文档为【[北京卫视《养生堂》全集(共862集)【超清视频】】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。