陕西理工学院毕业设计
应用说明:
LM393是宽频带,高增益的器件,大多数比较器和它一样,如果有耦合被输出端到输入端上的寄生电容产生,则振荡很容易产生。只有在比较器改变状态时,输出电压过渡的间隙,这种现象才会产生。把旁路滤波加在电源上并不能将这个问题解决。标准PC板的设计有助于减小输入—输出寄生电容的耦合。要减小反馈信号,需减小输入电阻至小于10K。而且要增加甚至很小的正反馈量(滞回1.0~10mV)能导致快速转换,使得由于寄生电容引起的振荡不可能产生。除非利用滞后,不然在引脚上加上电阻并直接插入IC将导致输入—输出在很短的转换周期内振荡,如果以脉冲波形作为输入信号,则滞回将不需要,但前提是上升时间和下降时间相当快。
比较器的所有没有用的引脚必须接地。
LM393偏置网络保证了电源电压范围 2.0~30V与其静态电流是无关的。 旁路电容不需要给电源加。
大于Vcc的差分输入电压并不会损坏器件。必须保证输入电压向负端超过-0.3V被保护部分阻止。
集电极开路,发射极接地的NPN输出晶体管作为LM393的输出部分,可以用多集电极输出提供或OR ing功能。输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上, Vcc端电压值并不能限制它。一个简单的对地SPS开路(当不用负载电阻没被运用)被此输出充当,可能得到的驱动和器件的β值把输出部分的陷电流限制。当极限电流(16mA)被达到时,输出电压将很快上升而且输出晶体管将退出。输出饱和电压被输出晶体管大约60ohm 的γSAT限制。当负载电流很小时,输出晶体管的低失调电压(约1.0mV)允许输出电位在零电平。 3.2.3红外线发射、接收电路
主要由LM393组成的红外发射、接收电路构成这个部分。该部分基本原理为红外发射二级管发射红外线,通过检测红外线是否被人或者物体遮挡,然后由红外线接收三极管把模拟信号整流后发送给LM393进行比较并输出计数脉冲以便单片机进行计数控制。
图3.3 红外线发射、接收电路
如图3.3所示,以双电压比较器LM393为红外线发射、接收电路的核心。红外线检测部分采用一对红外发送接收管完成,,设置负输入基准电压为3.5V,电路正常工作时,当无障碍物遮挡,红外接收管有红外线照射,这时,形成光电流,由此产生的光电流由基极进入发射极,从而在集电极回路中得到一个放大了相当于β倍的信号电流。LM393的输入电压将低于基准电压,故这时双电压
第 11 页 共 33 页
陕西理工学院毕业设计
比较器LM393输出低电平;当在红外发射接收管间有一不透光的障碍物时,红外接收管无红外线照射,这时LM393的输入电压等于基准电压,故这时双电压比较器LM393输出高电平。 3.3计数显示电路
计数显示部分由单片机STC89C51控制完成。基本原理为当红外检测部分检测到有产品经过时,红外接收电路LM393芯片的1脚输出口将产生一个高电平信号,这个信号将供给单片机进行计数控制;显示部分是通8位LED数码显示管显示。
计数控制部分是将计数脉冲送入单片机STC89C51两个中断入口的INT0入口,经过单片机内部对这个中断信号进行计数编程构成。STC89C51与MCS-51指令系统完全兼容。
图3.4 LED数码管显示模块
3.3.1 LED数码管使用条件
使用LED数码管的条件:
a、限流电阻需加在各段及小数点上
b、使用电压:段和小数点均根据发光颜色决定
c、使用电流:静态:总电流80mA(每段10mA);动态:平均电流4-5mA 峰值电流100mA 4位数码管引脚图数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5s
(3)表面有保护膜的产品,可以在使用前撕下来。 3.3.2 七段数码管引脚介绍
这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如图3.6所示。图中的8个LED分别与图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。
第 12 页 共 33 页
陕西理工学院毕业设计
图3.6七段数码管引脚图
那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,图3.6中的数字分别与这10个管脚一一对应。注意,3脚和8脚是连通的,这两个都是公共脚。
还有一种比较常用的是四位数码管,内部的4个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。
图3.7共阴的四位数码管的内部结构图
第 13 页 共 33 页
陕西理工学院毕业设计
第 4 章 红外自动计数器的软件设计
STC89C51RC单片机可以通过C语言和汇编语言实现编程。汇编语言要做到机器指令全部对应,所以在单片机里运行起来效率较高的是用汇编语言编写的程序,而且对于红外计数器数据的读写上,所用到的语句比较简单易懂。而C语言程序有着较高的可读性,所以理解上更容易。
本次设计使用C语言编程。 4.1 Keil C51开发系统
Keil C51是美国Keil Software公司(ARM公司之一)出品的51系列兼容单片机的C语言软件开发系统。Keil提供了一个包括C编译器、连接器、宏汇编、库管理和具有强大功能的仿真调试器等在内的一整套开发方案,这些部分通过一个集成开发环境(uVision)组合在一起。
Keil C51支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业应用工程师,还是刚学习嵌入式软件的学生。Keil μVision调试器准确地模拟8051设备的片上外围设备(IC、CAN、UART、SPI、中断、I/O端口、A/D转换器、D/A转换器和PWM模块)。模拟帮助你了解硬件配置,避免在安装问题上浪费时间。此外,使用模拟器你可以在没有目标设备的情况下编写和测试应用程序。
图4.1 Keil 编译界面
第 14 页 共 33 页
陕西理工学院毕业设计
4.2系统软件设计流程图
主程序先是开始,然后赋初值,本设计采用的是动态显示,所以在赋玩初值后显示程序不断被调用。
开始 初始化 计数 显示
图4.2主程序流程图
4.3 程序
#include
#define uchar unsigned char #define uint unsigned int
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端(板) uchar wei[4]={0X80,0X40,0X20,0X10}; //位的控制端(仿真)
uint z,x,c,v, date; //定义数据类型 uint dispcount=0;
/******************************************************************
延时函数
******************************************************************/ void delay(uchar t) {
uchar i,j;
for(i=0;i for(j=13;j>0;j--); { ; } 第 15 页 共 33 页