正弦波产生程序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)
|