⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8870try.c

📁 AT89c2051控制9200b发双音频码用8870解码并将BCD码返回AT89C2051,然后比较的源代码和Hex文件。
💻 C
字号:
#include<At89x51.h>
#include<INTRINS.H>
unsigned int out,in,ms,zd0,zd1,i;
//unsigned int shu[]={0xcc,0xcd,0xce,0xcf,0xdc,0xdd,0xde,0xdf,0xec,0xed,0xee,0xef,0xfc,0xfd,0xfe,0xff};
unsigned int shu[]={0xcc,0xcd,0xce,0xcf,0xdc,0xdd,0xde,0xdf,0xec,0xed,0xee,0xef,0xfc,0xfd,0xfe,0xff};
void zhongduan0(void) interrupt 0 using 0 //8870 over
{
 in=P3;zd0=1;
}

void zhongduan1(void) interrupt 2 using 2 //button
{
 zd1=1;
}

void timer1(void) interrupt 3 using 3 //定时器1程序
{
 TH1=0xfc;TL1=0x16;ms--;
}

void delay(unsigned int s) //1 ms延时程序
{
 TR1=1;
 ms=s;
 while(ms){;}
 TR1=0;  
}
void start(void) //初始化程序
{
 TMOD=0x11;TR0=0;TR1=0;IT1=1;EA=1;PT0=1;P1=0xff;P3=0xff;
 ET1=1;EX1=1;EX0=1;TH1=0xfc;TL1=0x16;out=1;IT0=1;zd0=0;
}

void main(void) 
{
 start();
S: 
 while(1)
 {
  P1=out;
  i=1;
  P1_6=1;
  delay(10);
  P3_7=0;
  delay(100);
  P3_7=1;
  P1_6=0;
  if(out>=10){P1=(out-10);P1_5=1;} else P1_5=0;
  delay(10);
  while(!zd0){delay(10);i++;if(i>=100)break;}
  in=(in|0xcc);
  if(in==shu[out]){out++;zd0=0;}
  else break;
  in=P3;
  if(in!=0)zd0=1;
  if(out>=16)break;
 }
 while(1)
 {
  zd1=0;if(P1_6==1)P1_6=0;
  if(out>=16){P1_7=1;if(zd1){zd1=0;P1_7=0;out=1;goto S;}}
  else {P1_7=1;delay(200);P1_7=0;delay(200);if(zd1){zd1=0;out=1;goto S;}}
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -