关于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
1楼-- · 2019-03-24 19:47
都没人鸟我。。。
seudzy
2楼-- · 2019-03-25 00:04
seudzy
3楼-- · 2019-03-25 03:48
jishuaihu
4楼-- · 2019-03-25 05:04
 精彩回答 2  元偷偷看……
seudzy
5楼-- · 2019-03-25 08:07
i 定义的是unsigned char,BYTE定义的其实也是unsigned char。。还是不行。。会不会是做了/和%运算就不行了?
jishuaihu
6楼-- · 2019-03-25 12:43
看出问题来了。1602输入的是ASCII码,把disp[0]和disp[1]都加上48就可以了,也就是0x30;
写成这样
disp[0]=0x30+(i/10);
disp[1]=0x30+((i/10)%10);

一周热门 更多>