找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5343|回復: 7
收起左側(cè)

單片機串口發(fā)送字符控制led滅與亮程序問題

[復制鏈接]
ID:249916 發(fā)表于 2017-11-16 23:25 | 顯示全部樓層 |閱讀模式
這樣可以發(fā)送1的時候滅,發(fā)送0就亮,
但是我用if(date=='1')
LED=1;
else
LED=0;
代替switch的話,無論輸入什么都是亮。
求解答。

單片機源程序如下:
  1. #include<reg52.h>
  2. typedef unsigned char u8;
  3. u8 date='1';
  4. sbit LED=P2^0;
  5. void yuchuli()
  6. {
  7.    SCON=0X50;
  8.    PCON=0X80;
  9.    TMOD=0X20;
  10.    TH1=0XF3;
  11.    TL1=0XF3;
  12.    ES=1;
  13.    EA=1;
  14.    TR1=1;
  15. }
  16. void main()
  17. {
  18.    yuchuli();
  19.    while(1)
  20.    {
  21.      switch(date)
  22.      {
  23.      case'0': LED=0;break;
  24.      case'1': LED=1;break;
  25.      }

  26.    }

  27. }
  28. void chunakou() interrupt 4
  29. {
  30.    date=SBUF;
  31.     while(!RI);
  32.    RI=0;
  33.    SBUF=date;
  34.    while(!TI);
  35.    TI=0;
  36. }
復制代碼




回復

使用道具 舉報

ID:164602 發(fā)表于 2017-11-17 07:26 | 顯示全部樓層
是不是語法錯誤啊?
如:case'0': LED=0;break;
應該是:case('0'): LED=0;break;
回復

使用道具 舉報

ID:213173 發(fā)表于 2017-11-17 08:37 | 顯示全部樓層
波特率9600,收發(fā)為文本模式
#include<reg52.h>
typedef unsigned char u8;
u8 date='1';
sbit LED=P2^0;
void yuchuli()
{
        SCON=0X50;
//  PCON=0X80;
   TMOD=0X20;
   TH1=0XFD;
   TL1=0XFD;
   ES=1;
   EA=1;
   TR1=1;
}
void main()
{
   yuchuli();
   while(1)
   {
     switch(date)
     {
                 case'0': LED=0;break;
                 case'1': LED=1;break;
     }
   }

}
void chunakou() interrupt 4
{
        RI=0;
        date=SBUF;
        SBUF=date;
        while(!TI);
        TI=0;
}
回復

使用道具 舉報

ID:249916 發(fā)表于 2017-11-17 09:40 來自手機 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2017-11-17 07:26
是不是語法錯誤啊?
如:case'0': LED=0;break;
應該是:case('0'): LED=0;break;

不不不,是用if有問題。switch 沒問題
回復

使用道具 舉報

ID:249916 發(fā)表于 2017-11-17 09:42 來自手機 | 顯示全部樓層
wulin 發(fā)表于 2017-11-17 08:37
波特率9600,收發(fā)為文本模式
#include
typedef unsigned char u8;

收發(fā)為文本模式,反正我輸入的都是一個字符嘛。為什么兩種方法就不一樣呢
回復

使用道具 舉報

ID:231638 發(fā)表于 2017-11-17 10:21 | 顯示全部樓層
我覺得你把0和1換成0x30和0x31就可以了
回復

使用道具 舉報

ID:249916 發(fā)表于 2017-11-18 20:38 | 顯示全部樓層
沒問題,原來是軟件的問題。
回復

使用道具 舉報

ID:901143 發(fā)表于 2021-4-6 09:43 | 顯示全部樓層
我還沒發(fā)送數(shù)據(jù) LED就在那常亮是什么問題呀
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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