找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 855|回复: 3
收起左侧

我的单片机数码管显示不了大于9999的数?就是主函数里的t大于9999...

[复制链接]
ID:973385 发表于 2021-10-20 23:34 | 显示全部楼层 |阅读模式
#include <STC89C5xRC.H>
void Delay300ms()        //@11.0592MHz
{
    unsigned char i, j, k;
    i = 13;
    j = 156;
    k = 83;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

const unsigned char seg_code[] = {
  0x3F,/*0*/
    0x06,/*1*/
    0x5B,/*2*/
    0x4F,/*3*/
    0x66,/*4*/
    0x6D,/*5*/
    0x7D,/*6*/
    0x07,/*7*/
    0x7F,/*8*/
    0x6F,/*9*/
};

unsigned int xuehao = 65080;

void main(){
int i, j = 1, t;
t = 65850;
while(1){
for(i = 0;i < 5;i++){
P2 = i << 2;
P0 = seg_code[t%10];
t/=10;
if(t<0)t = 65850;
Delay300ms();
}

    }
}

回复

使用道具 举报

ID:161164 发表于 2021-10-21 00:16 | 显示全部楼层
unsigned int i, j = 1, t;
要注意数据类型的范围
int  //-32768 to 32767
unsigned int  //0 to 65535
回复

使用道具 举报

ID:584814 发表于 2021-10-21 10:19 | 显示全部楼层
lkc8210 发表于 2021-10-21 00:16
unsigned int i, j = 1, t;
要注意数据类型的范围
int  //-32768 to 32767

哪种 int 超过 9999 就报错呢 ?
回复

使用道具 举报

ID:973385 发表于 2021-10-21 13:49 | 显示全部楼层
lkc8210 发表于 2021-10-21 00:16
unsigned int i, j = 1, t;
要注意数据类型的范围
int  //-32768 to 32767

确实是数据类型引起的谢谢大佬了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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