找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2641|回复: 5
打印 上一主题 下一主题
收起左侧

深圳奇弦二维码读头单片机程序(一维码和二维码均可读出,暂未编写读出数据处理程序)

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. //二维码读头程序
  2. //接线定义:(此例程使用的晶振为11.0592M)
  3. //单片机STC15F2K60S2串口2传送读出数据
  4. //                VCC--5V
  5. //                RXD--TX/P1.1
  6. //                TXD--RX/P1.0
  7. //                GND--GND

  8. #include <stc15f2k60s2.h>
  9. #include <string.h>

  10. #define u8 unsigned char
  11. #define u16 unsigned int

  12. #define S2RI  0x01          //S2CON.0
  13. #define S2TI  0x02          //S2CON.1
  14. #define S2RB8 0x04          //S2CON.2
  15. #define S2TB8 0x08          //S2CON.3

  16. u8 databuff[50];            //读出数据存放缓冲区
  17. u8 count;                   //接收字节计数器

  18. bit T0_FLAG;                //50ms时间标志

  19. void Timer0Init(void)                //50ms定时@11.0592MHz
  20. {
  21.         AUXR &= 0x7F;                //T0 12T模式
  22.         TMOD &= 0xF0;                //T0方式0
  23.         TL0 = 0x00;                  //50ms
  24.         TH0 = 0x4C;
  25.         TF0 = 0;
  26.         ET0 = 1;        //允许T0中断
  27. }

  28. //串口2初始化  使用T2作波特率(只能选T2作波特率)
  29. void Uart2_Init(void)
  30. {
  31.   AUXR &= 0xFB;                //波特率不倍速
  32.   S2CON = 0x50;                //8位数据,允许接收,可变波特率  0101 0000   
  33.   AUXR &= 0xFB;                //独立波特率发生器时钟为Fosc/12,即12T
  34.         T2L = 0xe8;     //波特率9600
  35.         T2H = 0xFF;
  36.   AUXR |= 0x10;                //启动独立波特率发生器
  37.   IE2 = 1;        //允许串口2中断(即ES2=1)
  38.   EA = 1;
  39. }

  40. //串口2发送一字节数据
  41. void UART2_SendByte(u8 DAT)
  42. {
  43.   S2BUF = DAT;
  44.   while((S2CON & 0X02) == 0);
  45.   S2CON &= ~0X02;
  46. }

  47. //串口2发送字符串数据
  48. void UART2_SendString(u8 *DAT, u8 len)
  49. {
  50.   u8 i;
  51.   for(i = 0; i < len; i++)
  52.   {
  53.     UART2_SendByte(*DAT++);
  54.   }
  55. }

  56. //串口2接收中断
  57. void Uart2_Isr() interrupt 8
  58. {
  59.         if (~TR0)
  60.                 TR0=1;                        //启动T0计时
  61.   if(S2CON & S2RI)
  62.   {
  63.     S2CON &= ~S2RI;
  64.           databuff[count]=S2BUF;        //数据保存至缓冲区
  65.           count++;                      //接收字节数
  66.         }
  67. }

  68. void T0INT() interrupt 1
  69. {
  70.          T0_FLAG=1;                     //50ms时间到
  71. }

  72. //读出二维码处理
  73. void ERWM_PROC()
  74. {
  75.         //根据读出的不同二维码数据进行相应的处理
  76.         
  77. }

  78. void  main(void)
  79. {
  80.         Timer0Init();                          //T0初始化
  81.   Uart2_Init();                          //串口2初始化
  82.   while(1)
  83.   {
  84.                 if (T0_FLAG)
  85.                 {
  86.                         TR0=0;                             //禁止定时计数器
  87.                         IE2 = 0;                           //禁止串口2中断(即ES2=1)
  88.                         ERWM_PROC();                       //读出二维码处理
  89.                         IE2 = 1;                           //允许串口2中断(即ES2=1)
  90.                         T0_FLAG=0;                         //下一次数据读出处理
  91.                 }
  92.   }
  93. }
复制代码

所有资料51hei提供下载:
以上程序: 二维码读头.rar (23.31 KB, 下载次数: 15)
pdf: 二维码识别QX1100.rar (843.18 KB, 下载次数: 16)

评分

参与人数 1黑币 +90 收起 理由
admin + 90 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:444925 发表于 2021-6-4 09:09 | 只看该作者
GOOD!请问楼主:单独的这个条形码模组,请问贵吗?
回复

使用道具 举报

板凳
ID:328014 发表于 2021-6-7 15:13 | 只看该作者
这个需要走云服务吗?
回复

使用道具 举报

地板
ID:235200 发表于 2021-6-7 21:48 | 只看该作者
Kelan 发表于 2021-6-4 09:09
GOOD!请问楼主:单独的这个条形码模组,请问贵吗?

不是很贵,90元
回复

使用道具 举报

5#
ID:235200 发表于 2021-6-7 21:49 | 只看该作者
51hei团团 发表于 2021-6-7 15:13
这个需要走云服务吗?

不需要,直接读出编码,但判断可以上传识别码
回复

使用道具 举报

6#
ID:22266 发表于 2021-7-21 18:46 | 只看该作者
很有用,可以自己diy一些小玩意
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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