单片机/MCU论坛
400万+工程师在用
华为|鸿蒙开发者日
直播报名
400万+工程师在用
华为|鸿蒙开发者日
直播报名

王启隆

4年用户 26经验值
擅长:嵌入式技术
私信 关注

刚接触51,直接由I/O口控制的数码管,程序没用,谢谢指导!

2016-12-14 20:49

学校发的元器件,自己动手焊的板子,测试过,板子是没有问题的。附件有原理图,应该是学长画的。
主要问题表现在:有四个数码管,只有第一个亮一,其余都不亮。。。(本来想上图的,但图片太大,只能描述了)
代码如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit shu1=P3^4;
  5. sbit shu2=P3^5;
  6. sbit shu3=P3^6;
  7. sbit shu4=P3^7;
  8. uchar code table[]={
  9. 0x06,0x5b,0x4f,
  10. 0x66};
  11. void delays(uint num)
  12. {
  13.         uint i,n;
  14.         for(i=num;i>0;i--)
  15.           for(n=110;n>0;i--);
  16. }
  17. void main()
  18. {
  19.        
  20.         while(1)
  21.         {
  22.                 shu1=1;
  23.                 P0=table[0];
  24.                 shu1=0;
  25.                 delays(50);
  26.                 shu2=1;
  27.                 P0=table[1];
  28.                 shu2=0;
  29.                 delays(50);
  30.                 shu3=1;
  31.                 P0=table[2];
  32.                 shu3=0;
  33.                 delays(50);
  34.                 shu4=1;
  35.                 P0=table[3];
  36.                 shu4=0;
  37.                 delays(50);
  38.         }
  39. }
感觉板子的原理图和别的的不同,自己的代码也有点奇怪。。。。。
谢谢大神不吝赐教!!!

已退回2积分

回帖(6)

尧建堂

2016-12-14 21:04:10
你可以下载别人的资料,搞一下试验,

王栋春

2016-12-14 21:16:21
看一下第13行是否有问题

笨笨DAO

2016-12-14 22:45:24
你的硬件上,DS1和DS2和DS3明显没和单片机的IO连上,能亮才怪了。

陈工

2016-12-15 08:59:07
你这延时到底是多少呢?

王启隆

2016-12-15 11:05:44
引用: 笨笨DAO 发表于 2016-12-14 22:45
你的硬件上,DS1和DS2和DS3明显没和单片机的IO连上,能亮才怪了。

我测过,是电路图的问题,连接数码管的是P3^ 4-P3^ 7

王启隆

2016-12-15 12:06:03
引用: chenwei6991627 发表于 2016-12-15 08:59
你这延时到底是多少呢?

粗心写错了,是n

更多回帖

打开APP