导航:首页 > 操作系统 > 51单片机助手

51单片机助手

发布时间:2022-04-07 09:05:16

㈠ 51单片机中,用串口通信助手向单片机发送数据时,不用16进制的话,发送1,勾上16

发送的时候选择16进制发送,否则按字符发送,就是发送ASCII码,1的ASCII码是49,16进制就是31.

具体网络一下ASCII

㈡ 51单片机,通过串口助手向单片机发送字符串,单片机将字符串逆序发送回计算机,用C语言编程

像这种发送字符串的,需要有一个字符串结束标志,不能用0作为字符串结束标志了!这里以回车作0xd为结束标志!

#include <reg51.h>

typedef unsigned char uint8;

bit flag = 0;

uint8 idata buf[30];

uint8 ct;



void InitUART(void) //串口初始化 9600bps

{

TMOD = 0x20;

SCON = 0x50;

TH1 = 0xFD;

TL1 = TH1;

PCON = 0x00;

EA = 1;

ES = 1;

TR1 = 1;

}


void Send(uint8 c)

{

SBUF = c;

while(!TI);

TI = 0;

}


void main(void)

{

char j;

InitUART();

while(1)

{

if(flag) //是否接收到回车 字符串发送完

{

flag = 0;

for(j = ct ; j > 0 ; j--)

{

Send(buf[j-1]);

}

}

}

}


void UARTInterrupt(void) interrupt 4

{

static uint8 i = 0;

if(RI)

{

RI = 0;

buf[i++] = SBUF;

if(SBUF == 0x0d) //接受到回车

{

ct = i-1 ;

flag = 1;

i = 0;


}

}

else

TI = 0;

}

仿真结果

程序作为参考 希望 你自己能理解程序!只有自己掌握了才能很好地用!

㈢ 用51单片机与PC进行通信,通过串口助手进行调试

首先检测你的硬件电路。
方法是,拔掉你的单片机,把rxd和txd脚短路。然后在串口调试助手里面,选任意波特率发送任意字符,如果收到的是发送的内容,则能肯定max232和rs-232之间连接正确。
接下来就要检查你的程序了
最容易出问题的就是波特率了。
如果你用12m的晶振,那么,最好设置波特率为1200

2400。

㈣ 51单片机串口发送的数据和51助手收到的数据不一样,什么原因

波特率问题,建议用11.05926MHZ的晶振并重新计算初始值

㈤ 怎么用手机蓝牙调试助手控制51单片机上的LED灯亮

#include<reg52.h>

typedef unsigned char unit8;
typedef unsigned short unit_16;

void Receive_Handle(unit8 Value)
{
switch(Value)//具体发送过来的是什么数据 需要自己自己通过串口调试助手查看
//改变这里面对应的数据即可
{
case 0x00:P2=0xff;break;
case 0x01:P2=0xfe;break;
case 0x02;P2=0xfd;break;
case 0x03:P2=0xfb;break;
case 0x04:P2=0xf7;break;
default:P2=0xff;break;
}
}

void main()
{
TMOD |= 0x20;//定时器1 工作方式2 8位自动重装模式
SCON = 0x50;//串口工作方式1 允许接收 8位数据位
TH1 = 0xfd; //波特率9600
TR1 = 1;
ES = 1;
EA = 1;
while(1);
}

void UART1_Rountine()interrupt 4
{
static unit8 Receive_Data=0;
ES = 0;
while(!RI);
RI=0;
Receive_Data = SBUF;
Receive_Handle(Receive_Data);
ES = 1;
}

/*---------------------------------------------------------------------------------------

如有问题可再咨询

----------------------------------------------------------------------------------------*/

㈥ 求个口串口助手控制51单片机LED亮与灭程序

#include<stc89.h>

#define uchar unsigned char
#define uint unsigned int

sbit led1 = P1 ^ 1; //定义两个LED灯
sbit led2 = P1 ^ 2; // 这里需要你自己定义你的I/O口

uchar a;

//void delay(uint z);
void init();
void main()
{
init();

while(1)
{

if (a == 0x31)
{
led1 = 0;
led2 = 0;

}

if (a == 0x32)
{

led1 = 1;
led2 = 1;
}

if (a == 0x33)
{

led1 = 0;

}

if (a == 0x34)
{

led1 = 1;

}

}

}

void init() //初始化
{

TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
ES = 1;
EA =1;
SCON=0x50;
}

