77范文网 - 专业文章范例文档资料分享平台

基于单片机的自动售货机设计(3)

来源:网络收集 时间:2018-11-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于单片机的自动售货机系统设计

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(方式1时,/EA将内部锁定为RESET;当加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。[3]3.2 投币及投币总数LCD显示系统3.2.1 投币系统

投币系统是自动售货设计当中比较重要的一块,涉及到货币识别系统,这里将不做进一步的研究。本课题设计主要是要实现自动售货机的投币总数显示、货物选择、出货以及找零功能。在本次设计中用P3.4上的一个按键来代替投币系统的电平输出。在投币系统中可以通过89C51内部的定时器来控制投币时间,在规定的时间范围内完成投币动作,否则投入的货币全部退出。由于本次设计主要是要体现从投币到操作最后到出货的过程,在设计中没有用到定时设置。3.2.2货币累加的实现

本次设计的货币累加是对判断P3.4系统根据投币的总数和相应的操作来实现输出。3.2.3 LCD显示

本次设计选用TC1602液晶显示屏,可以直接跟0000H-FFFFH),不管是否有内部程序存储器。注意加密FLASH编程期间,此引脚也用于施 对于识别货币器是如何设计、如何工作的,在

B,然后

51系列单片接口相连。液晶模块TC1602采用标准的16脚接口,其引脚

第 11 页 共 62 页

/EA端保持高电平时,此间内部程序存储器。在

上的按键上所按下的次数进行累加来实现的,并将累加的次数送到寄存器基于单片机的自动售货机系统设计

功能如下

第1脚:VSS为电源地,接GND。 第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼

影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令

或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:BLA背光电源正极(+5V)输入引脚。 第16脚:BLK背光电源负极,接GND。

TC1602液晶模块内带标准字库,内部的字符发生存储器(CGROM)已经存储了192个5×7点阵字符,32个5×10点阵字符。另外还有字符生成RAM(CGRAM)512字节,供用户自定义字符。如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 1602液晶模块内部的控制器共有11条控制指令

指令1:清显示,指令码01H,光标复位到地址00H位置

指令2:光标复位,光标返回到地址00H

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左 移S:屏幕上所有文字是否

左移或者右移。高电平表示有效,低电平则无效

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与

关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显

示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

第 12 页 共 62 页

基于单片机的自动售货机系统设计

指令7:字符发生器RAM地址设置

指令8:DDRAM地址设置

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块

不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据

指令11:读数据 [4] 1602液晶的读写时序如图所示: 读操作时序:

写操作时序:

第 13 页 共 62 页

基于单片机的自动售货机系统设计

投币总数LCD显示相关程序程序如下:

MONEY EQU 0040H ;定义投币显示存储单元

RS EQU P3.0 RW EQU P3.1 E EQU P3.2

MAIN: MOV MONEY,#01H ;赋予MONEY单元初值为1 START: ACALL DELAY ;调用延时程序 MOV P2,#01H ;写指令01H,清屏 LCALL ENABLE

MOV P2,#38H ;写指令38H,设定LCD为16*2显示,5*7点阵,8位数据接口

LCALL ENABLE

MOV P2,#0FH ;写指令0FH,显示ON,光标ON,闪烁ON LCALL ENABLE

MOV P2,#06H ;写指令06H,光标输入方式增量移位

第 14 页 共 62 页

基于单片机的自动售货机系统设计

LCALL ENABLE

MOV P2,#80H ;第一行起始字符地址 LCALL ENABLE

MOV DPTR,#TABLE ;显示字符表头地址 LCALL DISP ;显示第一行数据 RET ;返回 ENABLE: CLR RS ;写指令子程序 CLR RW CLR E LCALL DELAY SETB E RET

DISP: MOV R4,#6 ;准备显示一行6个字符 LOOP1: MOV A,00H ;投币数送A MOV R1,MONEY

L1: ADD A,#06H ;设置偏移量为6 DJNZ R1,L1

MOVC A,@A+DPTR ;查表取得要显示的数据 LCALL DISPF ;写入一个数据

INC DPTR ;数据表指针加1,准备取下一个数据 DJNZ R4,LOOP1 ;一行没有显示完就继续 JMP INSERT

DISPF: MOV P2,A ;写1字节数据到显示端口

SETB RS ;写数据时序(请参照1602LCD使用说明书)

第 15 页 共 62 页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的自动售货机设计(3)在线全文阅读。

基于单片机的自动售货机设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/297744.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: