永发信息网

单片机STC89C52,P0.1口作为按钮,P1.0连接灯,要求按钮控制灯的亮灭。请设计硬件连接方式和C程序

答案:4  悬赏:20  手机版
解决时间 2021-03-26 07:45
  • 提问者网友:疯子也有疯子的情调
  • 2021-03-25 22:19
单片机STC89C52,P0.1口作为按钮,P1.0连接灯,要求按钮控制灯的亮灭。请设计硬件连接方式和C程序
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-03-25 22:26
图我就随便画了,暂时没有专业工具。
#include 
sbit KEY = P0^1;     //定义按键 按键按下时引脚为低
sbit LED = P1^0;     //定义LED脚, 当P1^0为低时 灯亮
void delayms(unsigned int times )       //毫秒延时
{
 unsigned int i,j;
 for(j=0;j {  
   for(i=0;i<400;i++)
  ;
 }
}
void main()
     {
          KEY=1;
          LED=1;     //初始化按键和灯
         while(1)
           {
                    if(KEY==0)
                {
                             delayms(15);           //延时15-20MS去抖动
                 if(KEY==0) LED=0;       //此时按键还是低电平表示被按下,灯亮
                            }
            else LED=1;                       //否则灯不亮       
                    }
         }

全部回答
  • 1楼网友:鱼芗
  • 2021-03-26 02:08

#include "reg52.h"
#include 
#define uchar unsigned char // 为后面编写方便,将 unsigned char 定义为 uchar
sbit KEY = P0^1;                     // P0.1按钮
sbit LED = P1^0;                     // P1.0灯

void delay()
{
     uchar i,j;
     for(i=0; i<20; i++)
     for(j=0; j<249; j++)_nop_();
}

void main()

  LED = 1;                  //初始化灯灭
  while(1)
   {
     if(KEY==0)            //判断按键是否按下
       {
        delay();
        if(KEY==0)
          {
            while(~KEY);         //等待按键释放
            LED=~LED;           //P1.0电平取反
           }
       }
    }
}
  • 2楼网友:往事埋风中
  • 2021-03-26 00:48
P1.0口 串个1K电阻,接VCC,然后P0.1口接上拉电阻(10k)到VCC,并个微动开关接地, 需要知道的是 52单片机上电后,默认除P0口外,上电高电平,接上拉电阻是为了让P0口上电高电平;
程序:
#include
#define uchar unsigned char
#define uint unsigned int
void delay(uint x)
{
uchar a,b;
for(a=100;a>0;a--)
for(b=x;b>0;b--);
}
void main()
{
while(1)
{
if(P0=0xfe)
{
P1=0x00;
}
else P1=0xff;
}
}
  • 3楼网友:渡鹤影
  • 2021-03-25 23:29
单片机是不认识平p1.0 , P1.3 等,你把P1.0改为P1^0 , P1.3改为p^3.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