用单片机实现的脉冲编码传感器设计

发布者:rocky96最新更新时间:2014-10-30 来源: 21ic关键字:单片机  脉冲编码  计价器 手机看文章 扫描二维码
随时随地手机看文章

  1 系统原理

  系统框图如图1所示,本文主要介绍虚线框内模块的设计。出租车驱动轮转数与转轴转数的传动比是一定的,而转轴转动时带动一小磁体转动,其传动比也是一定的,小磁体每转动一周就和磁感应传感器正对一次,磁感应传感器就会产生一个大约20 ms的低脉冲,可以通过计算磁感应传感器产生的低脉冲数来计算出租车跑的里程数及相应的车费。

 

  

  编码器的单片机通过一个I/0口来检测磁感应传感器信号,当确定为传感器产生的信号时,就通过另一个I/O口向解码器的单片机发送一组编码,而解码器的单片机则首先判断当前准备接收的数据是编码器发送的编码还是解码写入器发送的解码。当判断是解码写入器发送的解码时,解码器的单片机接收此解码,并利用 12c总线协议将解码保存到E2PROM中去;当判断是编码器发送的编码时,解码器的单片机先接收此编码,然后读出自己E2PROM中的解码,将其与接收到的编码相比较,如果相同则解码器单片机通过一个I/0口向计价装置发出计价脉冲,否则不发出计价脉冲。注意:这里每一辆出租车计价器的编码和解码都是不同的,这样有利于出租车的管理以及防止计价器的盗用,解码器中的解码是使用解码写入器写入其E2PRoM中去的。每辆出租车计价器都具有一个编码器和一个解码器,而所有的出租车计价器都共用一个解码写人器。也就是说,在计价器卖出之前,用同一个解码写入器为所有的计价器的解码器写入不同的初始解码。写入初始解码以后,计价器就不再需要解码写入器了,除非此计价器坏掉需要重新更换解码器,此时需再用解码写入器给新的解码器写入初始解码。硬件电路设计图如图2 和图3所示。

  

  2 系统功能的实现

  2.1 传感器

  本系统的编码器部分利用传感器来接收出租车的跑动信号,这里采用的传感器为磁感应传感器,当其与车辆转轴带动的小磁体正对时,传感器的输出引脚便会产生一个约20ms的低脉冲。

  2.2编码器

  编码器部分使用的单片机为PIC12C508A,利用PIC12C508A芯片的第4个引脚GP3来检测传感器的输出信号。当检测到确定的传感器信号后,单片机将按一定的时序在其第7个引脚GP0连续发送5个十进制数据(即编码形式为5位十进制数)给解码器,每个数据都是按脉冲方式发送出去的。十进制数是多少,就发送几个低脉冲,发送一个十进制数据所用的时间要保证在255μs以内。其程序流程图如图4所示。

  

  2.3 解码写入器

  解码写入器部分使用的单片机为AT89C51,解码写入器的功能与编码器的功能类似。由于发送的解码要能随时改变,这里可以外接5个小数字键盘,解码写入器要发送的解码可以从5个小数字键盘上获得。为了和编码器发送的编码区别开来,解码写入器需要先发送一个区别字符,使解码器能够识别出当前接收的是编码器还是解码写入器发出的数据。区别字符后面紧跟着的是解码,所有这些数据的发送方式与编码器编码的发送方式完全相同,由AT89C51单片机的P3.4口输出,其程序流程图如图5所示。[page]

  

  2.4 解码器

  这部分采用的单片机是PIC12CE5C18,其内部有E2PROM。可以利用I2c协议随时从E2PROM中读出解码或者向E2PROM中写入新的编码。下面介绍工作过程。首先解码器读出内部E2PRoM中00h~04h中的5个十进制数据,分别保存到5个内部数据存储单元中。然后调用接收数据子程序,接收1个数据,并先保存到1个内部数据存储单元中,判断这个数据是否为区别字符10。若不是区别字符,说明现在接收的数据可能是编码器发送的编码,则继续接收后面的4个数据,并保存到4个内部数据存储单元中,将接收到的这5个十进制数据与前面解码器读出的内部E2PROM中00h~04h中的5个十进制数据进行比较,相等则在GP0引脚上发送一个2 ms的低脉冲作为计价脉冲,不相等则重新接收数据。若是区别字符10,说明现在解码写入器要修改解码器的解码,必须马上接收跟在区别字符后面的5个数据,并将这5个十进制数据保存到E2PROM的00h~04h中,覆盖以前的解码。其程序流程图如图6所示,其调用的子程序如图7和图8所示。

  

  结论

  本系统解决了以往计价器计价不准确、使用寿命短等缺点,现在采用以单片机为主控制单元的编码解码技术,使每个出租车的计价器拥有不同的编码,从而防止出租车之间计价器的相互盗用,便于出租车公司对出租车的管理。同时,可以随时对单片机的外围电路进行扩展,并通过软件编程实现本系统的不断升级。

关键字:单片机  脉冲编码  计价器 引用地址:用单片机实现的脉冲编码传感器设计

上一篇:基于MCU和FPGA的LED图文显示屏控制系统
下一篇:基于DVP-M的LCD TV系统的设计方案

推荐阅读最新更新时间:2024-03-16 13:44

