3951|9

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

有关模数转换AD7822/7825/7829的问题,急~~~ [复制链接]

最近搞了好几天AD7822模数转换芯片,但一直没有搞出来,已经是严格按照时序图来写代码了,但还是不知道出了什么问题,郁闷...请高人指点!小弟感激万分!!
现在出现的问题是:读AD数据时,用串口显示完全没有规律,当我用万用表测AD信号输入脚时,会影响到串口显示的数据.但有进入中断
我用示波器观察数据输入脚P0脚时,各个脚会经常出现从5V-0V的跳变行刺!就跟串口显示的数据几乎一样的结果...
程序如下:(为高速转换模式)

#include <12c5a60s2.h>
//#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit ADCLK = P3^5;                //CONST
sbit CSAD = P3^4;                //AD自选
sbit ADRD = P3^7;                //读数据
sbit EOC = P3^2;                //中断/转换完毕脚
sbit CSDA = P3^3;               
sbit DAWR = P3^6;
sbit PD = P3^3;                        //模式更换脚,可切换到省电和高速模式
uchar i = 0xaa;
uchar temp = 0;

void delay_ns()                                        //约延时500ns
{
        _nop_();_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();_nop_();
}
void serial1_init() // 使用独立波特率发生器作为波特率发生器
{
        SCON = 0x50;        // 0101,0000 8 位可变波特率,无奇偶校验位
        AUXR = 0x15;        // T0x12,T1x12,UART_M0x6,BRTR|2SMOD,BRTx12,XRAM,S1BRS
        BRT = 0xf4;                // 22.1184下 BRTx12=1,波特率57600
}
main()
{
        PD = 1;                                        //高速模式
        EA = 1;                                           //中断初始化
        EX0 = 1;
//        IP=0;                                        //优先级
        IT0=1;                              //1:下降沿触发  0:电平触发
        serial1_init();                     //串口发送初始化

        CSAD = 0;
        ADCLK = 1;                                //power-up
        delay_ns();                                //延时1us 等待上电稳定
        delay_ns();
        while(1)
        {
                EOC = 1;
                ADRD = 1;
                ADCLK = 0;                        //开始转换
                delay_ns();                        //适当延时等待转换完成
                ADCLK = 1;
                _nop_();_nop_();_nop_();_nop_();   
                ADRD = 0;                           //读数据
                _nop_();
                ADRD = 1;                         //当ADRD从0到1时,EOC自动清零
                temp = P0;
                SBUF = temp;                        //串口发送观察结果
                while(TI == 0);
                TI = 0;
                delay_ns();                         //适当延时
        }
}

void int0() interrupt 0 using 2
{
        P1 = i++;                                    //进入中断后观察P1脚的8个灯,以便观察中断是否正常
}

最新回复

之前也试过用DA把数字量转换成模拟量,但结果还是一样...文档读了好几遍了,实在搞不出来才决定发帖. 不管怎样,谢谢你的回答!  详情 回复 发表于 2009-8-28 10:10
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
关注
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没有用过,看文档太耗时间了
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
周末帮你看
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 2 楼 flypig8321 的回复:
没有用过,看文档太耗时间了

真的呀?太感谢啦!
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 
大致看了一下数据手册,基本流程是这样的:
1)启动转换 /CONVST负脉冲有效;
2)等待/ECO有效,
3)/CS,/RD有效,读取数据。
当然还要考虑时序和通道切换。


串口是另外一回事,先保证AD正常工作。另外,串口波特率设的太高了。

 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 zyzhang365 的回复:
大致看了一下数据手册,基本流程是这样的:
1)启动转换 /CONVST负脉冲有效;
2)等待/ECO有效,
3)/CS,/RD有效,读取数据。
当然还要考虑时序和通道切换。

串口是另外一回事,先保证AD正常工作。另外,串口波特率设的太高了。


5楼的提醒我了呀!波特率确实不宜太快,要保证发送正常才行.我再试试把波特率调低一点吧.
因为我是用宏晶新出的那快 STC12C5A60S2,定时器不12分频的,所以就想用最快的速率了,以缩短发送时间了...
谢啦!!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
改了波特率还是不行,测试过发送是正常的,但是AD转换出来的数据还是有问题...

奇怪是的,当我用万能表没AD7822的信号输入端时,读出来的数据就会有很大的变化,而放出万能表后又恢复正常,难道万能表会影响到信号吗?
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

9
 
贴出来的程序是有问题的,AD转换的流程都不对,读懂文档再写代码吧。 告诉你先不要管串口。使用示波器看看吧。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 zyzhang365 的回复:
贴出来的程序是有问题的,AD转换的流程都不对,读懂文档再写代码吧。 告诉你先不要管串口。使用示波器看看吧。

之前也试过用DA把数字量转换成模拟量,但结果还是一样...文档读了好几遍了,实在搞不出来才决定发帖.
不管怎样,谢谢你的回答!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表