📄 text1.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 + -