哪位高手能帮我改改这个小程序

2019-03-24 18:35发布

我想在下面这个小程序里在加一个按键KEY2    单独控制一个LED2的点亮和熄灭输入端口为P3^1
输出端口为P1^1


#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义


sbit KEY=P3^0;  //定义按键输入端
sbit LED=P1^0;  //定义led输出端口
sbit LED1=P1^1; //定义led输出端口
void DelayUs2x(unsigned char t);//函数声明
void DelayMs(unsigned char t);
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{
                  
KEY=1; //按键输入端口电平置高

while (1)         //主循环
  {

  if(!KEY)  //如果检测到低电平,说明按键按下
  
    {
         DelayMs(10); //延时去抖,一般10-20ms
     if(!KEY)     //再次确认按键是否按下,没有按下则退出
         
           {
        while(!KEY);//如果确认按下按键等待按键释放,没有释放则一直等待
       
               {
               LED=!LED;//释放则执行需要的程序
               LED1=!LED;//释放则执行需要的程序 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
1024710602
1楼-- · 2019-03-25 01:15
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit add_out=P1^1;
sbit add_key=P3^1;
sbit KEY=P3^0;  //定义按键输入端
sbit LED=P1^0;  //定义led输出端口
sbit LED1=P1^1; //定义led输出端口
void DelayMs(unsigned char t);
/*------------------------------------------------
                     主函数
------------------------------------------------*/
void main (void)
{
  add_out=0;                 
KEY=1; //按键输入端口电平置高
add_key=1;
while (1)         //主循环
   {

  if(!KEY)  //如果检测到低电平,说明按键按下
   
     {
          DelayMs(200); //延时去抖,一般10-20ms
      if(!KEY)     //再次确认按键是否按下,没有按下则退出
         
            {
         while(!KEY);//如果确认按下按键等待按键释放,没有释放则一直等待
         
               {
                LED=!LED;//释放则执行需要的程序
                LED1=!LED;//释放则执行需要的程序   
    }
   }
  }
   if(!add_key)
    {DelayMs(200);
if(!add_key)
add_out=~add_out;}
}
}
void DelayMs(unsigned char t)
{
   while(t--);
}

一周热门 更多>