搜索
bottom↓
回复: 49

PS2接口扫描枪 激光条码阅读器 条码扫描枪 条码枪 的C51驱动程序

[复制链接]

出0入0汤圆

发表于 2010-9-28 00:23:34 | 显示全部楼层 |阅读模式
之前弄的要用到扫描枪的CASE,现在将驱动说明如下:

此扫描枪为PS2接口,应用于某工厂的流水线产品上,用STC的单片机进行驱动PS2接口

标准C51驱动如下:

扫描枪与普通的电脑键盘的编码是完全一样的,测试扫描枪可以新键一个记事本,然后扫描条码,条码上的数字就会显示在记事本上,相当于你依次按下了那几个数字按键.

0,硬件连接,PS2_CLK连接到单片机外部中断,PS2_DATA连接到普通单片机输入/输出脚

1,设置外部中断为下降沿触发中断。

void Init_Ext(void)
{

EX0=1;         // 允许外部中断
IT0=1;          // INT0触发方式为下降沿触发,由高到低负跳变
PX0=1;        // 优先级最高
EA=1;          // 开中断
}

2,中断处理程序为:

void ISR_INT0 (void) interrupt 0
{
EX0=0;
PS2CntBusy=200;                                   // 定时器会将此变量每1ms减1,等于0后通知主程序处理数据

PS2Temp>>=1;                                      // 右移一个空位准备接收新的数据位
if(PS2_DATA==1)                                 // 如果等于1,则置位该位
     PS2Temp=PS2Temp|0x8000;
if(++PS2Len>=11)                                 // 是第11位了吗?
{
    PS2Temp=PS2Temp>>6;                          // 处理接收到的数据,提取有效位, ASxx,xxxx,xxS0,0000
    BufPS2[PS2Pt]=PS2Temp&0x0ff;                 // 存放到PS2的接收缓冲区去
    PS2Pt++;                                     // 指针调整
    PS2Len=0;                                    // 位数长度计数器清0,准备接收下一个数据
}

EX0=1;

}

3,在定时器中(1ms中断一次)加入下面代码,用来检测PS2接收空闲时,设置标志来通知主程序
   (如果收到一个有效PS2码就通知主程序,那扫描一下扫描枪,一般有十多个码,这样处理太频烦了,所以收到一串码再通知主程序,也即空闲时)
if(PS2CntBusy!=0)
{
     PS2CntBusy--;
     if(PS2CntBusy==0)
   {
         PS2Len=0;
         PS2NumReceive=PS2Pt;
         FlagPS2RecOK=1;
   }
}

4,在主程序中检测标志并处理

main( )

{

   Other( );

   while(FlagPS2RecOK==1)

   {

       FlagPS2RecOK=0;               // 清除接收完标志,方便下一次接收

       PS2_Decode( );                    // 解码PS2数据

       Deal( );                                 // 处理

   }

}

PS2_Decode()是将收到的PS2编码解码成对应的的键盘,

比如小键盘部分,按下数字1,收到的是0x70,如果按住不住,则一直会收到0x70,松手后,会收到0xf0,0x70.表示按键松手了,PS2编码百度下吧!

在华强北入货的枪,要设置参数就对着说明书里面的条码进行扫描

(原文件名:T2iXRoXe8XXXXXXXXX_!!169224229.jpg)

随便用普通打印机打印出来的条码供条码枪扫描测试:

(原文件名:T2rXtoXmhaXXXXXXXX_!!169224229.jpg)


现有两问题也顺便问下:
1,如果用USB接口的,再加个普通的USB转PS2座,能不改代码就可以应用于我的CASE上吗?
2,读键盘码可以了,但设置键未OK,比如要将键盘的小键盘灯点亮,应该怎样发送,我发送程序未完成

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-9-28 08:13:08 | 显示全部楼层
不错,学习

出0入0汤圆

发表于 2010-9-28 08:35:13 | 显示全部楼层
强啊,最近也在搞这个东西

出0入0汤圆

发表于 2010-9-28 13:57:50 | 显示全部楼层
mark
头像被屏蔽

出0入0汤圆

发表于 2010-10-25 22:42:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2010-10-26 00:10:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-26 00:30:40 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2010-10-29 09:31:17 | 显示全部楼层
马克

出0入0汤圆

发表于 2010-10-29 23:04:27 | 显示全部楼层
1,如果用USB接口的,再加个普通的USB转PS2座,能不改代码就可以应用于我的CASE上吗?
   看条码枪_支持不支持,和USB鼠标一个道理,不是所有的都可以用那个简单的转接头的。

2,读键盘码可以了,但设置键未OK,比如要将键盘的小键盘灯点亮,应该怎样发送,我发送程序未完成
   发送PS2 Command 0xED

出0入0汤圆

发表于 2010-12-31 13:21:07 | 显示全部楼层
给你个建议:一般条码枪都有三种接口的:USB、PS2和串口的,所以选用时你可直接选用串口的,这样操作更方便。

    广州华泰条码科技有限公司(简称华泰条码www.mcupark.com) 是针对条码技术和条码应用的一家集科研、生产、经营、销售和服务为一体的民营高科技企业专业公司。公司自成立以来,一直致力于企事业数据采集、处理等信息自动识别领域。

    我们的目标是帮助国内的行业客户,在部件采购、生产作业、仓储物流、分销管理、商品销售、售后服务等业务运作环节,科学地应用条码采集、移动计算和无线网络等先进技术,帮助企业实现对供应链的精确管理、加强销售管理、准确控制物流、缩短作业时间、提升客户服务质量、增强客户满意度,使企业在复杂多变的市场环境中,赢得有利的竞争优势地位。

    业务范围:主要从事开发、订做、销售各种条码采集设备、系统集成、企业管理软件;维修条码自动识别/采集设备、条码打印机;提供行业解决方案及技术支持.

