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

📄 text1.c

📁 数控电源程序
💻 C
字号:
#include <at89x52.h>
#include <at24c256.h>
#include "led.h"
#include "key.h"			  
#define uchar unsigned char
#define uint unsigned int

main()
{
uchar key;	 
uchar v,tmp; 
uint add;
add=read_24c256(10);
delay_ms(2);
v=read_24c256(add);
   while(1)
   {
   	led_display(v);
	pos_display(add);
	tmp=v;
	P1=v;
	P2=0x0f;
	delay_ms(5);
	if(P2!=0x0f)
	while(1)
	{  
	if(add==10)add=0;
	 else if(add==0)add=10;
		do
		{
		key=getch();
		led_display(v);
		pos_display(add+1);
		}while(key>8);
		delay_ms(100);
	  	  
		switch(key)
		{
		case 0:v+=10;break;	  //+1V
		case 1:v-=10;break;	  //-1V
		case 2:v+=1;break;	  //+0.1V
		case 3:v-=1;break;	  //-0.1V
		case 4:v=read_24c256(add++);break;  //next
		case 5:v=read_24c256(add--);break;  //previous
		case 6:write_24c256(0,add);delay_ms(5);break;  //delete
		case 7:{for(add=0;add<10;add++)		
				{write_24c256(0,add);	   //clear
				delay_ms(5);}
				add=0;
				write_24c256(0,0);
				v=0;
				break;}
		default:break;
		}

		 if(key==8)    //confirm
	  {
	  if(v!=tmp)
	  {	  
	  write_24c256(v,add);
	  delay_ms(5);
	  write_24c256(add,10);
	  	  add++;
		delay_ms(5);	
		}	
	  break;
	  }	
	  
	}
	
	}
}

/*
uchar sin_data[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,
0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,
0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,
0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,
0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,
0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,
0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,
0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,
0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,
0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,
0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,
0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};//正弦码表,可通过SIN()函数获得

/**********************************************
           输出数据到端口(注意考虑延时)
**********************************************/
/*void conversion(unsigned char out_data)
           {
           P1=out_data; //输出数据
           delay_ms(1);         //延时等待转换
           }
/************************************************
          产生正弦波函数
************************************************/
/*void sin(void)
{
unsigned char i;
for(i=0;i<255;i++)
{
conversion(sin_data[i]);
}
}
/***********************************************
       产生锯齿波(下降型)
***********************************************/
/*void saw(void)
{
unsigned char j;
for(j=0;j<255;j++)
conversion(j);
}
/***********************************************
           产生方波(脉冲)
***********************************************/
/*void pulse(void)
{
conversion(0xff);
delay_ms(1);
conversion(0x00);
delay_ms(1);
}
/***********************************************
          产生三角波
***********************************************/
/*void triangle(void)
{
uchar k;
for(k=0;k<255;k++)
conversion(k);
for(k=255;k>0;k--)
conversion(k);
}

main()
{
while(1)
saw();
}
*/

⌨️ 快捷键说明

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