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

📄 wave.c

📁 3000TB51配套实验例程 1八段数码管显示实验 等
💻 C
字号:
#include <absacc.h>
#include"reg52.h"
#define DA0832_1 PBYTE[0xff]
#define DA0832_2 XBYTE[0xfdff]
#define uchar unsigned char
#define uint unsigned int

sbit WR2_XFER=P2^2;
sbit cs=P2^0;

// define user keyboard begin
sbit mode=P1^0;
sbit inc=P1^1;
sbit dec=P1^2;

bdata uchar oldk;
 sbit old_dec=oldk^6;
  sbit old_inc=oldk^5;
   sbit old_mode=oldk^4;
     
  bdata uchar act_key;
 sbit act_dec=act_key^6;
  sbit act_inc=act_key^5;
   sbit act_mode=act_key^4;
                
 bdata uchar key;
sbit ktmp=key^7;
   sbit keyfast=key^4;
       
uchar keycn;
      
// define user keyboard end


uchar code sintab[]={128,131,134,137,140,144,147,150,153,156,159,
162,165,168,171,174,177,179,182,185,188,191,193,196,199,201,204,
206,209,211,213,216,218,220,222,224,226,228,230,232,234,235,237,
239,240,241,243,244,245,246,248,249,250,250,251,252,253,253,254,
254,254,255,255,255,255,255,255,255,254,254,254,253,253,252,251,
250,250,249,248,246,245,244,243,241,240,239,237,235,234,232,230,
228,226,224,222,220,218,216,213,211,209,206,204,201,199,196,193,
191,188,185,182,179,177,174,171,168,165,162,159,156,153,150,147,
144,140,137,134,131,128,125,122,119,116,112,109,106,103,100,97,
94,91,88,85,82,79,77,74,71,68,65,63,60,57,55,52,50,47,45,43,40,
38,36,34,32,30,28,26,24,22,21,19,17,16,15,13,12,11,10,8,7,6,6,5,
4,3,3,2,2,2,1,1,1,1,1,1,1,2,2,2,3,3,4,5,6,6,7,8,10,11,12,13,15,
16,17,19,21,22,24,26,28,30,32,34,36,38,40,43,45,47,50,52,55,57,
60,63,65,68,71,74,77,79,82,85,88,91,94,97,100,103,106,109,112,
116,119,122,125,128,131,134,137,140,144,147,150,153,156,159,
162,165,168,171,174,177,179,182,185,188,191,193,196,199,201,204,
206,209,211,213,216,218,220,222,224,226,228,230,232,234,235,237,
239,240,241,243,244,245,246,248,249,250,250,251,252,253,253,254,
254,254,255,255,255,255,255,255,255,254,254,254,253,253,252,251,
250,250,249,248,246,245,244,243,241,240,239,237,235,234,232,230,
228,226,224,222,220,218,216,213,211,209,206,204,201,199,196,193,
191,188,185,182,179,177,174,171,168,165,162,159,156,153,150,147,
144,140,137,134,131,128,125,122,119,116,112,109,106,103,100,97,
94,91,88,85,82,79,77,74,71,68,65,63,60,57,55,52,50,47,45,43,40,
38,36,34,32,30,28,26,24,22,21,19,17,16,15,13,12,11,10,8,7,6,6,5,
4,3,3,2,2,2,1,1,1,1,1,1,1,2,2,2,3,3,4,5,6,6,7,8,10,11,12,13,15,
16,17,19,21,22,24,26,28,30,32,34,36,38,40,43,45,47,50,52,55,57,
60,63,65,68,71,74,77,79,82,85,88,91,94,97,100,103,106,109,112,
116,119,122,125};

void keysan()
{ktmp=mode;           //---scan mode key down
    if(!old_mode&ktmp)act_mode=0;
    if(old_mode&!ktmp)act_mode=1;
    old_mode=ktmp;

	ktmp=inc;             //---scan inc key down
    if(old_inc&!ktmp){act_inc=1;keycn=0;keyfast=0;}
	if(!old_inc&ktmp){act_inc=0;keyfast=0;}
	if(!old_inc&!ktmp)
	 {++keycn;
       if(keycn==0x20)
	      {act_inc=1;
			keyfast=1;keycn=0;}
		  }
     old_inc=ktmp;

	  ktmp=dec;             //---scan dec key down
	  if(old_dec&!ktmp){act_dec=1;keycn=0;keyfast=0;}
	  if(!old_dec&ktmp){act_dec=0;keyfast=0;}
	  if(!old_dec&!ktmp)
	   {++keycn;
         if(keycn==0x20)
		   {act_dec=1;
			keyfast=1;keycn=0;
			}
	    }
		old_dec=ktmp;
}


void main()
{uchar i,j=0,initial=255;cs=0;
  
 TMOD=0x02;       //设置定时器T0工作方式2
 TH0=256-initial;
 TL0=256-initial; 
 TR0=1;


 for(i=0;i<256;i++)
 { 	 	keysan();
        if(act_mode==1)
          { act_mode=0;
		    j=j+32;
		   }
		 else 
		    j=j;
		if(act_inc==1)
		  {act_inc=0;
		   if(keyfast==0)
		      {
			   if(initial>5)initial-=5;
			   else
			     initial=initial;
				 }
		   else
		     {keyfast=1;
			 if(initial>80)initial-=80;
			 else 
			   initial=initial;
			 }
		   
		   }
		 if(act_dec==1)
		  {act_dec=0;
		   if(keyfast==0)
		      {
			   if(initial<=250)initial+=5;
			   else
			     initial=initial;
				 }
		   else
		     {keyfast=1;
			 if(initial<=175)initial+=80;
			 else 
			   initial=initial;
			 }
		   
		  } 

 
 
   if(TF0==1)
      {TF0=0;
	   TR0=0;
	   TH0=256-initial;
       TL0=256-initial; 
       TR0=1;
        WR2_XFER=1;
        DA0832_1=sintab[i];
        DA0832_2=sintab[i+j];
        WR2_XFER=0;
		}

 }					 
}

⌨️ 快捷键说明

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