打印

菜鸟求助:关于AD的问题

[复制链接]
1506|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiangxue99|  楼主 | 2009-4-2 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自制了一个电路板,关于AD采样的试验。
用C编程,下载后,单片机能够按输入的电压正确显示,但是每次采样之后,必须复位单片机,才能得到变化后的采样数据。不知道为什么?请大侠指教。
....
while(1){
cs=0;
wr=0;
_nop_();
wr=1;

cs=0;
rd=0;
_nop_();
P2=0xff;
c=P2;
rd=1;
cs=1;

   ....
   display(a1,a2,a3);
}

相关帖子

沙发
芯行天下| | 2009-4-2 09:38 | 只看该作者

再把问题写详细些

a1,a2,a3是什么变量,是什么时间赋的值。

使用特权

评论回复
板凳
jiangxue99|  楼主 | 2009-4-2 14:16 | 只看该作者

a1 a2 a3

a1  a2   a3是由C的值计算得出的,也就是需要显示的值.

使用特权

评论回复
地板
芯行天下| | 2009-4-2 14:27 | 只看该作者

从你这段程序里看不出任何问题的存在

使用特权

评论回复
5
ayb_ice| | 2009-4-2 20:24 | 只看该作者

AD多的是

使用特权

评论回复
6
jiangxue99|  楼主 | 2009-4-2 23:16 | 只看该作者

所用ad为0804

我用的是0804;程序如下:请各位指教。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar c;
uchar code tabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x67};
sbit dula=P3^1;
sbit wela=P3^0;

sbit csda=P3^2;
sbit wrda=P3^6;

sbit csad=P3^3;
sbit rdad=P3^4;
sbit wrad=P3^5;
uchar a1,a2,a3;
display(uchar,uchar,uchar);
delay(uchar);
void main()
{

   while(1)
    {
        csda=1;
        wrda=1;
    
        csad=0;
        wrad=0;
        _nop_();
        wrad=1;
        csad=1;
    
        csad=0;
        rdad=0;
        _nop_();
        P2=0xff;
        c=P2; 
        rdad=1;                                                                                                                                                      
        csad=1;
        
            a1=c/100%100;
            a2=c/100%10;
            a3=c%100;
            display(a1,a2,a3);  
            
          
      }
    
}
 
display(uchar bai,uchar shi,uchar ge)
{
    P0=0xff;
    wela=1;
    wela=0;
    P0=tabledu[bai];
    dula=1;
    dula=0;
    P0=0x06;
    wela=1;
    wela=0;
    delay(1);

    P0=0xff;
    wela=1;
    wela=0;
    P0=tabledu[shi];
    dula=1;
    dula=0;
    P0=0x05;
    wela=1;
    wela=0;
    delay(1);

    P0=0xff;
    wela=1;
    wela=0;
    P0=tabledu[ge];
    dula=1;
    dula=0;
    P0=0x03;
    wela=1;
    wela=0;
    delay(1);
}
delay(uchar x)
{
    uchar a,b;
    for(a=x;a>0;a--)
       for(b=255;b>0;b--);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

13

帖子

0

粉丝