导航:首页 > 操作系统 > 51单片机串口怎么输出数值

51单片机串口怎么输出数值

发布时间:2022-09-06 01:40:07

❶ 51单片机 串口用 printf输出 ,当输出的数据类型是unsigned char的时候 电脑收到的数自动乘上了256

楼主你好。
51单片机与标准C有区别:
KEIL里扩展出了b,h,l来对输入字节宽的设置:
(1)b八位
(2)h十六位
(3)l三十二位
在Keil
C51中用printf输出一个单字节变量时要使用%bd,如
unsigned
char
counter;
printf("Current
count:
%bd\n",
counter);
而在标准C语言中都是使用%d:
printf("Current
count:
%d\n",
counter);
希望对你有帮助。

❷ 51单片机,如何用串口发送一个变量的值

四位数字组合成的值大于256,是一个双字节数值,所以需要发送两次程序如下:

#include<reg51.h>
unsignedcharx;
main()
{
TMOD=0x20
SCON=0x50;
TH1=0xfd;
TL1=0xfd;
TR1=1;
x=1234;
SBUF=x/256;
while(TI==0);
TI=0;
SBUF=x%256;
while(TI==0);
TI=0;
while(1);
}

❸ 单片机怎么将输入的正弦波转化为数字量,然后从串口输出

摘要 在51单片机运行了以下函数,DA输出波形完美,验证产生的DA数据无误。

编程实现应用51单片机的串行口向PC发送数据"ABC".要求数据的输入/输出方式采用。

51单片机串口通讯,主函数初始化串口参数(设置串口波特率等),串口中断函数(接收数据与发送数据处理),PC端可以使用串口助手或者串口处理软件,单片机用按键触发发送数据。

❺ 51单片机怎么通过串口发送小数

方法多的去了,把数字37.5转换为字符串“37.5”发送可以,用压缩BCD码0x37、0x05发送也可以,多得是。不一定一定要浮点处理。

❻ 51串口发送数据的格式是什么

串行口控制寄存器SCON
SCON的字节地址是98H,其格式如下:

SM0、SM1:串行口工作方式控制位:

SM0、SM1 工作方式 功能 波特率
00 方式0 同步移位寄存器 fosc/12

01 方式1 8位UART 可变(T1溢出率)

10 方式2 9位UART fosc/64或fosc/32

11 方式3 9位UART 可变(T1溢出率)

其中,fosc为振荡器的频率,UART为通用异步接收和发送器的英文缩写。

串行口工作方式0:
当设定SM0、SM1为00时,串行口工作于方式0,它又叫同步移位寄存器输出方式。在方式0下,数据从RXD(P3.0)端串行输出或输入,同步信号从TXD(P3.1)端输出,发送或接收的数据为8位,低位在前,高位在后,没有起始位和停止位。数据传输率固定为振荡器的频率1/12,也就是每个机器周期传送一位数据。方式0可以外接移位寄存器,将串行口扩展为并行口,也可以外接同步输入/输出设备。
执行任何一条以SBUF为目的寄存器指令,就开始发送。

串行口工作方式1:
当设定SM0、SM1为01时,串行口工作于方式1,为数据传输率可变的8位异步通信方式,由TXD发送,RXD接收,一帧数据为10位,1位起始位(低电平),8位数据位(低位在前),1位停止位(高电平)。数据传输率取决于定时器1或2的溢出速率(1/溢出周期)和数据传输率是否加倍的选择位SMOD。
对于有定时器/计数器2的单片机,当T2CON寄存器中RCLK和TCLK置位时,用定时器2作为接收和发送数据传输率发生器,而RCLK=TCLK=0时,用定时器1作为接收和发送的数据传输率发生器。2个定时器/计数器可以交叉使用,即发送和接收采用不同的数据传输率。
发送过程是由执行任何一条以SBUF为目的的寄存器指令引起的。

串行口工作方式2:
当设定SM0、SM12位为10时,串行口工作于方式2,此时串行口被定义为9位异步通信接口。采用这种方式可接收或发送11位数据,以11位为一帧,比方式1增加了一个数据位,其余相同。第9个数据即D8位可用作奇偶校验或地址/数据选择,可以通过软件来控制它,再加特殊功能寄存器SCON中的SM2位的配合,可使MCS-51单片机串行口适用于多机通信。发送时,第9位数据为TB8,接收时,第9位数据送入RB8。方式2数据传输率固定,只有2个选择,为振荡器的1/64或1/32,可由PCON的最高位选择。

