找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1550|回复: 5
打印 上一主题 下一主题
收起左侧

帮我看看程序哪里有问题,怎么单片机数码管不计数

[复制链接]
跳转到指定楼层
楼主
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. sbit dula=P2^0;                  
  4. sbit wela=P2^1;               
  5.      uint i;
  6. unsigned code table[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  7.                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  
  8. void delay(uint ms)
  9. {
  10.      uint ti;
  11.    while(ms--)
  12.     {
  13.     for(ti=0;ti<82;ti++){}
  14.     }
  15. }     
  16. void main()
  17. {
  18. while(1)
  19. {     
  20.          P1=0xff;  //1111 1111
  21.   for(i=0;i<=8;i++)
  22.    {
  23.    P0=table[i];
  24.    dula=1;
  25.    dula=0;
  26.             P0=0xfe;    //1111 1110   
  27.    wela=1;
  28.    wela=0;
  29.    delay(1000);
  30.    P1=P1<<1;
  31.    }
  32.   
  33. }
  34. }
复制代码

180110gexv9zqxqyf27fqx.jpg (37.35 KB, 下载次数: 86)

180110gexv9zqxqyf27fqx.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-5-7 00:53 | 只看该作者
一个数码管搞什么段拉位拉
回复

使用道具 举报

板凳
ID:332444 发表于 2020-5-7 08:56 | 只看该作者
建议先打开位送位码关闭位,再打开段送段码延时关闭段。
回复

使用道具 举报

地板
ID:745385 发表于 2020-5-7 10:23 | 只看该作者
第26行 P0=0xfe;     改成P1=0xfe;(P0是你用来控制数码管的吧,给P0赋值当然不计数了)
回复

使用道具 举报

5#
ID:213173 发表于 2020-5-7 17:37 | 只看该作者
程序没有明显错误,但有数据类型使用不当。如数码管显示不正常要查程序与硬件是否配套。
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. sbit dula=P2^0;                  
  4. sbit wela=P2^1;               
  5. unsigned char i;
  6. unsigned char code table[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  7.                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  
  8. void delay(uint ms)
  9. {
  10.         uint ti;
  11.         while(ms--)
  12.         {
  13.                 for(ti=0;ti<82;ti++);
  14.         }
  15. }     
  16. void main()
  17. {
  18.         P0=0xfe;    //1111 1110   
  19.         wela=1;
  20.         wela=0;
  21.         while(1)
  22.         {     
  23.                 P1=0xff;  //1111 1111
  24.                 for(i=0;i<=8;i++)
  25.                 {
  26.                         P0=table[i];
  27.                         dula=1;
  28.                         dula=0;
  29.                         delay(1000);
  30.                         P1=P1<<1;
  31.                 }  
  32.         }
  33. }
复制代码


回复

使用道具 举报

6#
ID:745469 发表于 2020-5-9 13:59 | 只看该作者
wulin 发表于 2020-5-7 17:37
程序没有明显错误,但有数据类型使用不当。如数码管显示不正常要查程序与硬件是否配套。

好的谢谢,我改了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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