久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2163|回復: 6
打印 上一主題 下一主題
收起左側

利用開發板上的開關及可受單片機IO腳控制的發光二極管 求分析

[復制鏈接]
跳轉到指定樓層
樓主
ID:728433 發表于 2020-9-22 22:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//項目:利用開發板上的開關及可受單片機IO腳控制的發光二極管,上電的時候,L1接在P1.0管腳上的發光二極管在閃爍,當每一次按下開關SP1的時候,L2接在P1.1管腳上的發光二極管在閃爍,再按下開關SP1的時候,L3接在P1.2管腳上的發光二極管在閃爍,再按下開關SP1的時候,L4接在P1.3管腳上的發光二極管在閃爍,再按下開關SP1的時候,又輪到L1在閃爍了,如此輪流下去。
//問題:如果刪去第2,3,4個燈的代碼,第一個燈就可以按下亮,但是加上后就全不亮了,也沒有語法錯誤,我想知道我的問題出在哪里。
//我是一個初學者,還沒有掌握這門技術,希望論壇的大哥們看到這么弱智的問題不要動怒,謝謝您們!!!!

單片機源程序如下:
#include<reg52.h>

sbit sp1=P3^0;
sbit sp2=P3^1;
sbit sp3=P3^2;
sbit sp4=P3^3;

void delay(int z)
{
int x,y;
for(x=z;x>0;x-- )
   for(y=114;y>0;y--) ;
}

void main()
{
if(sp1==0)
{
delay(10);
if(sp1==0)
{P1=0xfe;
delay(5);}
while(1);
}
         if(sp2==0)
{
delay(10);
if(sp2==0)
{P1=0xfd;
delay(5);}
while(1);
}
if(sp3==0)
{
delay(10);
if(sp3==0)
{P1=0xfb;
delay(5);}
while(1);
}
if(sp4==0)
{
delay(10);
if(sp4==0)
{P1=0xf7;
delay(5);}
while(1);
}


}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:149144 發表于 2020-9-23 00:07 | 只看該作者
{P1=0xfe;
delay(5);}
這個時候他不會閃 ,如果共電源的,LED只會亮,然后延時 ,還是亮著,0xFE = 1111 1110
{
  P1 = 0xFE;
  delay(5);
  P1 = 0xFF;
  delay(5);
}
這樣 LED 先亮 延時 再滅 再延時 看著就是 閃了 ;后面的都一樣
回復

使用道具 舉報

板凳
ID:332444 發表于 2020-9-23 12:56 | 只看該作者
while(1);修改while(sp1==0);
回復

使用道具 舉報

地板
ID:213173 發表于 2020-9-23 15:12 | 只看該作者
每按一次開關SP1,LED1~LED4輪流閃爍,以此反復。
  1. #include<reg52.h>

  2. sbit sp1=P3^0;
  3. //sbit sp2=P3^1;
  4. //sbit sp3=P3^2;
  5. //sbit sp4=P3^3;

  6. char i=0;
  7. int  j=0;

  8. void delay(int z)
  9. {
  10.         int x,y;
  11.         for(x=z;x>0;x-- )
  12.            for(y=114;y>0;y--) ;
  13. }

  14. void main()
  15. {
  16.         while(1)
  17.         {
  18.                 if(sp1==0)
  19.                 {
  20.                         delay(10);
  21.                         if(sp1==0)
  22.                         {
  23.                                 i++;
  24.                                 if(i>=4)
  25.                                         i=0;
  26.                         }
  27.                         while(!sp1);
  28.                 }
  29.                 j++;
  30.                 if(j>=20000)
  31.                         j=0;
  32.                 if(j<10000)
  33.                         P1=~(0x01<<i);
  34.                 else P1=0xff;
  35.         }
  36. }
復制代碼
回復

使用道具 舉報

5#
ID:337139 發表于 2020-9-23 17:21 | 只看該作者
問題在while(1);上。多調試兩次的。
回復

使用道具 舉報

6#
ID:728433 發表于 2020-9-23 21:51 | 只看該作者
xianfajushi 發表于 2020-9-23 12:56
while(1);修改while(sp1==0);

謝謝哦,改了之后就可以了,您能解釋一下為啥嗎?
回復

使用道具 舉報

7#
ID:332444 發表于 2020-9-24 09:49 | 只看該作者
while(1);是無限循環while(sp1==0);是等待按鍵釋放
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕在线不卡 | 特黄毛片视频 | 日韩最新网址 | 欧美日韩中文字幕在线播放 | 91久久久久久 | 天天天插| 涩涩视频网站在线观看 | 亚洲高清在线视频 | 热99在线| 九九热精品视频 | 成人免费在线视频 | 天堂资源视频 | 三级视频国产 | 国产成年人视频 | 亚洲国产精品99久久久久久久久 | 久久精品中文 | 91精品国产高清一区二区三区 | 久久国产精品精品国产色婷婷 | 亚洲一区二区在线播放 | 午夜精品一区 | 成人免费一区二区三区视频网站 | 欧美精品网 | 欧美精品一区二区三区在线播放 | 亚洲成人福利 | 影视先锋av资源噜噜 | 亚洲天堂中文字幕 | 午夜大片 | 伊人网站在线 | 久久久久91 | 三级av在线| xxxxxx国产| 免费看一区二区三区 | 国产一区二区成人 | 成人欧美在线 | 精品国产乱码久久久久久闺蜜 | 日本精品视频在线观看 | 精品粉嫩超白一线天av | 久久久婷婷 | 中国大陆高清aⅴ毛片 | 91精品国产综合久久婷婷香蕉 | 欧洲精品久久久久毛片完整版 |