搜索
bottom↓
回复: 26

一维扫描器传送给单片机的信息,怎么进行区分?

[复制链接]

出0入0汤圆

发表于 2016-3-5 13:55:44 | 显示全部楼层 |阅读模式
例如选用这款扫描器,UC1500的。
这款扫描器是usb/rs232/PS、2三种接口出信号的,可以做个转换板,例如把usb转为串口(TTL)接口。
这款扫描器出来的是数字信号。

然后是使用这款扫描器的目的:用于物流分类。思路如下:
先准备三个不同的一维码假设为A,B,C(暂时不考虑长度)。自己定义让一维码A对应为广州市,B为上海市,C为北京市。
然后将A,B,C贴在自制的纸质包裹上(三者保持足够距离),通过传送带带动给扫描器扫描。
扫描器将扫描到的信息发给单片机。

问:单片机如何识别这个信号并加以区分是A还是B还是C?有没有用过的前辈给点意见指点下迷津。

1,希望有高手能帮忙解答,如果要达成以上目的需要具备哪些条件
2,可以不拘泥于这款扫描器,只有能实现自动扫描并发送信号的这类扫描一维码的设备都可以。
3,有没有用过这类设备的高手能提供下于51通信,并用51来识别处理的源码,部分的也是可以的。
4,或者有没有高手评估一下项目的可行性,和预测下开发周期。

感谢您的阅读,如果您有宝贵的意见希望不吝赐教,

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2016-3-5 14:58:58 | 显示全部楼层
挖一下,不要沉啊~~~~(>_<)~~~~

出0入8汤圆

发表于 2016-3-5 15:14:34 | 显示全部楼层
一维码不就是条码吗?直接用232接受处理数据不行吗?

出0入0汤圆

发表于 2016-3-5 15:16:01 | 显示全部楼层
你三个一维码不是各不相同吗?比如说A读回来是11111,B读回来是22222,C读回来是33333,那么根据读回来的数据的不同,不就可以区分出是谁了吗?

出0入0汤圆

 楼主| 发表于 2016-3-5 15:16:27 | 显示全部楼层
蓝蓝的恋 发表于 2016-3-5 15:14
一维码不就是条码吗?直接用232接受处理数据不行吗?

不是要接电脑,是要接单片机,单片机又没法直接显示出来,要写一个比较程序,比较读取到的是什么,才好确定那个条码所需对应的子程序

出0入0汤圆

 楼主| 发表于 2016-3-5 15:18:13 | 显示全部楼层
xintao 发表于 2016-3-5 15:16
你三个一维码不是各不相同吗?比如说A读回来是11111,B读回来是22222,C读回来是33333,那么根据读回来的数 ...

是啊,您说的很对就是这个思维,现在技术上遇到的困难就是在单片机上如何利用程序来识别读到的是111,还是222

出0入0汤圆

发表于 2016-3-5 15:27:33 | 显示全部楼层
串口直接是返回来你扫到的数据

出0入0汤圆

发表于 2016-3-5 15:37:55 | 显示全部楼层
柯铭凯 发表于 2016-3-5 15:18
是啊,您说的很对就是这个思维,现在技术上遇到的困难就是在单片机上如何利用程序来识别读到的是111,还 ...

     我也没用过扫描枪,具体的数据传输格式我也不太清楚。
     但我认为,这个问题的解决思路大致应该是这样的:
     1、首先,你应该知道51单片机用串口接收数据的流程是怎样的,也就是说,你首先应该要会用单片机的串口;
     2、你需要搞清楚你的扫描枪和单片机之间的通信协议是怎样的;
     3、搞清楚以上两个点以后,你才好确定你的程序结构;
     其实判断收到的数据是A,还是B,还是C,最后的程序结构无非就是:
        if(xxxx)
        {
                ...
        }
        else if(xxxx)
        {
                ...
        }
    或者是:
        switch (xxxx)
        {
        case A:                     
           ...
           break;
        case B:                        
            ...
            break;
        default:                        
            ...
            break;
        }

出0入0汤圆

发表于 2016-3-5 15:57:48 | 显示全部楼层
把扫描枪的定义好的协议拿到手,单片机串口上接收到的数据根据协议定义就知道是谁发的了

出0入8汤圆

发表于 2016-3-5 16:00:17 | 显示全部楼层
柯铭凯 发表于 2016-3-5 15:16
不是要接电脑,是要接单片机,单片机又没法直接显示出来,要写一个比较程序,比较读取到的是什么,才好确 ...

匹配波特率,串口中断判断数据不就行了,条码器发送的数据最后一个字节是0x0D

出0入0汤圆

 楼主| 发表于 2016-3-5 16:00:59 | 显示全部楼层
恩,我就是在淘宝找不到通信协议才来求助的,有没有人用过这种扫描器,写过这类程序?

