毕业设计(论文)-智能数字随机键盘的设计.doc

上传人:西安人 文档编号:3956232 上传时间:2019-10-11 格式:DOC 页数:35 大小:9.18MB
返回 下载 相关 举报
毕业设计(论文)-智能数字随机键盘的设计.doc_第1页
第1页 / 共35页
毕业设计(论文)-智能数字随机键盘的设计.doc_第2页
第2页 / 共35页
毕业设计(论文)-智能数字随机键盘的设计.doc_第3页
第3页 / 共35页
毕业设计(论文)-智能数字随机键盘的设计.doc_第4页
第4页 / 共35页
毕业设计(论文)-智能数字随机键盘的设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《毕业设计(论文)-智能数字随机键盘的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-智能数字随机键盘的设计.doc(35页珍藏版)》请在三一文库上搜索。

1、福 建 师 范 大 学 应 用 科 技 学 院学 生 论 文论文题目: 智能数字随机键盘 指导教师: * 学 号: * 姓 名: * 年 级: 2010级 专 业: 电子信息工程 二0 一二 年 二 月二十一 日智能数字随机键盘的设计应用科技学院 电子信息工程1206020100* * 指导教师 *【摘 要】针对传统密码键盘的安全性差的缺点, 在传统密码键盘的基础上, 设计了一种乱序密码输入键盘, 增加了新的功能和特性, 一方面在键盘数字按键上增加了数码管来显示0 至9 十个数字, 且设计了随机数产生软件实现了随机变位, 另一方面在按键上面贴一层特殊的透光材料, 使视线具有一定的视角限制, 在

2、一定角度之外的人不能看到键盘上的数字。即使他人看到用户所按的键位, 由于密码输入完毕后, 键位又会重新打乱顺序, 因此用户可以安全放心地在键盘前输入密码,不必担心别人通过拍摄或观察人的手型等方法来获取密码, 从而大大提高了密码输入的安全性, 杜绝了金融领域相关的犯罪现象。【关键词】密码键盘;乱序;随机数目 录1 前言41.1 数字随机键盘的来源41.2 数字随机键盘的意义41.3 单片机概述42 数字随机键盘总体设计说明52.1 总体开发计划52.1.1基本功能52.1.2 扩展功能52.2 总体设计方案52.2.1 控制芯片的选择52.2.2 键盘的选择62.2.3 显示模块的选择62.2.

3、4 报警检测模块的选择63 硬件设计说明73.1 硬件总体设计方案73.1.1硬件功能模块划分73.1.2 硬件设计目标73.2 硬件单元设计73.2.1 主控电路73.2.2 显示电路83.2.3 HC-SR04超声波电路93.2.4 键盘电路113.2.5 报警电路114 软件设计说明124.1 软件设计总体方案124.1.1 软件设计目标124.1.2 软件功能模块划分124.2 软件设计134.2.1 主函数的程序设计134.2.2 系统初始化的程序设计144.2.3 计算测量距离并在LCD1602上显示的程序设计144.2.4 键盘扫描的程序设计144.2.5 键盘值随机乱序的的程序

4、设计155 系统调试165.1 硬件调试165.1.1 显示电路调试165.1.2 键盘与报警电路调试165.1.3 HC-SR04超声波测距电路调试165.2 软件调试165.3 软硬件联合调试196 总结22参考文献22源程序代码24附件331 前言1.1 数字随机键盘的来源作为银行等金融场所必不可少的一种输入设备,必须具备高度可靠、安全、保密的性能。现阶段, 大部分的金融系统中使用的是传统的输入键盘。这种键盘键的键盘值固定, 保密性和安全性差, 容易被犯罪分子通过远距离拍摄或在一侧观察记住用户的输入键位位置, 从而很容易就推算出用户的账户密码, 给用户造成极大的损失, 也给金融系统留下了

5、极大的安全隐患。为了弥补密码键盘这方面的缺陷, 故设计了一种新型安全的乱序键盘来取代传统的定位密码键盘。11.2 数字随机键盘的意义ATM 机取钱的最大的隐患就是密码被不法分子记住,给我们的财产带来安全隐患,不法分子记住密码的方法往往不是看到提款人按下的数字,而是根据提款人按下的按键在键盘上的位置来获取提款人的密码。基于这种现象,我们提出了数字随机键盘来保障广大用户的财产安全。1.3 单片机概述单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调

