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

单片机助手

发布时间:2022-02-14 13:22:38

① 如何用用单片机keil软件和串口调试助手实现串口通信

要用单片机搞串口通信,是实物单片机开发板与电脑做串口通信吗?还是只想用keil 做仿真调试?串口调试助手是电脑上的软件,那应该用实物单片机开发板才能做了。那keil 只不过是用来编译C程序的,并不用它测试什么。对于用单片机开发板,先用C语言写程序,或汇编语言写程序。写好程序用keil 编译出HEX代码文件,再把HEX代码文件烧录到单片机里,即可运行调试了。如果只是想用keil 仿真,就不能用串口调试助手。要用proteus 仿真就更方便容易了,用不着什么串口调试助手。

② 怎么用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];//启动发送
}

③ 单片机向串口调试助手发送数据 c语言

ucharidataSystemBuf[10];//用于接收
ucharRx=0;//接收数据条数
ucharcodeAT[]="YES,ITIS";
voidUART_init(void)
{
TMOD=0x20;//用定时器1
PCON=0x00;//波特率不加倍
SCON=0x50;//串行方式1
TH1=0xFD;//9600
TL1=0xFD;//
EA=1;//
ES=1;//
TR1=1;
}
voidsendchar(ucharch)//串口送一个字节
{
SBUF=ch;
while(TI==0);
TI=0;
}
voidsendstring(uchar*p)//送字符串
{

while(*p)
{
sendchar(*p);
p++;
}
}
///////
voidreceive(void)interrupt4using1//中断
{

if(RI)
{

if(Rx<10)//这儿最多收10个字节
{
SystemBuf[Rx]=SBUF;
Rx++;
}

RI=0;
}
}
///
voidmain()
{
uchari;
UART_init();
while(1)
{
if(SystemBuf=='S')
{
sendstring(AT);
for(i=0;i<10;i++)//接收清0
{
SystemBuf[i]=0;
}
Rx=0;
}
}
}

④ 怎么用stc89c52单片机利用串口助手向电脑每秒发送从零开始的数据啊

这个问题,你提问过,还没有写出程序呀。对串口程序不熟悉呀。

程序很简单的,如下

#include <reg51.h>

unsigned char t0n;//T0中断20次为1秒

main()

{

unsigned char second;

TMOD=0x21;

TH1 =0xFD;//晶振频率=11.0592,波特率=9600

TL1 =0xFD;

SCON=0x50;

TH0 =0x4B;//晶振频率=11.0592,定时50us

TL0 =0xFD;

EA =1;

ET0 =1;

TR0 =1;

TR1 =1;

while(1)

{

if(t0n>=20)//定时器T0中断20次,1秒到

{

t0n=0;

second++;

if((0x0f&second)==0x0a)//变成10进制数发送

{second+=6;}//删掉这两行,按十六进制数发送

SBUF=second;//发送秒

while(TI==0);

TI=0;

}

}

}

void T0_int() interrupt 1

{

TH0 =0x4B;

TL0 =0xFD;

t0n++;

}

下图是串口调试助手接收的情况

1,单片机按十进制数形式发送时,接收数据如下,是按十六进制数显示,但没有十六进制数了

⑤ 串口调试助手和单片机通讯,为什么有的可以有的

串口调试助手和单片机通讯,单片机有时候会丢失数据,因为单片机速度较慢,而电脑发送数据是不管不顾的,发出去就完。不管对方是否接受到。单片机处理不及时的话就会丢失数据。

⑥ 如何用串口调试助手发送数据给单片机并使LED灯亮

基本没错。就是第一次发送没反应,第二次时才开始反应。应该是开串口中断放后面的原因。
就是buf[n]=SBUF;//这条不知什么用 。
还有,ES=1放在串口初始化中。

⑦ 为什么一打开串口调试助手,单片机的程序就停了

很可能是程序串口配置不正确,
再检测下你的其他单片机外围设备是否与串口配置相互冲突
一般冲突的话还可能导致电脑蓝屏

⑧ 串口调试助手向单片机发送一串数字,单片机只显示最后一位,该怎么解决

你好!!
你每次串口中断的时候都会 uint m=0;
那你 m++ 还有什么意义,把 uint m=0; 拿到中断的外面;中断结束后 m 清零
还有,别用 while 循环,用 if 判断

⑨ 用串口调试助手向单片机发送数据

这就对了。电脑显示的是ASCII码。1的ACII码正是31H

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

REN=1;
SM0=0;
SM1=1;
把SM0=0和SM1=1写在REN前面。在开始工作时,单片机默认为00工作方式,这时候你就已经通过REN=1启动单片机,那么输出一定有问题。必须先将工作方式定位01后,再启动REN

阅读全文

与单片机助手相关的资料

热点内容
androidmars源码 浏览:552
编译器怎样从c盘到d盘 浏览:263
南拳pdf 浏览:472
怎么获得联通app登陆密码 浏览:217
压力大就试试解压神器 浏览:185
dedecmsphp文件修改 浏览:536
贷款解压省内都可以办理吗 浏览:469
思科服务器如何发布www任务 浏览:682
怎么在苹果里面下王者安卓版的 浏览:686
c语言改编程序没保存 浏览:437
msdos编译教程 浏览:978
怎么去文件夹后缀 浏览:445
粉笔app笔试真题在哪里 浏览:108
晋江小说阅读app怎么注册填写验证 浏览:157
安卓手机如何将手机app安装到u盘 浏览:520
指针编译在哪运行 浏览:810
dnf大枪压缩补丁 浏览:355
linux命令env 浏览:914
浙江app遥控锁哪里有 浏览:708
qq别人加密了怎样才能给他解开 浏览:253