超市存物箱模拟装置资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
超市存物箱模拟装置 PAGE 35 - 超市存物箱模拟装置 作者:汤伟 单位:南京信息职业技术学院 设计的任务与要求 利用单片机制作超市存物箱模拟装置,模拟的内容包括:用户存物,用户取物,满箱提示,管理员取物,管理员修改密码,存物时用户密码通过数码管输出,存物箱状态指示灯,自动开关箱,有效按键提示音,密码输入提示,密码正确提示,密码错误提示。 硬件电路设计及原理图 存物箱模拟装置的面板设计: 图(1) 面板设计 电路原理图如下: 图(2) 超市存物箱模拟装置原理图 如图(2)所示:P0.0~P0.7用于接4×4矩阵键盘;P1口作为四位数码管的数据端口,P3.0~P3.3分别作为四位数码管的位选;P2.0~P2.7作为存物箱是否存物的状态指示;P3.4接绿色的LED,提示“请输入密码”;P3.5接红色的LED,提示“密码错误”;P3.6接蜂鸣器作为按键提示音的输出。该模拟装置的输入量均来自4×4矩阵键盘,由程序对相应管脚进行查询并处理,运行结果通过其它管脚以不同的方式输出给用户。程序处理过程以下将详细介绍。 存物箱程序流程图及实施细则 1、主程序(START): 40H单元的8个二进制位对应8个存物箱的存物状态,若某位为0,则说明此位对应的存物箱已存物,反之则为空箱。当40H的8个二进制位都为1(即40H的内容为FF)时,此时8个存物箱都为空箱,程序跳过查询“取”键,按此键无提示音。 10H、11H两个单元为四位随机密码产生单元,10H每经过1次查询后内容增1,11H在当10H的第5位为1时内容增1,这样是为了增加密码产生的随机性。若没有按键请求,则两个单元记满重新再记,不断循环计数,直至查询到按键请求计数才停止。 2、管理员程序(ADMIN): 将立即数00H放入R0中作为管理员使用存物箱的确定,因为本装置的程序多处用到“键盘查询”(KEY)程序,如:管理员密码的输入,用户密码的输入,管理员密码的修改。“键盘查询”为公用的程序段,设有不同的条件转移,(R0)=#00H就是作为管理员密码输入的功能条件。P1口为四位数码管的数据输入口,#40H就是0100 0000,其中的1对应的是八段码的g段。当输入密码的第一位后,CLR P3.3,控制四位数码管最高位显示的位选(2号管脚)从P3.3得到一低电平信号(数码管为共阴),最高位显示“-”;输入密码的第二位后,同理,CLR P3.2,四位数码管的前两位显示“- -”,四位输入完毕,即显示“- - - -”。 CLR P3.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单元是位数判断的标准,此单元在开始键盘扫描之前的初始值为#00H,当第一次查到按键时,先将45H的内容增1,这样便知道输入的数应该放到第一位(最高位),作为管理员密码输入的第一位数。再次有按键被按下,程序跳至位数判断时,45H内容再增1,45H内容为#02H,输入的数应该放到第二位,这样重复直至增到4,确定输入数为四位密码的最后一位,此后45H清0,由于功能条件(R0)=#00H为管理员密码输入,程序将跳转到四位数字密码输入位数判断,将输入的四位数密码整合到43H和44H两个单元(若(R0)≠#00H,可判断输入的密码为用户取物密码,则输入的四位数密码整合到30H和31H两个单元,进行用户密码校验)。 43H 和44H分别与41H和42H进行比较,41H和42H存放的是真正管理员密码,若四个单元对应的内容不相同,则点亮红色的D2提示“密码错误”并返回主程序。若四个单元对应的内容相同,说明管理员密码输入正确,数码管持续0.5S显示“0000”,表示密码正确。确定管理员身份后,程序执行到管理员的功能选择(CHOOSE),进行“取物”、“修改管理员密码”和“退出管理”的选择 1)如有用户忘记密码,管理员可按下“取物”键,此时管理员取物功能条件为(

文档评论(0)

karin + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档