4294|7

85

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

我这个adc0804小设计问题在哪里 [复制链接]

初学adc0804,从最简单的东西,暂时就用数码管显示出电阻上的电压值,但是不能成。请帮我看一看:

电路图:

把关键部分画出来了,单片机部分复位外部晶振之类的没画。就让数码管显示R5上电压。数码管(共阴)用了前三位。

程序:

#include<reg52.h>
unsigned char code duma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示段码
sbit cs=P1^5; //使能端
sbit rd=P1^6; //读端口
sbit wr=P1^7; //写端口
sbit w0=P1^0;
sbit w1=P1^1;
sbit w2=P1^2;
sbit w3=P1^3;
void delay(int i) //延时程序
{
  int x;
  for (x=i;x>0;x--);
}
void init()
{
 w0=0;
 P2=0x3f;
 delay(100);
 w1=0;
 P2=0x3f;
 delay(100);
 w2=0;
 P2=0x3f;
 delay(100);
}
void main()
{
  uchar value,k,l,m,n;
 init();
  while(1)
   {
 cs=0;
  wr=0;
  delay(50);
 wr=1;
 cs=1;            
 delay(80);
 cs=0;
 rd=0;   
 delay(20);
 value=P1;
 rd=1;
 cs=1;
  value=value*19.5;   
  k=value/100; 
  l=value%100;
  m=l/10; 
  n=l%10;
   w0=0;
    P2=duma[k]|0x80;
    delay(100);
    w1=0;
    P2=duma[m];
    delay(100);
    w2=0;
    P2=duma[n];
    delay(100);
 } 
}

实验现象:

仅仅数码管被点亮了,显示888.

老师们快帮帮我,这个问题不解决没办法再往前走。

谢谢

 

最新回复

传感器?具体没做过. 你说说看吧.是什么方面的问题,我看我知不知道.  详情 回复 发表于 2011-6-29 09:34
点赞 关注
 
 

回复
举报

407

帖子

3

TA的资源

纯净的硅(初级)

沙发
 
w0=0;
    P2=duma[k]|0x80;
    delay(100);
   w0=1;
    w1=0;
    P2=duma[m];
    delay(100);
   w1=1;
    w2=0;
    P2=duma[n];
    delay(100);
   w2=1;试试吧
 
 
 

回复

407

帖子

3

TA的资源

纯净的硅(初级)

板凳
 
还有P1和P3口接线要换一下
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 zmsxhy 的帖子

什么意思?DB接P1?
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

5
 
太谢谢老师了,现在显示0.28,但实际好像应该显示4.8几的。
问题是我把vin+这个线悬空,都还是0.28.也就是说这采过来的电压根本不是从vin+来的。
原来我也写过一个动态的程序,显示4.83,我把vin+,vin-,agnd全部悬空都依然是4.83.这就充分说明是电路连接的问题。
那就是我刚才说的db接P1然后cs那些接P3吗?老师指教
 
 
 

回复

407

帖子

3

TA的资源

纯净的硅(初级)

6
 
就用你给的电路图
程序这样写你试下
显示多少你自己确定算法
#include
#define uchar unsigned char
unsigned char code duma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示段码
sbit cs=P1^5; //使能端
sbit rd=P1^6; //读端口
sbit wr=P1^7; //写端口
sbit w0=P1^0;
sbit w1=P1^1;
sbit w2=P1^2;
sbit w3=P1^3;
void delay(int i) //延时程序
{
  int x;
  for (x=i;x>0;x--);
}
void init()
{
w0=0;
P2=0x3f;
delay(100);
w1=0;
P2=0x3f;
delay(100);
w2=0;
P2=0x3f;
delay(100);
}
void main()
{
  uchar value,k,l,m,n;
init();
  while(1)
   {
cs=0;
  wr=0;
  delay(50);
wr=1;
cs=1;            
delay(80);
cs=0;
rd=0;   
delay(20);
value=P3;
rd=1;
cs=1;
  value=value*19.5;   
  k=value/100;  
  l=value%100;
  m=l/10;  
  n=l%10;
   w0=0;
   P2=duma[k]|0x80;
   delay(100);
   w0=1;
   w1=0;
   P2=duma[m];
   delay(100);
   w1=1;
   w2=0;
   P2=duma[n];
   delay(100);
   w2=1;
}  
}
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

7
 
嗯,昨天弄好了,谢谢。另外我想问一下您做过传感器这方面的东西没有。我做这个东西还有些问题
 
 
 

回复

407

帖子

3

TA的资源

纯净的硅(初级)

8
 
传感器?具体没做过.
你说说看吧.是什么方面的问题,我看我知不知道.
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表