找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3080|回复: 3
收起左侧

[求助] 如何提高51单片机AD采集的频率?

[复制链接]
ID:387861 发表于 2018-8-19 17:13 | 显示全部楼层 |阅读模式
本帖最后由 gjxfree 于 2018-8-19 17:16 编辑

各位大佬求帮助,实验需要采集一个7khz的正弦波,我用的stc89c51,晶振12m,ad转换频率125khz
根据时序图写的读取ad的函数,但是12m的晶振,一条指令就是1us,这样算下来读取一次怎么都需要个0.5ms以上,一秒钟是怎么也到不了7khz的,请问各位大佬现在该怎么处理。

uintRead_AD_Data(uchar cmd)
{
uint AD_Value;
CLK = 0;
CS  = 0;
SPI_Write(cmd);
for(AD_Value=6; AD_Value>0; AD_Value--);
CLK = 1;  
_nop_();
_nop_();
CLK = 0;
_nop_();
_nop_();
AD_Value=SPI_Read();  
CS = 1;
return AD_Value;
}



void SPI_Write(uchar dat)
{
uchar i;
CLK = 0;
for(i=0; i<8; i++)
{
  DIN = dat >> 7;   
  dat <<= 1;
  CLK = 0;   
  CLK = 1;
}
}


uint SPI_Read(void)
{
uint i, dat=0;
CLK = 0;
for(i=0; i<12; i++)  //????12λ????
{
  dat <<= 1;
  CLK = 1;
  CLK = 0;
  dat |= DOUT;
}
return dat;
}


回复

使用道具 举报

ID:384109 发表于 2018-8-19 19:19 | 显示全部楼层
晶振是可以提高的,至少可以是22.1184MHz,再看看单片机的数据手册,看是否可以以单周期指令的方式运行
回复

使用道具 举报

ID:388197 发表于 2018-8-20 17:35 | 显示全部楼层
楼主用的是AD芯片型号是什么
ADC0832么?
我当初学ADC0808的时候试过用一个外接时钟源(当时好像是用一块NE555接成方波发生器)提供的时钟.
话说回来现在大部分的单片机都有片上AD.

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:386381 发表于 2018-8-20 21:36 来自手机 | 显示全部楼层
那就采用高速芯片来做吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表