找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时运...

查看数: 3148 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-12-19 00:45

正文摘要:

十位成了个位,百位成了十位,个位成了百位。 不知错在哪?求指点 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit wela=P2^7;//位 sbit dula=P2 ...

回复

ID:994128 发表于 2021-12-20 12:28
lkc8210 发表于 2021-12-20 11:27
正正是因为延时错误

        dula=1;

谢谢!
ID:161164 发表于 2021-12-20 11:27
dlbg654321 发表于 2021-12-19 22:37
这段代码不是抄的,找不到答案,自己思考的,或者叫模仿吧。
延时改个位子就行了。问题虽然解决了,但还是 ...

正正是因为延时错误

        dula=1;
        P0=table[bai];//段选百位
        dula=0;
        P0=0xff;
        delay(5);//延时,视觉停留
        wela=1;
        P0=0xfe;//位选WE1
        wela=0;

        dula=1;
        P0=table[shi];//段选十位
        dula=0;
        P0=0xff;
        delay(5);//延时,视觉停留
        wela=1;
        P0=0xfd;//位选WE2
        wela=0;

        dula=1;
        P0=table[ge];//段选个位
        dula=0;
        P0=0xff;
        delay(5);//延时,视觉停留
        wela=1;
        P0=0xfb;//位选WE3
        wela=0;

你的代码是位选后立即进入段选让后才延时

正常流程应改是
1.消影
2.位选/段选
3.段选/位选
4.延时
ID:994128 发表于 2021-12-19 22:37
这段代码不是抄的,找不到答案,自己思考的,或者叫模仿吧。
延时改个位子就行了。问题虽然解决了,但还是不知道怎么解释。
ID:213173 发表于 2021-12-19 09:01
郭天祥的这段代码是有缺陷的,楼主抄的又不准确就错上加错。
  1. void display(uchar bai,uchar shi,uchar ge)
  2. {
  3.         P0=0x00;dula=1;dula=0;//消隐
  4.         P0=0xfe;wela=1;wela=0;//送位码
  5.         P0=table[bai];dula=1;dula=0;//送段码
  6.         delay(5);                                //延时
  7.        
  8.         P0=0x00;dula=1;dula=0;
  9.         P0=0xfd;wela=1;wela=0;
  10.         P0=table[shi];dula=1;dula=0;
  11.         delay(5);       
  12.        
  13.         P0=0x00;dula=1;dula=0;
  14.         P0=0xfb;wela=1;wela=0;
  15.         P0=table[ge];dula=1;dula=0;
  16.         delay(5);               
  17. }
复制代码

ID:908826 发表于 2021-12-19 07:51
估计是位选出错了吧。
ID:624769 发表于 2021-12-19 02:35
  • void display(uchar bai,uchar shi,uchar ge)
  • {
  •         dula=1;
  •         P0=table[bai];
  •         dula=0;
  •         P0=0xff;
  • //    delay(5);
  •         wela=1;
  •         P0=0xfe;
  •         wela=0;
  •     delay(5);
  •         dula=1;
  •         P0=table[shi];
  •         dula=0;
  •         P0=0xff;
  • //    delay(5);
  •         wela=1;
  •         P0=0xfd;
  •         wela=0;
  •      delay(5);
  •         dula=1;
  •         P0=table[ge];
  •         dula=0;
  •         P0=0xff;
  • //    delay(5);
  •         wela=1;
  •         P0=0xfb;
  •         wela=0;
  •       delay(5);
  • }

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

Powered by 单片机教程网

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