标题:
51单片机正弦波产生程序C语言源码
[打印本页]
作者:
g362042766
时间:
2018-4-26 20:21
标题:
51单片机正弦波产生程序C语言源码
正弦波产生程序C语言
单片机源程序如下:
#include "reg51.h"
#define uchar unsigned char
uchar code sine_table[]={0x80,0x8C,0x98,0xA5,0xB0,0xBC,0xC7,0xD1, //正弦数据表
0xDA,0xE2,0xEA,0xF0,0xF6,0xFA,0xFD,0xFF,
0xFF,0xFF,0xFD,0xFA,0xF6,0xF0,0xEA,0xE3,
0xDA,0xD1,0xC7,0xBC,0xB1,0xA5,0x99,0x8C,
0x80,0x73,0x67,0x5B,0x4F,0x43,0x39,0x2E,
0x25,0x1D,0x15,0xF,0x9,0x5,0x2,0x0,0x0,
0x0,0x02,0x05,0x9,0xE,0x15,0x1C,0x25,0x2E,
0x38,0x43,0x4E,0x5A,0x66,0x73};
sbit K1=P2^7; //端口定义
sbit WR1=P2^5;
/****************************/
void Delay(uchar m) //延时程序
{
uchar i;
while(--m)for(i=0;i<1;i++);
}
/******************************************/
void main() //主程序
{
uchar k;
while(1)
{
if(K1==0)
{
for(k=0;k<64;k++)
{
WR1=1;
P0=sine_table[k];
WR1=0;
Delay(1);
}
}
else //K1打开,输出锯齿波
{
for(k=0;k<255;k=k+4)
{
WR1=1;
P0=k;
WR1=0;
Delay(1);
}
}
}
}
复制代码
所有资料51hei提供下载:
Sin.rar
(19.52 KB, 下载次数: 96)
2018-4-26 20:20 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
18980957856
时间:
2018-4-28 18:59
是正弦的还是锯齿波啊?
作者:
Zyyzzz
时间:
2019-8-9 09:48
太棒了!频率差不多是1kHz 感谢大佬!
作者:
Zyyzzz
时间:
2019-8-9 11:59
18980957856 发表于 2018-4-28 18:59
是正弦的还是锯齿波啊?
正弦 但是可能会稍微有点失真
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1