8139|2

26

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

今天用Proteus仿真的ADC0809。。。但实际0809不工作啊。。。。 [复制链接]

 

单片机的对应ST脚的P口接上0809时就被拉低了。Proteus仿真什么问题都没有。0809要注意什么问题么?
有两个问题:1,我希望设定的是500K,用定时器方式2也是设成255。可从P口出来的就是50K 啊。
2,ST脚被拉低,但不接0809时单片机P口是正常的。
之前ST,OE,EOC,CLK都用的是P1口,然后P3口读数据,P0口接上拉电阻后接的LED。。。。
现在AD出来的没变化。P0口是FF。
下边是程序。请高手帮忙分析一下啊。
#include"reg52.h"
#define uchar unsigned char
sbit ST=P1^2;
sbit EOC=P1^1;
sbit OE=P1^0;
sbit CLK=P1^3;
sbit C3=P1^4;
sbit C2=P1^5;
sbit C1=P1^6;
uchar AD_DATA; //保存经AD转换后的数据
/**********延时函数************/
void delay(uchar i)
{
uchar j;
while(i--)
{
for(j=125;j>0;j--)
;
}
}
/*********系统初始化***********/
void init()
{
EA = 1; //开总中断
TMOD = 0x02; //设定定时器T0工作方式
TH0=255; //利用T0中断产生CLK信号
TL0=255;
TR0=1; //启动定时器T0
ET0=1;
ST=0;
OE=0;
}
/***********T0中断服务程序************/
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
/***********AD转换函数**********/
void AD()
{
ST=0;
C3=1;
C2=1;
C1=0; //选择通道IN0
delay(10);
ST=1; //启动AD转换
delay(10);
ST=0;
while(0==EOC)
;
OE=1;
AD_DATA=P2;
OE=0;
P0=AD_DATA;
}
/*****************主函数**************/
void main()
{
init();
while(1)
{
AD();
}
}
[ 本帖最后由 pippin 于 2010-9-4 16:33 编辑 ]
此帖出自单片机论坛

最新回复

ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线 楼主看下这个时序描述,我是按照这个写的程序,还是仿真能用,  注意EOC读取时应该先赋1 给你个我的程序看看 uchar ADC_data; EOC=1; ST=0; OE=0; P3=P3&0x1f;  //通道清零 P3|=ch  详情 回复 发表于 2010-9-4 18:54
点赞 关注
 

回复
举报

471

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线

楼主看下这个时序描述,我是按照这个写的程序,还是仿真能用,  注意EOC读取时应该先赋1
给你个我的程序看看


uchar ADC_data;
EOC=1;
ST=0;
OE=0;
P3=P3&0x1f;  //通道清零
P3|=ch<<5;  //设置通道  《表示左移5位
ST=1;
ST=0;
while(EOC==0);
OE=1;
ADC_data=P1;
OE=0;
return ADC_data;
此帖出自单片机论坛
 
 

回复

26

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

回复 沙发 jialaolian 的帖子

现在单片机接上0809后ST脚就一直是低,我是怀疑0809接到的ST就是0。根本不工作。但也找不出问题在哪。。。。有些困惑。。。。。但当不接0809,甚至0809不给电的时候单片机都有ST的脉冲输出。。。。。我最近是第一次弄AD,调0809好几天了,一直也不知道哪可能出问题。。。。Proteus仿真0809用0808的信息,仿真是好使的。可是实际做出来就有问题了。
还有您的那个程序移位那里不太明白。

还有,高手能留下QQ号么,想请教一下。真的挺着急的。
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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