密码箱论文

合集下载

智能行李箱的研究

智能行李箱的研究

智能行李箱的研究一、智能行李箱的发展历程智能行李箱的发展历程可以追溯至2015年,当时美国初创公司Bluesmart发布了一款名为“Bluesmart One”的智能行李箱。

这款智能行李箱内置了一系列智能设备,如GPS定位、数字锁等,可以通过手机App进行远程操作,并能够为用户提供一系列智能化的功能。

Bluesmart One的推出引发了全球范围内对智能行李箱的关注,各大旅行用品厂商纷纷加入到这一领域的研发与生产之中。

随着智能技术的不断革新和普及,智能行李箱的功能也在不断升级。

目前,市面上的智能行李箱已经具备了更加丰富多样的智能功能,如自动称重、自动收放拉杆、自动开合箱盖等,为人们出行带来了更加便捷和舒适的体验。

二、智能行李箱的智能功能1. 智能锁定智能行李箱的最基本功能之一就是智能锁定。

传统的行李箱需要使用配套的锁具进行锁定,而智能行李箱则可以通过手机App远程控制锁定和解锁,让用户在任何时候都能方便地管理行李箱的安全性。

2. GPS定位智能行李箱中内置了GPS定位装置,可以通过手机App随时随地对行李箱进行定位。

这对于旅行中丢失行李箱或者误取错拿的情况下找回行李箱非常有帮助。

3. 自动称重许多智能行李箱还具备了自动称重功能,可以通过内置的传感器准确测量行李箱的重量,让用户轻松避免了超重的尴尬情况。

这对于需要乘坐飞机的旅客来说尤为重要。

4. 防盗报警智能行李箱还可以通过内置的传感器和报警装置,发现行李箱的异常震动或移动情况并及时发送报警信息给用户。

这对于减少行李箱被盗或丢失的风险有很大的帮助。

5. 蓝牙连接智能行李箱通过内置的蓝牙设备与智能手机或其他智能设备进行连接,实现各种智能功能的操作和管理,让用户可以方便地管理行李箱。

三、市场需求和发展趋势未来,智能行李箱有望进一步发展智能功能,如语音控制、自动跟随功能、遥控导航等,让用户在出行中体验到更加便捷和高科技的旅行生活。

智能行李箱在智能化技术、轻量化材料等方面也有望得到更多突破和提升,为用户带来更加完美的出行体验。

密码箱原理

密码箱原理

密码箱原理密码箱是一种用于储存和保护个人密码和敏感信息的装置,它的原理是通过加密技术和安全算法,将用户的密码和信息存储在其中,并且只有经过授权的用户才能够访问和使用这些信息。

密码箱的原理主要包括加密算法、密钥管理和访问控制等方面。

首先,密码箱采用了高强度的加密算法来保护用户的密码和信息。

加密算法是一种数学算法,它可以将用户输入的明文信息转换成密文,以保护信息的安全性。

常见的加密算法包括DES、AES等,它们通过复杂的数学运算和密钥的参与,将用户的密码和信息进行加密处理,使得黑客和非授权用户无法轻易破解和获取其中的内容。

其次,密码箱还采用了严格的密钥管理机制来保护用户的密码和信息。

密钥是加密和解密的关键,它的安全性直接影响着密码箱的安全性。

密码箱通常会采用密钥派生函数来生成密钥,并且采用安全的密钥存储机制来保护密钥的安全性。

只有经过授权的用户才能够获取密钥,并且密钥的生成和管理过程都是在安全的环境下进行的,以确保密钥的安全性和不被破坏。

最后,密码箱还通过严格的访问控制机制来限制用户对密码和信息的访问权限。

只有经过授权的用户才能够使用密码箱,并且只有在通过严格的身份验证和授权过程后,才能够获取密码和信息的访问权限。

密码箱通常会采用多重身份验证、访问控制列表等技术来限制用户的访问权限,以确保只有合法的用户才能够访问和使用其中的内容。

综上所述,密码箱通过加密算法、密钥管理和访问控制等技术来保护用户的密码和信息安全。

它的原理是基于先进的加密技术和安全算法,以确保用户的密码和信息不被非法获取和使用。

