传送带产品计数器的设计(LCD显示).pdf

上传人:l*** 文档编号:73720740 上传时间:2023-02-21 格式:PDF 页数:14 大小:362.26KB
返回 下载 相关 举报
传送带产品计数器的设计(LCD显示).pdf_第1页
第1页 / 共14页
传送带产品计数器的设计(LCD显示).pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《传送带产品计数器的设计(LCD显示).pdf》由会员分享,可在线阅读,更多相关《传送带产品计数器的设计(LCD显示).pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 目录 摘要.1 1 题目.2 2 电路原理图的设计.2 2.1 传送带产品计数器(LED显示)电路原理图.2 2.2 LED显示模块.2 2.3 置数模块.3 3 软件系统设计.4 3.1 软件系统的流程结构.4 3.2 C51程序.4 3.3 计数程序模块.7 4 仿真及调试.10 5 总论.11 参 考 文 献.12 致 谢.13 摘要 MCS-51系列单片机 LCD 显示 LCM1602 1 题目 传送带产品计数器的设计(LCD 显示)功能要求:用MCS-51 系列单片机作为控制器;采用LCM1602 进行计数显示;采用光电传感器计数;用按键控制传送带电机的起停;用拨码盘预置计数值,计

2、数到预定值时,传送带停止,按键后传送带继续运行。2 电路原理图的设计 2.1 传送带产品计数器(LED 显示)电路原理图 硬件原理图如下图所示,包括显示模块,按键模块,电机控制模块,置数模块。2.2 LED 显示模块 使用4 位 LED 数码管来显示数字,通过NPN 管来驱动数码管。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/

3、RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51OFFON12345678161514131211109DSW1DIPSW_82 3 4 5 6 7 8 91RP110*865412U2OPTOCOUPLER-NPNR1100R22kR310kU1(P3.4/T0)R55kR410kRL112VQ5NPND11N4001VCC

4、+12V+12vVCCVCC急停计数重启动电机计数值设定D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LRV11kVCC 2.3 置数模块 使用8 位薄码盘和5 位薄码盘组合来组成最高13 位的二进制数,即 8191 的最大置数值,很好的利用了4 位数码管。D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LOFFON12345678161514131211109DSW1DIPSW_8计数值设定65412U2OPTOCOUPLER-NPNVCCVCC3 软件系

5、统设计 3.1 软件系统的流程结构 3.2 C51 程序/*-文件名:lcd1602.h 头文件 功能:LCD1602 驱动函数的声明-*/#ifndef _LCD1602_H_#define _LCD1602_H_#include#define uint unsigned int#define uchar unsigned char/接口定义 sbit LcdRs=P20;sbit LcdRw=P21;sbit LcdEn =P22;sfr DBPort =0 x80;/P0 口为LCD 数据总线/*-功能:LCD 初始化函数 -*/void LCD_Initial();/*-功能:LCD

6、显示字符(ASIIC 码)函数 参数:x-列 015;y-行 01;str-要显示的字符串指针-*/void LCD_Prints(uchar x,uchar y,uchar*str);#endif/*-文件名:lcd1602.c 函数功能:LCD1602 的驱动函数 原理:采用普通IO 口方式模拟LCD1602 时序,未采用总线方式-*/#include#include /次头文件中定义有_nop_()函数#include lcd1602.h/*-功能:内部等待函数 返回参数:P0 数据-*/uchar LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=

7、1;_nop_();/while(DBPort&0 x80);/*在用Proteus 仿真时,屏蔽此语句,否则会进入死循环,实际硬件操作时打开此语句.*/LcdEn=0;return DBPort;/*-功能:写LCD 命令/数据 函数 参数:style 为写命令/数据,0-命令,1-数据;input 为写入的8 位命令/数据-*/#define LCD_COMMAND 0 /命令#define LCD_DATA 1 /数据#define LCD_CLEAR_SCREEN 0 x01 /清屏#define LCD_HOMING 0 x02 /光标返回原点 void LCD_Write(bit

8、style,uchar input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();LcdEn=1;_nop_();LcdEn=0;_nop_();LCD_Wait();/*-功能:设置LCD 显示模式 参数:DisplayMode 见下面的定义-*/显示模式定义#define LCD_SHOW 0 x04 /显示开#define LCD_HIDE 0 x00 /显示关#define LCD_CURSOR 0 x02 /显示光标#define LCD_NO_CURSOR 0 x00 /无光标#define LCD_FLASH 0

