ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:135.73KB ,
资源ID:9335429      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9335429.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的传送带产品计数器设计LED显示.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的传送带产品计数器设计LED显示.docx

1、基于51单片机的传送带产品计数器设计LED显示基于51单片机的传送带产品计数器设计(LED显示)1.题目1 2.电路原理图的设计1 2.1传送带产品计数器(LED显示)电路原理图1 2.2 LED显示模块1 2.3 置数模块2 2.4 按键模块3 2.5 电机控制模块3 3.软件系统设计 3.1 软件系统的流程结构4 3.2 C51程序44.仿真即调试8 5.总论8 参考文献9I 1 题目 设计题目 传送带产品计数器的设计(LED显示) 功能要求: 用MCS-51系列单片机作为控制器;采用4位LED进行计数显示;采用光电传感器计数; 用按键控制传送带电机的起停; 用拨码盘预置计数值,计数到预定

2、值时,传送带停止,按键后传送带继续运行。 2 电路原理图的设计 2.1 传送带产品计数器(LED显示)电路原理图 硬件原理图如下图所示,包括显示模块,按键模块,电机控制模块,置数模块。 2.2 LED显示模块 使用4位LED数码管来显示数字,通过NPN管来驱动数码管。1 2.3 置数模块 使用8位薄码盘和5位薄码盘组合来组成最高13位的二进制数,即8191的最大置数值,很好的利用了4位数码管。 2 2.4 按键模块 每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。软件设计采用查询方式和外部中断相结合的方法来设计,低电平有效。按键直接与89c51的I/O口线相连

3、接,通过读I/O口的电平状态,即可识别出按下的按键。电路原理如图 2(5 电机控制模块 利用光电耦合器和直流继电器来控制电机,其中二极管是用来保护三极管,而电容是用来减少火花的影响。如下图所示。 3 3 软件系统设计 3.1 软件系统的流程结构 3.2 C51程序 #include #define uchar unsigned char #define uint unsigned int sbit STAR_KEY =P36;/定义键与单片机的连接引脚 sbit STOP_KEY =P37; sbit L0=P10; /定义SFR中引脚的位 sbit L1=P11; sbit L2=P12;

4、sbit L3=P13; sbit L4=P14; 4 sbit L5=P15; sbit L6=P16; sbit L7=P17; sbit L8=P20; sbit L9=P21; sbit L10=P22; sbit L11=P23; sbit L12=P24; sbit LED4=P25; /定义四位数码管的千位 sbit LED3=P26; sbit LED2=P27; sbit LED1=P30; sbit MOTOR=P35; uchar n2=1,0; uchar code dispcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8

5、0,0x90,0xff; void delayms(uint x) /延时子程序 uchar y; while(x-) for(y=0;y123;y+); uchar Keynum() /按键子程序1 uchar key=0; STAR_KEY=1;STOP_KEY=1; /置初值 if(STAR_KEY=0)delayms(10);if(STAR_KEY=0)n0=0;n1=1; /按下STAR键则n0=0;n1=1 if(STOP_KEY=0)delayms(10);if(STOP_KEY=0)n0=1;n1=0; /按下STOP键则n0=1;n1=0; return n2; /返回n值

6、void xianshi(uint o) /显示子程序 P0=0xff; P0=dispcodeo/1000;LED4=1;LED3=0;LED2=0;LED1=0;delayms(5); P0=0xff; 5 P0=dispcode(o/100)%10;LED4=0;LED3=1;LED2=0;LED1=0;delayms(5); P0=0xff; P0=dispcode(o/10)%10;LED4=0;LED3=0;LED2=1;LED1=0;delayms(5); P0=0xff; P0=dispcodeo%10;LED4=0;LED3=0;LED2=0;LED1=1;delayms(5

7、); uint qiuzhi() /求用拨码盘所置数的值的子程序 uchar a; uchar b; uchar c; uchar d; uchar e; uchar f; uchar g; uchar h; uchar i; uchar j; uchar k; uchar l; uchar m; uint p=0; 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

8、 (L5=1) f=1; else f=0; if (L6=1) g=1; else g=0; if (L7=1) h=1; else h=0; if (L8=1) i=1; else i=0; if (L9=1) j=1; else j=0; if (L10=1) k=1; else k=0; if (L11=1) l=1; else l=0; if (L12=1) m=1; else m=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+i*2*2*2*2*2*2*2*2+j*2*2*2

9、*2*2*2*2*2*2+k*2*2*2*2*2*2*2*2*2*2+l*2*2*2*2*2*2*2*2*2*2*2+m*2*2*2*2*2*2*2*2*2*2*2*2; 6 return p; / 返回所求的P值 void main(void) /主程序 uint q; IT0=1; /负跳变触发 EA=1; /开总允许中断 EX0=1; /开INTO中断 TMOD=0X05; /置T0为计数器方式1 TL0=0x00; /置计数器初值 TH0=0x00; while(1) /无限循环 q=qiuzhi(); /调用求值子程序求出所置的数 if (MOTOR=1) xianshi(q); e

10、lse xianshi(TL0);Keynum();TR0=n1; /当电动机关闭时显示用薄码盘所置的数并停止计数,电机启动时则开始计数,并显示计数值 if (TL0=q) TR0=0;MOTOR=1; else Keynum();MOTOR=n0; /当计数值与所置数相同时关闭电机,停止计数,当计数值不等时则将电机启动与关闭交由按键控制,所以不存在计数值超过置数值的情况 void Int0(void) interrupt 0 /中断服务程序,工作寄存器用0组 TL0=0x00;TR0=1; /重置计数值,重新开始计数 7 4 仿真及调试 仿真原理图如上图。 当需要置数时,通过薄码盘拨动,8位薄码盘控制二进制数的低八位,5位薄码盘控制高8位。启动后,LED数码管会显示所置的数,按下开始键STAR,电动机开始运转,4位LED数码管显示0,然后按动计数键COUNT,按一下数码管显示数加1,直到所显示的数与当前所置的数相等时关闭电机和停止计数。而后可以按下RST键,所记的数清零并重新开始计数,此时可又通过按下计数键COUNT来计数。在这个过程中,可以按下STOP键来关闭电机,同时也停止了计数,再按下开始键STAR,则再继续接着刚停止时的数来开始计数。满足了设计题目的所有要求。 5 总论 8 PAS5001-N 参 考 文 献 9

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2