密码箱在当今信息安全领域中扮演着重要的角色,它为用户提供了一种安全、便捷的方式来管理和保护个人密码和敏感信息。

行李箱密码锁

行李箱密码锁

行李箱密码锁
随着社会的发展,人们对安全的需求越来越高,特别是安全保护物品的要求也越来越高。

一种常见的保护物品的方法是使用行李箱密码锁。

近年来,行李箱密码锁开始出现在越来越多的地方,由于其安全性高,人们日益喜爱。

行李箱密码锁的设计创新,尤其是对密码的重视,让人们可以安全有效地保护行李。

行李箱密码锁的创新设计,使其成为了当今最安全的行李保护工具之一,可用于保护行李的有效性和安全性。

通常,行李箱密码锁都会采用3到6位数字的混合形式,可以随机设定密码,使用者可以根据自己的需要设定。

行李箱密码锁坚固耐用,且操作方便,而且可以提供一定的保护功能。

外形耐用,可以防止腐蚀及防水。

此外,行李箱密码锁也可以提供一定的保护,使用者可以把行李箱和行李物品固定在一起,以免受到损坏和劫持。

此外,行李箱密码锁的安全性也是很重要的。

行李箱密码锁的密码设置是经过复杂多样的处理流程,这样可以确保密码的安全性和有效性。

行李箱密码锁在开启时,还会有声音提示,可以帮助用户更好地控制使用者的安全性。

在安全需求不断提高的今天,行李箱密码锁能提供一定的保护功能,将社会的安全得到一定的保障。

行李箱密码锁的普及,可以帮助人们更好地保护行李安全,减少行李遗失的概率,更好地保护财产安全,为人们的旅途带来更多的安全性。

密码锁参考论文

密码锁参考论文
综上所述采用方案2
2.1.2 主控制器模块
方案1:
采用可编程逻辑器件CPLD作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑我们放弃了此方案。
1毕业设计基于单片机的密码锁设计姓名系别专业导师姓名职称完成时间目录摘要1abstract21绪论311课题背景312课题的目的和意义313电子密码锁发展趋势414本设计完成的工作52总体方案设计621硬件设计8211电源模块8212主控制器模块83硬件实现及单元电路设计931主控制模块932单片机的时钟电路与复位电路设计1033单片机管脚说明1134键盘电路设计1335液晶显示电路设计1436存储芯片电路设计1537报警电路1638密码锁电路174系统软件设计方案1841主程序流图
2.1 硬件设计
2.1.1 电源模块
由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。
方案1:
采用5V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在使用极为不方便。因此我们放弃了此方案。
方案2:
采用3节1.5 V干电池共4.5V做电源,经过7805的电压变换后为单片机,传感器供电。经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。
密码锁主要由矩阵键盘、单片机、外部硬件等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈,单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给单片机的芯片处理,同时将接收来自无限循环的密码识别程序的报警信息也发送给智能报警器,从而使整个密码锁正常运行。

基于单片机电子密码锁设计论文

基于单片机电子密码锁设计论文

第1节引言1.1 电子密码锁概述随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。

而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。

传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。

另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。

随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。

从而使密码锁具有很高的安全性、可靠性。

目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。

但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。

很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。

电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。

设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。

1.2 本设计主要任务(1)共8位密码,每位的取值范围为1~8。

(2)用户可以自行设定和修改密码。

(3)按每个密码键时都有声、光提示。

