普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2313|回复: 3

51串口发送控制led亮灭

 关闭 [复制链接]

1

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2019-7-21 18:01:15 | 显示全部楼层 |阅读模式
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit led0=P2^0;
u8 receive;
void renewTXD()                                  
{
        TMOD=0X20;
        TH1=0XF3;
        TL1=0XF3;
        PCON=0X80;
        TR1=1;
        SCON=0X50;
        EA=1;
        ES=1;
}                                       
void main()
{                                                                                 
        renewTXD();
        while(1)
        {       
                if(receive=='1')
                {
                        led0=~led0;
                }
        }
}
void TXDSTOP() interrupt 4
{
        TH1=0XF3;
        TL1=0XF3;
        receive=SBUF;
        RI=0;
        SBUF=receive;
        while(!TI);
        TI=0;
}


各位,这是我的程序,但是只能实现发送1, led亮,再发送1,led还是亮,没有灭,想知道为什么???
晶振12MHZ 波特率是4800,传输和接受值相同,无异常。
回复

使用道具 举报

4

主题

156

帖子

516

积分

高级会员

Rank: 4

积分
516
发表于 2019-7-22 14:08:56 | 显示全部楼层
   建议你不要用取反, 1开2 关这样就可以了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2019-7-25 14:39:25 | 显示全部楼层
YXUN 发表于 2019-7-22 14:08
建议你不要用取反, 1开2 关这样就可以了

这是什么原理呢
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-14 06:49 , Processed in 0.098279 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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