基于单片机的自动售货机(7)

2020-07-27 11:16

第 21 页

图3.5找钱及显示功能驱动程序流程图

由找钱系统1图(图见附录)我们可以看到该芯片8255A的CS与8751的P2.6相连,A0、A1分别与74LS373的3Q、4Q相连。

当的3Q、4Q输出不同组合时,则控制选择了8255A的PA、PB、PC口,当取00时对应PA口输入输出,当取01时对应PB口输入输出,当取10时对应PC口输入输出;由于也受到P2.6的控制,只有当P2.6输出为0时,才能片选到该芯片8255A。

最后我们可以计算得出PA、PB、PC及控制口对应的地址分别为BFF3H、BFF7H、BFFBH、和BFFFH。

3.5出错报警系统流程图

第 22 页

图3.6报警功能驱动程序流程图

由找钱系统1图(图见附录)我们可以看到该芯片8255A的CS与8751的P2.6相连,A0、A1分别与74LS373的3Q、4Q相连。这个已经在上一章中已经说过了,在这里就不再画了。

当的3Q、4Q输出不同组合时,则控制选择了8255A的PA、PB、PC口,当取10时对应PC口输入输出;由于也受到P2.6的控制,只有当P2.6输出为0时,才能片选到该芯片8255A。

最后我们可以计算得出PA、PB、PC及控制口对应的地址分别为BFF3H、BFF7H、BFFBH、和BFFFH。

第 23 页

第四章.系统软、硬件设计实现

4.1驱动程序

由于时间关系,本次毕业设计的仿真结果就不再这里做详细的介绍了,现列出各软件的驱动程序如下:

4.1.1实现有效投币定时30秒以及累加计数程序:

ORG

1000H MONEY DATA 2000H MOV IE, #8AH MOV TMOD,#04H 作方式0

MOV TH0,#00H MOV TL0,#00H MOV TH1,#9EH MOV TL1,#58H SETB TR0 SETB TR1

;启动计数器 ;启动定时器

;置计数初值

;置计数初值

;设置T1为定时工作方式0,T0为计数工

MOV R0,#601

LOOP1:

DJNZ R0,T1_END MOV A,P3 JBC

LP1:

ACC.5,LP1

TF1,NEXT

;查询计数溢出

;循环600次,实现30秒计时

JBC

SJMP LP1

NEXT:

MOV TH1,#9EH MOV TL1,#58H JMP

T1_END:

LOOP1

;重新设置计数初值

MOV R1,TL0

;将投入的货币累加数存入MONEY

MOV MONEY,R1

第 24 页

CLR A

MOV TL0,A MOV TH0,A RET

4.1.2货物选择系统的驱动程序 VULE EQU

40H

MOV A,MONEY MOV B,A SJMP KEY

KEY:

MOV R2,#0FEH

P1,#0F0H

;设置键码寄存器 ;设置初始扫描码 ;全扫描行线

ANL

MOV A, P1 CPL A ;取反

ANL

JZ

A,#0F0H

;屏蔽回扫值低4位

;无键闭合,返回

KEY3

LCALL D10MS ;延时10ms去抖动 MOV R3,#04H ;设置扫描行数 ORL P1,#0FH4 ;位描行线全置高 KEY1: MOV P1,R2 ;逐行扫描键盘

MOV A,P1 ;读入状态值 CPL A ;取反 ANL

A,#0F0H ;屏蔽状态低4位

;有键闭合,转键处理

JNZ KEY2

MOV A,R1 ;无键闭合,继续扫描下一个按键 RL A MOV R2,A

DJNZ R3,KEY1 ;逐行扫描未完成,继续 LJMP KEY3 ;本轮扫描无键闭合,返回

;键处理

;左移扫描码,指向下一行扫描线

KEY2: MOV A,P1

第 25 页

ORL A,#0FH ANL CPL

A,R2

A

;扫描码与状态值拼装成特征字节

;取反,特征字节变换成键位码 ;保存键位码

MOV VULE,A

LCALL KEYPCS ;用查表法查找键码

WAIT: ANL P1,#0F0H ;判断键释放否? MOV A,P1 ANL A,#0F0H CPL JNZ RET

KET3: MOV VULE,#0FFH RET 查找键码子程序如下: KEYPCS: MOV R4,#10H MOV

;查找键码程序,社子按键码(16个按键)

;清除键码计数器

;无键闭合,置无效码

A WAIT

R4,#00H

MOV DPTR,#KEYTAB ;设置键码表首址 KEYP1: CLR A

MOVC A,@A+DPTR CJNE

MOV

;查表

A,VULE,KEYP2;未找到,转到下一个 VULE,R5

;找到键位码,键码装入键码寄存器VULE

MOV

RET KEYP2: INC R5

;键码计数器加1

;键码表地址加1 ;未查完16个按键,继续 ;无键闭合,置无效码

INC DPTR

DJNZ R4,KEYP1

MOV VULE,#0FFH RET KEYTAB

: DB 11H ;键码 = 00H 对应键‘0’


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

下一篇:2019-2020学年七年级生物上册 绿色植物参与生物圈的水循环导学案

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

马上注册会员

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