(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。

(5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多次试探密码。

(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。

(7)密码键盘上只允许有8个密码按键和1个发光管。

智能行李箱的研究

智能行李箱的研究

智能行李箱的研究智能行李箱是一种基于智能化技术,可以追踪、锁定和控制行李箱的设备。

这种行李箱融合了物联网技术、智能控制技术和传感器技术等多种创新技术,能够实现远程监控和控制,以及提供多样化的服务,可谓是智慧旅行的新奇应用。

智能行李箱的特点之一是便利性,它可以实现自动化搬运、轻松推拉,并且具有大容量、防水、抗磨损等功能,满足不同旅行需求。

同时,智能行李箱还具有多项实用技术,例如可远程锁定、防盗、防丢、防雨、防震等功能,让旅行更加安心。

智能行李箱中的传感器技术可以感知行李箱的状态和位置,并将这些信息发送到服务器,再通过智能手机进行远程操控。

旅客在外出旅行时,可以利用智能手机APP的功能远程监控行李箱的位置、状态、锁定、解锁等信息。

若有异常情况,如行李箱被非法打开、超重或走失,则可通过手机APP让行李箱发出报警信号,提醒旅客注意安全。

Bags are increasingly being incorporated with technology to make the experience even better. Smart suitcases are the way forward and they come with many different features including GPS tracking, built in scales to avoid baggage fees and locks that can be opened remotely in case of theft. They also come with in-built chargers that can help travellers keep their gadgets charged too.智能行李箱还可以拥有Wi-Fi热点、USB充电器、蓝牙音响、指纹识别等功能,满足旅客在旅途中的多种使用需求。

例如,行李箱中的USB接口可有效解决旅客的充电需求,蓝牙音响让旅客在旅途中可以随时听取高清音乐,而指纹识别则防止行李箱的钥匙丢失或被遗忘。

基于新型保险箱的研究与设计

基于新型保险箱的研究与设计











竣 廑 一 I
基 于新 型 保 险 箱 的研 究 与设计
德 州学院 张书泉
【 摘要 】当今 市场 上销售的保 险箱还存 在很 多弊端 ,存在着 安全 性能低,导致被 盗案件 时有 发生,给人们存放 贵重物品存在许 多顾虑 ,改进了传 统保 险箱在其 内部增加手 机短信锁,震动报警技术,和GP S 定位 系统进一步对保险箱进行控制 ,增加 了开锁的环节 ,增强 了安全性能 ,这种信息化的控制模式有利于促进锁业研究的发展。 【 关键词 】短信锁 ;震 动报警 ;G P S 定位
参考文献 [ 1 ] 张履. 室内G P S 电子锁控室用保险箱设计 [ I 】 l 现代科 学
仪器.
【 2 1 张素文, 许诗 诗, 危文豪I 音 纹 电子锁 的设计 与实现 Ⅱ 1 , 武汉理工大学学报( 信息与管理工程版) , 2 0 1 3 ( 0 1 ) . 【 3 】 李志 勇, 叶柏 龙. 基于 文件过滤驱 动的文档透 明加解 密系统原理Ⅱ ] . 东莞理工学院学报, 2 0 1 0 ( 0 3 ) . 【 4 1 倪 凯斌, 姚 国祥, 官金龙 安全增 强型虚拟磁 盘加密系 统技术Ⅱ ] . 计 算机应用, 2 0 0 9 ( 1 1 ) . [ 5 ] 沈玮, 王雷, 陈佳捷 基于文件 系统过滤驱 动的加 密系 统设计 与实现U ] . 计 算机 工程, 2 0 0 9 ( 2 0 ) . 【 6 】 周 春 雷, 刘 志永. 基 于虚 拟磁盘的移 动存储介质 管理 系统设计与实现Ⅱ ] . 电力信 息化, 2 0 0 9 ( 0 6 ) . 【 7 ] 胡宏 银 , 姚峰, 何 成 万 一 种 基 于文 件 过 滤 驱 动 的 Wi n d o w s 文件 安全保 护方 案U 】 计算机应用, 2 0 0 9 ( 0 1 )

保险箱数字密码锁控制电路的设计

保险箱数字密码锁控制电路的设计

