glinfei 发表于 2021-5-7 10:56 图刚才刚发了,不知道为什么看不到,不过行是阳用164,列是阴用154. 至于说P2=0--15,这个我也是看了很多网上的例子,我考虑是0--15转成2进制后,用的是4位的编码,是0000--1111,影响的是P2^0--P2^3的值,后面的164接的P2^4--P2^7不影响,不知道这样理解是否对? |
没看到图,估计列为阳极。我觉得你选的芯片跟你想法不同啊,按你的操作:一是,74ls164初始是全LOW,74hc154初始全H,自然全亮了;二是,你每次操纵154一个脚L,所以逐列关,当然你没用BCD码,所以后来有点乱;三是, P2=colcount[col]; 会影响164的clk啊。 |
本帖最后由 javastory 于 2021-5-7 10:05 编辑 birdzhyli 发表于 2021-5-6 22:44 这段代码我试过P2=0x01,;P2++;和P2=col;故障现象一样,至于数据类型,你说的是对的,用uchar没有问题,我是在网上找了很多文章例子去看,这段代码也是别人用过的,直接复制过来了。 |
虽然没看出楼主的问题,但我想知道楼主为什么用 P2=colcount[col]; 而不是直接P2=col; col也只用到了16,定义个uchar也够了,没必要uint呀 |