基于单片机的产品计数器

上传人:正** 文档编号:41012329 上传时间:2018-05-28 格式:DOC 页数:15 大小:638.06KB
返回 下载 相关 举报
基于单片机的产品计数器_第1页
第1页 / 共15页
基于单片机的产品计数器_第2页
第2页 / 共15页
基于单片机的产品计数器_第3页
第3页 / 共15页
基于单片机的产品计数器_第4页
第4页 / 共15页
基于单片机的产品计数器_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于单片机的产品计数器》由会员分享,可在线阅读,更多相关《基于单片机的产品计数器(15页珍藏版)》请在金锄头文库上搜索。

1、智能仪表课程设计设计报告课题名称课题名称 产品计数器产品计数器 目目 录录第 1 章 产品计数器方案设计.(2)1.1 课题名称 .(2)1.2 设计内容及设计要求.(2) 第 2 章 选择方案.(2)2.1 采用组合逻辑电路和时序逻辑电路实现.(2)2.2 采用单片机编程实现.(2)2.3 方案比较.(2) 第 3 章 硬件设计.(3)3.1 光电感应器件内部原理图.(3)13.2 单片机引脚图.(4) 3.3 MAX232 电路图.(4)3.4 ZLG7290 电路图.(5)3.5 总电路图.(6) 第 4 章 软件设计.(7)4.1 软件框图.(8) 第 5 章 课程设计小结.(10)5

2、.1 器件清单.(11)5.2 参考文献.(11)5.3 成品展示.(11)附录 1 源程序.(12) 附录 2 任务书.(14)第一章第一章 产品计数器方案设计产品计数器方案设计1.1 课题名称 产品计数器 1.2 设计内容及设计要求 (1)有产品经过的时候数码管自动计数 (2)可用拨码盘设定计数初值 (3)有开始,复位,停止键实现其功能2第第 2 2 章章 选择方案选择方案2.1 采用组合逻辑电路和时序逻辑电路实现主要设计思路为:没有瓶子挡光时,光接收电路输出低电平,有瓶子挡光时,光 接收电路输出高电平。所以每当有一个瓶子通过时,光电转换电路输出一个正脉冲通 过单稳态电路给计数电路,计数电

3、路累加计数。2.2 采用单片机编程实现利用单片机外部中断方式,当光电转换电路检测到外界有物体移动时,输出由高 电平变为低电平。将这一负跳变信号传送给单片机可使其产生一次外部中断,进而执 行中断中的指令,由中断服务程序控制计数。2.3 方案比较方案一采用组合与时序逻辑电路,采用模块化方法设计电路图,易于实现对电路的 检查,且制作成本较低。但其运用了较多的模拟器件,比较容易受到外界的影响。方 案二运用单片机编程,可降低设计电路的周期,具有很高的精确性。综合考虑后,我 们决定采用了方案二完成本次课程设计。第三章第三章 硬件设计硬件设计3.1 光电感应器件内部原理图 如图 3-1 所示为光电感应元件的

4、内部原理图,当没有物体遮挡时一直是处于低电 平状态,当有物体时就会产生高电平,这样就会产生脉冲,输入到单片机中。3图 3-1 光电器件内部原理图3.2 单片机引脚图 如图 3-2 所示是单片机引脚图,通过软件的编程来控制。4图 3-2 单片机引脚图 3.3 MAX232 电路图 如图 3-3 所示为 MAX232,用于和电脑连接的串口通信,将程序烧录进单片机中。图 3-3 MAX232 电路图 3.4 ZLG7290 电路图 如图 3-4 所示为 zlg7290 的电路图。它采用 I2C 总线接口,与微控制器的连接仅5需两根信号线,硬件电路比较简单。而且可以驱动 8 位共阴数码管或 64 只独

5、立 LED、64 只独立按键,并可提供自动消除抖动、连击键计数等功能。这对于传统的键盘 与数码管解决方案,无疑是不可想象的。强大的功能,丰富的资源,良好的接口,使 得 ZLG7290 比传统的键盘与数码管解决方案且有更大的优越性。图 3-4 ZLG7290 电路图3.5 总电路图6如图 3-5 所示是我们设计的智能仪表的总电路图。图 3-5 总电路图7第第 4 4 章章 软件设计软件设计4.1 软件框图 我们设计的仪表的原理是有光电感应器件产生的脉冲输入单片机,通过程序的设 计来计数,如下图 4-1(1) ,4-1(2) ,4-1(3)所示,是我们设计的程序框图:图 4-1(1) 主程序框图8

6、图 4-1(2) INT0 中断程序框图图 4-1(3) INT1 中断程序框图9第第 5 5 章章 课程设计小结课程设计小结转眼间,三个星期过去了,我们也收获了这次课程设计的成果。首先要感谢老师 们对我们的指导和鼓励,因为这次课程设计是老师一手安排和全程指导的,我们起初 也是一知半解,因为老师的引导,才慢慢的自己动起手来。 在过程中,有很多不顺利的地方,比如起初的硬件选择,电机及其继电器的额定 电压问题,支架的固定,最后我们也是商定下来结束学生电源来实现电机的控制。在 此之后,我们发现由于我们的器件很多,一块板子上不能容纳全部的器件,于是我们 借助了两块外接板来辅助完成,将继电器固定在他们中