6、制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。22 数字随机键盘总体设计说明2.1 总体开发计划2.1.1基本功能针对传统密码键盘的安全性差的缺点, 在传统密码键盘的基础上, 设计了一种乱序密码输入键盘, 每次使用键盘输入密码时,0-9的键盘值,随机对应键盘10个按键位置,以实现密码保护功能。2.1.2 扩展功能当你输入密码时,如果背后1米内有人,系统做出相应的报警提示,以防密码被不法分子偷窥,以此实现密码的第二重保护功能。2.2 总体设计方案2.2.1 控制芯片的选择控制芯片采用AT8S52单片机。AT89S52是一个低电压,高性能CMOS 8位

7、单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89S52单片机在电子行业中有着广泛的应用。3AT89S52为8 位通用微处理器,采用工业标PDIP封装的AT89C52引脚图准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接

8、收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外部可接033MHz的晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3是AT89S52单片机与外界联系的4个8位双向并行I/O端口。P0口为一个8位漏级开路双向I/O口,能够用于外部程序数据存储器,它可以被定义为数据/地址的低8位。P1口是一个准双向并行口,主要作用为通用I/O口。P2口石一个准双向的8位并行端口,既可以作为通用I/O口使用,也可以作为高8位地址线使用。P3口是一

9、个多功能的准双向8位并行口,它的每一位既可以作为通用I/O口使用,又都具有第二输出功能。如图2-2-1所示。图2-2-1 AT89S52管脚图2.2.2 键盘的选择方案一:独立式键盘独立式按键电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O口线。在按键数量较多时,I/O口的率用来不高,但程序的编写简单。适用于所需按键较少的场合,方案二:矩阵式键盘电路连接复杂,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。但是提高了I/O口的利用率,适用于所需要按键较多得场合。因为本系统的设计需要12个按键,为了减少I/O口的使用,故采用方案二。2.2.3 显示模块的选择方案一:数码管

10、显示七段LED数码管内部由7个条形发关二极管和一个圆形发光二极管组成的“字段”,可用于显示数字09和部分简单字符。方案二:液晶显示液晶显示器LCD(Liquid Crystal Display)是一种低功耗的显示器,它是一种专门用于显示字母、数字、符号等点阵式LCD。其有显示质量高、数字接口、功耗低、体积小等优点。因为数码管只能显示数字和简单的字母,LCD可以显示字符,图形等,并能更形象的体现出字符与图像。故本系统采用方案二。2.2.4 报警检测模块的选择方案一:红外检测红外线是不可见光,是电磁波的一种形式,红外发光源发射红外脉冲光波,同时启动计数器开始计数,红外光遇到待测目标物体产生回波,并

11、由接收系统接收,从发射到接收的时间为T,在空气中得传播的速度为V,就可以算出距离D=VT/2。但是它所能检测到障碍物的距离较短。方案二:超声波检测超声波测距是借助于超声脉冲回波渡越时间法来实现的。设超声波脉冲由传感器发出到接收所经历的时间为 t,超声波在空气中的传播速度为 c,则从传感器到目标物体的距离D可用公式D = ct /2求出。超声波测距和红外测距相比,所测到的距离会更精确,所能检测到的距离也相对较长。 因为本系统的设计所要检测的是当在ATM机前输入密码时,如果1米内后有人,系统做出相应的报警,由于红外能检测到的距离较短,所以采用方案二。3 硬件设计说明3.1 硬件总体设计方案3.1.

12、1硬件功能模块划分 AT89S52显示模块键盘模块超声波测距模块报警模块图3-1-1 硬件模块图(1)AT89S52:实现对整个系统的控制。(2)超声波测距模块:检测在ATM机前输入密码时,距离ATM机后1米以内处是否有人,以防密码被不法分子偷窥。(3)键盘模块:用作密码的输入和密码的重新输入,以及每次输入密码前110十个按键值得随机产生。(4)显示模块:显示出超声波测距所测到的距离和所输入的密码,以及随机产生按键值所对应按键的位置。(5)报警模块:当超声波测距米快所测到的距离小于等于1米时,蜂鸣器发出“滴、滴”声,以及LED灯闪烁,以此作为报警的提示身后1米以内有人,谨防密码被偷窥。3.1.

