找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2757|回复: 8
收起左侧

51单片机不同组IO口段选仿真问题

[复制链接]
ID:399799 发表于 2019-10-31 11:21 | 显示全部楼层 |阅读模式
100黑币
用Proteus  做51单片机仿真,不同组IO口做段选,如果把dx7=P1^6的话,仿真出来完全没问题,数码管正常扫描显示,如果把dx7=P2^6的话,仿真出来的数码管显示就缺少DX7这一段,我用仿真中的示波器观察波形是一样的,请朋友帮忙看看问题出在哪?程序如下:
sbit dx1=P1^0;
sbit dx2=P1^1;
sbit dx3=P1^2;

sbit dx4=P1^3;

sbit dx5=P1^4;

sbit dx6=P1^5;

sbit dx7=P2^6;

void  setseg(a)
{
dx1=a&0x01;a>>=1;
dx2=a&0x01;a>>=1;
dx3=a&0x01;a>>=1;

dx4=a&0x01;a>>=1;

dx5=a&0x01;a>>=1;

dx6=a&0x01;a>>=1;

dx7=a&0x01;

}
定时器中断中:
switch (i)
case 0: setseg(ledbuff[0]);wx1=0;wx2=1;wx3=1,wx4=1;wx5=1;i++;break;
case 1: setseg(ledbuff[1]);wx1=1;wx2=0;wx3=1,wx4=1;wx5=1;i++;break;
case 2: setseg(ledbuff[2)]wx1=1;wx2=1;wx3=0,wx4=1;wx5=1;i++;break;
case 3: setseg(ledbuff[3]);wx1=1;wx2=1;wx3=1,wx4=0;wx5=1;i++;break;

case 4: setseg(ledbuff[4]);wx1=1;wx2=1;wx3=1,wx4=1;wx5=0;i=0;break;

default:break ;


无标题1.png

最佳答案

查看完整内容

楼主不必纠结这个问题,仿真毕竟与实物测试是有很大区别的,这种端口组合的程序用于数码管静态显示仿真没有问题,用于动态显示发生这种现象是仿真软件的不适应造成的,不是编程问题。楼主可以用一个成熟的呼吸灯程序仿真试试,根本就玩不起来。
回复

使用道具 举报

ID:213173 发表于 2019-10-31 11:21 | 显示全部楼层
楼主不必纠结这个问题,仿真毕竟与实物测试是有很大区别的,这种端口组合的程序用于数码管静态显示仿真没有问题,用于动态显示发生这种现象是仿真软件的不适应造成的,不是编程问题。楼主可以用一个成熟的呼吸灯程序仿真试试,根本就玩不起来。
回复

使用道具 举报

ID:399799 发表于 2019-10-31 11:51 | 显示全部楼层
引脚连上后是这样的。
无标题2.png
回复

使用道具 举报

ID:235200 发表于 2019-11-1 01:00 | 显示全部楼层
示波器BCD通道接在一块而显示出来的波形却不一样?也许与你电脑运行的速度有关,不妨所所有程序全部贴出来分析一下,理论上不会有此现象发生
回复

使用道具 举报

ID:332444 发表于 2019-11-1 08:36 | 显示全部楼层
看电路图似乎P2.6连接到不同的地方(位和段都有连接)引起的,
回复

使用道具 举报

ID:332444 发表于 2019-11-1 08:42 | 显示全部楼层
噢噢,起先看错了连接线,为何要用不同组去控制段?你确保这样输出的电平跟用同组的电平是一样的变化?
回复

使用道具 举报

ID:43756 发表于 2019-11-1 10:44 | 显示全部楼层
最好弄一个电路板试试
回复

使用道具 举报

ID:399799 发表于 2019-11-10 16:32 | 显示全部楼层
非常感谢大家的解答,的确是仿真错误,实际打板验证了,程序是没问题的,可以正常显示,谢谢大家!
回复

使用道具 举报

ID:242033 发表于 2021-2-9 13:49 | 显示全部楼层
wangxindir 发表于 2019-11-10 16:32
非常感谢大家的解答,的确是仿真错误,实际打板验证了,程序是没问题的,可以正常显示,谢谢大家!

楼主可以把全部代码发出了学习下吗?正好也用段码在不同的IO口,程序中 wx是什么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表