版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建师范大学应用科技学院学生论文论文题目:智能数字随机键盘指导教师:*********学号:*************姓名:******年级:2021级专业:电子信息工程二0一二年二月二十一日智能数字随机键盘的设计应用科技学院电子信息工程1206020210******指导教师***【摘要】针对传统密码键盘的平安性差的缺点,在传统密码键盘的根底上,设计了一种乱序密码输入键盘,增加了新的功能和特性,一方面在键盘数字按键上增加了数码管来显示0至9十个数字,且设计了随机数产生软件实现了随机变位,另一方面在按键上面贴一层特殊的透光材料,使视线具有一定的视角限制,在一定角度之外的人不能看到键盘上的数字。即使他人看到用户所按的键位,由于密码输入完毕后,键位又会重新打乱顺序,因此用户可以平安放心地在键盘前输入密码,不必担忧别人通过拍摄或观察人的手型等方法来获取密码,从而大大提高了密码输入的平安性,杜绝了金融领域相关的犯罪现象。【关键词】密码键盘;乱序;随机数目录1前言 41.1数字随机键盘的来源 41.2数字随机键盘的意义 41.3单片机概述 42数字随机键盘总体设计说明 52.1总体开发方案 5根本功能 52.1.2扩展功能 52.2总体设计方案 52.2.1控制芯片的选择 52.2.2键盘的选择 62.2.3显示模块的选择 62.2.4报警检测模块的选择 63硬件设计说明 73.1硬件总体设计方案 7硬件功能模块划分 73.1.2硬件设计目标 73.2硬件单元设计 73.2.1主控电路 73.2.2显示电路 83.2.3HC-SR04超声波电路 93.2.4键盘电路 11报警电路 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键盘值随机乱序的的程序设计 155系统调试 165.1硬件调试 165.1.1显示电路调试 165.1.2键盘与报警电路调试 165.1.3HC-SR04超声波测距电路调试 165.2软件调试 165.3软硬件联合调试 196总结 22参考文献 22源程序代码 24附件 331前言1.1数字随机键盘的来源作为银行等金融场所必不可少的一种输入设备,必须具备高度可靠、平安、保密的性能。现阶段,大局部的金融系统中使用的是传统的输入键盘。这种键盘键的键盘值固定,保密性和平安性差,容易被犯罪分子通过远距离拍摄或在一侧观察记住用户的输入键位位置,从而很容易就推算出用户的账户密码,给用户造成极大的损失,也给金融系统留下了极大的平安隐患。为了弥补密码键盘这方面的缺陷,故设计了一种新型平安的乱序键盘来取代传统的定位密码键盘。[1]1.2数字随机键盘的意义ATM机取钱的最大的隐患就是密码被不法分子记住,给我们的财产带来平安隐患,不法分子记住密码的方法往往不是看到提款人按下的数字,而是根据提款人按下的按键在键盘上的位置来获取提款人的密码。基于这种现象,我们提出了数字随机键盘来保障广阔用户的财产平安。1.3单片机概述单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能〔可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路〕集成到一块硅片上构成的一个小而完善的计算机系统。[2]2数字随机键盘总体设计说明2.1总体开发方案根本功能针对传统密码键盘的平安性差的缺点,在传统密码键盘的根底上,设计了一种乱序密码输入键盘,每次使用键盘输入密码时,0-9的键盘值,随机对应键盘10个按键位置,以实现密码保护功能。扩展功能当你输入密码时,如果背后1米内有人,系统做出相应的报警提示,以防密码被不法分子偷窥,以此实现密码的第二重保护功能。2.2总体设计方案控制芯片的选择控制芯片采用AT8S52单片机。AT89S52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89S52单片机在电子行业中有着广泛的应用。[3]AT89S52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部存放器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1〔19脚〕和XTAL2〔18脚〕为振荡器输入输出端口,外部可接0~33MHz的晶振。RST/Vpd〔9脚〕为复位输入端口,外接电阻电容组成的复位电路。VCC〔40脚〕和VSS〔20脚〕为供电端口,分别接+5V电源的正负端。P0~P3是AT89S52单片机与外界联系的4个8位双向并行I/O端口。P0口为一个8位漏级开路双向I/O口,能够用于外部程序数据存储器,它可以被定义为数据/地址的低8位。P1口是一个准双向并行口,主要作用为通用I/O口。P2口石一个准双向的8位并行端口,既可以作为通用I/O口使用,也可以作为高8位地址线使用。P3口是一个多功能的准双向8位并行口,它的每一位既可以作为通用I/O口使用,又都具有第二输出功能。如图2-2-1所示。图2-2-1AT89S52管脚图键盘的选择方案一:独立式键盘独立式按键电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O口线。在按键数量较多时,I/O口的率用来不高,但程序的编写简单。适用于所需按键较少的场合,方案二:矩阵式键盘电路连接复杂,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。但是提高了I/O口的利用率,适用于所需要按键较多得场合。因为本系统的设计需要12个按键,为了减少I/O口的使用,故采用方案二。显示模块的选择方案一:数码管显示七段LED数码管内部由7个条形发关二极管和一个圆形发光二极管组成的“字段〞,可用于显示数字0~9和局部简单字符。方案二:液晶显示液晶显示器LCD〔LiquidCrystalDisplay〕是一种低功耗的显示器,它是一种专门用于显示字母、数字、符号等点阵式LCD。其有显示质量高、数字接口、功耗低、体积小等优点。因为数码管只能显示数字和简单的字母,LCD可以显示字符,图形等,并能更形象的表达出字符与图像。故本系统采用方案二。报警检测模块的选择方案一:红外检测红外线是不可见光,是电磁波的一种形式,红外发光源发射红外脉冲光波,同时启动计数器开始计数,红外光遇到待测目标物体产生回波,并由接收系统接收,从发射到接收的时间为T,在空气中得传播的速度为V,就可以算出距离D=VT/2。但是它所能检测到障碍物的距离较短。方案二:超声波检测超声波测距是借助于超声脉冲回波渡越时间法来实现的。设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,那么从传感器到目标物体的距离D可用公式D=ct/2求出。超声波测距和红外测距相比,所测到的距离会更精确,所能检测到的距离也相对较长。因为本系统的设计所要检测的是当在ATM机前输入密码时,如果1米内后有人,系统做出相应的报警,由于红外能检测到的距离较短,所以采用方案二。3硬件设计说明3.1硬件总体设计方案硬件功能模块划分AAT89S52显示模块键盘模块超声波测距模块报警模块图3-1-1硬件模块图〔1〕AT89S52:实现对整个系统的控制。〔2〕超声波测距模块:检测在ATM机前输入密码时,距离ATM机后1米以内处是否有人,以防密码被不法分子偷窥。〔3〕键盘模块:用作密码的输入和密码的重新输入,以及每次输入密码前1~10十个按键值得随机产生。〔4〕显示模块:显示出超声波测距所测到的距离和所输入的密码,以及随机产生按键值所对应按键的位置。〔5〕报警模块:当超声波测距米快所测到的距离小于等于1米时,蜂鸣器发出“滴、滴〞声,以及LED灯闪烁,以此作为报警的提示身后1米以内有人,谨防密码被偷窥。硬件设计目标〔1〕本系统采用AT89S52单片机作为控制核心,P0端口与矩阵式的行和列相接,第1个按键到第10个按键的键盘值是数字0~9随机抽取的,第11个按键的功能是密码重新输入,第12个按键的功能是每次输入密码前按键值的随机产生。〔2〕单片机P2.3接的是HC-SR04超声波测距模块的回响信号输出端ECHO,P2.4接的是HC-SR04超声波测距模块的触发控制信号的输入端。蜂鸣器经过三极管9012的驱动后接到单片机的P3.7,发光二极管经过限流电子接到P2.5上,当超声波测到的距离小于等于1米时,利用单片机的控制使蜂蜜器报警,LED闪烁。〔3〕LCD1602的8位数据线DB0~DB7接到单片的P0口,数据和指令选择控制端RS接到单片机的P2.0,读写控制端R/W接到单片的P2.1,数据读写操作控制位E接到单片的P2.2。利用单片机的控制,将超声波HC-SR04所测到的距离,键盘随机值得位置以及输入的密码显示在LCD1602的界面上。3.2硬件单元设计主控电路主控电路是以AT89S52单片机为核心,包括复位电路、晶振电路、以及电源的指示灯电路,这4局部构成单片机的最小系统,作为整个设计的控制核心,实现对整个系统进行控制。主要控制电路如图3-2-1所示。图3-2-1主控电路显示电路LCD1602可以显示2行的数字和字符,每行16个,利用单片机的控制,讲超声波测距模块HC-SR04所测到的距离显示在LCD1602第一行的前0~4五个位置上〔例如〕。LCD1602第一行的第6~15十个位置显示的是K1~K10十个按键所对应的当前按键值〔例如2853906471〕。第二行的0~5六个位置显示的是SRAJZ:〔表示的是“输入按键值〞〕,第6~15十个位置显示的是当前所输入的密码,没有密码输入时默认显示**********。LCD1602显示电路如图3-2-2所示。图3-2-2LCD1602显示电路3.2.3HC-SR04超声波电路〔1〕超声波测距原理及系统组成超声波测距是借助于超声脉冲回波渡越时间法来实现的。设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,那么从传感器到目标物体的距离D可用公司D=ct/2算出。系统组成框图如图3-2-3所示图3-2-3根本原理:经发射器发射出长约6mm,频率为40KHZ的超声波信号。此信号被物体反射回来接收头接收,接收头实质上是一种压电效应的换能器。它接收到信号后产生mV级的微弱电压信号。〔2〕HC-SR04超声波测距模块的特点HC-SR04测距模块可提供2cm~400cm的非接触式距离感测功能,测距精度可高达3mm。模块包括超声波发生器、接收器与控制电路。〔3〕HC-SR04超声波测距模块根本工作原理采用I/O口TRIG触发测距,给最少10us的高电平信号。模块自动发送8个40kHz的方波,自动检测是否有信号返回,假设有信号返回,通过I/O口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回接收的时间。测试距离=〔高电平时间*声速〔340M/S〕〕/2。HC-SR04超声波测距的原理图如图3-2-4所示。〔4〕HC-SR04超声波测距模块的电气参数表3-2-1电气参数电气参数HC-SR超声波模块工作电压DC5V工作电流15mA工作频率40kHz最远射程4m最近射程2cm测量角度15度输入触发信号10us的TTL脉冲输出回响信号输出TTL电平信号,与射程成比例图3-2-4HC-SR04超声波测距原理图键盘电路本设计需要12个按键,但为了方便以后的扩展采用了4x4矩阵键盘〔电路图如图3-2-5所示〕。矩阵键盘的行分别与单片机的P0.0~P0.4端口相接,列分别与单片机的P1.4~P1.7端口相接。K1~K10的按键的功能是密码的输入,但所对应的按键值不是0~9,而是随机产生的,K11的功能是密码的重新输入,K12的功能是产生K1~K10的随机按键值,K13~K16本设计暂无用到,作为备用按键。图3-2-5键盘电路报警电路将蜂蜜器经过三极管9012放大,与单片机的P3.7端口相接,以及将发光二极管经过4.7K的限流电阻后与单片机的P2.5相连,由这两局部组成报警电路〔电路图如图3-2-6所示〕。当HC-SR04测距电路所测到的距离小于等于1米时,蜂蜜器会发出“滴、滴〞的声音,以及发光二极管“亮、灭〞闪烁。图3-2-6报警电路4软件设计说明4.1软件设计总体方案软件设计目标编写的程序能够必须能够实现根本功能的密码输入和能使每次输入密码时按RANDOM按键就能使K1~K10的按键值乱序,而不是传统每个按键都是固定值,以及能让HC-SR04超声波测距模块能够准确的测距并在LCD1602上显示所有的信息。在程序编写时必须做到:〔1〕结构合理程序应该采用结构模块化设计。这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。在程序编程时,要尽量使得程序的层次清楚。易于阅读和理解,同时还可以简化程序减小程序对于内存的使用量,当程序中有经常需要加以修改或变化的参数时,应该设计成独立的参数传递群序,防止程序的频繁修改。〔2〕操作性能好操作性能好是指使用方便。这点是、对数据采集系统来说是很重要的。在开发程序时,应该考虑如何降低对操作人员专业知识的要求。〔3〕系统应设计一定的检测程序例如状态检测利于诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丧失数据。〔4〕提高程序的执行速度软件功能模块划分表4-1-1程序模块划分函数名函数功能参数Delay1MS1ms延时tDelay400Ms400ms延时无Beep蜂蜜器报警无Random_Num产生随机数无Keys_Scan键盘扫描无LCD_Busy_CheckLCD忙检查无Write_LCD_Data向LCD写数据datWrite_LCD_Command向LCD写命令cmdSet_LCD_POS设定LCD的显示位置 pDisplay_LCD_OneCha按指定位置显示一个字符 XYDDataDisplay_LCD_String在LCD上显示字符串psInit_LCDLCD初始化无Conuts测量出距离并在LCD显示无StartModule启动HC_SR04超声波测距模块无Osinit系统的初始化无main主函数无4.2软件设计主函数的程序设计首先,调用系统初始化函数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主函数流程图系统初始化的程序设计首先,调用LCD初始化函数Init_LCD。其次,设置定时器0、定时器1的工作方式,给定时器TL0、TH0赋处置,开器定时器0、定时器1并且允许T0、T1中断。最后,设置K1~K10十个按键的随机按键值初次使用时为0123456789,并且显示在LCD1602的相应位置。系统初始化的流程图如图4-2-2所示。图4-2-2系统初始化流程图计算测量距离并在LCD1602上显示的程序设计首先,利用定时器1计算出超声波从发射到接收地时间time。其次,利用公式S=(time*1.7)/100算出测量距离。最后,讲所测得的距离显示在LCD1602的相应位置上,假设所要测量的距离超出HC-SR04超声波测距模块所能测的距离,那么默认显示为。流程图如图4-2-3所示。图4-2-3计算测量距离并在LCD1602上显示流程图键盘扫描的程序设计首先,设置行线和列线分别为4,。其次,开始键盘是扫描,判断有无按键按下,如果有按键按下就延时15ms后,再次判断有无按键按下,如果还是有键按下就计算出相应的按键值,如果没键按下就返回继续键盘扫描。最后,将计算出的键值返回。键盘扫描的流程图如图4-2-4所示。图4-2-4键盘扫描流程图键盘值随机乱序的的程序设计乱序键盘设计的核心内容就是如何实现键盘上数字的随机变位,以实现平安、保密的性能,其关键是如何实现随机数字的产生。键位必须是随机的,即任何人无法判断键位的状态,包括程序设计者,这样才能保证彻底的平安。本设计将定时器运行在工作方式2,使其自动装入数据,循环计数,而不会产生中断。定时器1用于波特率的产生及在此随机数产生时所取的时间数值,将其变换后作为我们所需的随机数据,送往显示。在要求变位时,调用随机数的产生模块,读取定时器TL1的值,此时定时器的值必定是随机的,然后对取出的数值进行处理,如先将二进制数转换为十进制数,再取出个位数值,那么转换为0至9的数字,与键盘显示缓冲区内的数据进行比拟,如果不存在此数,那么将其存入,如果已经存在,那么放弃,重复调用随机数的产生模块,再次进行处理,直至产生0到9共10个不同的随机数字。[4]5系统调试5.1硬件调试显示电路调试编写一个简单的程序,在LCD1602的指定位置显示一个字符,将程序下载到单片机的最小系统,LCD1602能正常显示字符,并且调节与LCD1602相连的可调电阻,能使LCD1602的显示亮度发生变化,说明LCD1602显示电路与单片机最小系统的电路可用。键盘与报警电路调试分别编写简单的键盘每个按键按下时控制蜂鸣器响和LED发光二极管亮的小程序,讲程序下载到单片机最小系统,可观察到每次按下一个按键时能够使蜂鸣器响和LED发光二极管亮的效果,说明键盘与报警电路能够正常工作。HC-SR04超声波测距电路调试将编写好的测距离的程序下载到单片机最小系统上,能在LCD1602的相应的位置上显示出里障碍物的距离,且距离会随着障碍物的变化而变化。说明HC-SR04超声波测距电路能够正常的工作,且测试距离的精度较高。5.2软件调试首先,在protues里画好智能数字随机键盘的根本功能电路〔如图5-2-1所示〕。其次,将编写好的程序用KeiluVision3软件进行编译,生成.hex文件。最后,将生成的.hex文件加载到单片机上,点开始按钮,可观察到如图5-2-2、5-2-3、5-2-4的仿真效果。图5-2-1根本功能电路〔1〕开机画面:每次开机时,LCD1602的第一行显示RandomKeyboard,第二行显示DesignByBoB,如图5-2.2所示。图5-2-2开机画面〔2〕首次输入密码前画面:开机2秒后显示后,画面切换到首次输入密码前的画面,DQANZ:0123456789表示按键值从按键0到按键9的当前按键值分别是0123456789,如图5-2-3所示。图5-2-3首次输入密码前的画面〔3〕首次输入密码画面:首次输入密码时,按键0~9的默认按键值为0123456789,如图5-2-4所示。图5-2-4首次输入密码画面〔4〕随机产生按键值画面并输入密码画面:每次输入密码前如果按RANDOM按键,就可以使键盘值乱序,如图5-2-5所示。LCD1602上方红色的0123456789只是为了让用户更准确的知道所要的按键值在哪个按键上,比方数字0在按键3上,数字9在按键7上。图5-2-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〕首次输入密码前画面由于测试到的距离为,小于1米,所以报警电路报警提示——蜂鸣器响、LED发光二极管闪烁。图5-3-2首次输入密码前画面〔3〕首次输入密码画面图5-3-3首次输入密码画面〔4〕随机产生按键值画面并输入密码画面图5-3-4随机产生按键值画面并输入密码画面〔5〕重新输入密码画面图5-3-5重新输入密码画面6总结本设计包括单片机最小系统电路、HC-SR04超声波测距电路、键盘电路、LCD1602显示电路以及蜂鸣器电路和LED发光二极管电路。经过单片机的处理,让每次按键所对应的按键值都是随机抽取的,每个按键的当前按键值显示在LCD1602的第一行上,LCD1602第二行显示的是当前的输入的密码。报警功能电路由HC-SR04超声波测距电路、蜂鸣器和LED发光二极管电路构成,当超声波测距电路所测到的距离小于等于1米时,经过单片机的处理让蜂鸣器响、LED闪烁。这样就实现了用户密码保护的双重功能,大大提高了使用ATM存、取款的平安性。智能数字随机键盘不仅可以应用于ATM机的键盘输入和密码防盗,还可以广泛应用于其他各种需要应用键盘输入密码的设备,如储物货仓、保险柜、机关防盗门等。此产品将以其设计巧妙,灵活多变,本钱低廉,操作简单,便捷实用,保密平安等优点,拥有广阔的市场前景和开展空间。创新点:阐述了智能数字随机键盘的概率及其对于普通银行密码输入键盘的改良;提出了智能数字随机键盘设计的两个要点,既加装了密码防偷窥和对于随机数产生方法的重要性描述;进行了乱序键盘的单片机控制系统硬件设计,对乱序键盘的随机数产生进行了软件仿真。参考文献[1][J].山东建筑工程学院报,2001,3〔15〕:352-354.[2]何立民.MCS-51 系列单片机应用系统设计.北京航空天大学出版社,1995.[3]王俊红.基于AT89C52单片机的变量喷雾控制器设计[J]微计算机信息,2006,2:8-10.[4]陈明荧.8051单片机课程设计实训教材.北京清华大学出版社,2003.TheDesignOfIntelligenceRandomKeyboardTheCollegeOfAppliedScinence&ThechnologyElectrionandInformationEngineeing1206020210**********Tutor*****【Abstract】Asakindofinputdevicethatisessentialtothebankandotherfinancialdepartments,itmusthavehighcredibility,safety,andthefunctionofkeepingsecret.Disorderkeyboardisadevelopedkindonthebasisofthetraditionalpasswordkeyboard,whichincreasedsomenewfunctionsandcharacteristics,forexample,thereisLEDonthesurfaceofthekeys,andthenumbersdisplayedonthekeysarerandom,alsoacertainangleofviewisrestricted.Outsideofacertainangle,thenumberLEDdisplayedonthekeyboardisimpossibletobeseen.Evenotherpeoplecanseethekeysthatthecustomerpressed,butbecausewhenthecustomerfinishedinputtingthepassword,thekeynumberswillbere-arrangedagain,so,thecustomerunnecessarilyworriedaboutthatotherpeoplewouldtakehispassword.【Keyword】passwordkeyboard;isorder;randomnumber源程序代码/****************************************************************************项目:智能数字随机键盘 ****设计人:涂龙波 ****目标器件:AT89S52 ****晶振:12MHz ****编译环境:KeiluVision3 ****************************************************************************/#include<reg52.h> #include<intrins.h>#include<stdlib.h> #defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineKey_InputP1sbitRX=P2^3;sbitTX=P2^4;sbitRS=P2^0; /*0:指令存放器1:数据存放器*/sbitRW=P2^1; /*0:写选择1:读选择*/sbitEN=P2^2; /*下降沿时LCD执行命令*/sbitBEEP=P3^7;sbitLED=P2^5; uchara[10]={0,1,2,3,4,5,6,7,8,9};/*存随机数*/ucharcodedis1[]={"RandomKeyboard"};ucharcodedis2[]={"DesignByBoB"};ucharcodedis3[]={""};ucharcodedis4[]={"SRAJZ:**********"};ucharcodedis5[]={"0123456789"}; /*随机数显示*/ucharcodeASCII[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};uchardisbuff[4]={0,0,0,0,};uinttime=0;ulongS=0;staticucharDisNum=0;/*显示用指针*/ /****************************************************************************函数功能:延时函数 ****入口参数:t,x,ms ****出口参数: ****************************************************************************/voidDelay1MS(uintt){ uinti,j; while(t--) for(i=0;i<75;i++); for(j=0;j<28;j++); }voidDelay(uintx){ uinti; while(x--)for(i=0;i<120;i++);}voiddelayms(uintms){ uchari=100,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } }}/****************************************************************************函数功能:蜂鸣器报警 ****入口参数: ****出口参数: ****************************************************************************/voidBeep(){ chari; for(i=0;i<100;i++) { BEEP=~BEEP; Delay(1); } BEEP=1;}/****************************************************************************函数功能:产生随机数 ****入口参数: ****出口参数: ****************************************************************************/voidRandom_Num(){ inti,j,k,m,b[10]={0,1,2,3,4,5,6,7,8,9}; for(i=0;i<10;i++) { k=TL0;/*取定时器的值*/ m=k%(10-i);/*在0~9的表中选一个数后,将后面的向前移,在9个数中随机选1个,依次循环*/ a[i]=b[m]; for(j=m;j<10;j++) b[j]=b[j+1]; }}/****************************************************************************函数功能:键盘扫描 ****入口参数: ****出口参数:n ****************************************************************************/intKeys_Scan(){ inti,j,temp,n=16; for(i=0;i<4;i++) for(j=0;j<4;j++) { Key_Input=~(0x01<<i); temp=Key_Input; if(((temp>>(4+j))&0x01)==0) { Delay(5); if(((temp>>(4+j))&0x01)==0) n=i*4+j; } } return(n);/*返回键值*/}/***************************************************************************函数功能:LCD忙检查 ****入口参数: ****出口参数:LCD_Status ***************************************************************************/ucharLCD_Busy_Check(){ ucharLCD_Status; RS=0; RW=1; EN=1; Delay(1); LCD_Status=P0; EN=0; returnLCD_Status;}/***************************************************************************函数功能:向LCD写数据 ****入口参数:dat ****出口参数: ***************************************************************************/voidWrite_LCD_Data(uchardat){ LCD_Busy_Check(); RS=1; RW=0; EN=0; P0=dat; EN=1; Delay(1); EN=0; }/****************************************************************************函数功能:向LCD写命令 ****入口参数:cmd ****出口参数: ****************************************************************************/voidWrite_LCD_Command(ucharcmd){ LCD_Busy_Check(); RS=0; RW=0; EN=0; P0=cmd; EN=1; Delay(1); EN=0; }/****************************************************************************函数功能:设定LCD的显示位置 ****入口参数:P ****出口参数: ****************************************************************************/voidSet_LCD_POS(ucharp){ Write_LCD_Command(0x80|p); }/****************************************************************************函数功能:按指定位置显示一个字符 ****入口参数:X,Y,DData ****出口参数: ****************************************************************************/voidDisplay_LCD_OneChar(ucharX,ucharY,ucharDData){ Y&=0x1; X&=0xF;/*限制X不能大于15,Y不能大于1*/ if(Y)X|=0x40;/*当要显示第二行时地址码+0x40;*/ X|=0x80; /*算出指令码*/ Write_LCD_Command(X);/*发命令字*/ Write_LCD_Data(DData);/*发数据*/}/****************************************************************************函数功能:在LCD上显示字符串 ****入口参数:p,s ****出口参数: ****************************************************************************/voidDisplay_LCD_String(ucharp,uchar*s){ uchari; Set_LCD_POS(p); for(i=0;i<16;i++) { Write_LCD_Data(s[i]); Delay(1); }}/***************************************************************************函数功能:LCD初始化 ****入口参数: ****出口参数: ***************************************************************************/voidInit_LCD(){ /*开机画面初始化*/ Write_LCD_Command(0x38);/*设置液晶工作模式,16*2行显示,5*7点阵,8位数据*/ Delay(1); Write_LCD_Command(0x01);/*清屏*/ Delay(1); Write_LCD_Command(0x06);/*整屏不移动,光标自动右移*/ Delay(1); Write_LCD_Command(0x0c);/*开显示不显示光标*/ Delay(1); Display_LCD_String(0x00,dis1); Display_LCD_String(0x40,dis2); Delay1MS(2000); Write_LCD_Command(0x38); Delay(1); Write_LCD_Command(0x01); Delay(1); Write_LCD_Command(0x06); Delay(1); Write_LCD_Command(0x0c); Delay(1); Display_LCD_String(0x00,dis3); Display_LCD_String(0x40,dis4);}/***************************************************************************函数功能:测量出距离并在LCD显示 ****入口参数: ****出口参数: ***************************************************************************/voidConuts(void){ time=TH1*256+TL1;/*定时器1是用来计算时间*/ TH1=0; TL1=0; S=(time*1.7)/100;/*算出来是厘米*/ if((S>=400))/*超出测量范围显示“默认显示〞*/ { Display_LCD_OneChar(0,0,ASCII[4]); Display_LCD_OneChar(1,0,ASCII[10]); /*显示点*/ Display_LCD_OneChar(2,0,ASCII[0]); Display_LCD_OneChar(3,0,ASCII[0]); Display_LCD_OneChar(4,0,ASCII[12]); /*显示M*/ Display_LCD_OneChar(5,0,ASCII[11]); /*显示-*/ } else /*显示距离*/ { disbuff[0]=S%1000/100; disbuff[1]=S%1000%100/10; disbuff[2]=S%1000%10%10; Display_LCD_OneChar(0,0,ASCII[disbuff[0]]); Display_LCD_OneChar(1,0,ASCII[10]); /*显示点*/ Display_LCD_OneChar(2,0,ASCII[disbuff[1]]); Display_LCD_OneChar(3,0,ASCII[disbuff[2]]); Display_LCD_OneChar(4,0,ASCII[12]); /*显示M */ Display_LCD_OneChar(5,0,ASCII[11]); /*显示-*/ }}/***************************************************************************函数功能:启动HC_SR04超声波测距模块 ****入口参数: ****出口参数: ***************************************************************************/voidStartModule() { TX=1; /*启动一次模块*/ _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0;} /****************************************************************************函数功能:系统初始化 ****入口参数: ****出口参数: ****************************************************************************/voidOsinit(){ uchari; Init_LCD();/*调用液晶屏初始化子函数*/ TMOD=0x12; /*定时器0,8位自动重载*/TH0=0x00; /*载入初值*/TL0=0x00;EA=1; /*开总中断*/ET0=1; /*允许T0中断*/TR0=1; /*启动定时器T0*/TH1=0;TL1=0; ET1=1;/*允许T0中断*/BEEP=0;/*蜂鸣器长响一次*/Delay(100);BEEP=1; Write_LCD_Command(0x80+0x06); for(i=0;i<10;i++) { Write_LCD_Data(dis5[a[i]]); /*初次使用默认0123456789*/ }}/****************************************************************************函数功能:主函数 ****入口参数: ****出口参数: ****************************************************************************/voidmain(){ inti,Count=0; /*输入数字位数Count=0;*/ intKey_Num; /*扫描得到的键号*/ intKey_Temp; /*键号暂存*/ Osinit(); while(1) { Key_Temp=Keys_Scan(); Key_Num=Key_Temp; if(Key_Num==10) /*重新输入*/ { Beep(); Count=0; Display_LCD_String(0x40,dis4); } if(Key_Num==11) /*变换当前按键值*/ { Beep(); Random_Num(); Write_LCD_Command(0x80+0x06);/*动态显示出键盘对应的数*/ for(i=0;i<10;i++) { Write_LCD_Data(dis5[a[i]]); } } if((Key_Num>=0)&&(Key_Num<10)) /*数字键处理分支*/ { Beep(); if(Count<10) /*可以输入10位密码*/ { Write_LCD_Command(0xc0+0x06+Count); Write_LCD_Data(dis5[a[Key_Num]]);/*显示密码*/ Count++; if(Count==10) Beep(); } } StartModule(); while(!RX); /*当RX为零时等待*/ TR1=1; /*开启计数*/ while(RX); /*当RX为1计数并等待*/ TR1=0; /*关闭计数*/Conuts(); /*计算*/ delayms(60); /*60MS*/ if(S>=0&&S<=100) { Beep(); LED=~LED; } if(S>=100) { BEEP=1; LED=1; } }}/*************************************TheFileEnd************************************/附件〔1〕HC-SR04超声波测距原理图〔2〕智能数字随机键盘原理图原文已完。下文为附加文档,如不需要,下载后可以编辑删除,谢谢!施工组织设计本施工组织设计是本着“一流的质量、一流的工期、科学管理〞来进行编制的。编制时,我公司技术开展部、质检科以及工程部经过精心研究、合理组织、充分利用先进工艺,特制定本施工组织设计。工程概况:西夏建材城生活区27#、30#住宅楼位于银川市新市区,橡胶厂对面。本工程由宁夏燕宝房地产开发开发,银川市规划建筑设计院设计。本工程耐火等级二级,屋面防水等级三级,地震防烈度为8度,设计使用年限50年。本工程建筑面积:27#m2;30#m2。室内地坪±m为准,总长27#m;30#m。总宽27#m;30#m。设计室外地坪至檐口高度18.600m,呈长方形布置,东西向,三个单元。本工程设计屋面为坡屋面防水采用防水涂料。外墙水泥砂浆抹面,外刷浅灰色墙漆。内墙面除卫生间200×300瓷砖,高到顶外,其余均水泥砂桨罩面,刮二遍腻子;楼梯间内墙采用50厚胶粉聚苯颗粒保温。地面除卫生间200×200防滑地砖,楼梯间50厚细石砼1:1水泥砂浆压光外,其余均采用50厚豆石砼毛地面。楼梯间单元门采用楼宇对讲门,卧室门、卫生间门采用木门,进户门采用保温防盗门。本工程窗均采用塑钢单框双玻窗,开启窗均加纱扇。本工程设计为节能型住宅,外墙均贴保温板。本工程设计为砖混结构,共六层。根底采用C30钢筋砼条形根底,上砌MU30毛石根底,砂浆采用M10水泥砂浆。一、二、三、四层墙体采用M10混合砂浆砌筑MU15多孔砖;五层以上采用M混合砂浆砌筑MU15多孔砖。本工程结构中使用主要材料:钢材:=1\*ROMANI级钢,=2\*ROMANII级钢;砼:根底垫层C10,根底底板、地圈梁、根底构造柱均采用C30,其余均C20。本工程设计给水管采用PPR塑料管,热熔连接;排水管采用UPVC硬聚氯乙烯管,粘接;给水管道安装除立管及安装IC卡水表的管段明设计外,其余均暗设。本工程设计采暖为钢制高频焊翅片管散热器。本工程设计照明电源采用BV-铜芯线,插座电源等采用BV-4铜芯线;除客厅为吸顶灯外,其余均采用座灯。施工部署及进度方案1、工期安排本工程合同方案开工日期:2004年8月21日,竣工日期:2005年7月10日,合同工期315天。方案2004年9月15日前完成根底工程,2004年12月30日完成主体结构工程,2005年6月20日完成装修工种,安装工程穿插进行,于2005年7月1日前完成。具体进度方案详见附图-1〔施工进度方案〕。2、施工顺序=1\*GB2⑴根底工程工程定位线〔验线〕→挖坑→钎探〔验坑〕→砂砾垫层的施工→根底砼垫层→刷环保沥青→根底放线〔预检〕→砼条形根底→刷环保沥青→毛石根底的砌筑→构造柱砼→地圈梁→地沟→回填工。=2\*GB2⑵结构工程结构定位放线〔预检〕→构造柱钢筋绑扎、定位〔隐检〕→砖墙砌筑〔+50cm线找平、预检〕→柱梁、顶板支模〔预检〕→梁板钢筋绑扎〔隐检、开盘申请〕→砼浇筑→下一层结构定位放线→重复上述施工工序直至顶。=3\*GB2⑶内装修工程门窗框安装→室内墙面抹灰→楼地面→门窗安装、油漆→五金安装、内部清理→通水通电、竣工。=4\*GB2⑷外装修工程外装修工程遵循先上后下原那么,屋面工程〔包括烟道、透气孔、压顶、找平层〕结束后,进行大面积装饰,塑钢门窗在装修中逐步插入。施工准备现场道路本工程北靠北京西路,南临规划道路,交通较为方便。场内道路采用级配砂石铺垫,压路机压。机械准备=1\*GB2⑴设2台搅拌机,2台水泵。=2\*GB2⑵现场设钢筋切断机1台,调直机1台,电焊机2台,1台对焊机。=3\*GB2⑶现场设木工锯,木工刨各1台。=4\*GB2⑷回填期间设打夯机2台。=5\*GB2⑸现场设塔吊2台。3、施工用电施工用电已由建设单位引入现场;根据工程特点,设总配电箱1个,塔吊、搅抖站、搅拌机、切断机、调直机、对焊机、木工棚、楼层用电、生活区各配置配电箱1个;电源均采用三相五线制;各分支均采用钢管埋地;各种机械均设置接零、接地保护。具体配电箱位置详见总施工平面图。施工用水施工用水采用深井水自来水,并砌筑一蓄水池进行蓄水。楼层用水采用钢管焊接给水管,每层留一出水口;给水管不置蓄水池内,由潜水泵进行送水。生活用水生活用水采用自来水。劳动力安排=1\*GB2⑴结构期间:瓦工40人;钢筋工15人;木工15人;放线工2人;材料1人;机工4人;电工2人;水暖工2人;架子工8人;电焊工2人;壮工20人。=2\*GB2⑵装修期间抹灰工60人;木工4人;油工8人;电工6人;水暖工10人。四、主要施工方法1、施工测量放线=1\*GB2⑴施工测量根本要求A、西夏建材城生活区17#、30#住宅楼定位依据:西夏建材城生活区工程总体规划图,北京路、规划道路永久性定位B、根据工程特点及<建筑工程施工测量规程>DBI01-21-95,4、3、2条,此工程设置精度等级为二级,测角中误差±12,边长相对误差1/15000。C、根据施工组织设计中进度控制测量工作进度,明确对工程效劳,对工程进度负责的工作目的。=2\*GB2⑵工程定位A、根据工程特点,平面布置和定位原那么,设置一横一纵两条主控线即27#楼:〔A〕轴线和〔1〕轴线;30#楼:〔A〕轴线和〔1〕轴线。根据主轴线设置两条次轴线即27#楼:〔H〕轴线和〔27〕轴线;30#楼:〔H〕轴线和〔27〕轴线。B、主、次控轴线定位时均布置引桩,引桩采用木桩,后砌一水泥砂浆砖墩;并将轴线标注在四周永久性建筑物或构造物上,施测完成后报建设单位、监理单位确认后另以妥善保护。C、控轴线沿结构逐层弹在墙上,用以控制楼层定位。D、水准点:建设单位给定准点,建筑物±.500m。=3\*GB2⑶根底测量A、在开挖前,基坑根据平面布置,轴线控制桩为基准定出基坑长、宽度,作为拉小线的依据;根据结构要求,条基外侧1100mm为砂砾垫层边,考虑放坡,撒上白灰线,进行开挖。B、在垫层上进行根底定位放线前,以建筑物平面控制线为准,校测建筑物轴线控制桩无误后,再用经纬仪以正倒镜挑直法直接投测各轴线。C、标高由水准点引测至坑底。=4\*GB2⑷结构施工测量A、首层放线验收后,主控轴一引至外墙立面上,作为以上务层主轴线竖身高以测的基准。B、施工层放线时,应在结构平面上校投测轴线,闭合后再测设细部尺寸和边线。C、标高竖向传递设置3个标高点,以其平均点引测水平线折平时,尽量将水准仪安置在测点范围内中心位置,进行测设。2、基坑开挖本工种设计地基换工,夯填砂砾垫层1100mm;根据此特点,采用机械大开挖,留200mm厚进行挖工、铲平。开挖时,根据现场实际土质,按标准要求1:0.33放坡,反铲挖掘机挖土。开挖出的土,根据现场实际情况,尽量留足需用的好土,多余土方挖出,防止二次搬运。人工开挖时,由技术员抄平好水平控制小木桩,用方铲铲平。挖掘机挖土应该从上而下施工,禁止采用挖空底脚的操作方法。机械挖土,先发出信号,挖土的时候,挖掘机操作范围内,不许进行其他工作,装土的时候,任何人都不能停留在装土车上。3、砌筑工程=1\*GB2⑴材料砖:MU15多孔砖,毛石根底采用MU30毛石。砂浆:±0.00以下采用M10水泥砂浆,一、二、三、四层采用M10混合砂浆,五层以上采用M7.5混合砂浆。=2\*GB2⑵砌筑要求A、开工前由工长对所管辖班组下发技术交底。B、砌筑前应提前浇水湿润砖块,水率保持在10%-15%。C、砌筑采用满铺满挤“三一砌筑法“,要求灰浆饱满,灰缝8-12mm。D、外墙转角处应同时砌筑,内外墙交接处必须留斜槎,槎子长度不小于墙体高度的2/3,槎子必须平直、通顺。E、隔墙与墙不同时砌筑又不留成斜槎时可于墙中引出阳槎或在墙的灰缝中预埋拉结筋,每道不少于2根。F、接槎时必须将外表清理干净,浇水湿润,填实砂浆,保持灰缝平直。G、砖墙按图纸要求每50mm设置2φ6钢筋与构造柱拉结,具体要求见结构总说明。H、施工时需留置临时洞口,其侧边离交接处的墙面不少于500mm,顶部设边梁。4、钢筋工程=1\*GB2⑴凡进场钢筋须具备材质证明,原材料须取样试验,经复试合格前方可使用。=2\*GB2⑵钢筋绑扎前应仔细对照图纸进行翻样,根据翻样配料,施工前由工长对所管辖班组下发技术交底,准备施工工具,做好施工的准备工作。=3\*GB2⑶板中受力钢筋搭接,=1\*ROMANI级钢30d,=2\*ROMANII级钢40d,搭接位置:上部钢筋在跨中1/3范围内,下部钢筋在支座1/3范围内。=4\*GB2⑷钢筋保护层:根底40mm,柱、梁30mm,板20mm。保护层采用50mm×50mm的水泥砂浆块。板上部钢筋用马凳按梅花状支起。=5\*GB2⑸所有钢筋绑扎,须填写隐检记录,质评资料及目检记录,验收合格前方可进行下道工序。5、砼工程=1\*GB2⑴水泥进场后须做复试,经复试合格后由试验室下达配合比。施工中严格掌握各种材料的用量,并在搅拌机前进行标识,注明每立方米、每盘用量。同时搅拌时,须车车进磅,做好记录。=2\*GB2⑵浇筑前,对模板内杂物及油污、泥土清理干净。=3\*GB2⑶投料顺序:石子→水泥→砂子。=4\*GB2⑷本工程均采用插入式振捣器,一次浇筑厚度不宜超过振捣器作用局部长度的倍,捣实砼的移动间距不宜大于振捣器作用半径的倍。=5\*GB2⑸砼浇筑后1昼夜浇水养护,养护期不少于7d,砼强度未到达MPa之前不得上人作业。6、模板工程=1\*GB2⑴本工程模板采用钢木混合模板。模板支搭的标高、截面尺寸、平整度、垂直度应到达质量验收标准,以满足其钢度,稳定性要求。=2\*GB2⑵模板支撑应牢固可靠,安装进程中须有防倾覆的临时固定措施。=3\*GB2⑶本工程选用851脱模剂,每撤除一次模板经清理后涂刷脱模剂,再重新组装,以保证砼的外观质量。架子工程=1\*GB2⑴本工程采用双排架子防护,外设立杆距墙2m,里皮距墙50cm,立杆间距,顺水间距,间距不大于1m。=2\*GB2⑵架子底部夯实,垫木板,绑扫地杆。=3\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职动物营养管理应用(应用技术)试题及答案
- 2025年大学三年级(食品营养与健康)营养配餐设计试题及答案
- 2025年中职城镇建设(城镇建设基础)试题及答案
- 2025年高职机电设备安装技术(机电设备安装)试题及答案
- 2025年大学物业服务(小区管理)试题及答案
- 2025年高职(机电一体化技术)气动传动实训阶段测试题及答案
- 2025年大学生物学(生物学案例分析)试题及答案
- 2025年大学大三(园林)园林工程施工技术试题及答案
- 2025年大学物理学与人类文明(量子物理与现代科技)试题及答案
- 2025年高职历史(考古学基础)试题及答案
- 数字孪生方案
- 金融领域人工智能算法应用伦理与安全评规范
- 2026长治日报社工作人员招聘劳务派遣人员5人备考题库及答案1套
- 2023年司法鉴定所党支部年终总结
- 向规范要50分规范答题主题班会-课件
- 肿瘤生物学1(完整版)
- cie1931年标准色度观测者的光谱色品坐标
- 2023-2024学年广东省广州市小学数学二年级上册期末自我评估试题
- YS/T 971-2014钛镍形状记忆合金丝材
- 钴冶金概述课件
- 方小丹建筑地基基础设计的若干问题课件
评论
0/150
提交评论