- 23
- 0
- 约2.52万字
- 约 41页
- 2020-12-24 发布于天津
- 举报
超市存物箱模拟装置
作者:汤伟 单位:南京信息职业技术学院
一、 设计的任务与要求
利用单片机制作超市存物箱模拟装置,模拟的内容包括:用户 存物,用户取物,满箱提示,管理员取物,管理员修改密码,存物时 用户密码通过数码管输出,存物箱状态指示灯,自动开关箱,有效按 键提示音,密码输入提示,密码正确提示,密码错误提示。
二、 硬件电路设计及原理图
1、 存物箱模拟装置的面板设计:
?I8.8.S.8.
EJ回回□ □
EJ回回
□ □ 0
[耳 I FH I ^1
图(1)面板设计
2、 电路原理图如下:12 4 1 9 5 Hrr b c d e f % dp2 3 EPY 6 10 IHl- r -gR-P3.0 P3.1 P3,2 P3.3P3.4P3.5P3.6EA/VPPvccXTALEXTAL1 VSSP2-089 D
2、 电路原理图如下:
12 4 1 9 5 Hr
r b c d e f % dp
2 3 EPY 6 10 I
Hl
- r -
gR-
P3.0 P3.1 P3,2 P3.3
P3.4
P3.5
P3.6
EA/VPP
vcc
XTALE
XTAL1 VSSP2-0
8
9 D
22F
5
R]
2P
C1C2
1
1/
宅理d
L
■
取淌/
1 r
再/
9/
取/
1 L
P0.5
P0.6
89S52
P0.7
Rli ZZh
R12
0 12 3 4 o o o0 p F p p p c
VCp.pHpTplp-TP-rp 勺 T
P2. 7 P2.6 P2.5
P2. 4
P2. 3
P2.2
31
F.ir;
ZD
R14
图(2)超市存物箱模拟装置原理图
如图(2)所示:P0.0?P0.7用于接4X4矩阵键盘;P1 口作为 四位数码管的数据端口, P3.0?P3.3分别作为四位数码管的位选; P2.0?P2.7作为存物箱是否存物的状态指示;P3.4接绿色的LED 提示“请输入密码” ;P3.5接红色的LED提示“密码错误” ;P3.6 接蜂鸣器作为按键提示音的输出。该模拟装置的输入量均来自 4X 4
矩阵键盘,由程序对相应管脚进行查询并处理, 运行结果通过其它管 脚以不同的方式输出给用户。程序处理过程以下将详细介绍。
三、存物箱程序流程图及实施细则
40H单元的8个二进制位对应8个存物箱的存物状态,若某位 为0,则说明此位对应的存物箱已存物,反之则为空箱。当 40H的8
个二进制位都为1(即40H的内容为FF)时,此时8个存物箱都为空箱, 程序跳过查询“取”键,按此键无提示音。
10H 11H两个单元为四位随机密码产生单元,10H每经过1次 查询后内容增1,11H在当10H的第5位为1时内容增1,这样是为 了增加密码产生的随机性。若没有按键请求,则两个单元记满重新再 记,不断循环计数,直至查询到按键请求计数才停止。
2、管理员程序(ADMIN:
〈管理员程admin
将立即数00H放入R0中作为管理员使用存物箱的确定,因为本 装置的程序多处用到“键盘查询” (KEY程序,如:管理员密码的输 入,用户密码的输入,管理员密码的修改。 “键盘查询”为公用的程
序段,设有不同的条件转移,(RO) =#00H就是作为管理员密码输入 的功能条件。P1 口为四位数码管的数据输入口,#40H就是0100 0000, 其中的1对应的是八段码的g段。当输入密码的第一位后,CLR P3.3 ,
控制四位数码管最高位显示的位选(2号管脚)从P3.3得到一低电 平信号(数码管为共阴),最高位显示“-”;输入密码的第二位后, 同理,CLR P3.2,四位数码管的前两位显示“--”,四位输入完毕, 即显示“ ”。
CLRP3.4将P3.4管脚清0,绿色的LED点亮,提示“请输入密 码”。接下来就可以通过键盘查询(KEY来输入管理员密码了。
键盘查询程序开始之前 P0 口全为高电平,然后先将 P0.4管脚 清零,依次查询P0.3,P0.2,P0.1 (此行P0.0没有接按键),是否 也为低电平,没有的话将P0.4置为高电平,接下来再将P0.5管脚清 零,同样依次查询P0.3,P0.2,P0.1,P0.0是否也为低电平,假如 P0.1为低电平,则确定为“ 6”号键被按下,将P0.5和P0.1至为高 电平之后,程序将对此次按键进行相应的处理。
上面已经提到,键盘查询是公用的,(R0)=#00H为管理员密码 输入的功能条件,当查询到第一个数字按键按下时,将按键值放在 51H单元的高四位,51H的低四位为0000,按键值也放在52H单元的 低四位中,52H单元的高四位为0000,这样做主要是方便使用逻辑
“或”将四次按键的值装在两个单元中。45H单元是位数判断的标准, 此单元在开始键盘扫描之
原创力文档

文档评论(0)