13、2 硬件设计目标(1)本系统采用AT89S52单片机作为控制核心,P0端口与矩阵式的行和列相接,第1个按键到第10个按键的键盘值是数字09随机抽取的,第11个按键的功能是密码重新输入,第12个按键的功能是每次输入密码前按键值的随机产生。(2) 单片机P2.3接的是HC-SR04超声波测距模块的回响信号输出端ECHO,P2.4接的是HC-SR04超声波测距模块的触发控制信号的输入端。蜂鸣器经过三极管9012的驱动后接到单片机的P3.7,发光二极管经过限流电子接到P2.5上,当超声波测到的距离小于等于1米时,利用单片机的控制使蜂蜜器报警,LED闪烁。(3)LCD1602的8位数据线DB0DB7接到

14、单片的P0口,数据和指令选择控制端RS接到单片机的P2.0,读写控制端R/W接到单片的P2.1,数据读写操作控制位E接到单片的P2.2。利用单片机的控制,将超声波HC-SR04所测到的距离,键盘随机值得位置以及输入的密码显示在LCD1602的界面上。3.2 硬件单元设计3.2.1 主控电路主控电路是以AT89S52单片机为核心,包括复位电路、晶振电路、以及电源的指示灯电路,这4部分构成单片机的最小系统,作为整个设计的控制核心,实现对整个系统进行控制。主要控制电路如图3-2-1所示。图3-2-1 主控电路3.2.2 显示电路LCD1602可以显示2行的数字和字符,每行16个,利用单片机的控制,讲

15、超声波测距模块HC-SR04所测到的距离显示在LCD1602第一行的前04五个位置上(例如0.21M)。LCD1602第一行的第615十个位置显示的是K1K10十个按键所对应的当前按键值(例如2853906471)。第二行的05六个位置显示的是SRAJZ:(表示的是“输入按键值”),第615十个位置显示的是当前所输入的密码,没有密码输入时默认显示*。LCD1602显示电路如图3-2-2所示。图3-2-2 LCD1602显示电路3.2.3 HC-SR04超声波电路(1)超声波测距原理及系统组成超声波测距是借助于超声脉冲回波渡越时间法来实现的。设超声波脉冲由传感器发出到接收所经历的时间为 t,超声

16、波在空气中的传播速度为 c,则从传感器到目标物体的距离D可用公司D=ct/2算出。系统组成框图如图3-2-3所示。图3-2-3 超声波测距原理框图基本原理:经发射器发射出长约6mm,频率为40KHZ 的超声波信号。此信号被物体反射回来接收头接收,接收头实质上是一种压电效应的换能器。它接收到信号后产生mV级的微弱电压信号。(2)HC-SR04超声波测距模块的特点HC-SR04测距模块可提供2cm400cm的非接触式距离感测功能,测距精度可高达3mm。模块包括超声波发生器、接收器与控制电路。(3)HC-SR04超声波测距模块基本工作原理采用I/O口TRIG触发测距,给最少10us的高电平信号。模块

