民科小石头 2023-07-09 22:58 采纳率: 36.4%
浏览 24
已结题

关于#51单片机#的问题:为什么这样不能在数码管上显示现在的时间

为什么这样不能在数码管上显示现在的时间?
部分代码如下:

#include <REGX52.H>
#include<intrins.h>
sbit u5A = P2^2;
sbit u5B = P2^3;
sbit u5C = P2^4;

unsigned char  Nixie[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                    0x7f,0x6f};//数码管0~9

void Delay400us()        //@12.000MHz
{
    unsigned char i, j;

    i = 5;
    j = 168;
    do
    {
        while (--j);
    } while (--i);
}

void ShowTime()//显示时间
{
    unsigned char SystemTime[9]=__TIME__;
    unsigned char j;
    for(j=0;j<8;j++)
    {
        switch(j)
        {
            case 0:u5A=1;u5B=1;u5C=1;break;
            case 1:u5A=0;u5B=1;u5C=1;break;
            case 2:u5A=1;u5B=0;u5C=1;break;
            case 3:u5A=0;u5B=0;u5C=1;break;
            case 4:u5A=1;u5B=1;u5C=0;break;
            case 5:u5A=0;u5B=1;u5C=0;break;
            case 6:u5A=1;u5B=0;u5C=0;break;
            case 7:u5A=0;u5B=0;u5C=0;break;
        }
        if(j==2 || j==5)
        {
            P0=0x40;
        }
        else
        {
            P0=Nixie[SystemTime[j]+'0'];
        }
        Delay400us();
    }
}

void main()
{
    while(1)
    {
        ShowTime();
    }
}
  • 写回答

3条回答 默认 最新

  • 智者知已应修善业 2023-07-10 09:19
    关注

    那就说明无法实时获取时间信息,况且如果程序下载到单片机中又何处去读取?只能验证数码管驱动是否正确,另外修改P0=Nixie[SystemTime[j]-'0'];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月10日
  • 已采纳回答 7月10日
  • 创建了问题 7月9日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址