网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月05日漏签0天
单片机吧 关注:212,047贴子:1,047,398
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 3回复贴,共1页
<<返回单片机吧
>0< 加载中...

仿真ADC0803转换输出口都是高电平?但是数码管能正常从0~255变化

  • 只看楼主
  • 收藏

  • 回复
  • helloyf
  • 上尉
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
郭天祥的电路,ADC0803接P1口,LED也接的P1口,数码管通过两片74LS573接P0口。
问题是:
在proteus中仿真时,调整电位器可以在数码管上从0~255变化,为什么与AD输出同为P1口连接的LED却不亮,比如189,应该是10111101,那么应该是第二个和第六个LED亮,结果却都没亮?
程序如下:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit dula=P2^6;
sbit wela=P2^7;
sbit rd=P3^7;
sbit wr=P3^6;
uchar a,num,adval,bai,shi,ge; void delayms(uint z)
{
uint x,y;
for(x=91;x>0;x--)
for(y=z;y>0;y--);
} void init()
{
wela=1;
P0=0;
wela=0;
} void display(uchar bai,uchar shi,uchar ge)
{
bai=adval/100;
shi=adval%100/10;
ge=adval%10;
P0=0x7f;
wela=1;
P0=0x7b;
wela=0;
P0=0;
dula=1;
P0=table[ge];
dula=0;
delayms(1); wela=1;
P0=0x7d;
wela=0;
P0=0;
dula=1;
P0=table[shi];
dula=0;
delayms(1); wela=1;
P0=0x7e;
wela=0;
P0=0;
dula=1;
P0=table;
dula=0;
delayms(50);
} void main()
{
init();
while(1)
{
wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
for(a=10;a>0;a--); display(bai,shi,ge);
rd=1;
_nop_();
rd=0;
adval=P1;
rd=1;
}
}


  • helloyf
  • 上尉
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

数码管亮,LED没亮。

AD输出口都是高电平。



2025-08-05 01:38:21
广告
不感兴趣
开通SVIP免广告
  • helloyf
  • 上尉
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原来要在rd=0后面加一延时,时间越长亮的时间也越长?但是亮LED的时间为什么跟延时的时间有关?难道数据一读走,AD的输出口都置0了吗?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示