普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 29279|回复: 22

[已解决] 【普中】分享51开发板简易串口点亮LED灯的程序

[复制链接]

20

主题

216

帖子

1115

积分

金牌会员

Rank: 6Rank: 6

积分
1115
发表于 2020-8-4 13:43:19 | 显示全部楼层 |阅读模式
本帖最后由 Nanachi 于 2020-8-4 14:45 编辑

   这里分享一个通过串口通信点亮LED灯的程序,可适用于普中所有51开发板,串口调试助手发送1至8来点亮LED灯D1至D8


  程序比较简单,只要判断串口发送过来的ascii码是多少,通过switch case进行条件判断执行即可。


  另外,如果使用的是11.0592M晶振的话,只需要把程序内的波特率定时器的TH和TL改为0XF4即可。


  串口调试调试助手设置及实验现象如下图所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2020-8-21 22:00:12 | 显示全部楼层
为啥我的输入1-8LED都没有反应

点评

你是勾选了加回车换行了吗,我一开始也是没反应,把这个取消就好了  发表于 2023-1-28 18:22
回复 支持 2 反对 0

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-8-22 08:26:59 | 显示全部楼层
229249829 发表于 2020-8-21 22:00
为啥我的输入1-8LED都没有反应

注意看发送字符的格式
回复 支持 反对

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-1-26 12:51:13 | 显示全部楼层
本帖最后由 845424988 于 2021-1-26 12:56 编辑

请高手指点,我这个程序到底哪里有问题,为什么输入字符都没有小灯点亮,发送和接收都是正常的
#include <reg52.h>  typedef unsigned char u8;
typedef unsigned int u16;  
static u8 i;   
void UsartInit()
{    TMOD=0x20;                                                     
TH1=0xF4;                             
TL1=0xF4;      
SCON=0x50;
PCON=0x80;                     
TR1=1;   
}   
void main()
{        UsartInit();   
         P2=0xFF;   
        while(1)   
        {      
           switch(i)         
          {           
            case 0x012=0xFE;break;           
            case 0x022=0xFD;break;         
            case 0x032=0xFB;break;           
            case 0x042=0xF7;break;         
            case 0x052=0xEF;break;           
            case 0x062=0xDF;break;           
            case 0x072=0xBF;break;         
            case 0x082=0x7F;break;           
            default2=0xFF;break;         
            }         
         }     
}   
void Usart() interrupt 4
{                                      
      i=SBUF;               
      RI=0;                                       
     SBUF=i;        
     while(!TI);         
      TI=0;  
}   

点评

我知道你是怎么回事了,但我这里不知道怎么发图片  发表于 2023-1-28 18:32
你这个0x01,0x02,...并不是1-8的ASCII码  发表于 2023-1-28 18:28
你这个也是通过窗口发送1-8来点亮灯泡吗  发表于 2023-1-28 18:26
回复 支持 反对

使用道具 举报

10

主题

44

帖子

278

积分

中级会员

Rank: 3Rank: 3

积分
278
发表于 2021-1-26 16:26:20 | 显示全部楼层
845424988 发表于 2021-1-26 12:51
请高手指点,我这个程序到底哪里有问题,为什么输入字符都没有小灯点亮,发送和接收都是正常的
#include   ...

你打开EA 和ES 了么   还有注意你晶振是12M么   我的开发板默认晶振12不是11.0592
回复 支持 反对

使用道具 举报

10

主题

44

帖子

278

积分

中级会员

Rank: 3Rank: 3

积分
278
发表于 2021-1-26 16:29:46 | 显示全部楼层
845424988 发表于 2021-1-26 12:51
请高手指点,我这个程序到底哪里有问题,为什么输入字符都没有小灯点亮,发送和接收都是正常的
#include   ...

只要判断串口发送过来的ascii码是多少
还有作者说了要转换这个ASCII 码的 你的case 01-08  转换下  我也是新手不知道这个说的对不对
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2021-1-30 17:01:16 | 显示全部楼层
liang123 发表于 2021-1-26 16:29
只要判断串口发送过来的ascii码是多少
还有作者说了要转换这个ASCII 码的 你的case 01-08  转换下  我也 ...

那几种case为啥是0x31而调试时发送1就是满足这个case呢,为啥不是发送0x31呢

点评

1的ASCII码是0x31,2的ASCII码是0x32,以此类推,你发送1实际上是发的0x31  发表于 2023-1-28 18:35
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2021-1-30 17:05:39 | 显示全部楼层
那几种case为啥是0x31而调试时发送1就是满足这个case呢,为啥不是发送0x31呢
回复 支持 反对

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-3-8 18:31:05 | 显示全部楼层
楼主的程序为什么通讯,发送1——8不会亮啊,16进制,10进制都试了,也不行的
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-1-29 09:51:36 | 显示全部楼层
烧录软件显示文件下载完毕 但是灯不亮怎么办呢
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-27 01:14 , Processed in 0.172572 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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