找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这个单片机程序 为什么数码管不亮呢?

查看数: 11293 | 评论数: 26 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-4-4 12:40

正文摘要:

初学者,求解答,程序如下 #include<reg51.h> #define uchar unsigned char xdata uchar num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uchar i) { uchar t; while(i--) {   ...

回复

ID:302672 发表于 2018-4-6 11:33
P0口加上上拉,估计问题就解决了
ID:302672 发表于 2018-4-6 11:33
P0口加上拉试试,应该就解决了
ID:302544 发表于 2018-4-5 21:09
P0口加上拉试试.
ID:302445 发表于 2018-4-5 18:12
数组定义应该是unsigned char code num[]=  for循环应该是这样for(i=0;i<9;i++)  并且只用写一个for循环……

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:302445 发表于 2018-4-5 18:08
数组定义应该是死循环里面这样写
ID:301728 发表于 2018-4-5 09:08
行,小生多谢各位前辈啦!
ID:46475 发表于 2018-4-4 23:52
看看p0 上拉 看看
ID:160834 发表于 2018-4-4 22:41
仿真图片如下。运行程序就可以看到数码管从0到9变化。
ID:160834 发表于 2018-4-4 22:38
我把你的程序修整和精简了下。实现0到9数字每秒变化一次。 另外 AT89C51单片机是需要加上拉电阻的。 仿真程序里只有AT89系列单片机。所以 做仿真时尽量不用P0口。 我这里先改成了P1口。实际使用时 STC89C52单片机  P0口也不需要加上拉的。 其它STC12或15或F8系列单片机还可以设置4种输出模式。晶振也可以用内部的。这个视你自己的用途选择吧。以下程序 仿真通过。 另外  仿真的数码管选共阳数码管。

#include<reg51.h>

unsigned char num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void delay(unsigned int i)
{
   while(i--);
}

void main()
{
  unsigned char i;
       
  while(1)
  {
    for(i=0;i<10;i++)
    {
     P1=num[i];
     delay(50000);
    }
  }
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

ID:302217 发表于 2018-4-4 22:05
上拉电阻1K以上,限制电流小于5mA。
ID:46065 发表于 2018-4-4 22:02
还是用个锁存器,比较靠谱!
虽然我从来没有直接把数码管接在IO口上,但是我考虑IO口的输出电流本来就小,再串个电阻,数码管还能正常工作吗?
ID:301949 发表于 2018-4-4 21:35
lz用的是共阳数码管P0口好像不用加上拉电阻吧,
ID:302193 发表于 2018-4-4 21:17
加上拉电阻应该就可以了
ID:302136 发表于 2018-4-4 19:10
把p0口改成p2口(程序和数码管一起改)试试看
ID:19715 发表于 2018-4-4 18:37
接10欧姆的上拉,那是要单片机的命。我也是发现过同样的情况,是仿真软件的问题,换成其他2位或者4位数码管试试看
ID:287575 发表于 2018-4-4 17:51
楼上说接10欧姆的上拉,那是要命的,当输出高的时候,还不致命,当P0输出低的时候,就会烧毁IO口,从而烧掉单片机
ID:287575 发表于 2018-4-4 17:47
问题出在xdata uchar num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
你的码表存到xdata中,而89c51就没有xdata,应该定义成data
ID:302084 发表于 2018-4-4 16:56
P0口是需要上拉电阻的,10欧左右吧
ID:302072 发表于 2018-4-4 16:32
PO要加上啦
ID:301494 发表于 2018-4-4 16:31
加上拉电阻
ID:7485 发表于 2018-4-4 16:27
数码管最好别用P0口。其他口内部都有上拉,唯独P0没有。而且其推拉能力小一些。
ID:301728 发表于 2018-4-4 15:56
加了上拉电阻也没反应
ID:301728 发表于 2018-4-4 15:55
这个程序的问题是运行开始后,P0口的电平始终不变
ID:301728 发表于 2018-4-4 15:40
行,我试试
ID:301985 发表于 2018-4-4 14:21
如果是 51 的话,注意 P0口的上拉设计
ID:251640 发表于 2018-4-4 13:29
P0口加上拉试试.

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表