找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3061|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

求助高手LED控制的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:141313 發(fā)表于 2017-1-20 14:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
控制思路:
  按下單片機(jī)按鈕K3,可以通過(guò)上位機(jī)對(duì)LED控制(用串口調(diào)試軟件代替);松開(kāi)單片機(jī)按鈕K3,可以通過(guò)單片機(jī)K1來(lái)控制LED1(當(dāng)K1按下時(shí),LED1亮;K1松開(kāi)時(shí),LED1滅。),單片機(jī)K2來(lái)控制LED2(當(dāng)K2按下時(shí),LED2亮;K2松開(kāi)時(shí),LED2滅。),F(xiàn)編寫程序如下:(存在問(wèn)題:按下單片機(jī)按鈕K3,不能通過(guò)上位機(jī)對(duì)LED控制(用串口調(diào)試軟件代替)),請(qǐng)高手指教
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar i,j;
typedef unsigned int u16;   //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
sbit LED1=P1^5;
sbit KEY1=P2^0;
sbit LED2=P1^6;
sbit KEY2=P2^1;
sbit KEY3=P2^2;
u8 start=0;
/*******************************************************************************
* 函 數(shù) 名         : delay
* 函數(shù)功能     : 延時(shí)函數(shù)
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 數(shù) 名         : init_uart
* 函數(shù)功能     : 串口初始化函數(shù)
*******************************************************************************/
void init_uart(void)
{
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
SCON=0X50;
EA=1;
ES=1;
}
/*******************************************************************************
* 函 數(shù) 名         : zh
* 函數(shù)功能     : 選擇按鈕函數(shù)
*******************************************************************************/
void zh()
{
      KEY3=1;
if(KEY3==0)
     {
    delay(1000);
    if(KEY3==0)
          start=0;
     
    while(!KEY3)
       start=1;
   }
}
/*******************************************************************************
* 函 數(shù) 名         : he
* 函數(shù)功能     : 操作函數(shù)
*******************************************************************************/
void he()
{
if(KEY1==0)
     {
    delay(1000);
    if(KEY1==0)
       LED1=1;
   }
else
   LED1=0;
if(KEY2==0)
   {
    delay(1000);
   if(KEY2==0)
    LED2=1;
   }
else
   LED2=0;
}

/*******************************************************************************
* 函 數(shù) 名         : main
* 函數(shù)功能     : 主函數(shù)
*******************************************************************************/
void main()
{
LED1=0;
KEY1=1;
LED2=0;
KEY2=1;
   init_uart();
while(1)
{  
        zh();
    if(start=1)
      {
       he();
      }
    if(start=0)
   {
      while(!RI);
      RI=0;
      j=SBUF;
      if(j==0x01)
         {
           LED1=1;
           delay(2000);
          LED1=0;
          }
      if(j==0x02)
          {
             LED2=1;
             delay(2000);
             LED2=0;
           }
       }
   }
   
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:140371 發(fā)表于 2017-1-21 06:38 | 只看該作者
初看程式覺(jué)得ˊ這個(gè)模組程式有疑問(wèn)
* 函 數(shù) 名         : zh
* 函數(shù)功能     : 選擇按鈕函數(shù)
*******************************************************************************/
void zh()
{
      KEY3=1;
if(KEY3==0)
     {
    delay(1000);
    if(KEY3==0)
          start=0;
     
    while(!KEY3)  //
       start=1;//
   }
}

改成這樣試看看
void zh()
{
      KEY3=1;
if(KEY3==0)
     {
    delay(1000);
    if(KEY3==0)
          start=0;
     }
else
       start=1;
   
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表