标题:
51单片机函数发生器仿真 adc0832+dac0832
[打印本页]
作者:
51ren
时间:
2017-1-12 16:53
标题:
51单片机函数发生器仿真 adc0832+dac0832
图片.png
(51.31 KB, 下载次数: 87)
下载附件
2017-1-12 16:45 上传
51单片机函数发生器 adc0832+dac0832源程序:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit cs=P2^0;
sbit wr1=P2^1;
sbit CS=P1^4;
sbit CLK=P1^2;
sbit DIO=P1^3;
sbit s1=P2^2;
sbit s2=P1^0;
sbit led1=P3^0;
sbit led2=P3^1;
sbit led3=P3^2;
void delays()
{
_nop_();
_nop_();
_nop_();
_nop_();
}
void delay(uint ms)
{
uint m,n;
for(m=0;m<ms;m++)
for(n=0;n<115;n++);
}
void shoudong()
{
uchar m;
cs=0;
wr1=0;
_nop_();
cs=1;
wr1=1;
if(s1==0)
{
delays();
if(s1==0)
{
while(!s1);
m++;
if(m==7) m=0;
}
}
switch (m)
{
case 0:P0=35;break;
case 1:P0=70;break;
case 2:P0=105;break;
case 3:P0=140;break;
case 4:P0=175;break;
case 5:P0=210;break;
case 6:P0=255;break;
default:;
}
cs=0;
wr1=0;
_nop_();
cs=1;
wr1=1;
}
void huxi()
{
uint j;
cs=0;
wr1=0;
_nop_();
cs=1;
wr1=1;
for(j=0;j<255;j++)
{
P0=j;
delay(1);
}
cs=0;
wr1=0;
_nop_();
cs=1;
wr1=1;
}
unsigned char A_D()
{
unsigned char i,dat;
CS=1;
CLK=0;
CS=0;
DIO=1;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
CLK=0;
DIO=0;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
for(i=0;i<8;i++)
{
CLK=1;
CLK=0;
dat<<=1;
dat|=(unsigned char)DIO;
}
CS=1;
return dat;
}
void zidong()
{
uint AD_val,Int,Dec,c;
AD_val=A_D();
Int=(AD_val)/51;
Dec=(AD_val%51)*100/51;
c=Int*100+Dec;
cs=0;
wr1=0;
_nop_();
cs=1;
wr1=1;
P0=c*0.51;
cs=0;
wr1=0;
_nop_();
cs=1;
wr1=1;
}
void main()
{
uchar n;
while(1)
{
if(s2==0)
{
delays();
if(s2==0)
{
n++;
while(!s2);
}
if(n==3) n=0;
}
if(n==0)
{
shoudong();
led1=1;
led2=0;
led3=0;
}
if(n==1)
{
zidong();
led2=1;
led1=0;
led3=0;
}
if(n==2)
{
huxi();
led3=1;
led2=0;
led1=0;
}
}
}
复制代码
0.png
(69.02 KB, 下载次数: 74)
下载附件
2017-1-12 16:53 上传
所有资料下载:
51单片机函数发生器 adc0832 dac0832.rar
(113.23 KB, 下载次数: 57)
2017-1-12 16:53 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
毛士新
时间:
2022-2-7 15:37
:hug:;P:loveliness:
作者:
13565417457
时间:
2022-5-16 13:57
可以解释一下程序吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1