关于1602液晶显示数字变量的问题

2019-03-24 18:47发布

各路大神帮忙看一下:

#include "cry1602.h"
#include "show.h"
#include

        unsigned char i=68;
        BYTE disp[];

void main(void)
{
        IT0=1;
        EX0=1;
        EA=1;

        while(1)
        {        
        disp[0]=(i/10);
        disp[1]=((i/10)%10);
        show("The number is:",disp);
        }
}

void int0(void) interrupt 0 using 1
{
        EX0=0;
        i++;
        EX0=1;
}

设置外部下降沿中断,INT0连接到按键上,每按一次数字加一。
头文件是写好的没问题,宏定义BYTE代表unsigned char,show(BYTE disp1,BYTE disp2)分别显示第一行和第二行;显示固定字符没有问题。
i 的类型不对所以没法显示,请问怎么解决? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
seudzy
2019-03-25 22:09
终于改好了,初始化disp[]时需给定位数,否则后面逐位赋值后,不知道数组长度,show()函数就没法判断""在哪,所以显示不了了。。还有,上面一跟帖有个低级错误,把 " 和 ' 弄混了。下面是最终程序:

#include "cry1602.h"
#include "show.h"
#include <reg51.h>

        BYTE i;
        BYTE disp[]={"00"};

void main(void)
{
        IT0=1;
        EX0=1;
        EA=1;
        i=0;

        while(1)
        {
        show("The number is:",disp);
        delay(100);
        }
}

void int0(void) interrupt 0
{
        EX0=0;
        i++;
        disp[1]=(i%10)+0x30;
        disp[0]=((i/10)%10)+0x30;
        EX0=1;
        delay(20);
}

一周热门 更多>