17、自动发送8个40kHz的方波,自动检测是否有信号返回,假如有信号返回,通过I/O口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回接收的时间。测试距离=(高电平时间*声速(340M/S)/2。HC-SR04超声波测距的原理图如图3-2-4所示。(4)HC-SR04超声波测距模块的电气参数表3-2-1 电气参数电气参数HC-SR超声波模块工作电压DC 5V工作电流15mA工作频率40kHz最远射程4m最近射程2cm测量角度15度输入触发信号10us的TTL脉冲输出回响信号输出TTL电平信号,与射程成比例图3-2-4 HC-SR04超声波测距原理图3.2.4 键盘电路本设计需要12个

18、按键,但为了方便以后的扩展采用了4x4矩阵键盘(电路图如图3-2-5所示)。矩阵键盘的行分别与单片机的P0.0P0.4端口相接,列分别与单片机的P1.4P1.7端口相接。K1K10的按键的功能是密码的输入,但所对应的按键值不是09,而是随机产生的,K11的功能是密码的重新输入,K12的功能是产生K1K10的随机按键值,K13K16本设计暂无用到,作为备用按键。图3-2-5 键盘电路3.2.5 报警电路将蜂蜜器经过三极管9012放大,与单片机的P3.7端口相接,以及将发光二极管经过4.7K的限流电阻后与单片机的P2.5相连,由这两部分组成报警电路(电路图如图3-2-6所示)。当HC-SR04测距

19、电路所测到的距离小于等于1米时,蜂蜜器会发出“滴、滴”的声音,以及发光二极管“亮、灭”闪烁。图 3-2-6 报警电路4 软件设计说明4.1 软件设计总体方案4.1.1 软件设计目标编写的程序能够必须能够实现基本功能的密码输入和能使每次输入密码时按RANDOM按键就能使K1K10的按键值乱序,而不是传统每个按键都是固定值,以及能让HC-SR04超声波测距模块能够准确的测距并在LCD1602上显示所有的信息。在程序编写时必须做到:(1)结构合理程序应该采用结构模块化设计。这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。在程序编程时,要尽量使得程序的层次分明。易于阅读和理解,同时还可以简

20、化程序减小程序对于内存的使用量,当程序中有经常需要加以修改或变化的参数时,应该设计成独立的参数传递群序,避免程序的频繁修改。(2)操作性能好操作性能好是指使用方便。这点是、对数据采集系统来说是很重要的。在开发程序时,应该考虑如何降低对操作人员专业知识的要求。(3)系统应设计一定的检测程序例如状态检测利于诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丢失数据。(4)提高程序的执行速度4.1.2 软件功能模块划分表4-1-1 程序模块划分函数名函数功能参数Delay1MS1ms延时tDelay400Ms400ms延时无Beep蜂蜜器报警无Random_Num

21、产生随机数无Keys_Scan键盘扫描无LCD_Busy_CheckLCD忙检查无Write_LCD_Data向LCD写数据datWrite_LCD_Command向LCD写命令cmdSet_LCD_POS设定LCD的显示位置pDisplay_LCD_OneCha按指定位置显示一个字符X Y DDataDisplay_LCD_String在LCD上显示字符串p sInit_LCDLCD初始化无Conuts测量出距离并在LCD显示无StartModule启动HC_SR04超声波测距模块无Osinit系统的初始化无main主函数无4.2 软件设计4.2.1 主函数的程序设计首先,调用系统初始化函数

22、Osinit,其次,对所获得的按键值进行处理,调用启动HC_SR04超声波测距模块的函数StartModule,当HC-SR04的ECHO为0开启定时器1,当HC-SR04的ECHO为1时关闭定时间1,调用测量出距离并在LCD显示函数Conuts,最后,当超声波测距所测得距离小于等于1米时,调用蜂鸣器报警函数Beep,并且让LED二极管闪烁。主函数流程图如图4-2-1所示。 图4-2-1 主函数流程图4.2.2 系统初始化的程序设计首先,调用LCD初始化函数Init_LCD。其次,设置定时器0、定时器1的工作方式,给定时器TL0、TH0赋处置,开器定时器0、定时器1并且允许T0、T1中断。最后

23、,设置K1K10十个按键的随机按键值初次使用时为0123456789,并且显示在LCD1602的相应位置。系统初始化的流程图如图4-2-2所示。图4-2-2 系统初始化流程图4.2.3 计算测量距离并在LCD1602上显示的程序设计首先,利用定时器1计算出超声波从发射到接收地时间time。其次,利用公式S=(time*1.7)/100算出测量距离。最后,讲所测得的距离显示在LCD1602的相应位置上,假如所要测量的距离超出HC-SR04超声波测距模块所能测的距离,则默认显示为4.00M。流程图如图4-2-3所示。图4-2-3 计算测量距离并在LCD1602上显示流程图4.2.4 键盘扫描的程序

24、设计首先,设置行线和列线分别为4,。其次,开始键盘是扫描,判断有无按键按下,如果有按键按下就延时15ms后,再次判断有无按键按下,如果还是有键按下就计算出相应的按键值,如果没键按下就返回继续键盘扫描。最后,将计算出的键值返回。键盘扫描的流程图如图4-2-4所示。图4-2-4 键盘扫描流程图4.2.5 键盘值随机乱序的的程序设计乱序键盘设计的核心内容就是如何实现键盘上数字的随机变位, 以实现安全、保密的性能, 其关键是如何实现随机数字的产生。键位必须是随机的, 即任何人无法判断键位的状态, 包括程序设计者, 这样才能保证彻底的安全。本设计将定时器运行在工作方式2, 使其自动装入数据, 循环计数,

25、 而不会产生中断。定时器1 用于波特率的产生及在此随机数产生时所取的时间数值, 将其变换后作为我们所需的随机数据, 送往显示。在要求变位时, 调用随机数的产生模块, 读取定时器TL1 的值, 此时定时器的值必定是随机的,然后对取出的数值进行处理, 如先将二进制数转换为十进制数,再取出个位数值, 则转换为0 至9 的数字, 与键盘显示缓冲区内的数据进行比较, 如果不存在此数, 则将其存入, 如果已经存在,则放弃, 重复调用随机数的产生模块, 再次进行处理, 直至产生0 到9 共10 个不同的随机数字。45 系统调试5.1 硬件调试5.1.1 显示电路调试编写一个简单的程序,在LCD1602的指定

26、位置显示一个字符,将程序下载到单片机的最小系统,LCD1602能正常显示字符,并且调节与LCD1602相连的可调电阻,能使LCD1602的显示亮度发生变化,说明LCD1602显示电路与单片机最小系统的电路可用。5.1.2 键盘与报警电路调试分别编写简单的键盘每个按键按下时控制蜂鸣器响和LED发光二极管亮的小程序,讲程序下载到单片机最小系统,可观察到每次按下一个按键时能够使蜂鸣器响和LED发光二极管亮的效果,说明键盘与报警电路能够正常工作。5.1.3 HC-SR04超声波测距电路调试将编写好的测距离的程序下载到单片机最小系统上,能在LCD1602的相应的位置上显示出里障碍物的距离,且距离会随着障

27、碍物的变化而变化。说明HC-SR04超声波测距电路能够正常的工作,且测试距离的精度较高。5.2 软件调试首先,在protues里画好智能数字随机键盘的基本功能电路(如图5-2-1所示)。其次,将编写好的程序用 Keil uVision3 软件进行编译,生成.hex文件。最后,将生成的.hex文件加载到单片机上,点开始按钮,可观察到如图5-2-2、5-2-3、5-2-4的仿真效果。图5-2-1 基本功能电路(1)开机画面:每次开机时,LCD1602的第一行显示Random Keyboard,第二行显示Design By BoB,如图5-2.2所示。图5-2-2 开机画面(2)首次输入密码前画面:

28、开机2秒后显示后,画面切换到首次输入密码前的画面,DQANZ:0123456789表示按键值从按键0到按键9的当前按键值分别是0123456789,如图5-2-3所示。图5-2-3 首次输入密码前的画面(3)首次输入密码画面:首次输入密码时,按键09的默认按键值为0123456789,如图5-2-4所示。图5-2-4 首次输入密码画面(4)随机产生按键值画面并输入密码画面:每次输入密码前如果按RANDOM按键,就可以使键盘值乱序,如图5-2-5所示。LCD1602上方红色的0123456789只是为了让用户更准确的知道所要的按键值在哪个按键上,比如数字0在按键3上,数字9在按键7上。图5-2-

29、5随机产生按键值画面并输入密码画面(5)重新输入密码画面:如果用户需要重新输入密码,按DELETE键即可,假如输入的密码为829475(829475所在的按键分别是547826),如图5-2-6所示。图5-2-6 重新输入密码画面5.3 软硬件联合调试首先,将硬件电路板接上DC+5V的电源。其次,将程序下载到单片机上,就可以看到本设计最终的产品效果如图5-3-1、5-3-2、5-3-3、5-3-4、5-3-5所示。(1)开机画面图5-3-1 开机画面(2)首次输入密码前画面由于测试到的距离为0.16米,小于1米,所以报警电路报警提示蜂鸣器响、LED发光二极管闪烁。图5-3-2 首次输入密码前画

30、面(3)首次输入密码画面图5-3-3 首次输入密码画面(4)随机产生按键值画面并输入密码画面图5-3-4 随机产生按键值画面并输入密码画面(5)重新输入密码画面图5-3-5 重新输入密码画面6 总结本设计包括单片机最小系统电路、HC-SR04超声波测距电路、键盘电路、LCD1602显示电路以及蜂鸣器电路和LED发光二极管电路。经过单片机的处理,让每次按键所对应的按键值都是随机抽取的,每个按键的当前按键值显示在LCD1602的第一行上,LCD1602第二行显示的是当前的输入的密码。报警功能电路由HC-SR04超声波测距电路、蜂鸣器电话和LED发光二极管电路构成,当超声波测距电路所测到的距离小于等

31、于1米时,经过单片机的处理让蜂鸣器响、LED闪烁。这样就实现了用户密码保护的双重功能,大大提高了使用ATM存、取款的安全性。智能数字随机键盘不仅可以应用于ATM机的键盘输入和密码防盗,还可以广泛应用于其他各种需要应用键盘输入密码的设备,如储物货仓、保险柜、机关防盗门等。此产品将以其设计巧妙,灵活多变,成本低廉,操作简单,便捷实用,保密安全等优点,拥有广阔的市场前景和发展空间。创新点:阐述了智能数字随机键盘的概率及其对于普通银行密码输入键盘的改进;提出了智能数字随机键盘设计的两个要点,既加装了密码防偷窥和对于随机数产生方法的重要性描述;进行了乱序键盘的单片机控制系统硬件设计,对乱序键盘的随机数产

32、生进行了软件仿真。参考文献1岳斌.工业现场用键盘设计J.山东建筑工程学院报,2001,3(15):352-354.2何立民.MCS-51系列单片机应用系统设计.北京航空天大学出版社,1995.3王俊红.基于AT89C52 单片机的变量喷雾控制器设计J微计算机信息,2006,2:8- 10 .4陈明荧.8051单片机课程设计实训教材.北京清华大学出版社,2003.The Design Of Intelligence Random KeyboardThe College Of Applied Scinence&Thechnology Electrion and Information Engine

33、eing1206020100* * Tutor *【Abstract】As a kind of input device that is essential to the bank and other financial departments, it must have high credibility, safety,and the function of keeping secret. Disorder keyboard is a developed kind on the basis of the traditional password keyboard,which increase

34、d some new functions and characteristics, for example, there is LED on the surface of the keys, and the numbers displayed on the keys are random, also a certain angle of view is restricted. Outside of a certain angle, the number LED displayed on the keyboard is impossible to be seen. Even other peop

35、le can see the keys that the customer pressed, but because when the customer finished inputting the password, the key numbers will be re- arranged again, so, the customer unnecessarily worried about that other people would take his password .【Key word】password keyboard; isorder; random number 源程序代码/

36、* 项 目:智能数字随机键盘 * 设计人:涂龙波 * 目标器件:AT89S52 * 晶 振:12MHz * 编译环境:Keil uVision3 */#include #include #include #define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define Key_Input P1sbit RX = P23;sbit TX = P24;sbit RS = P20; /*0:指令寄存器 1:数据寄存器*/sbit RW = P21; /*0:写选择 1:读选择*/sbit EN

37、 = P22; /*下降沿时LCD执行命令*/sbit BEEP = P37;sbit LED = P25;uchar a10 = 0,1,2,3,4,5,6,7,8,9;/*存随机数*/uchar code dis1 = Random Keyboard;uchar code dis2 = Design By BoB ;uchar code dis3 = ;uchar code dis4 = SRAJZ:*;uchar code dis5 = 0123456789;/*随机数显示*/uchar code ASCII15 = 0,1,2,3,4,5,6,7,8,9,.,-,M;uchar dis

38、buff4 = 0,0,0,0,;uint time=0;ulong S=0;static uchar DisNum = 0; /*显示用指针*/ /* 函数功能:延时函数 * 入口参数:t,x,ms * 出口参数: */void Delay1MS(uint t)uint i,j;while(t-)for(i=0;i75;i+);for(j=0;j28;j+);void Delay(uint x)uint i;while(x-) for(i=0;i120;i+);void delayms(uint ms)uchar i=100,j;for(;ms;ms-)while(-i)j=10;while

39、(-j);/* 函数功能:蜂鸣器报警 * 入口参数: * 出口参数: */void Beep()char i;for(i=0;i100;i+)BEEP = BEEP;Delay(1);BEEP = 1;/* 函数功能:产生随机数 * 入口参数: * 出口参数: */void Random_Num()int i,j,k,m,b10 = 0,1,2,3,4,5,6,7,8,9;for(i=0;i10;i+)k = TL0; /*取定时器的值*/m = k%(10-i);/*在09的表中选一个数后,将后面的向前移,在9个数中随机选1个,依次循环*/ai = bm;for(j=m;j10;j+)bj

40、=bj+1;/* 函数功能:键盘扫描 * 入口参数: * 出口参数:n */int Keys_Scan()int i,j,temp, n = 16;for(i=0;i4;i+) for(j=0;j4;j+)Key_Input = (0x01(4+j)&0x01) = 0)Delay(5); if(temp (4+j)&0x01) = 0)n = i*4+j;return(n);/*返回键值*/ /* * 函数功能:LCD忙检查 * * 入口参数: * * 出口参数:LCD_Status * */uchar LCD_Busy_Check() uchar LCD_Status;RS = 0;RW = 1;EN = 1;Delay(1); L

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1