找回密码
 立即注册

QQ登录

只需一步,快速开始

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

问一下大佬此处为何编译器报错,第一次还能运行

[复制链接]
跳转到指定楼层
楼主
ID:1144166 发表于 2025-2-21 17:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include <REGX52.h>
#include <INTRINS.H>

typedef unsigned char u8;
typedef unsigned char u16;
typedef unsigned long u32;

// 数字0-9的编码
static u8 codes[10] = {
    0x3f,
  0x06, // 1
    0x5B, // 2
    0x4F, // 3
    0x66, // 4
    0x6D, // 5
    0x7D, // 6
    0x07, // 7
    0x7F, // 8
    0x6F  // 9
}
u8 buffer[8];//这里哪错了?编译器一直提示

void Delay1ms(u16 count) //@11.0592MHz
{
    u8 i, j;

    while (count > 0) {
        count--;
        _nop_();
        i = 2;
        j = 199;
        do {
            while (--j);
        } while (--i);
    }
}

/**
* @brief 内部方法,让数码管某一位显示特定数字
*
* @param position 片选, 从左到右[0-7]
* @param num_code 显示想要的数字编码
*/
void DigitalTube_DisplaySingle(u8 position, u8 num_code)
{
    P0 = 0x00;
    // 位选:P15 P14 P13
    position <<= 2;
    P2 &= 0xE3;
    P2 |= position;

    // 段选:P0
    P0 = num_code;
}

/**
* @brief 设置显存数组
*
* @param num 待展示数字
*/
void DigitalTube_DisplayNum(u32 num)
{
    u8 i;
    for (i = 0; i < 8; i++) {
        buffer[i] = 0x00;
    }

    if (num == 0) {
        buffer[7] = codes[0];
        return;
    }

    i = 7;
    while (num > 0) {
        buffer[i] = codes[num % 10];
        num /= 10;
        i--;
    }
}

/**
* @brief 动态扫描
*
*/
void DigitalTube_Refresh()
{
    u8 i;
    for (i = 0; i < 8; i++) {
        DigitalTube_DisplaySingle(i, buffer[i]);
        Delay1ms(1);
    }
}

void main()
{

    DigitalTube_DisplayNum(1234567);
    while (1) {
        DigitalTube_Refresh();
    }
}

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

使用道具 举报

5#
ID:68189 发表于 2025-2-22 12:35 | 只看该作者
标点符号引起的小问题
回复

使用道具 举报

地板
ID:744809 发表于 2025-2-22 12:21 | 只看该作者

typedef unsigned char u16;
这行应该改成:
typedef unsigned int u16;
回复

使用道具 举报

板凳
ID:592807 发表于 2025-2-21 20:38 | 只看该作者
    buffer[i] = 0x00;谁给你定义的数组buffer
回复

使用道具 举报

沙发
ID:1144166 发表于 2025-2-21 17:25 | 只看该作者
没事了,小错误
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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