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

[复制链接]
621 0

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

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

x
//发送字符串到串口助手
#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这串数。单片机
发出不受控,请大神们帮我看看。谢了

举报

回复
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

快速回复 返回列表 客服中心 搜索 官方QQ群
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表