出0入0汤圆

发表于 2011-1-13 18:26:49 | 显示全部楼层
记号一下,过段时间有用

出0入0汤圆

发表于 2011-5-11 23:41:53 | 显示全部楼层
条码枪,我曾经做过的

出0入0汤圆

发表于 2011-5-12 15:19:06 | 显示全部楼层
好像是用普通IO模拟串口接收。这样也好,可以省串口。

出0入0汤圆

发表于 2011-6-14 21:03:40 | 显示全部楼层
mark 最近了解

出0入0汤圆

发表于 2011-6-14 21:24:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-15 09:49:48 | 显示全部楼层
2,读键盘码可以了,但设置键未OK,比如要将键盘的小键盘灯点亮,应该怎样发送,我发送程序未完成
初始化的时候有命令设置点亮小键盘LED灯

出0入0汤圆

发表于 2011-6-15 16:29:01 | 显示全部楼层
关注一下哦~

出0入0汤圆

发表于 2011-6-15 18:14:38 | 显示全部楼层
哥们,我正好用这个扫描枪,多少钱?华强北应该便宜的。透露一下价格和柜台。呵呵。

出0入0汤圆

发表于 2011-6-15 18:25:10 | 显示全部楼层
lz这个型号叫啥,价格呐。

出0入0汤圆

发表于 2011-6-15 20:17:42 | 显示全部楼层
我也有一个,改天试试

出0入0汤圆

发表于 2011-6-15 21:31:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-7 05:52:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-21 18:16:14 | 显示全部楼层
记号!

出0入0汤圆

发表于 2011-10-21 18:52:44 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-10-21 20:31:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-22 15:24:30 | 显示全部楼层
PS2_Decode()里面应该把Nun Lock  这个按键的asiic 码加在里面

出0入137汤圆

发表于 2011-11-17 15:29:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-17 15:36:26 | 显示全部楼层
关注

出0入0汤圆

发表于 2012-2-13 15:06:43 | 显示全部楼层
mark ps/2

出0入0汤圆

发表于 2012-4-1 10:29:21 | 显示全部楼层
MARK了,备用

出0入0汤圆

发表于 2012-4-1 11:12:55 | 显示全部楼层
扫描枪,哈哈,最近在寻找相关资料,果断MARK

出0入0汤圆

发表于 2012-4-1 13:37:02 | 显示全部楼层
麻烦楼主告诉一下此条码器的型号

出0入0汤圆

发表于 2012-4-1 13:38:09 | 显示全部楼层
mark,备用参考

出0入0汤圆

发表于 2012-4-1 17:13:40 | 显示全部楼层
mark 扫描枪

出0入0汤圆

发表于 2012-4-1 21:20:58 | 显示全部楼层
楼主很久没来咯?麻烦透露一下此条码器 的型号

出0入0汤圆

 楼主| 发表于 2012-4-2 22:44:54 | 显示全部楼层
我也不记得型号了,就是普通的PS2接口的!

出0入0汤圆

发表于 2012-4-4 19:01:30 | 显示全部楼层
马克,正要做

出0入0汤圆

发表于 2012-8-7 14:21:16 | 显示全部楼层
这里有个建议
定时中断1ms中断一次,有点频繁
lz定时的是200ms,那么定时器可以采用10ms,计数20次也可以

出0入0汤圆

发表于 2012-8-26 20:26:39 | 显示全部楼层
mark  正在使用的扫描枪

出0入0汤圆

发表于 2012-11-2 17:06:25 | 显示全部楼层
楼主能否上传扫描枪电路图啊,小弟学习下

出0入0汤圆

发表于 2012-11-2 20:33:59 来自手机 | 显示全部楼层
顶起来!

出0入0汤圆

发表于 2012-11-26 11:10:22 | 显示全部楼层
我现在也做单片机控制条码枪,通过串口小助手检测扫描的数据,但出来过几次数据就再也不出来数据了,能帮我分析一下原因吗?就是把clk直接连接单片机的p3.2口,data连接p3.0口

出0入0汤圆

发表于 2012-12-24 08:54:49 | 显示全部楼层
不错,学习!

出350入8汤圆

发表于 2012-12-24 10:04:03 | 显示全部楼层
马克马克马克

出0入0汤圆

发表于 2012-12-24 10:31:33 | 显示全部楼层
扫描枪与普通的电脑键盘的编码是完全一样的,测试扫描枪可以新键一个记事本,然后扫描条码,条码上的数字就会显示在记事本上,相当于你依次按下了那几个数字按键.
原来扫描枪的原理是这样啊

出0入0汤圆

发表于 2013-9-18 09:36:26 | 显示全部楼层
很好

出0入0汤圆

发表于 2015-5-15 23:23:18 | 显示全部楼层
我也想了解下USB接口的如何与单片机通信?有没有谁做过的

出0入0汤圆

发表于 2015-7-14 15:31:43 | 显示全部楼层
现在还做么?

出0入0汤圆

发表于 2016-8-27 11:17:38 | 显示全部楼层
你好  有没有完整代码?可以发一份吗 谢谢    2445740216@qq.com

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-12 13:51

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

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