学习笔记-avr单片机C编程1
这几天在看AVR单片机的书。ASURO的项目的编程是建立在已有的成熟函数上,所以导致我对AVR单片机的运行机理(中断、定时器的使用)不甚了解。突然一个个超声波模块的程序放在眼前,才发现我连AVR单片机的了解基本上等于零。另外一个项目需要用mega128控制直流电机,还有和无线、有线遥控器的通信,电路(模块)需要自己搭起来,那么就必须知道AVR单片机的原理和编程。 和已经学过的51单片机相比,MEGA系列单片机是十分高级的单片机,功能强大,因而在构造和使用上也复杂了一些。 存储器区别,AVR分为5个部分,访问指令上有区别。 输入输出,51是准双向口,每个端口只有一个寄存器。而AVR的I/O口是标准双向口,
[单片机]
ATMEGA8单片机驱动4线步进机C程序
#include avr/io.h #include avr/delay.h #define uchar unsigned char #define uint unsigned int uchar np; //步进电机运行数据表 const uchar motortb ={0x11,0x99,0x88,0xCC,0x44,0x66,0x22,0x33}; void delay_nms(uint ms)// 每步延时de子程序 { uint i; for(i=0;i ms;i++) _delay_loop_2(8*250); } void a_step(uchar d,uchar t) //步进电机走一步d=0
[单片机]
单片机驱动三极管
Q1一直是截止的,所以Q2导通时,基极电流会从Vcc到R1到GND,Ice的电流是Ib的β倍,R1的阻值根据负载的需要来调整 因为R1的阻值可以取得很大,因为当输出1时,Q2截止。负载的电流根据R2的阻值来确定
[单片机]
<font color='red'>单片机</font>驱动三极管
STM32单片机LCD240128搬货物Proteus仿真程序
单片机源程序如下: #include reg52.h #include SS.h //关卡的界面 #include SB.h //在此文件中定义了汉字编码,用点阵液晶字模提取软件 #define uchar unsigned char #define uint unsigned int sbit cd = P2^0; //=0,数据通道;=1,命令通道 sbit rd = P2^1; //=0,读选通有效 sbit wr = P2^2; //=0,写选通有效 sbit ce = P2^3; sbit md = P2^4; sbit rst= P2^5; uchar renh=6
[单片机]
STM32<font color='red'>单片机</font>LCD240128搬货物Proteus仿真程序
盛群半导体推出HT48R068B等四款大容量微控制器
 盛群半导体推出HT48R068B、HT48R069B与HT46R068B、HT46R069B大容量MCU。HT4xR068B ROM为16kx16、RAM为512 Bytes、HT4xR069B ROM为32kx16、RAM为1kBytes;HT4xR068B与HT4xR069B内建有16个通道的12-bit A/D、4个通道的8-bit PWM、1个通道的12-bit D/A与串行传输接口SPI/I2C,可减少外围零件、缩小PCB Size及降低成本,非常适合家电类、工业类与小型微控制系统的应用。 HT4xR068B与HT4xR069B的特点在于全系列工规(-40~85℃)、工作电压2.2~5.5V、内建R-Type LC
[单片机]
单片机的工作原理
  可以说单片机在电子技术 中的应用越来越普遍,这得益于其优良的存储功能,并且与单片机RAM外存储器发生联系时必须通过A累加器才能顺利实现,即所有数据如果要向外部RAM传输只能通过A累加器,同样在数据读取过程中也要经过A累加器才能实现读入。这种工作机制与内部RAM有着明显的区别,即内部RAM之间能够直接传送、读入数据,但是外部RAM不可以。单片机其实是一种高集成的电路芯片,其执行程序的过程就是逐条执行指令的过程。此处所谓的指令是指需要单片机执行的相关操作采用命令的形式写出来,通常一种基本操作对应一条指令,主要是由设计人员赋予单片机的指令系统来决定的。由于单片机在执行指令的过程中需要遵循特定的顺序,所以程序中的指令也是根据同样的顺序
[单片机]
stc单片机不断电下载程序
stc单片机支持串口isp程序下载,不必使用专用下载器,仅使用串口就能下载程序。但每次下载程序都要断电再上电,比较麻烦。 下面介绍一种不需断电就能下载程序的方法,在程序调试时比较方便。 基本原理: stc单片机有专用的复位寄存器,通过对该寄存器写入不同的数值可以实现单片机热启动复位。 寄存器功能如下图所示: 由上图可以看出只要满足某个条件,向ISP_CONTR写入0x60,就可以实现从ISP监控区软启动启动 某个条件设置为:当串口接收到0xaa数据时,单片机执行ISP_CONTR=0x60; 指令,从ISP监控区软启动启动。 演示程序如下: //*************************STC12C5410
[单片机]
stc<font color='red'>单片机</font>不断电下载程序
C8051FXXX单片机FLASH程序的自动升级
引言: C8051FXXX系列高速SOC单片机是由美国Cygnal公司开发的完全集成的混合信号系统级芯片,具有与8051兼容的微处理器内核,内部集成FLASH程序存储器,具有在系统重新编程能力,以C8051F020为例,内部集成64K的FLASH程序存储器。在系统控制软件的开发调试阶段,可用集成开发环境来下载及测试系统,但当将C8051F020目标系统集成到产品后,则由于操作系统及软硬件接口不一样等等原因,不能在最终产品中用集成开发环境来下载FLASH程序,故产品到了用户处之后,如要再进行FLASH程序的更新,则必须更换相应的集成电路印刷板,造成很多麻烦及不可靠因素。笔者通过实验,在用户操作界面的PC机及C8051F020的
[单片机]
C8051FXXX<font color='red'>单片机</font>FLASH程序的自动升级
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved