标题: 我的数码管为什么不显示 [打印本页]

作者: wangwish    时间: 2010-1-9 12:30
标题: 我的数码管为什么不显示

我刚刚学习单片机,大家帮我看一看,我的数码管为什么不亮啊?

 

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
void delay(uint z);
void main()
{
 P3=0x00;
 P2=0x00;
 while(1)
 {  
  P1=0xff;
     delay(5000); 
   
 }
}

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--); 
}



作者: long05931    时间: 2010-1-9 13:10
图上怎么接的 !共阴还是共阳的啊
作者: wangwish    时间: 2010-1-9 13:31

共阴的


作者: hgjinwei    时间: 2010-1-10 09:51
仿真那玩意不是很明白,但就算按照真实的硬件环境,你那电路也不能将LED数码管点亮, 因为对于那个单片机, P1高电平是弱驱动的, 直接连接尚且不能提供驱动LED的电流, 何况还串接了个电阻.
作者: zjjhtony    时间: 2010-1-10 10:04

你这个程序怎么可能两呢!

 P3=0x00;    //关闭所有LED灯
 P2=0x00;   //7段LED显示管位选全部关闭。
 while(1)
 {  
  P1=0xff;   

     delay(5000); 
   
 }

 


作者: long05931    时间: 2010-1-10 11:56

若是共阴的就应该亮 你看看仿真部分  仿真有时很不可靠   delay(5000) 在这里没有任何意义


作者: zz3225930    时间: 2010-1-12 16:41
学单片机,注重实践,而不是仿真。
作者: 单片机材料    时间: 2010-1-12 18:45
P1口的驱动能力本就差 不能直接驱动数码管 好像程序部分也有问题

作者: yanweidong63    时间: 2010-1-25 15:10

如果是共因,你不要窜连电阻~!用1000 的上拉带电阻!最好用林大顿管驱动|!


作者: 傻瓜    时间: 2010-12-30 15:41
p0应接上拉电阻看你的程序没有写p0l口呢
作者: bill0522    时间: 2011-1-6 18:32

仿真跟实践是有着很大的差别的,所以个人还是主张你去实践下,从实践中去解决问题,这样子学到的会更多 。


作者: hfbjjs    时间: 2011-1-16 01:22

你是使用 P1 和 P2 两 组端口驱动 6 个数码管的.其中:P1 作为笔段,P2 作为位驱动(数码管供电).数码管是共阴极的.

那么,任何时候,只能有一个 P2.N = 高电平. 而 P1 则是需要点亮的笔段=低电平.如果 P1 = 0FFH 则数码管不能点亮!

需要分时扫描显示 6 个数码管,每秒必须保证显示 50 次以上,否则数码管会有闪烁的感觉!

显然,你的程序不能正常工作!

-----上面几位朋友意见说到不要玩软件仿真,实在正确无比! ----你不能画它几千张美元,然后认为挣了这个美元吧?

还是实际动手吧!不要使用这些仿真软件了!要不然,恐怕连贴片电阻都不知道怎么样子的呢? ------言重了,就致歉!

仅供参考!

 

 


作者: 亚伦    时间: 2011-2-9 19:47
恩,我也觉得你说得有道理,可以在p1口适当的加拉高电平试试~
作者: 亚伦    时间: 2011-2-9 19:52

罩他这个接法,不是应该p2低 p1高数码管才亮么~而且他这个程序目的好像是让数码管全亮~类似于一个测试吧~


作者: schwarzenggar    时间: 2011-9-24 16:34
对啊   记住!  多个数码管要分时扫描输入!!!!!!
作者: schwarzenggar    时间: 2011-9-24 16:35

要是把数码管换成8个LED肯定会亮的!!






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1