标题: 新手求救!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仿真一下,确认有效。
实验16 与PC机虚拟串行通信.rar (151.41 KB, 下载次数: 47)


以上摘自张志良编著《80C51单片机实用教程》ISBN978-7-04-044532-9,高教社出版。     书中电路和程序设计有详细说明,程序语句条条有注解。







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1