找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4444|回复: 7
打印 上一主题 下一主题
收起左侧

单片机串口发送字符控制led灭与亮程序问题

[复制链接]
跳转到指定楼层
楼主
ID:249916 发表于 2017-11-16 23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这样可以发送1的时候灭,发送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. }
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2017-11-17 07:26 | 只看该作者
是不是语法错误啊?
如:case'0': LED=0;break;
应该是:case('0'): LED=0;break;
回复

使用道具 举报

板凳
ID:213173 发表于 2017-11-17 08:37 | 只看该作者
波特率9600,收发为文本模式
#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 发表于 2017-11-17 09:40 来自手机 | 只看该作者
HC6800-ES-V2.0 发表于 2017-11-17 07:26
是不是语法错误啊?
如:case'0': LED=0;break;
应该是:case('0'): LED=0;break;

不不不,是用if有问题。switch 没问题
回复

使用道具 举报

5#
ID:249916 发表于 2017-11-17 09:42 来自手机 | 只看该作者
wulin 发表于 2017-11-17 08:37
波特率9600,收发为文本模式
#include
typedef unsigned char u8;

收发为文本模式,反正我输入的都是一个字符嘛。为什么两种方法就不一样呢
回复

使用道具 举报

6#
ID:231638 发表于 2017-11-17 10:21 | 只看该作者
我觉得你把0和1换成0x30和0x31就可以了
回复

使用道具 举报

7#
ID:249916 发表于 2017-11-18 20:38 | 只看该作者
没问题,原来是软件的问题。
回复

使用道具 举报

8#
ID:901143 发表于 2021-4-6 09:43 | 只看该作者
我还没发送数据 LED就在那常亮是什么问题呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表