找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为什么这个程序延迟减少了数码管会乱码了

[复制链接]
跳转到指定楼层
楼主
ID:204200 发表于 2017-5-24 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
typedef unsigned char u8;
typedef unsigned int u16;
u8 code wel[10]={0x06,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,};
void display(unsigned long);
void delay(uint);               
void main(void)
{
   display(12345678);           /*输入8位数*/
}
void display(unsigned long x)
{
        uint i;
        for(i=0;i<8;i++)
        {
                switch(i)
                {
                        case 0:        P2_2=0;P2_3=0;P2_4=0;P0=wel[x%10];        break;
                        case 1:        P2_2=1;P2_3=0;P2_4=0;P0=wel[(x/10)%10];         break;
                        case 2:        P2_2=0;P2_3=1;P2_4=0;P0=wel[(x/100)%10];   break;
                        case 3:        P2_2=1;P2_3=1;P2_4=0;P0=wel[(x/1000)%10];        break;
                        case 4:        P2_2=0;P2_3=0;P2_4=1;P0=wel[(x/10000)%10];        break;
                        case 5:        P2_2=1;P2_3=0;P2_4=1;P0=wel[(x/100000)%10];         break;
                        case 6:        P2_2=0;P2_3=1;P2_4=1;P0=wel[(x/1000000)%10];  break;
                        case 7:        P2_2=1;P2_3=1;P2_4=1;P0=wel[(x/10000000)];         break;
                }
                delay(50000);
        }
}
void delay(uint y)
{
        while(y--);
}

测试项目.rar

294.52 KB, 下载次数: 3

仿真文件

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

使用道具 举报

沙发
ID:204306 发表于 2017-5-24 15:25 | 只看该作者
应该与人眼对光的反应速度有关,延时太小,人眼还没反应出数字是多少就到下一个数字了
回复

使用道具 举报

板凳
ID:204312 发表于 2017-5-24 15:38 | 只看该作者
我感觉延迟有问题
回复

使用道具 举报

地板
ID:204370 发表于 2017-5-24 17:06 | 只看该作者
刷新速度太快了,数码管还没完全点亮,就闪到下一个了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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