二、整体思路
二、局部分析
1、555定时器构成的脉冲电路 利用555定时器构成多谐振荡器来产生的 (a) 秒脉冲电路 (b) 高次脉冲电路
2、密码保存及读取电路 利用核心芯片74LS373和8输入开关组成的
3、密码比较电路 利用两个四位数值比较器74LS85级联的方 法
4、密码的修改与复位电路 人性化考虑后添加的电路
感谢各位评委老 师、恳请评委 老师批评指正!
5、状态显示及警报电路 状态显示状态由三个状态LED灯显示 报警电路也很简单
6、时间控制电路 采用典型的常用脉冲计数器74LS160与 74LS161进行计时
7、错误次数控制电路 为了实现电路的错误计数功能,计数到四 次后送出锁定信号
8、锁定计时电路 电路锁定条件(超时或超次)达到后,整 体电路被锁定电路锁死。
保险箱数字密码锁 控制电路的设计
答辩人: 专 业: 导 师:
一 二 三 四
研究背景和意义 整体思路和局部分析
不足与待改进
结论
一、研究背景 在日常生 活和现代办公 中,安全成为 现代人最关心 的问题之一。 一些重要物件 多以加锁的办 法来解决。
一、研究意义
电子密码锁利用了数字逻辑电路,实现对 锁的电子控制,突破了传统的机械锁的 单一性、保密性低、易撬性的缺点,数 字电子密码锁具有保密性高、使用灵活 性好、安全系数高的优点。
密码位数有限,数值只能是0/1两位,密码 输入为并行输入,不存在密码的输入顺 序问题,还有很重要的一点,对于本电 路来说没有设置应急电源,改进方法见 下图。
三、不足与,目前投入大批生产的都 是由单片机为核心的保险箱, 因为单片机结构简单,适宜大 批量生产。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密码箱设计论文一、摘要本设计运用了ATMEL公司的AT89S52芯片系统,将微处理器、总线、显示屏、蜂鸣器、步进电机、矩阵键盘、存储器和I/O口等硬件集中一块电路板上,通过读取键盘输入的数据(密码)并储存到ATMEL912 24C02存储器中,然后判断之后键盘输入的数据与已存储的数据是否相同来决定打开密码箱或锁键盘或报警。

在keil4软件中编程,系统可实现6位密码的处理,并通过控制步进电机控制密码箱门的电子锁。

利用单片机系统制作的密码箱安全性能更高,更易操作且体积小。

二、工作原理:密码箱将微处理器、总线、外设、存储器和I/O接口等硬件设备集中在一片电路板上,创建一个可编程芯片系统,完成以下四方面功能:1、控制键盘、显示器及报警器;2、保存输入的数据(密码),保证断电后数据不会丢失;密码可以是6位;3、实现数字逻辑判断;4、输出控制的电子锁的电压。

其电路图如下:图1 电路原理图图2 电路PCB图三、简要介绍本设计通过对单片机软件编程实现对外设的控制及操作,提高系统的可靠性和稳定性。

且把键盘输入的数据储存到24C02存储器,保证断电后数据的完整保存,再通过逻辑判断再次输入的数据(密码)是否正确决定操作,正确则I/O 口输出高电平解开电子锁,密码箱可打开;不正确次数到达一定量时先锁键盘,键盘解锁后输入依然不正确则长锁键盘且报警器发出报警声。

四、系统总框图如下:图3 系统总框图五、硬件的实现原理连接好电路,上电烧制程序,接通电源,显示屏显示“Welcome to use”,按下开始按键则可从键盘输入密码并显示“Enter please:”。

输入密码,密码正确显示屏会显示“Open the door!”,并且步进电机转动将门打开;关闭时,按下关闭按键即可,同时显示“Close the door!”。

如果所输入的密码不正确,,系统会锁住键盘一段时间(这里设3秒),并且蜂鸣器报警三下。

其中,输入完密码时须按确认键确认;显示屏会同步显示输入状态。

六、软件设计图4 软件流程图七、主要元器件清单八、系统测试把程序下载到AT89S52芯片上,安装好全部的硬件及外围,在正常温度和湿度的环境下,锁上密码箱门,上电,显示屏显示Welcome to use,从键盘输入6位密码并按确认键,锁存密码。

一、开锁时,根据显示屏提示输入6位密码,①输入密码正确时,显示屏显示Open the door!,密码箱门可以打开;②输入密码不正确,键盘被锁2s,按键盘按键没有响应,同时报警器发出报警声。

九、误差分析软件程序中只用了延迟程序,没有使用定时器,所以定时时间准确性不高;十、小结本设计利用单片机技术与外部存储器及键盘接口技术,开发设计出高性能的密码保护系统,结合相关的外围硬件电路和电子锁,提高密码箱的易操作性、稳定性和安全性。

