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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機有4個按鈕控制4個LED,程序上電LED高電平,如何修改成上電低電平?謝謝

[復制鏈接]
跳轉到指定樓層
樓主
ID:384552 發表于 2022-1-4 15:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
C51,有4個按鈕控制4個LED,程序上電LED高電平,初學不懂C語音,請問如何修改成上電低電平,謝謝

單片機源程序如下:
/C51,有4個按鈕,按鈕1按下,LED1亮;
//按鈕2按下,LED1滅,LED2亮;以此類推,
#include<reg52.h>
sbit led1=P1^1; //led燈,
sbit led2=P1^2; //led燈,
sbit led3=P1^3; //led燈,
sbit led4=P1^4; //led燈,
sbit key1=P2^1; //按鍵,
sbit key2=P2^2; //按鍵,
sbit key3=P2^3; //按鍵,
sbit key4=P2^4; //按鍵,
void delay(unsigned int t) //延時函數
{
while(--t);
}
void main()
{
while(1)
{
if(key1 == 0) //如果高電平按下按鍵就==1
{
delay(200); //按鍵防抖
if(key1 == 0)
{
led1=1; //如果低電平亮就=0
led2=0;
led3=0;
led4=0;
}
}
if(key2 == 0)
{
delay(200); //按鍵防抖
if(key2 == 0)
{
led1=0; //如果低電平亮就=0
led2=1;
led3=0;
led4=0;
}
}
if(key3 == 0)
{
delay(200); //按鍵防抖
if(key3 == 0)
{
led1=0; //如果低電平亮就=0
led2=0;
led3=1;
led4=0;
}
}
if(key4 == 0)
{
delay(200); //按鍵防抖
if(key4 == 0)
{
led1=0; //如果低電平亮就=0
led2=0;
led3=0;
led4=1;
}
}
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:8455 發表于 2022-1-4 16:24 | 只看該作者
在主函數內將LED腳初始化為0即可,在while循環前 加上led1=o;
回復

使用道具 舉報

板凳
ID:908826 發表于 2022-1-4 16:36 | 只看該作者
上電高電平,這個我咋覺得你就算在程序給他拉低,在通電一瞬間到程序運行到拉低那句程序這個極短的時間間隔內還是高電平。
回復

使用道具 舉報

地板
ID:57657 發表于 2022-1-4 16:51 | 只看該作者
13205495918 發表于 2022-1-4 16:36
上電高電平,這個我咋覺得你就算在程序給他拉低,在通電一瞬間到程序運行到拉低那句程序這個極短的時 ...

STC8已經把這個問題解決了,IO口上電瞬間高阻狀態。
回復

使用道具 舉報

5#
ID:979299 發表于 2022-1-4 16:56 | 只看該作者
加一句就行了,另外格式整理了一下,便于查看
#include<reg52.h>
sbit led1=P1^1; //led燈,
sbit led2=P1^2; //led燈,
sbit led3=P1^3; //led燈,
sbit led4=P1^4; //led燈,
sbit key1=P2^1; //按鍵,
sbit key2=P2^2; //按鍵,
sbit key3=P2^3; //按鍵,
sbit key4=P2^4; //按鍵,
void delay(unsigned int t) //延時函數
{
        while(--t);
}
void main()
{
        P1=0x00;  
while(1)
        {
                if(key1 == 0) //如果高電平按下按鍵就==1
                {
                        delay(200); //按鍵防抖
                        if(key1 == 0)
                        {
                                led1=1; //如果低電平亮就=0
                                led2=0;
                                led3=0;
                                led4=0;
                        }
                }
                if(key2 == 0)
                {
                        delay(200); //按鍵防抖
                        if(key2 == 0)
                        {
                                led1=0; //如果低電平亮就=0
                                led2=1;
                                led3=0;
                                led4=0;
                        }
                }
                if(key3 == 0)
                {
                        delay(200); //按鍵防抖
                        if(key3 == 0)
                        {
                                led1=0; //如果低電平亮就=0
                                led2=0;
                                led3=1;
                                led4=0;
                        }
                }
                if(key4 == 0)
                {
                        delay(200); //按鍵防抖
                        if(key4 == 0)
                        {
                                led1=0; //如果低電平亮就=0
                                led2=0;
                                led3=0;
                                led4=1;
                        }
                }
        }
}
回復

使用道具 舉報

6#
ID:509408 發表于 2022-1-4 17:00 | 只看該作者
如樓上所說,51單片機上電瞬間有極短的高電平,如果你想拉低可以接三極管、反相器把電平 翻轉為低平。除非一些場合需要大多是沒必要這么做。 為了防止誤操作,可以上電時軟件延時一下規避上電不受控的高電平時間。
回復

使用道具 舉報

7#
ID:384552 發表于 2022-1-4 17:55 | 只看該作者
興安xa 發表于 2022-1-4 16:56
加一句就行了,另外格式整理了一下,便于查看
#include
sbit led1=P1^1; //led燈,

通過,謝謝
回復

使用道具 舉報

8#
ID:384552 發表于 2022-1-4 17:59 | 只看該作者
sbit led1=P1^1; //led燈,
發現修改sbit led2=P1^2; //led燈,
sbit led3=P1^3; //led燈,
sbit led4=P1^4; //led燈,
sbit key1=P2^1; //按鍵,
sbit key2=P2^2; //按鍵,
sbit key3=P2^3; //按鍵,
sbit key4=P2^4; 引腳后仿真無效,如 led2=P1^2改成led2=p3.0;
回復

使用道具 舉報

9#
ID:384552 發表于 2022-5-18 23:29 | 只看該作者
興安xa 發表于 2022-1-4 16:56
加一句就行了,另外格式整理了一下,便于查看
#include
sbit led1=P1^1; //led燈,

謝謝您的答復
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表