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

 我来答
880705lpdhr
2011-02-13 · TA获得超过428个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:245万
展开全部

图我就随便画了,暂时没有专业工具。

#include <reg52.h>

sbit KEY = P0^1;     //定义按键 按键按下时引脚为低

sbit LED = P1^0;     //定义LED脚, 当P1^0为低时 灯亮

void delayms(unsigned int times )       //毫秒延时

{

 unsigned int i,j;

 for(j=0;j<times;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;                       //否则灯不亮       

                    }

         }

彭振敢
2011-02-13 · TA获得超过140个赞
知道答主
回答量:106
采纳率:0%
帮助的人:76.3万
展开全部
单片机是不认识平p1.0 , P1.3 等,你把P1.0改为P1^0 , P1.3改为p^3.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友792dbd1
2011-02-13 · TA获得超过1371个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:364万
展开全部
P1.0口 串个1K电阻,接VCC,然后P0.1口接上拉电阻(10k)到VCC,并个微动开关接地, 需要知道的是 52单片机上电后,默认除P0口外,上电高电平,接上拉电阻是为了让P0口上电高电平;

程序:
#include<reg52.h>
#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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友701e1b1
2011-02-15 · TA获得超过1017个赞
知道小有建树答主
回答量:522
采纳率:100%
帮助的人:544万
展开全部

#include "reg52.h"

#include <intrins.h>

#define uchar unsigned char // 为后面编写方便,将 unsigned char 定义为 uchar

sbit KEY = P0^1;                     // P0.1按钮

sbit LED = P1^0;                     // P1.0灯

/*******按键消抖延时程序20ms(晶振=12MHz)******************/

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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式