串行口工作方式3:
当设定SM0、SM1二位为11时,串行口工作于方式3。方式3与方式2类似,唯一的区别是方式3的数据传输率是可变的,而帧格式与方式2一样为11位一帧。方式3也适用于多机通信。

SM2:多机通信控制位多机通信时工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或方式3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断请求,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都将数据送入SBUF,并发出中断请求。

工作于方式0,SM2必须为0。

REN:允许接收位
REN用于控制数据接收的允许和禁止,REN=1允许接收,REN=0禁止接收。
TB8:发送数据位8
在方式2和方式3中,TB8是要发送的第9位数据位,在多机通信中同样需要传输这一位,TB8=0表示传输的为数据,TB8=1代表传输的为地址。
RB8:接收数据位8
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
TI:发送中断标志位
可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其他方式下,在发送或停止位之前由硬件置位,TI=1表示帧发送结束, 向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。

RI:接收中断标志位
可寻址标志位。方式0时,接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。

❼ 51单片机数字怎么以文本形式输出

串口发送ASCII码,字符串形式unsigned char text[] =‘10’;
for(i=0;i<2;i++)
{
//串口发送(text[i]);

}

❽ 用51单片机怎么控制输入输出

通常作输入时,要选置1,但单片机上电后,默认的是置1的,只要你不是做出其它用,再做输入,就不用置1了。但为保险起见,多置一次1,没有关系。作输出时,不用管它,直接用就行了。
另外,51单片机的P口的任一脚能单独用于输入或输出,无需事先定义。不过,在用作输入时要确保该管脚的输出锁存器中的值为
1,因为该管脚的输出锁存器中的值为
0
时将使该脚处于0,而无法输入外部的高电平。具体做法,就是要么一直将该脚用作输入,这样在芯片复位时管脚的输出锁存器复位为1;要么在用作输入前先给该脚写个1,再从该脚读取输入信号。

❾ 51单片机,串口接收到的数据,然后转成并行输出,比如串口接收到02,然后再转并行输出一个06.该怎么写啊

unsignedcharserial_data;//接收到的串口数据
if(serial_data==0x02)P1=0x06;

❿ 求一个基于51单片机的C语言程序,要求从串口接收一组数据,然后将其通过串口输出

#include <AT89X51.H>//单片机51头文件,存放着单片机的寄存器
unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
sbit gewei=P2^2; //个位选通定义
sbit shiwei=P2^3; //十位选通定义
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x77,0x7c,0x39,0x5e,0x79,0x71};
//{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,};// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
void Delay(unsigned int tc) //延时程序
{
while( tc != 0 )
{unsigned int i;
for(i=0; i<100; i++);
tc--;}
}
void LED() //LED显示接收到的数据
{
shiwei=0;
P0=~table[dat/16];
Delay(8);
shiwei=1;
gewei=0;
P0=~table[dat%16];
Delay(5);
gewei=1;
}
void Init_Com(void)//功能:串口初始化,波特率9600,方式1
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()//主程序功能:实现接收数据并把接收到的数据原样发送回去///////
{
Init_Com();//串口初始化
// P1=0xf0;
while(1)
{
if ( RI ) //扫描判断是否接收到数据,
{
dat = SBUF; //接收数据SBUF赋与dat
RI=0; //RI清零。
SBUF = dat; //在原样把数据发送回去
}
LED(); //显示接收到的数据
}
}

阅读全文

与51单片机串口怎么输出数值相关的资料

热点内容
访问服务器公网地址 浏览:656
pdf打印底色去掉 浏览:443
java快递接口 浏览:395
哪个app可以教新爸爸 浏览:210
如何查看服务器系统版本信息 浏览:524
成都市土地出让金算法 浏览:702
钢筋加密标记 浏览:575
ps中扩展功能在文件夹的什么位置 浏览:903
双极压缩机为什么要先高压 浏览:527
苹果手机服务器填什么 浏览:832
android移动动画效果 浏览:691
电子和服务器是什么意思 浏览:691
phpurl中文乱码问题 浏览:893
程序员那么可爱大结局陆漓产子 浏览:538
java如何从云服务器读取本地文件 浏览:924
压缩空气软管制作方法 浏览:912
天河三号算法 浏览:924
php队列教程 浏览:632
洪水命令 浏览:530
安卓怎么弄成苹果在线 浏览:435