传送带产品计数器的设计LCD显示Word下载.docx
- 文档编号:22133701
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:133.98KB
传送带产品计数器的设计LCD显示Word下载.docx
《传送带产品计数器的设计LCD显示Word下载.docx》由会员分享,可在线阅读,更多相关《传送带产品计数器的设计LCD显示Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
功能:
LCD1602驱动函数的声明
-----------------------------------------------------------*/
#ifndef_LCD1602_H_
#define_LCD1602_H_
#include<
reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
//接口定义
sbitLcdRs=P2^0;
sbitLcdRw=P2^1;
sbitLcdEn=P2^2;
sfrDBPort=0x80;
//P0口为LCD数据总线
LCD初始化函数
voidLCD_Initial();
LCD显示字符(ASIIC码)函数
参数:
x-列0~15;
y-行0~1;
str-要显示的字符串指针
voidLCD_Prints(ucharx,uchary,uchar*str);
#endif
lcd1602.c
函数功能:
LCD1602的驱动函数
原理:
采用普通IO口方式模拟LCD1602时序,未采用总线方式
REG52.H>
intrins.h>
//次头文件中定义有_nop_()函数
#include"
lcd1602.h"
内部等待函数
返回参数:
P0数据
ucharLCD_Wait(void)
{LcdRs=0;
LcdRw=1;
_nop_();
LcdEn=1;
//while(DBPort&
0x80);
/*在用Proteus仿真时,屏蔽此语句,否则会进入死循环,
实际硬件操作时打开此语句.*/
LcdEn=0;
returnDBPort;
}
写LCD命令/数据函数
style为写命令/数据,0-命令,1-数据;
input为写入的8位命令/数据
#defineLCD_COMMAND0//命令
#defineLCD_DATA1//数据
#defineLCD_CLEAR_SCREEN0x01//清屏
#defineLCD_HOMING0x02//光标返回原点
voidLCD_Write(bitstyle,ucharinput)
{LcdEn=0;
LcdRs=style;
LcdRw=0;
_nop_();
DBPort=input;
LCD_Wait();
设置LCD显示模式
DisplayMode见下面的定义
//显示模式定义
#defineLCD_SHOW0x04//显示开
#defineLCD_HIDE0x00//显示关
#defineLCD_CURSOR0x02//显示光标
#defineLCD_NO_CURSOR0x00//无光标
#defineLCD_FLASH0x01//光标闪动
#defineLCD_NO_FLASH0x00//光标不闪动
voidLCD_SetDisplay(ucharDisplayMode)
{LCD_Write(LCD_COMMAND,0x08|DisplayMode);
}
设置LCD输入模式
InputMode见下面的定义
#defineLCD_AC_UP0x02//地址计数器增加方式
#defineLCD_AC_DOWN0x00//此为缺省设置
#defineLCD_MOVE0x01//画面可平移
#defineLCD_NO_MOVE0x00//画面不可平移
voidLCD_SetInput(ucharInputMode)
{LCD_Write(LCD_COMMAND,0x04|InputMode);
//初始化LCD详见LCD1602.h中的说明
voidLCD_Initial()
LCD_Write(LCD_COMMAND,0x38);
//8位数据端口,2行显示,5*7点阵
//此句不能省
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);
//开启显示,无光标
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
//清屏
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);
//AC递增,画面不?
液晶字符显示的位置函数
voidLCD_Pos(ucharx,uchary)
{if(y==0)
LCD_Write(LCD_COMMAND,0x80|x);
if(y==1)
LCD_Write(LCD_COMMAND,0x80|(x-0x40));
//将字符(ASIIC码)输出到液晶显示详见LCD1602.h中的说明
voidLCD_Prints(ucharx,uchary,uchar*str)
{LCD_Pos(x,y);
while(*str!
='
\0'
){LCD_Write(LCD_DATA,*str);
str++;
}}
3.3计数程序模块
#include"
ucharout[6];
sbitSTAR_KEY=P3^2;
//定义键与单片机的连接引脚
sbitL0=P1^0;
//定义SFR中引脚的位
sbitL1=P1^1;
sbitL2=P1^2;
sbitL3=P1^3;
sbitL4=P1^4;
sbitL5=P1^5;
sbitL6=P1^6;
sbitL7=P1^7;
sbitMOTOR=P3^0;
ucharn[2]={1,0};
voiddelayms(uintx)//延时子程序
{uchary;
while(x--){for(y=0;
y<
123;
y++){;
ucharKeynum()//按键子程序1
{ucharkey=0;
STAR_KEY=1;
//置初值
if(STAR_KEY==0){delayms(10);
if(STAR_KEY==0)n[0]=0;
n[1]=1;
}//按下STAR键则n[0]=0;
n[1]=1returnn[1];
//返回n值}
voidxianshi(uintdispbuf)//显示子程序
{out[0]=dispbuf/10000+0x30;
out[1]=((dispbuf%10000)/1000)+0x30;
out[2]=((dispbuf%1000)/100)+0x30;
out[3]=((dispbuf%100)/10)+0x30;
out[4]=dispbuf%10+0x30;
out[5]='
;
LCD_Initial();
//LCD初始化
LCD_Prints(1,0,"
TheSpeedIs"
);
//LCD输出
LCD_Prints(10,1,"
n/min"
LCD_Prints(4,1,out);
uintqiuzhi()//求用拨码盘所置数的值的子程序
{uchara;
ucharb;
ucharc;
uchard;
uchare;
ucharf;
ucharg;
ucharh;
uintp=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(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;
returnp;
//返回所求的P值}
voidmain(void)//主程序
{uintq;
IT0=1;
//负跳变触发
EA=1;
//开总允许中断
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=n[1];
}//当电动机关闭时显示用薄码盘所置的数并停止计数,电机启动时则开始计数,并显示计数值
if(TL0==q){TR0=0;
MOTOR=1;
}else{Keynum();
MOTOR=n[0];
}}}
//当计数值与所置数相同时关闭电机,停止计数,当计数值不等时则将电机启动与关闭交由按键控制,所以不存在计数值超过置数值的情况voidInt0(void)interrupt0//中断服务程序,工作寄存器用0组
{TL0=0;
TR0=1;
}//重置计数值,重新开始计数
4仿真及调试
5总论
整个设计通过了软件和硬件上的调试.......................
参考文献
[1]胡汉才.单片机原理及接口技术[M].北京:
清华大学出版社.1996.
[2]张毅刚.MCS-51单片机应用设计[M].哈尔滨:
哈尔滨工业大学出版社,1997.
....................................................................
致谢
............................................................................
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传送带 产品 计数器 设计 LCD 显示
![提示](https://static.bdocx.com/images/bang_tan.gif)