本设计产品体积小,功耗低,稳定性强,安全性能高,利于集成化生产。

#include<reg51.h>#define uint unsigned int#define uchar unsigned char#define KEY P1#define No_key 20#define lcddata P0sbit lcden=P2^2;sbit lcdrs=P2^0;sbit lcdrw=P2^1;sbit light=P2^3;sbit light1=P2^4;sbit BEEP= P3^6;uchar j,z;uchar aa;uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //反转编码uchar code table[] ="Welcome to use!";uchar code table1[]="Open the door! ";uchar code table2[]="Enter Please: ";uchar code table3[]="Close the door!";uchar code table4[]="Wrong password!";uchar code key_table[16]={1,2,3,10,4,5,6,11,7,8,9,12,0,13,14,15};uchar Password[]={1,2,3,4,5,6}; //设置的初始密码uchar save[15];uchar conflag; //确认标志uchar lockflag; //键盘锁定标志uchar startflag; //开始标志uchar open; //门打开标志位uchar begain; //开始标志void delay1(uint t);void delay(uint z);void wright_com(uchar com); //写命令函数void wright_data(uchar date); //写数据函数void init(); //初始化函数void display_open(); //显示open the doorvoid display_close(); //显示close the doorvoid display_wrong();void delete(); //删除输入的最后一个数uchar keyscan(); //带返回值的键盘扫描程序void enter_code(uchar t); //void confirm(); //确认密码对不对,把输入的数据与密码逐一对比void succeed_an(); //密码正确时的响应void fail_an(); //密码失败时的响应void lockkey(); //锁键盘3秒void alarm(); //发出警报声void reset(); //复位函数void display_enter(); //显示输入void motor_ffw();void motor_rev();void main(void){uchar temp;init();while(1){begain=0;if(lockflag){temp=keyscan(); //按键期间也要进行键盘扫描if(temp!=No_key) //重新计时三秒{aa=0; //重新在定时器中计数}}else{temp=keyscan(); //反复扫描输入,等待随时输入if(temp!=No_key) //有按键按下才能进行下一步{if(temp==10){reset();startflag=1; //开始标志位}if(startflag){enter_code(temp); //每扫描一次键盘就要进行一次处理保存输入的数值if(temp==13&&open==1) //按下确认键进行密码确认{confirm(); //进行确认判断if(conflag){succeed_an(); //密码正确作出相应的反应open=0;z=1;}else{fail_an(); //密码错误作出相应的反应}}if(temp==14){delete();}if(temp==15&&z==1){uchar r,N=10;open=1;display_close();for(r=0;r<N;r++){motor_rev(); //电机反转}}}}}if(temp==11&&begain==0){begain=1;break;}}}void motor_rev() //电机反转函数{uchar i;uint j;z=0;for (j=0; j<8; j++) //转1×n圈{for (i=0; i<8; i++) //一个周期转45度{P3 = REV[i]; //取数据delay1(2); //调节转速}}}void motor_ffw() //电机转动函数{uchar i;uint j;for (j=0; j<8; j++) //转1*n圈{for (i=0; i<8; i++) //一个周期转45度{P3 = FFW[i]; //取数据delay1(2); //调节转速}}}void display_enter() //显示enter{uchar num;wright_com(0x80);for(num=0;num<15;num++){wright_data(table2[num]);}}void display_close() //显示close{uchar num;wright_com(0x80);for(num=0;num<15;num++){wright_data(table3[num]);}}void display_open() //显示open{uchar num;wright_com(0x80);for(num=0;num<15;num++){wright_data(table1[num]);}}void display_wrong() //显示wrong{uchar num;wright_com(0x80);for(num=0;num<15;num++){wright_data(table4[num]);}}void delete() //删除最后一个{wright_com(0x80+0x40+j-1); //确定删除对象wright_data(' '); //显示空格即为删除save[--j]=0; //删除后数据清零wright_com(0x80+0x40+j); //为下次输入数据时写好位置}void reset() //复位函数{uchar num;display_enter();wright_com(0x80+0x40); //擦除屏幕上的显示for(num=0;num<15;num++){save[num]=0; //对输入的数值进行清零wright_data(' ');}wright_com(0x80+0x40);lockflag=0;conflag=0;j=0;}void succeed_an() //输入密码正确进行响应的函数{uchar r,N=10;light=0;display_open();for(r=0;r<N;r++){motor_ffw(); //电机正转}delay(1000);light=1;}void fail_an() //输入密码错误进行响应的函数{uchar j,i=0;while(1){light1=0;display_wrong();for(j=3000;j>0;j--) //蜂鸣器响大约500MS{BEEP = ~BEEP;delay(1); //延时500US 发出大约1KHZ频率的响声}BEEP=1; //蜂鸣器不响delay(500);light1=1;i++;if(i==3){break;}}lockkey();}void lockkey() //键盘锁定3秒{lockflag=1;}void enter_code(uchar t) //输入密码并在屏幕上显示星号{if(t>=0&&t<10){if(j==0){wright_com(0x80+0x40);wright_data('*');}else{wright_data('*');}save[j++]=t;}}void confirm() //校对密码以确定是否正确函数{uchar k;for(k=0;k<6;k++){if(Password[k]!=save[k]){break;}}if(k==6){conflag=1;}}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(lockflag){aa++;light1=0;if(aa>=60){aa=0;light1=1;lockflag=0;}}}void init() //初始化{uchar num;open=1;TMOD=1;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1;TR0=1;lcdrw=0;lcden=0;wright_com(0x38);wright_com(0x0c);wright_com(0x01);wright_com(0x80);for(num=0;num<15;num++){wright_data(table[num]);delay(1);}}void wright_com(uchar com) //1602写入指令{lcdrs=0;lcddata=com;delay(1);lcden=1;delay(1);lcden=0;}void wright_data(uchar date) //1602写入数据{lcdrs=1;lcddata=date;delay(1);lcden=1;delay(1);lcden=0;}void delay1(uint t){uint k;while(t--){for(k=0; k<125; k++){ }}}void delay(uint z){uint y;for(;z>0;z--)for(y=110;y>0;y--);}uchar keyscan() //4*4按键扫描函数{uchar temp,num=No_key;//第一行KEY=0xfe;temp=KEY;temp=temp&0xf0; //读出高四位while(temp!=0xf0){delay(5);temp=KEY;temp=temp&0xf0;while(temp!=0xf0){temp=KEY;switch(temp){case 0xee:num=1;break;case 0xde:num=2;break;case 0xbe:num=3;break;case 0x7e:num=10;break;}while(temp!=0xf0) //等待松手{temp=KEY;temp=temp&0xf0;}}}//第二行KEY=0xfd;temp=KEY;temp=temp&0xf0; //读出高四位while(temp!=0xf0){delay(5);temp=KEY;temp=temp&0xf0;while(temp!=0xf0){temp=KEY;switch(temp){case 0xed:num=4;break;case 0xdd:num=5;break;case 0xbd:num=6;break;case 0x7d:num=11;break;}while(temp!=0xf0) //等待松手{temp=KEY;temp=temp&0xf0;}}}//第三行KEY=0xfb;temp=KEY;temp=temp&0xf0; //读出高四位while(temp!=0xf0){delay(5);temp=KEY;temp=temp&0xf0;while(temp!=0xf0){temp=KEY;switch(temp){case 0xeb:num=7;break;case 0xdb:num=8;break;case 0xbb:num=9;break;case 0x7b:num=12;break;}while(temp!=0xf0) //等待松手{temp=KEY;temp=temp&0xf0;}}}//第四行KEY=0xf7;temp=KEY;temp=temp&0xf0; //读出高四位while(temp!=0xf0){delay(5);temp=KEY;temp=temp&0xf0;while(temp!=0xf0){temp=KEY;switch(temp){case 0xe7:num=0;break;case 0xd7:num=13;break;case 0xb7:num=14;break;case 0x77:num=15;break;}while(temp!=0xf0) //等待松手{temp=KEY;temp=temp&0xf0;}}}return num;}。

相关文档
最新文档