功能: ADC0832实现输出频率为50HZ的正弦波
1、P0口送数据,
2、P2。0口作为片选信号
P21是DAC启动信号;
#include
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={ //正弦波的数据
128,130,132,135,137,139,141,144,146,148,150,152,155,157,159,161
163,165,168,170,172,174,176,178,180,182,184,186,188,190,192,194
196,198,200,201,203,205,207,209,210,212,214,215,217,219,220,222
223,225,226,227,229,230,232,233,234,235,237,238,239,240,241,242
243,244,245,246,247,247,248,249,250,250,251,252,252,253,253,254
254,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255
255,255,255,254,254,254,253,253,252,252,251,250,250,249,248,247
247,246,245,244,243,242,241,240,239,238,237,235,234,233,232,230
229,227,226,225,223,222,220,219,217,215,214,212,210,209,207,205
203,201,200,198,196,194,192,190,188,186,184,182,180,178,176,174
172,170,168,165,163,161,159,157,155,152,150,148,146,144,141,139
137,135,132,130,128,126,124,121,119,117,115,112,110,108,106,104
101,99,97,95,93,91,88,86,84,82,80,78,76,74,72,70,68,66,64,62,60,58
56,55,53,51,49,47,46,44,42,41,39,37,36,34,33,31,30,29,27,26,24,23,22
21,19,18,17,16,15,14,13,12,11,10,9,9,8,7,6,6,5,4,4,3,3,2,2,2,1,1
1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,4,4,5,6,6,7,8,9,9,10,11,12
13,14,15,16,17,18,19,21,22,23,24,26,27,29,30,31,33,34,36,37,39,41,42
44,46,47,49,51,53,55,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86
88,91,93,95,97,99,101,104,106,108,110,112,115,117,119,121,124,126,128
};
sbit cs=P2^0;
sbit dac=P2^1;
uchar num1,num2,num3,flag;
uchar aa,bb;
void delay();
void ad0832();
void main()
{
TMOD=0x01;
TH0=(65536-20000)/256;
TL0=(65536-20000)%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
if(flag==1)
{ i++;
if(table[i]=='\0')
i=0;
ad0832();
flag=0;
}
}
}
//===================
void delay(uint z)
{
uint x;
uchar y;
for(x=0;x
}
//-------------------------
void ad0809()
{
cs=0;
dac=1;
delay(1);
P0=table[i];
dac=0;
delay(10);
}
//=======================
void timer0() interrupt 1
{
TH0=(65536-20000)/256;
TL0=(65536-20000)%256;
flag=1;
}
上一篇:8位数码管动态显示时间,可调节,调节的数闪烁显示
下一篇:LCD1602时钟显示时间日期带闹铃可循环调节
推荐阅读最新更新时间:2024-03-16 15:11