引用: QWE4562009 发表于 2020-7-6 18:41 恩  为什么第一行数组的值是0X00 接下来都是0X7?而第二行和第三行那些数组的元素是那样的值   ...

!!38.png

这个数组的某一行,猜测是8X8点阵显示的内容,而且为0代表 “灭”,为1代表 “亮”。第一行第一列数为0X00,这是8X8点阵的第一行(或者第一列,与硬件联接有关),即这行全灭。第一行第二列为0X7E,即第一位灭,六位亮,最后一位灭。写成二进制看得比较清楚。最后一行又是全灭。所以第一行显示的是6X6的一个方块。

第二行和第三行,仍然是写成二进制就看清楚了。

点赞  2020-7-6 18:57
QWE4562009 发表于 2020-7-6 18:39 对  我要说的是这个

这句是说 M[j] 这个数组中第一维为 i ,第二维为 j 的那个元素装入P0。

点赞  2020-7-6 19:02

你这个P1=_crol_(P1,1);   得再推敲一下,P1口硬件连接的是扫描输出线,所以移位做切换,P0口输出这没问题

但是按键中断里P1=0x80是做什么的?好像后面也没有完就不知道了。

既然是扫描从哪里开始也都无所谓,所以j=0可以不要

传统51要先输出1然后再读取io,你P0口完全是输出,所以P0=0xff就没有必要。

点赞  2020-7-6 22:20

另外这句j=(j+1)%8;这种写法值得推敲,%8 运算和 &7;是一样的,%8没问题,

%3会有个意外,255%3=0 再加1的情况是 0%3=0 这么写不严谨。

点赞  2020-7-6 22:33
引用: huo_hu 发表于 2020-7-6 22:20 你这个P1=_crol_(P1,1);   得再推敲一下,P1口硬件连接的是扫描输出线,所以移位做切换,P0口输出这没 ...

crol看懂了,(P1,1)这个没看懂啥玩意   一个IO一个常数在括号里,,,

点赞  2020-7-7 09:21
引用: huo_hu 发表于 2020-7-6 22:33 另外这句j=(j+1)%8;这种写法值得推敲,%8 运算和 &7;是一样的,%8没问题, %3会有个意外,255%3=0 再 ...

一个变量加上1  在对8取余数,这是什么玩意

点赞  2020-7-7 09:22
引用: maychang 发表于 2020-7-6 19:02 QWE4562009 发表于 2020-7-6 18:39 对  我要说的是这个 这句是说 M[j] 这个数组中第一维 ...

P0不是只能是八位吗?一个元素已经为八位了啊

点赞  2020-7-7 09:29
引用: QWE4562009 发表于 2020-7-7 09:29 P0不是只能是八位吗?一个元素已经为八位了啊

没错,就是把8位二进制数据装入P0。

注意:每次定时器中断,P0装入下一个元素,即装入下一个8位二进制数据。装完八次,第九次仍装入第一个数据,周而复始。所以要除以8的余数作为指针,指向下一个装入的数据。

点赞  2020-7-7 09:34
引用: QWE4562009 发表于 2020-7-7 09:22 一个变量加上1  在对8取余数,这是什么玩意

“一个变量加上1  在对8取余数,这是什么玩意”

” 应为 “”。

点赞  2020-7-7 09:36
引用: QWE4562009 发表于 2020-7-7 09:22 一个变量加上1  在对8取余数,这是什么玩意

加一再除以8,取余数,余数一定是0、1、2、……7。不可能余8。结果是指针(即该变量 j )恰好指向下一次定时器中断时应该取出的那个元素。

点赞  2020-7-7 09:41
引用: maychang 发表于 2020-7-6 19:02 QWE4562009 发表于 2020-7-6 18:39 对  我要说的是这个 这句是说 M[j] 这个数组中第一维 ...

uchar code M[][8]=  -------------------------这一个中括号怎么没有值  而第二个中括号时一个常数8 

点赞  2020-7-7 09:43
引用: QWE4562009 发表于 2020-7-7 09:43 uchar code M[][8]=  -------------------------这一个中括号怎么没有值  而第二个中括号时一 ...

应该是有值的。

他这里为什么这样写,我不知道。这段程序是否能通过编译,严重怀疑。

点赞  2020-7-7 09:46
引用: maychang 发表于 2020-7-7 09:41 加一再除以8,取余数,余数一定是0、1、2、……7。不可能余8。结果是指针(即该变量 j )恰好 ...

i=(i+1)%3; //i在0,1,2中取值,因为只要3个图形-------------------这个得到的余数----1对3取余数是1,2对3取余数是2,3对3取余数是0,余数就是0 1 2,这三个数作为变量I的值?i在这里代表啥含义

点赞  2020-7-7 09:53
引用: QWE4562009 发表于 2020-7-7 09:53 i=(i+1)%3; //i在0,1,2中取值,因为只要3个图形-------------------这个得到的余数----1对3取余数是1, ...

“余数就是0 1 2,这三个数作为变量I的值?”

是。i 只能取这三个值,而且是轮流取0、1、2、0、1、2、0、1、……循环。

点赞  2020-7-7 09:58
引用: QWE4562009 发表于 2020-7-7 09:53 i=(i+1)%3; //i在0,1,2中取值,因为只要3个图形-------------------这个得到的余数----1对3取余数是1, ...

“i在这里代表啥含义”

i 是个指针。

点赞  2020-7-7 10:00
引用: maychang 发表于 2020-7-7 09:46 应该是有值的。 他这里为什么这样写,我不知道。这段程序是否能通过编译,严重怀疑。

编译没问题   我试过了 

点赞  2020-7-7 11:39
引用: maychang 发表于 2020-7-7 10:00 “i在这里代表啥含义” i 是个指针。

这个指针总有个要表达的意思吧

点赞  2020-7-7 11:40
QWE4562009 发表于 2020-7-7 11:40 这个指针总有个要表达的意思吧

“这个指针总有个要表达的意思吧”

 

这个指针要表达的意思在这个语句里面:

!!ij.png 这句的意思,是把M这个数组中第 i 行第 j 列那个数送P0。

本帖最后由 maychang 于 2020-7-7 14:21 编辑
点赞  2020-7-7 14:03
引用: maychang 发表于 2020-7-7 14:03 QWE4562009 发表于 2020-7-7 11:40 这个指针总有个要表达的意思吧 “这个指针总有个要表达的意 ...

就是相当于一个X轴和Y轴  就是一个行和列构成的坐标是吗?M在这里是一个变量?这个变量包含了两个数组?一个数组是行i  一个数组是列j?

点赞  2020-7-7 16:16
引用: maychang 发表于 2020-7-7 14:03 QWE4562009 发表于 2020-7-7 11:40 这个指针总有个要表达的意思吧 “这个指针总有个要表达的意 ...

指针不是比较复杂的程序才会用到吗?这个怎么也用上指针了?还有这个M为何要取反再给到P0呢

点赞  2020-7-7 16:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复