关于上位机控制单片机的通讯问题

[复制链接]
 楼主| happywxg 发表于 2008-12-1 19:55 | 显示全部楼层 |阅读模式
用51单片机控制一个步进电机,现在上位机做一个画面与单片机控制。要求:上位机输入一个电机的转速,然后把预定的转速值传给单片机来控制电机。
但是上位机传给的51的转速值是ASCII码,要转换成数字的话,工作量是不是太大了。谁又没有好的解决方案啊。。。。。。。
5880527 发表于 2008-12-1 19:59 | 显示全部楼层

典型的懒虫

ayb_ice 发表于 2008-12-1 20:17 | 显示全部楼层

那就直接传HEX

腾腾 发表于 2008-12-1 20:20 | 显示全部楼层

哈哈

耕在此行 发表于 2008-12-1 21:04 | 显示全部楼层

ASCII转HEX不难吧.

gjg191 发表于 2008-12-2 08:47 | 显示全部楼层

o

有没让你自己去拿脑袋算.麻烦什么
 楼主| happywxg 发表于 2008-12-4 11:25 | 显示全部楼层

问题是工作量蛮大的嘛

xwj 发表于 2008-12-4 12:40 | 显示全部楼层

能有多大?????

a5566255 发表于 2008-12-4 16:17 | 显示全部楼层

哈哈哈。。。。

理解LZ,不就是希望有人给你段代码用嘛。。。。。。
不过你这个问得也太低级了。。。。
你上位机啥语言啊,定义个字节型变量可以吧?然后传给MCU。。。。
xhtxzxw 发表于 2008-12-4 23:35 | 显示全部楼层

嘿嘿


我有方案,要吗?  ASCII码转癞**的方案都有呢!
要也不给!!!
ejack 发表于 2008-12-5 07:51 | 显示全部楼层

……

"但是上位机传给的51的转速值是ASCII码,要转换成数字的话,工作量是不是太大了。"

你步进电机的转速,难道是形如2999.999999999999999999999999999999999这般精确吗?工作量很大???
红心j 发表于 2008-12-5 13:00 | 显示全部楼层

查表,工作量很小

ljm810010 发表于 2008-12-5 13:15 | 显示全部楼层

认为简单的试试看,ASCII"9876"转成HEX,要多少时间和代码?

并不是你们想象得那么简单,估计要上百个周期以上,MCU还是要瞎忙一会
zhaoyu2005 发表于 2008-12-5 14:00 | 显示全部楼层

LZ的9876

zhaoyu2005 发表于 2008-12-5 14:15 | 显示全部楼层

LZ的9876怎么表示?

是不是 39 38 37 36?如果是的话不是很简单么?如果不是说来听听,相信没什么难得,除非你定义的方式不好
ljm810010 发表于 2008-12-5 14:53 | 显示全部楼层

就是39 38 37 36呀

(int)speed = (buf3&15)*1000 + (buf2&15)*100 + (buf1&15)*10 + (buf0&15)
估计时间不少
xhtxzxw 发表于 2008-12-5 20:10 | 显示全部楼层

嘿嘿

#define uchar unsigned char
#define uint  unsigned int
uint ASCII_Bin(uchar buf3,uchar buf2, uchar buf1, uchar buf0)
{
    buf3 &= 0x0f;
    buf2 &= 0x0f;
    buf1 &= 0x0f;
    buf0 &= 0x0f;
    buf3 += buf3;
    buf2 += buf3;
    buf3 += buf3;
    buf3 += buf3;
    buf2 += buf3;
    buf1 += buf1;
    buf0 += buf1;
    buf1 += buf1;
    buf1 += buf1;
    buf0 += buf1;
    return buf2*100 + buf0;//只做一次乘法
}
0000~9999的ASCII转Binary, 想看看还有没有更好的码子?
zhaoyu2005 发表于 2008-12-6 09:58 | 显示全部楼层

xhtxzxw的算法好像是错的

计算结果应该是 (2buf2+4buf3)*100+(2buf0+4buf1)
ljm810010 发表于 2008-12-6 12:04 | 显示全部楼层

呵呵,是错了,不过方法还算是挺好的

xhtxzxw 发表于 2008-12-6 19:42 | 显示全部楼层

嘿嘿

呵呵,对不起,复制/编辑不小心,前后都丢了一行!已经改好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

136

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部