基于单片机的红外传感器流水线计数器课程设计Word文档下载推荐.docx
- 文档编号:22246495
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:19
- 大小:422.28KB
基于单片机的红外传感器流水线计数器课程设计Word文档下载推荐.docx
《基于单片机的红外传感器流水线计数器课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的红外传感器流水线计数器课程设计Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
(3)计数功能…………………………………………………………………………8
(4)数码管显示电路…………………………………………………………………9
六单片机系统程序设计………………………………………………………10
七问题及解决方案……………………………………………………………12
八设计心得体会…………………………………………………………………………13
九参考文献……………………………………………………………………15
十附录……………………………………………………………………………16
一.设计题目:
基于单片机的工业产品自动计数器
二.设计要求:
1、数码管可以显示产品个数(0-99),自由设定产品报警个数(比如8),当产品数目是8的个数时,发出报警(蜂鸣器响)。
2、独立设计电路,应包括单片机小系统、红外光电开关、数码管显示部分。
三.题目分析:
基于单片机构成的产品自动计数器研究的主要内容包括:
如果构成检测电路、MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
四.整体构思:
方案论证与选择
方案一、如图一
图一:
方案一
原理阐述:
专业检测芯片形成计数脉冲后送给控制单元AT89C2051单片机
通过对它片内计数、显示编程。
PS7219是专用LED显示驱动芯片可以同时驱动8个7段数码管.X2504P是一块有电源电压监控、EEPROM和看门狗定时器电路三种功能于一体的芯片,它保证了在电源接通、关断、瞬间电源电压不稳时,不会造成系统死机、数据误写或误动作,大大提高了系统的可靠性和抗干扰能力.HT7044A能够保证系统突然掉电后保护数据。
方案二、如图二
图二:
方案二
原理阐述:
红外发射电路(以NE555为核心)和红外接收电路(由LM567为核心)构成红外检测单元以及形成计数脉冲、经过STC89C52外部中断对其片内计数、显示编程、最后通过显示驱动芯片连接上LED显示器就完成了最后的计数显示.
方案三、如图三
图三:
方案三
检测单元同方案二一样、不同的便是计数显示部分.方案三使用了四合一芯片CL102.它是集译码、驱动、锁存、显示一体.
以上三个方案各有着自己的优缺点:
方案一既可完美的实现产品自动计数功能且能让系统处于异常状态和抗干扰时通过外围专用芯片得到非常好的解决。
外围电路架设相对简单、在市场上属于高端自动计数产品。
同时它也暴露出了一个重大问题:
由于成本太贵的原因此类产品并没有得到普及.如果用此方案进行设计只需要了解各专用芯片的引脚功能以及外围连接方法就可以实现自动计数,并没有很好的达到我们做毕业设计的目的,故虽然这个方案是最完美的一个方案也只有舍弃.
方案三是一个简易的产品自动计数器。
价格低廉、计数精确.但在系统处于异常状态时工作十分不稳定、也是属于现在产品自动计数市场上的淘汰产品.仅用于在计数要求不高的场合中。
这个方案太过于简单故不选用.
方案二便是这次课程设计选用的方案。
之所以选用主要是这个方案涉及的知识面广且能达到精确、稳定的自动计数。
但也有一个致命的缺点整个系统的抗干扰能力较弱、系统掉电后不能保存数据。
在系统处于异常状态时容易出现误动作或死机.这也是此设计着重解决的问题。
五.具体实现:
电路由光电管电路,单片机系统,蜂鸣器报警电路,数码管显示部分、复位电路组成。
简单执行过程如下:
红外传感器感受到外界信息时,产生高低电平,通过软件程序设置单片机内部寄存器,当传感器的高低脉冲被单片机接收到时,单片机产生中断,中断产生后进入中断服务程序,通过设置中断服务程序,进行计数。
并通过P0口将计数信息传送至数码管,数码管显示计数的个数。
当需要置位是按下复位开关,则计数器清零,数码管显示清零,重新开始计数。
1、光电传感器
光电开关电路主要由光电开关管,即光电传感器是采用光电元件作为检测元件的传感器。
它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。
光电传感器一般由光源、光学通路和光电元件三部分组成。
电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。
如下图示为本次课程设计所采用的光电开关,其型号为E18-B03N1封装的反射红外传感器
原理如下:
红外传感器没有检测到外部信号时处于高电平状态,当检测到外部物体时有高电平状态变为低电平状态,通过与单片机连接单片机I/O接收检测的高低电平变化。
原理图如下:
2、单片机系统
单片机最小系统是此设计的核心部位,红外传感器所产生的外部脉冲经单片机进行译码而计数的,并且通过对单片机内部进行编译,使外部中断信号通过数码管显示出来,并实现计数功能。
一个典型的单片机最小系统一般由时钟电路、复位电路、片外RAM、片外ROM、按键、数码管、液晶显示器、外部扩展接口等部分组成,而对于这次的设计单片机最小系统基本电路图如下:
(1)、时钟源电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。
通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图中Y1、C1、C2。
可以根据情况选择6MHz或24MHz等频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。
(2)复位电路
单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。
上电复位要求接通电源后,自动实现复位操作。
手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
其结构如图中R1、C3和K1。
上电自动复位通过电容C1充电来实现。
手动按键复位是通过按键将R3与VCC接通来实现。
如图示两种复位方式:
图上电复位电路图手动复位电路
(3)、计数功能
由单片机STC89C52控制完成。
基本原理为当红外检测部分检测到光时,红外接收电路输出口将产生一个高电平信号,这个信号将供给单片机进行计数控制;
显示部分是通过P0和P2口实现。
计数控制部分是将计数脉冲送入单片机STC89C52中断入口的INT0入口,经过单片机内部对这个中断信号进行计数编程构成。
STC89C52与MCS-52指令系统完全兼容。
提供以下标准功能:
4K字节FLASH闪烁存储器、128字节内部RAM、32个I/O口线、三个16位定时/计数器、一个5向量两级中断、片内振荡器及时钟电路。
同时STC89C52可降至0HZ的静态逻辑操作,并支持两个软件的节电工作模式。
空闲方式停止CPU的工作,但是允许RAM、定时/计数器及中断系统继续工作。
掉电后保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
STC89C52单片机芯片引脚图:
图STC89C52单片机外型图STC89C52端口功能
显示部分是通过上拉电阻以及8段数码管构成.采用的是软件译码方式。
软件译码是把各字符的段选码组织到一个表中,要显示某字符先查表得到其段选码,然后送往显示器的段码线。
单片机应用系统中多采用软件译码的动态显示P0口输出的是段选码,P2口输出位选码。
而位选码占用的输出口线数取决于显示器位数。
(4)、数码管显示电路
数码管显示部分采用一个两位八段数码管,可以显示计数范围0—99。
该数码管为共10个管脚,分别是:
a、b、c、d、e、f、g、h、com1、com2。
其中abcdefgh为八位段码,com1、com2为公共端为位选,而单片机应用系统中多采用软件译码的动态显示P0口输出的是段选码,P2口输出位选码。
从而显示实时数字。
该数码管为共阳极数码管当用NPN型三极管驱动时,当基极为高电平时三极管导通,位选打开。
三极管C极集电极接+5V电源,发射极与数码管两com口相连,基极接单片机片P2口,通过对P2口附高低电平来控制位选,当P2口为高电平时,三极管道通,进而使得数码管com口为高电平。
数码管显示与驱动数码管原理图如下所示:
六.单片机系统程序设计:
其主程序图如上所示:
采用C语言进行编译程序:
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitbuzzer=P3^1;
//定义蜂鸣器控制端口为P3.1
ucharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//数码管的段码
ucharnum,num1,num2,flag;
voiddelay(unsignedinti)//延时函数
{
unsignedintj;
for(i;
i>
0;
i--)
for(j=110;
j>
j--);
}
voiddisplay()//数码管显示函数
{
uchara,b;
a=num%10;
b=num/10;
if((num%8==0)&
&
(num!
=0)&
flag==1)//判断是否到了8次,到8次时蜂鸣器报警
buzzer=1;
delay(1000);
flag=0;
buzzer=0;
num1++;
if(num1==100)//当计数100次时清0
num1=0;
}
}
P0=tab[a];
P2=0xfe;
delay(5);
P0=tab[b];
P2=0xfd;
main()//主函数
TMoD=0X05;
TH0=0;
TL0=0;
TR0=1;
EA=1;
//开总中断
EX0=1;
//开外部中断0
IT0=1;
//设置下降沿触发
//初始化蜂鸣器
while
(1)
display();
voidint1()interrupt0//中断服务程序(即产生一个下降沿num计数一次)
num++;
if(num==100)
num=0;
flag=1;
分析程序可知,主要功能即当计数为8的倍数时蜂鸣器报警一次,当计数满100,则计数器自动清零,重新计数。
七.在实验室实现过程中遇到的问题及排除措施:
在这次课程设计中,在实验室实现的过程中,我们遇到了如下的问题:
1.整个系统的抗干扰能力较弱。
2.在系统处于异常状态时容易出现误动作或死机。
排除措施:
1.在复位电路中并入电容,在整体电路中串入电阻和电容以增加抗干扰能力。
2.增加手动和自动复位装置。
八.设计心得体会:
在这次课程设计过程中,使我们巩固了自己所学的传感器、单片机、PLC、C语言等的知识,同时更提高了我们的动手能力。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在韩亚丽老师的辛勤指导下,终于游逆而解。
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢
九.参考文献:
参考文献
[1]单片机原理与接口技术教程倪小军章韵清华大学出版社2009
[2]现代传感器技术与应用王华祥化学工业出版社2008
[3]电子技术基础华中科技大学电子技术课程组康华光主编
陈大钦张林副主编高等教育出版社2005
[4]XT100实验指导书山东芯腾电子2010
[5]C程序设计谭浩强清华大学出版社2005
[6]十天学会单片机和C语言编程郭天祥2007
十、附录(原理图)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 红外传感器 流水线 计数器 课程设计