找回密码
 注册会员
img_loading
智能检测中
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

51单片机串口通讯问题,请高手协助~~

[复制链接]
稻草人008 发表于 2022-1-7 23:31:55 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
//发送字符串到串口助手
#include <STC12C5410AD.h>
#include "string.h"

#define uchar unsigned char



sbit S1=P1^3;
sbit S2=P1^2;
sbit S3=P1^1;
sbit S4=P1^0;



//初始化
void uart_init(void)               //9600bps@22.1184MHz
{
        PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
        AUXR &= 0xBF;                //定时器时钟12T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设置定时器模式
        TMOD |= 0x20;                //设置定时器模式
        TL1 = 0xFA;                //设置定时初始值
        TH1 = 0xFA;                //设置定时重载值
        ET1 = 0;                //禁止定时器%d中断
        TR1 = 1;                //定时器1开始计时
        ES = 1;
        EA = 1;
        EA = 1;
}
//

void uart_tx_byte(uchar dat)
{
   SBUF=dat;
   while(!TI);
   TI=0;



}

void uart_tx_string(uchar *P)
{
    while(*P)
           {
             uart_tx_byte(*P);
         P++;
           }
  }
void main()
     
{
        uart_init();

        while(1)

   
        {static unsigned char delay;
                if(S1==0 || S2==0 || S3==0 || S4==0)//有键按下
              {
                        if(delay<0xFF)delay++;//消抖延时
                        if(delay == 250)
                        {
                                if(S1==0)    //按键S1按下
                                {
                                        uart_tx_string("EF 09 73 00 01 02 96 \n\r");
                                }
                                if(S2==0)   //按键S2按下
                                {
                                        uart_tx_string("EF 09 73 00 02 01 96 \n\r");
                                }
                                if(S3==0)   //按键S3按下
                                {
                                        uart_tx_string("EF 09 66 03 00 00 83 \n\r");
                                }
                                if (S4==0)
                                {
                                        uart_tx_string("EF 09 73 01 00 00 94 \n\r");
                                }                              
                        }
                }else{
                        delay = 0;
                }
        }
}
给位大神,帮我看看这代码,我发的EF 09 73 00 01 02 96,怎么串口助手收到的16进制是45 46 20 30 39 20 37 33 20 30 30 20 30 32 20 30 31 20 39 36 20 0A 0D这串数。单片机
发出不受控,请大神们帮我看看。谢了
您需要登录后才可以回帖 登录 | 注册会员

*滑块验证:
loading...
logo
验证成功
验证未通过
加载失败,请点击重试
本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-5-18 02:42 , Processed in 0.079080 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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