/*void delay(uint z) //延时
{
uint x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
*/
void Serial() interrupt 4 //串口中断程序
{
RI = 0;
a = SBUF;
}
/*
----------------
说明:
波特率 9600
在串口助手里面(把16进制关闭) 输入 31 是 开启灯亮
32 是 关闭

也可以用switch语句
----------------

*/

㈦ 51单片机通信问题,串口调试助手能接受单片机发送的数据,但是单片机却不能接受串口调试助手发送的数据。

不需要延时的。下面的程序可以正常接收。

ORG 0000H
SJMP START
ORG 0030H
START:
MOV P1, #0FBH ;给p1附初值
MOV SCON, #50H ;设置串口工作方式1
MOV PCON, #00H ;波特率不加倍
MOV TMOD, #20H ;设置定时器1工作方式2
MOV TL1, #0FDH
MOV TH1, #0FDH ;给定时器赋值,波特率为9600
SETB TR1 ;启动定时器
MAIN:
JBC RI, RCV ;若RI为1,则转到RCV,否则跳转MAIN
SJMP MAIN
RCV:
MOV A, SBUF ;将接受到的数据读到累加器中
MOV P1, A ;将累加器中的数据送到P1口显示
SJMP MAIN ;跳转主程序
END

㈧ 51单片机 如何编程实现通过串口助手输入内容

可以的,实际上就是利用串口实现输入输出,只需要正确设置串口波特率就行了。
void mInitSTDIO( void )
{
SCON = 0x50;
PCON = 0x80;
TMOD = 0x21;
TH1 = 0xf3; /* 24MHz晶振, 9600bps */
TR1 = 1;
TI = 1;
}

main( )
{
mInitSTDIO( ); /* 为了让计算机通过串口监控演示过程 */
printf( "Start\n" );
while(1);
}

㈨ 我想知道proteus仿真的51单片机怎样发送数据到串口助手 很急的 能解答吗

要用PROTEUS中的一个元件:COMPIM,还要安装一个虚拟终端(这个上网找吧),在程序,COMPIM,虚拟终端,串口助手的通信参数都要一致,如果程序与接线正确,就可以通信了.

㈩ 怎么用51单片机向串口调试助手发送字符串有程序解释更好啊,求解~

ASCII码在单片机中也是用16进制来表示的,只是解码后显示的是字符,你要是随便发一个字符,串口调试助手选择字符显示接收就可以显示一个字符出来(可能我们不认识这个字符)。发送一个字符串就是不停的发送直到发送完毕,51单片机有自己的串行发送端口P3.0和P3.1端口,但是它是一个字节一个字节发送的,发送完一个字节会产生一个中断(也可以用判断TI的方式判断是否发送完),中断响应后再次启动发送SBUF=0Xxx,就会自动连续的发送,再加上判断就可以控制发送的字节数。
串口初始化:
void uart_init()
{
TMOD=0x20;//定时器1,模式2
SCON=0x50;//串口通讯方式1
TH1=0xfd;//波特率9600
TL1=0xfd;
button=0;
delay(1);
TI=0;//发送中断标志位清零
RI=0;//接收中断标志位清零
TR1=1;//启动定时器1
EA=1; //使能全局中断
ES=1; //启动串口中断
}
}
void main()
{ P1=0xff;
uart_init() ;
while(1)
{
}
// 串行中断程序
void commIntProc() interrupt 4
{
if(TI)
{
TI = 0;
if(sendPosi < sendCount) //判断是否发送完成
{
sendPosi++; //发送一次计数器加一
SBUF = sendBuf[sendPosi];//启动发送
}

阅读全文

与51单片机助手相关的资料

热点内容
unix命令rename 浏览:860
文件加密了为啥发不出去了 浏览:457
单片机调节马达 浏览:743
镜花pdf 浏览:610
广西民族大学app忘记密码怎么办 浏览:374
学生服务器是什么意思 浏览:533
如何下载快切app 浏览:723
如何将电脑c盘文件加密 浏览:886
嵌入式为什么linux 浏览:553
c语言编译器属于系统软件 浏览:725
android如何断点调试 浏览:722
图解韩语pdf 浏览:302
sas查各文件夹空间大小 浏览:454
python脚本检查端口 浏览:960
催眠解压视频泡沫 浏览:309
云服务器部署系统 浏览:879
恶意加密别人的文件犯法 浏览:833
汉语语法pdf 浏览:158
词法分析编译原理论文 浏览:271
电脑文件夹还原方法 浏览:534