51

来自「计算机控制系统」· 代码 · 共 82 行

TXT
82
字号
#include    <reg51.h>
#include    <absacc.h>
#include	<math.h>
#define		da_port		XBYTE[0xcfa0]
#define		buf_port	XBYTE[0xcfa1]

void delay(unsigned int t)
  {
   for(;t>0;t--);
  }
void da_conv(unsigned char dat)
  {
   da_port = dat;
   buf_port = dat;
  }
void triangle(void)
  {
   unsigned char dat=0,count=0;
   while(count<50)
     {
	  for(dat=0;dat<0xff;dat++) 
       {
	    da_conv(dat);
	    delay(1);
	   }
	  for(dat=0xff;dat>0;dat--) 
       {
	    da_conv(dat);
	    delay(1);
	   }
	  count++;
	 }
  }
void sawtooth(void)
  {
   unsigned char dat=0,count=0;
   while(count<100)
     {
	  for(dat=0;dat<0xff;dat++) 
       {
	    da_conv(dat);
	    delay(1);
	   }
	  count++;
	 }
  }
void sinwave(void)
  {
   unsigned char dat,num,count=0;
   while(count<10)
     {
	  for(num=0;num<=200;num+=4)
	    {
		 dat = (unsigned char)((1+sin(((float)(num)/100)*3.14))*0x80);
		 da_conv(dat);
	    }
      count++; 
	 }
  }
void square(void)
  {
   unsigned char count=0;
   while(count<100)
     {
	  da_conv(0xff);
      delay(200);
      da_conv(0);
      delay(200);
	  count++;
	 }
  }
void main(void)
  {
   while(1)
     {
	  square();
	  triangle();
	  sawtooth();
      sinwave();
	 }
  }

⌨️ 快捷键说明

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