7、间。我们为了防止开关的数量 不够,所以一开始就安了很多的开关和电阻在上面,以备不时之需。起初我们忽视了 电平开关和边沿开关的作用,后来经过老师的指导,我们调换了过来,才正常运转。 当然,硬件的部分基本完成了以后,就是至关重要的软件设计了,配合硬件的设 计,软件要实现每一个硬件的设计所要完成的功能,因为需要把所有实现的功能要紧 密有效的衔接起来,所以每一个指令都不能出错,否则将会影响到整个程序的正确性。 一开始软件设计的时候,我们错误的输入了未调用进入的指令,结果导致按照我们要 求来的程序查找不到程序的源程序,让我们排查了很多遍都没有查不来,其实我们第 一步就没有走稳,导致不论后面的程序设计的多

8、么缜密都不能正常运行。 终于在最后一个礼拜的时候我们的硬件软件基本完工了,进行我们期待已久的全 面调试,但是,很不幸,一开始我们就没能调试出来,程序导入以后数码管没有任何 反应,我们担心是不是哪里没有连接上或是某块连接的器件断路或者短路了,排查了 一天我们都没能查不来,但神奇的是,当我们第二天来到实验室的时候,数码管居然 奇迹般的显示了出来,虽然都是乱码,经检查,我们发现这些乱码存在规律,可以说 是每一行显示的数字都是左右颠倒并且格子位置也颠倒地显示了,于是我们检查可能 是程序的代码输入有误,经过我们更改以后才得以正常的显示。接着的电机的控制, 当电源打开,上电完成以后,按下开始开关,电机方面

9、没有任何的反应,我们考虑可 能是继电器出了问题,但是经电表测压发电继电器没有问题,老师就教导我们去一一 排查每个分电路之间的连线,就能很清楚的知道是哪个部分出了问题,以便正确地更 换器件,以防不必要的浪费。 终于,在更换了若干器件以后,整个模块都可以正常的运行了,当然,美观是少 不了的,我们在相对整合了一下所有的大器件以后又对电机这个无法固定的器件想了 办法,最终决定将这个器件外置,如果将他固定在板子上,相对较高的电压和转速可 能承载不起这么大的冲击,所以我们就将它外置了,而又因为观点开关的通道过小, 我们的实验也不可能达到工业生产的要求,也就把它焊到了主板上,方便演示,而电 动机的方面,因为

10、没有传送带所以只能显示搁置在那里了。 总体来说,我从这个实验中学到了很多的东西,不管是设计也好,还是分工配合 也好,我们都是齐心协力,相互帮助,有困难自己找办法,同时也寻求老师的指导和 帮助,以便我们少走弯路。我们一行三人在这次实验中都发挥了各自的作用,相信以 后我们还会一起做这种类型的实验,也相信我们会越做越好,成为新一代的电子人才。105.1 器件清单 提供下列常用元器件数据手册: 开关导线若干 光电传感器 232接口 24V直流电机 二极管三极管若干 LED数码管 24V直流继电器 TLP521光电耦合器 ZLG7290种I2C接口键盘及LED驱动管理器件提供数据译码和循环移位段寻址等控

11、制。 STC89C51单片机5.2 参考文献 智能仪器设计基础 单片机原理及其应用 电子设计参考实列5.3 成品展示图 3-611附录附录 1 1 程序设计程序设计 void delayms(uint x) uchar y;while(x-)for(y=0;y123;y+); uchar Keynum() uchar key=0;STAR_KEY=1;STOP_KEY=1; if(STAR_KEY=0)delayms(10);if(STAR_KEY=0)n0=0;n1=1;if(STOP_KEY=0)delayms(10);if(STOP_KEY=0)n0=1;n1=0; return n2;

12、 void DispValue(char x, unsigned char dat) unsigned char d; d = dat / 10; ZLG7290_Download(x,0,0,d); d = dat - d * 10; ZLG7290_Download(x-1,0,0,d); void xianshi(char p,unsigned char p1,unsigned char p2) p1=(p/1000)*10+p%1000/100;p2=(p%1000%100/10)*10+p%1000%100%10;DispValue(7,p1);DispValue(5,p2); ui

13、nt qiuzhi(uint p) uchar a;uchar b;uchar c;uchar d;uchar e;uchar f;uchar g;12uchar h;if (L0=1) a=1; else a=0;if (L1=1) b=1; else b=0;if (L2=1) c=1; else c=0;if (L3=1) d=1; else d=0;if (L4=1) e=1; else e=0;if (L5=1) f=1; else f=0;if (L6=1) g=1; else g=0;if (L7=1) h=1; else h=0;p=a+b*2+c*2*2+d*2*2*2+e*2*2*2*2+f*2*2*2*2*2+g*2*2*2*2*2*2+h*2*2*2*2*2*2*2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号