9、 x01 /光标闪动#define LCD_NO_FLASH 0 x00 /光标不闪动 void LCD_SetDisplay(uchar DisplayMode)LCD_Write(LCD_COMMAND,0 x08|DisplayMode);/*-功能:设置LCD 输入模式 参数:InputMode 见下面的定义-*/#define LCD_AC_UP 0 x02 /地址计数器增加方式#define LCD_AC_DOWN 0 x00 /此为缺省设置#define LCD_MOVE 0 x01 /画面可平移#define LCD_NO_MOVE 0 x00 /画面不可平移 void LCD

10、_SetInput(uchar InputMode)LCD_Write(LCD_COMMAND,0 x04|InputMode);/初始化LCD 详见LCD1602.h 中的说明 void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0 x38);/8 位数据端口,2 行显示,5*7 点阵 LCD_Write(LCD_COMMAND,0 x38);/此句不能省 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);/开启显示,无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);/清屏 LCD_

11、SetInput(LCD_AC_UP|LCD_NO_MOVE);/AC 递增,画面不?/*-功能:液晶字符显示的位置函数 参数:x-列 015;y-行 01;-*/void LCD_Pos(uchar x,uchar y)if(y=0)LCD_Write(LCD_COMMAND,0 x80|x);if(y=1)LCD_Write(LCD_COMMAND,0 x80|(x-0 x40);/将字符(ASIIC 码)输出到液晶显示 详见LCD1602.h 中的说明 void LCD_Prints(uchar x,uchar y,uchar*str)LCD_Pos(x,y);while(*str!=0

12、)LCD_Write(LCD_DATA,*str);str+;3.3 计数程序模块#includelcd1602.h#define uchar unsigned char#define uint unsigned int uchar out6;sbit STAR_KEY=P32;/定义键与单片机的连接引脚 sbit L0=P10;/定义SFR 中引脚的位 sbit L1=P11;sbit L2=P12;sbit L3=P13;sbit L4=P14;sbit L5=P15;sbit L6=P16;sbit L7=P17;sbit MOTOR=P30;uchar n2=1,0;void dela

13、yms(uint x)/延时子程序 uchar y;while(x-)for(y=0;y123;y+);uchar Keynum()/按键子程序1 uchar key=0;STAR_KEY=1;/置初值 if(STAR_KEY=0)delayms(10);if(STAR_KEY=0)n0=0;n1=1;/按下STAR 键则n0=0;n1=1return n1;/返回n 值 void xianshi(uint dispbuf)/显示子程序 out0=dispbuf/10000+0 x30;out1=(dispbuf%10000)/1000)+0 x30;out2=(dispbuf%1000)/1

14、00)+0 x30;out3=(dispbuf%100)/10)+0 x30;out4=dispbuf%10+0 x30;out5=0;LCD_Initial();/LCD 初始化 LCD_Prints(1,0,The Speed Is);/LCD 输出 LCD_Prints(10,1,n/min);LCD_Prints(4,1,out);uint qiuzhi()/求用拨码盘所置数的值的子程序 uchar a;uchar b;uchar c;uchar d;uchar e;uchar f;uchar g;uchar h;uint p=0;if(L0=1)a=1;else a=0;/将电平信号

15、变为数字的值 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;return p;/返回所求的P 值 void main(void)/主程序 uint q;IT0=1;/负跳变触发 EA=1;/开总允许中断

16、EX0=1;/开 INTO 中断 TMOD=0X05;/置 T0 为计数器 方式1 TL0=0;/置计数器初值 TH0=0;while(1)/无限循环 q=qiuzhi();/调用求值子程序求出所置的数 if(MOTOR=1)xianshi(q);else xianshi(TL0);Keynum();TR0=n1;/当电动机关闭时显示用薄码盘所置的数并停止计数,电机启动时则开始计数,并显示计数值 if(TL0=q)TR0=0;MOTOR=1;else Keynum();MOTOR=n0;/当计数值与所置数相同时关闭电机,停止计数,当计数值不等时则将电机启动与关闭交由按键控制,所以不存在计数值超

17、过置数值的情况 void Int0(void)interrupt 0 /中断服务程序,工作寄存器用0 组 TL0=0;TR0=1;/重置计数值,重新开始计数 4 仿真及调试 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17

18、P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51OFFON12345678161514131211109DSW1DIPSW_82 3 4 5 6 7 8 91RP110*865412U2OPTOCOUPLER-NPNR1100R22kR310kU1(P3.4/T0)R55kR410kRL112VQ5NPND11N4001VCC+12V+12vVCCVCC急停计数重启动电机计数值设定D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LRV11kVCC5 总论 整个设计通过了软件和硬件上的调试.参 考 文 献 1胡汉才.单片机原理及接口技术M.北京:清华大学出版社.1996.2张毅刚.MCS-51 单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,1997.致 谢 .

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

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