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

📄 2.txt

📁 一个信号发生器的原代码
💻 TXT
字号:
#include <reg52.h>
#include <stdio.h>
#include <absacc.h>
void key1(void);
void key2(void);
void key3(void);
void key4(void);
void judge(void);

void main(void)
{
 TMOD=0X01;
 TR0=1;
 th=0xff;
 tl=0xd0;
 TH0=th;
 TL0=tl;
 ET0=1;
 EA=1;
 while(1)
  {
   judge();
  }
}

void judge(void)
{
 uchar line,row,de1,de2,keym;
 P1=0x0f;
 keym=P1;
 if(keym==0x0f)return;
 for(de1=0;de1<200;de1++)
     for(de2=0;de2<125;de2++){;}
 P1=0x0f;
 keym=P1;
if(keym==0x0f)return;
 P1=0x0f;
 line=P1;
 P1=0xf0;
 row=P1;
 line=line+row;/*存放特征键值*/

   if(line==0xde)key1();
  if(line==0x7e)key2();
  if(line==0xbd)key3();
  if(line==0x7d)key4();
}

void key1(void)             //1键选择发波类型,1为正弦波,2为三角波,3为方波
{
 fun++;
 if(fun==4)fun=0x00;
 
}

void key2(void)            //2键加大频率
{
 tl++;
 if(tl==0x1f)th++;
}
void key3(void)           //3键减小频率
{
 tl--;
 if(tl==0x00)th--;
}

void key4(void)                     //4键显示频率
{
 double t;
 int f;
 TR0=0;//ET0的区别
 t=(65535-th*256-tl)*0.4;
 f=(int)(1000/t);
 S3=tab[f%10];
 f=f/10;
 S2=tab[f%10];
 f=f/10;
 if(f==0)S1=0;
 else S1=tab[f];
 TR0=1;
}

void time0_int(void) interrupt 1   //中断服务程序
{
 TR0=0;
 if(fun==1)
    {
	DA0832=tosin[b];             //正弦波
    b++;
	}
 else if(fun==2)                //三角波
      {
	   if(c<128)DA0832=c;
       else DA0832=255-c;
         c++;
		 }
 else if(fun==3)                // 方波
      {
	   d++;
	   if(d<=128)DA0832=0x00;
       else DA0832=0xff;
	   }
 TH0=th;
 TL0=tl;
 TR0=1;
}


⌨️ 快捷键说明

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