| 谢谢各位大佬解答,是没有消隐的问题,已经解决了 |
wulin 发表于 2020-12-6 08:13 解决了,谢谢解答。 |
| P0=~seg[dis[i]]; |
|
楼主程序没有大问题,只是动态数码管显示没有加消隐语句,不适合仿真观察。实物试验数码管会有鬼影,仿真就成乱码。显示程序修改如下: void display(void) { uchar i; for(i=0;i<8;i++) { P0=0x00;//消隐 P2=i;//位码 P0=seg[dis[i]];//段码 delayms(1); } } |
| 也许字符码不正确? |
| 这个[ i] 被当成文字斜体处理(自动补上[ i])了,不知道管理人员能否取消这个功能或者禁用文字斜体?毕竟论坛经常会遇到发程序带[ i]的。如果没法解决,大家今后遇到正常文字的程序突然变成斜体的就应该留意是否出错了 |
张天师 发表于 2020-12-5 23:04 我也是这样认为的,但是看显示的比较正常的,seg字模是 05-35-00 ,显示的也是类似,从图中可以看出,正在显示第A5位的数码管,373输出的也正是3的数据0x4f。如果按字面上的程序看,应该编译无法通过的,而后在发帖进入高级模式时,发现我的[ i ]也被吃掉了,返回文本模式看其实还在,只是最后面多出来一个[ / i ],删除后又自动加上去了,这个其实是论坛的程序影响的。 |
|
P0=seg[i]; P2=i; delayms(1); |