#include <reg52.h>
#include <absacc.h>
#include <math.h>
#define dac XBYTE[0xa000]
#define pi 3.14
sbit set =P3^3;
sbit add =P3^4;
sbit dec =P3^5;
unsigned int current[2]={127,127};
unsigned int dot=127;
unsigned char TS=100;
unsigned char KT=0;
unsigned char ms=0;
unsigned char xdata dacval[500];
void Delayms(unsigned int t)
{
unsigned char i;
while(--t)
for(i=0;i<125;i++)
{ ; }
}
void Sin_val(void) reentrant
{
unsigned char i;
for(i=0;i<dot;i++)
{
dacval[i]=(unsigned char)(127.5*sin(2*pi*(i/dot))+127.5);
}
}
void Sin_wave(void)
{
static unsigned int i=0;
if(++i>dot) i=0;
else dac=dacval[i];
}
void set_(void)
{
KT++;
if(KT>=3)KT=0;
}
void add_(void)
{
switch(KT)
{
case 1:if(TS>250)TS=10;
else TS=TS+10;
break;
case 2:if(dot>=500)dot=128;
else dot=dot+5;
current[0]=dot;
if(current[1]!=current[0])
Sin_val();
current[1]=current[0];
break;
default:break;
}
}
void dec_(void)
{
switch(KT)
{
case 1:if(TS<10)TS=10;
else TS=TS-10;
break;
case 2:if(dot<128)dot=128;
else dot=dot-5;
current[0]=dot;
if(current[1]!=current[0])
Sin_val();
current[1]=current[0];
break;
default:break;
}
}
void Key_Scan(void)
{
if(set==0)
{
Delayms(20);
if(set==0)
{ set_(); }
}while(set==0);
if(add==0)
{
Delayms(20);
if(add==0)
{ add_(); }
}while(add==0);
if(dec==0)
{
Delayms(20);
if(dec==0)
{ dec_(); }
}while(dec==0);
}
void Time_init(void)
{
TMOD=0x12;
PT0 =1;
TH0 =(-TS);
TH1 =(-10000)>>8;
TL1 =(-10000);
ET0=1;
ET1=1;
TR0=1;
TR1=1;
}
void main(void)
{
Time_init();
EA=1;
Sin_val();
while(1)
{ ; }
}
void Time_int0(void) interrupt 1
{
ET0=0;TR0=0;TH0 =(-TS);TR0=1;
Sin_wave();
ET0=1;
}
void Time_int1(void) interrupt 3
{
TL1 =(-10000);
TH1 =(-10000)>>8;
ms++;
if(ms==15)
{
ms=0;
Key_Scan();
}
}
基于51单片机的模数转换与数模转换
4星 · 超过85%的资源 需积分: 15 75 浏览量
2008-12-14
01:31:54
上传
评论 6
收藏 95KB RAR 举报
都市流浪猫
- 粉丝: 4
- 资源: 12
最新资源
- FPGA(Field-Programmable Gate Array)是一种可编程的现场可重构逻辑器件
- IMG_20240329_092039.jpg
- UDP(User Datagram Protocol)是一种无连接的传输层协议
- asp代码ASP小型药店销售管理系统(源代码+论文)
- asp代码asp小型企业网上订单系统的设计与实现(源代码+论文)
- asp代码ASP小区物业管理系统设计与实现(论文+源代码+开题报告+文献综述+外文翻译)
- 基于android studio的SurfaceView应用设计
- 【Unity实用工具】实现游戏背景模糊
- Avalonia桌面程序,简约可以,已解决默认字体问题,Ubuntu20.04已验证正常运行
- asp代码ASP销售供应链管理系统的设计与开发(源代码+论文)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论2