找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

查看数: 1907 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-6 22:01

正文摘要:

#include<reg52.h> #define uint unsigned int sbit dula=P2^0;                   sbit wela=P2^1;         &nbs ...

回复

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

好的谢谢,我改了
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. }
复制代码


ID:745385 发表于 2020-5-7 10:23
第26行 P0=0xfe;     改成P1=0xfe;(P0是你用来控制数码管的吧,给P0赋值当然不计数了)
ID:332444 发表于 2020-5-7 08:56
建议先打开位送位码关闭位,再打开段送段码延时关闭段。
ID:584814 发表于 2020-5-7 00:53
一个数码管搞什么段拉位拉

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

Powered by 单片机教程网

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