電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 2623|回復(fù): 7
收起左側(cè)

大一菜雞求幫忙 大哥們 我快被急死了

[復(fù)制鏈接]

49

主題

288

帖子

1533

積分

三級會員

Rank: 3Rank: 3

積分
1533
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-6-15 18:01:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為啥我這個程序沒錯 燒錄進仿真軟件就只亮一個燈 雖然我知道就是用 延時函數(shù) 但是我最近知道左移右移了 就不想用那種亮一個燈 延時一下的那種了 現(xiàn)在這種情況該如何解決呢



回復(fù)

使用道具 舉報

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
沙發(fā)
發(fā)表于 2022-6-15 18:02:15 | 只看該作者
你的延時不對吧,延時是無限長了
回復(fù) 支持 反對

使用道具 舉報

587

主題

981

帖子

5126

積分

四級會員

Rank: 4

積分
5126
板凳
發(fā)表于 2022-6-15 18:02:53 | 只看該作者
引腳不能直接用移位。要先賦值16進制數(shù),再移位
回復(fù) 支持 反對

使用道具 舉報

600

主題

954

帖子

5061

積分

四級會員

Rank: 4

積分
5061
地板
發(fā)表于 2022-6-15 18:03:37 | 只看該作者
#include <REGX52.H>
#include <INTRINS.H>


void Delay500ms()//@12.000MHz  這部分由燒寫程序SPC_IST生成的
{
unsigned char i, j, k;


_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}




void main()//主函數(shù)部分,已調(diào)試好
{
while(1)
{
unsigned char i;
for(i=0;i<8;i++)
{
P2=~((~0xFE)<<i);//首先1111 1110翻轉(zhuǎn)成0000 0001,左移i位,最后再翻轉(zhuǎn)一次
Delay500ms();
}
}
}
回復(fù) 支持 反對

使用道具 舉報

598

主題

943

帖子

5138

積分

四級會員

Rank: 4

積分
5138
5#
發(fā)表于 2022-6-15 18:03:42 | 只看該作者
delay你才100,一下就過掉了,用65000試下
回復(fù) 支持 反對

使用道具 舉報

6#
發(fā)表于 2022-6-15 18:04:47 | 只看該作者
你知道51運行一次while循環(huán)才多少微秒嗎?你這個100減完才多長時間啊,去查查吧。然后你試試把P0口的初值賦值挪到while前面試試看是不是又不一樣了?你現(xiàn)在的程序看起來是延時太短然后while每一次都會重新把p0改成fe,看起來是沒有變,實際上移位過程已經(jīng)在非常短的時間里做完又重新賦值fe了,其他的燈都是一閃而過就滅了,只有第一個燈是始終給低電平。
回復(fù) 支持 反對

使用道具 舉報

579

主題

911

帖子

5007

積分

四級會員

Rank: 4

積分
5007
7#
發(fā)表于 2022-6-15 18:05:30 | 只看該作者
移位建議用左移函數(shù)crol或者用數(shù)組,你用單用<<會導(dǎo)致一到八個燈一起亮
回復(fù) 支持 反對

使用道具 舉報

604

主題

947

帖子

5151

積分

四級會員

Rank: 4

積分
5151
8#
發(fā)表于 2022-6-15 18:06:17 | 只看該作者
P0口為啥不上拉電阻?
回復(fù) 支持 反對

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表