标题: 新手求救!51串口怎么才能发送十进制变量到串口助手啊!!! [打印本页]
作者: wo们兜1样 时间: 2016-10-27 21:46
标题: 新手求救!51串口怎么才能发送十进制变量到串口助手啊!!!
新手求救!51串口怎么才能发送十进制变量到串口助手以字符方式显示啊!!!
if(powerflag==1)
{
powerflag=0;
D1=initpower[0]; // initpower[0]存放的为十六进制数,但是变化的 如:D1=0X01;
D2=initpower[1]; // initpower[1]存放的为十六进制数,但是变化的 如:D2=0X02;
D3=initpower[2]; // initpower[2]存放的为十六进制数,但是变化的 如:D3=0X03;
Wh=D1/10*sixfive+D1%10*sixfour+D2/10*sixthree+D2%10*sixtwo+D3/10*sixone+D3%10*sixzero;
//把D1,D2,D3转化为一个是十进制数 (A3 02 01)
//转化后为Wh= 0*16^5 + 1*16^4 + 0*16^3 + 2*16^2 + 0*16^1 + 3*16^0 = 66051 ;
Whtmp=Wh/1000; //将Wh缩小1000倍, Whtmp = 6.6051
WhtmpH=(int)Whtmp; //WhtmpH存放Whtmp 整数部分 WhtmpH= 6 ;
WhtmpL=(Whtmp-WhtmpH)*100; //WhtmpL存放Whtmp 小数部分 WhtmpH= 6051 ;
//怎样才能输出整数部分与小数部分到串口助手以字符方式显示????
UART_One_Printf("WhtmpH"); //输出整数整数部分到串口助手????
Uart_One_Send(WhtmpH);
/* /////////////////
//串口1发送字符串函数
void UART_One_Printf(uchar *p)
{
while(* p!='\0')
Uart_One_Send(*p++);
}
//串口1发送一个字符函数
void Uart_One_Send(uchar k)
{
ES=0;
TI=0;
SBUF=k;
while(!TI);
TI=0;
ES=1;
}
*/ /////////////
作者: wo们兜1样 时间: 2016-10-27 21:47
怎样才能输出整数部分与小数部到串口助手以字符方式显示????
作者: wuyibin2003 时间: 2016-10-28 08:57
可以做为一个数据一起发送 小数点另外加上去
作者: 苏格拉没有 时间: 2016-10-28 10:07
小数点另加?
作者: baofu 时间: 2016-10-28 10:53
缺少ASCII转换吧?比如你的意图是发到对方,能显示一个“0”,直接发“0”是不行的,应当发送0x30。具体可以查询国际标准信息交换编码表(ASCII)。
作者: zl2168 时间: 2016-10-28 20:46
本帖最后由 zl2168 于 2016-10-28 20:47 编辑
实验16 单片机与PC机虚拟串行通信
⒈ 虚拟串行通信说明 …
⑴ 添加虚拟串口 …
⑵ 下载“串口调试助手” …
⒉ 电路设计 …
⒊ 程序设计 …
⒋ Keil调试 …
⒌ Proteus仿真 …
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机实用教程》ISBN978-7-04-044532-9,高教社出版。 书中电路和程序设计有详细说明,程序语句条条有注解。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |