?? shengming.c
字號:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^0;
sbit key2=P1^1;
sbit wr=P3^6;
sbit cs=P3^7;
long int a=0, b=0;
void delay(unsigned char i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=6;k>0;k--);
}
unsigned char code table[449]=
{
0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //方波
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x8d,0x99,0xa5,0xb1,0xbc,0xc7,0xd1,
0xda,0xe3,0xea,0xf1,0xf6,0xfa,0xfd,0xff, //正弦波
0xff,0xff,0xfd,0xf9,0xf5,0xef,0xe9,0xe1,
0xd8,0xcf,0xc5,0xba,0xae,0xa2,0x96,0x89,
0x80,0x72,0x66,0x5a,0x4e,0x43,0x38,0x2e,
0x25,0x1c,0x15,0x0e,0x09,0x05,0x02,0x00,
0x00,0x00,0x02,0x06,0x0a,0x10,0x16,0x1e,
0x27,0x30,0x3a,0x45,0x51,0x5d,0x69,0x76,
0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,
0x20,0x24,0x28,0x2c,0x30,0x34,0x38,0x3c,
0x40,0x44,0x48,0x4c,0x50,0x54,0x58,0x5c,
0x60,0x64,0x68,0x6c,0x70,0x74,0x78,0x7c,
0x7c,0x78,0x74,0x70,0x6c,0x68,0x64,0x60,
0x5c,0x58,0x54,0x50,0x4c,0x48,0x44,0x40,
0x3c,0x38,0x34,0x30,0x2c,0x28,0x24,0x20,
0x1c,0x18,0x14,0x10,0x0c,0x08,0x04,0x00,
0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,
0x20,0x24,0x28,0x2c,0x30,0x34,0x38,0x3c,
0x40,0x44,0x48,0x4c,0x50,0x54,0x58,0x5c,
0x60,0x64,0x68,0x6c,0x70,0x74,0x78,0x7c,
0x80,0x84,0x88,0x8c,0x90,0x94,0x98,0x9c,
0xa0,0xa4,0xa8,0xac,0xb0,0xb4,0xb8,0xbc,
0xc0,0xc4,0xc8,0xcc,0xd0,0xd4,0xd8,0xdc,
0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,
0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
0xc0,0xc8,0xd0,0xd8,0xc0,0xe8,0xf0,0xf8,
0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c, //梯形波
0x20,0x24,0x28,0x2c,0x30,0x34,0x38,0x3c,
0x40,0x44,0x48,0x4c,0x50,0x50,0x50,0x50,
0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,
0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,
0x50,0x50,0x50,0x50,0x4c,0x48,0x44,0x40,
0x3c,0x38,0x34,0x30,0x2c,0x28,0x24,0x20,
0x1c,0x18,0x14,0x10,0x0c,0x08,0x04,0x00,
0x80,0x8d,0x99,0xa5,0xb1,0xbc,0xc7,0xd1, //波浪
0xda,0xe3,0xea,0xf1,0xf5,0xf8,0xfa,0xfd,
0xff,0xfd,0xfa,0xf8,0xf5,0xef,0xe9,0xe1,
0xd8,0xcf,0xc5,0xba,0xae,0xa2,0x96,0x89,
0x80,0x8d,0x99,0xa5,0xb1,0xbc,0xc7,0xd1,
0xda,0xe3,0xea,0xf1,0xf5,0xf8,0xfa,0xfd,
0xff,0xfd,0xfa,0xf8,0xf5,0xef,0xe9,0xe1,
0xd8,0xcf,0xc5,0xba,0xae,0xa2,0x96,0x89,
};
void key()
{
if(key1==0)
{
delay(500);
if(key1==0)
a=a+64;
if(a==448)
{
a=0;
}
while(!key1);
}
if(key2==0) // 消抖
{
delay(500);
if(key2==0)
{
b=b+4;
if(b==24)
{
b=0;
}
while(!key2); //等待 松開按鍵
}
}
}
void main()
{
uchar n;
cs=0;
wr=0;
while(1)
{
key();
for(n=64;n>=1;n--)
{
delay(b);
P0=table[n+a];
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -