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

2018-11-22 19:12

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

第 36 页 共 62 页

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

附录

本次设计的完整程序

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

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

************** 投币总数LCD显示程序 ************* 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,光标输入方式增量移位 LCALL ENABLE

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

MOV DPTR,#TABLE ;显示字符表头地址 LCALL DISP ;显示第一行数据 RET ;返回

第 37 页 共 62 页

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

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使用说明书) CLR RW CLR E LCALL DELAY SETB E RET

TABLE: DB \

第 38 页 共 62 页

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

DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \ DB \

**************** 投币口程序 *************** INSERT:MOV A,P3 ;投币口检测 CPL A

JBC ACC.4,S1 ;P3口有键按下转S1 LCALL KEY MOV A,R5

CJNE A,#0FFH,CHECK ;货物选择键盘有键按下转CHECK程序 AJMP INSERT

第 39 页 共 62 页

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

S1: LCALL D10MS ;延时消抖 MOV A,P3 CPL A JBC ACC.4,S2 S2: MOV R1,MONEY INC R1 MOV MONEY,R1 WAIT1: MOV A,P3 CPL A

JBC ACC.4,WAIT1 投币开关未松开继续等待,否则返回START AJMP START ;返回

**************** 键盘程序 ***************** KEY: MOV A,P1 ;读P1口 CPL A

JNZ KEY2 ;A不等零说明有键按下转KEY2 MOV R5,#0FFH RET

KEY2: LCALL D10MS ;延时消抖 MOV A,P1 CPL A JNZ KEY3 MOV R5,#0FFH RET

KEY3: JNB ACC.0,K1

第 40 页 共 62 页


基于单片机的自动售货机设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:农牧局长在2018年全市农业工作会议上的讲话

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: