欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機不同組IO口段選仿真問題 [打印本頁]

作者: wangxindir    時間: 2019-10-31 11:21
標題: 51單片機不同組IO口段選仿真問題
用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 (145.66 KB, 下載次數: 114)

無標題1.png

作者: wulin    時間: 2019-10-31 11:21
樓主不必糾結這個問題,仿真畢竟與實物測試是有很大區別的,這種端口組合的程序用于數碼管靜態顯示仿真沒有問題,用于動態顯示發生這種現象是仿真軟件的不適應造成的,不是編程問題。樓主可以用一個成熟的呼吸燈程序仿真試試,根本就玩不起來。
作者: wangxindir    時間: 2019-10-31 11:51
引腳連上后是這樣的。

無標題2.png (154.28 KB, 下載次數: 103)

無標題2.png

作者: csmyldl    時間: 2019-11-1 01:00
示波器BCD通道接在一塊而顯示出來的波形卻不一樣?也許與你電腦運行的速度有關,不妨所所有程序全部貼出來分析一下,理論上不會有此現象發生
作者: xianfajushi    時間: 2019-11-1 08:36
看電路圖似乎P2.6連接到不同的地方(位和段都有連接)引起的,
作者: xianfajushi    時間: 2019-11-1 08:42
噢噢,起先看錯了連接線,為何要用不同組去控制段?你確保這樣輸出的電平跟用同組的電平是一樣的變化?
作者: lkmtdkjplg    時間: 2019-11-1 10:44
最好弄一個電路板試試
作者: wangxindir    時間: 2019-11-10 16:32
非常感謝大家的解答,的確是仿真錯誤,實際打板驗證了,程序是沒問題的,可以正常顯示,謝謝大家!
作者: huangxulihua55    時間: 2021-2-9 13:49
wangxindir 發表于 2019-11-10 16:32
非常感謝大家的解答,的確是仿真錯誤,實際打板驗證了,程序是沒問題的,可以正常顯示,謝謝大家!

樓主可以把全部代碼發出了學習下嗎?正好也用段碼在不同的IO口,程序中 wx是什么?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1