出0入0汤圆

 楼主| 发表于 2016-3-5 16:16:52 | 显示全部楼层
xintao 发表于 2016-3-5 15:37
我也没用过扫描枪,具体的数据传输格式我也不太清楚。
     但我认为,这个问题的解决思路大致应该 ...

恩,对。程序是这么个思路,不过论坛上有个一个扫描枪的貌似和这个思路是有出入的。

主题如下:PS2接口扫描枪 激光条码阅读器 条码扫描枪 条码枪 的C51驱动程序

因为淘宝商家都没有通讯协议,所以我也不确定是怎么工作的,求大神指点

出0入0汤圆

发表于 2016-3-5 16:23:19 | 显示全部楼层
假如你条码是12345,一般扫描仪出来的数据串为 0x55(头标识符)0x31 0x32 0x33 0x34 0x35(12345的ASCII码)0xAA(结束符),基本就这种格式的,可能具体有细微差别,总体都差不多的,你随便整一个连下串口助手扫一下就知道了

出0入0汤圆

 楼主| 发表于 2016-3-5 16:26:41 | 显示全部楼层
zhaoghsea 发表于 2016-3-5 16:23
假如你条码是12345,一般扫描仪出来的数据串为 0x55(头标识符)0x31 0x32 0x33 0x34 0x35(12345的ASCII码 ...

哥,你能跟说详细些?你微信多少,要不我加你吧。
能不能打一段代码大概的轮廓出来呢,从怎么接受是利用中断还是?到怎么转换算法模型,到怎么发送出去,~~~~(>_<)~~~~ 已经崩溃,刚好这条回复完又没得回复了,唉

出0入0汤圆

 楼主| 发表于 2016-3-5 17:46:58 | 显示全部楼层
又沉了?给跪了,求指点

出0入0汤圆

 楼主| 发表于 2016-3-5 21:38:18 | 显示全部楼层
绝对不要沉,求支援。我知道肯定有人写过帮下忙吧,不是上面给的开发周期短,我也想自己慢慢摸索~~~~(>_<)~~~~

出0入0汤圆

发表于 2016-3-5 21:51:06 | 显示全部楼层
就算没现成的协议,用串口助手随便抓点数据也就能分析出来了。

出0入0汤圆

 楼主| 发表于 2016-3-6 00:35:17 | 显示全部楼层
我最后选了UCSCAN 1400r这款,打算来试表示不会用串口助手

出0入0汤圆

发表于 2016-3-6 00:46:49 | 显示全部楼层
你先看看ucscan 1400r这个出来的是rs232还是ttl电平,如果是rs232的话,直接接到台式机的串口上:扫描枪的tx连接电脑的rx,两个gnd连在一起。
然后下载串口助手软件(百度一个就行),--》设置波特率--》打开

看看hex格式的数据,如果是没有规律的数据的话,就可能是波特率不对

出0入0汤圆

发表于 2016-3-6 00:48:49 | 显示全部楼层
像这一款就写得很清楚了啊
https://item.taobao.com/item.htm ... p;abbucket=5#detail

出0入0汤圆

 楼主| 发表于 2016-3-6 00:56:28 | 显示全部楼层
gallop020142 发表于 2016-3-6 00:48
像这一款就写得很清楚了啊
https://item.taobao.com/item.htm?spm=a230r.1.14.47.AwJPAf&id=36510205187&ns ...

不同的外围设备,会一样吗?

出0入0汤圆

 楼主| 发表于 2016-3-6 00:57:25 | 显示全部楼层
柯铭凯 发表于 2016-3-6 00:56
不同的外围设备,会一样吗?

好的,出的是ttl,谢谢啦,我正在找串口助手的使用方式

出0入0汤圆

发表于 2016-3-6 01:00:01 | 显示全部楼层
ttl的话就不能直接接电脑了,得买个 usb转ttl电平串口的模块才行了,还是扫描枪的tx接usb转串口模块的rx, gnd互联

安装模块驱动后,再打开串口助手。

出0入0汤圆

发表于 2016-3-6 01:01:47 | 显示全部楼层
总之先得在电脑上借助成熟的东西弄清楚了之后,再在下位机实现。

出0入0汤圆

发表于 2016-3-6 01:05:08 | 显示全部楼层
只有一个办法。买一台试试。

出0入0汤圆

发表于 2016-3-6 05:20:56 来自手机 | 显示全部楼层
你若真用单片机这样干,就要累死了.一般一个单片机管一个机械臂或道闸。所以只要判断条码前缀或前几位,当然看你条码定义。然后51上要带设定模式。买个几十元的条码枪就可以试验。你就当它是个键盘。

出0入0汤圆

发表于 2016-3-6 08:01:24 来自手机 | 显示全部楼层
设定也是通过条码
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 03:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表