标题: 单片机四位数码管已经可以显示数字了,怎么显示ABCD [打印本页]

作者: 茉莉星瞳    时间: 2021-6-27 22:55
标题: 单片机四位数码管已经可以显示数字了,怎么显示ABCD
四位数码管显示数字已经可以了,现在如果我想放字母在数组里,应该怎么修改呢,求指教
比如说n=abcd
怎么可以让abcd分别显示在四位数码管呢
求大佬给个思路。


以下是显示数字的一点儿程序:

unsigned int n[]={2020,1024,2383,1234};


display(n[t%4]/1000,(n[t%4]/100)%10,(n[t%4]%100)/10,n[t%4]%10);//调用显示函数

void display(unsigned int first,unsigned int second,unsigned int third,unsigned int fourth)
{        
        
        wei=0x01;
        duan=tab[first];
        delay(10);

        
        
        wei=0x02;
        duan=tab[second];
        delay(10);
        
        wei=0x04;
        duan=tab[third];
        delay(10);
        
        wei=0x08;
        duan=tab[fourth];
        delay(10);

}


WNKY)ZW40(~W{2HBCJKYH4M.png (36.61 KB, 下载次数: 46)

显示数字已经能ok了

显示数字已经能ok了

作者: 18701931930    时间: 2021-6-28 08:00
数字你都可以显示了,ABCD还不会吗?看来你还是不清楚数码管结构啊。
作者: Dxiaofeng    时间: 2021-6-28 08:01
先取字母的模,然后duan=tab[字母的位数,比如a在取模中排3位,就填3,]
作者: MOVEORDIE    时间: 2021-6-28 09:31
如楼上所说的一样的方法,先编码,然后放进数组里,再调用显示。
作者: 名字不是重点    时间: 2021-6-28 09:40
0123456789ABCDEF按这顺序做进码表
作者: AUG    时间: 2021-6-28 09:43
从你程序中看出,你是直接显示,0-9你都可以直接用坐标搞定,一一对应字模,但是ABCD代表着10,11,12,13,在你的显示函数中无法直接结算然后显示出来,你得重新写一个函数才可以。
作者: 茉莉星瞳    时间: 2021-6-28 17:15
AUG 发表于 2021-6-28 09:43
从你程序中看出,你是直接显示,0-9你都可以直接用坐标搞定,一一对应字模,但是ABCD代表着10,11,12,13,在 ...

谢啦,既然ABCD就是11 12 13 14的话,将这个代替掉是不是应该也可以

作者: 茉莉星瞳    时间: 2021-6-28 17:16
MOVEORDIE 发表于 2021-6-28 09:31
如楼上所说的一样的方法,先编码,然后放进数组里,再调用显示。

ok啦,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1