收藏 分销(赏)

基于单片机的智能门禁系统.pdf

上传人:曲**** 文档编号:462070 上传时间:2023-10-11 格式:PDF 页数:60 大小:3MB
下载 相关 举报
基于单片机的智能门禁系统.pdf_第1页
第1页 / 共60页
基于单片机的智能门禁系统.pdf_第2页
第2页 / 共60页
基于单片机的智能门禁系统.pdf_第3页
第3页 / 共60页
基于单片机的智能门禁系统.pdf_第4页
第4页 / 共60页
基于单片机的智能门禁系统.pdf_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、“微机原理与接口技术”课程免考课题设计总结报告基于51单片机的智能门禁系统摘要:本文主要介绍了基于51单片机的智能门禁系统的设计,原理和实现过程。该系统融 合了自动照明、语音提示及录音、智能拨号提示、液晶显示、智能密码锁和温度传感器 和查询键盘等接口技术,其智能化的功能,人性化的操作体现了先进的设计理念和学生 对单片机接口和外围设备控制知识的深入理解。该门禁系统会在晚上且有人靠近的时候 自动照明,液晶屏也只会在有人靠近的时候才点亮,充分体现了节能环保的理念。客人 可以通过录音系统留言,主人可以通过输入密码打开门锁,每一步操作都会有相应的液 晶显示或者语音提示,非常人性化。另外还设置了报警功能和

2、温度,时钟显示功能,安 全又舒心。关键词:智能门禁系统,液晶显示,语音提示,红外传感器InteI Iigent Access control systemAbstr ac t:This paper mainly intr oduc es the 51-ser ies mic r oc omputer based on the intelligenc e of the design of the entr anc e guar d system,pr inc iple and r ealization pr oc ess.This system inc or por ates the autom

3、atic lighting,audio and r ec or ding,intelligent dial-up hint,liquid c r ystal display,intelligent loc ks and temper atur e sensor and inquir es the keyboar d inter fac e tec hnology,its intelligent func tion,the oper ation of the human r eflec ts the advanc ed design idea and the students in single

4、 c hip mic r oc omputer inter fac e and per ipher al equipment c ontr ol a better under standing of the knowledge.The entr anc e guar d system in the evening and someone will near automatic lighting,LCD sc r een will only in someone c lose to light up only when,fully embodies the ener gy c onser vat

5、ion and envir onmental pr otec tion c onc ept.Guests c an leave a message by the system,the host c an thr ough the input passwor d unloc k the door,ever y step oper ation will have c or r esponding liquid c r ystal display or voic e pr ompt,ver y human natur e is c hanged.In addition also set the al

6、ar m func tion and temper atur e,the c loc k display func tion,safe and c omfor table.Key wor ds:Intelligent Ac c ess c ontr ol system LCD display voic e pr omptsinfr ar edsensor目录I nt e I I i gent Access cont r o I syst em.11概述.32设计内容与预期目标.32.1设计内容.32.1.1 语音提示及录音模块设计.32.1.2 智能拨号报警设计.32.1.3 自动照明模块设计

7、.42.1.4 液晶显示设计.42.1.5 智能密码锁设计.42.1.6 温度传感器设计.42.2预期目标.42.2.1 功能.42.2.2 优点(特色与创新).53总体结构设计.64硬件设计.84.1语音模块.84.1.1 录音.94.1.2 放音.104.2 液晶模块.114.3 传感器模块:.124.4 键盘模块.144.5 其它.155软件设计.156结果与讨论.546.1功能完成情况:.546.2遇到的困难和解决办法:.557体会与建议.59正文内容:1概述随着社会经济的发展和科学的进步,家居门禁系统设计的人性化、个性化、趣味化、实现多功能已经成为家具门禁设计的一个值得研究拓展和有市

8、场价值的方向。另一方 面,随着人们生活水平的提高,人们开始追求更加健康、和谐的生活环境,如何使家居 生活更加安全舒适也是引起人们困扰的一个问题。针对上述情况,本项目以51单片机为核心结合新型传感器、集成电路,以模块化、积木式的原则设计了多功能智能交 互式家居门禁系统,能满足人们对高品质家居环境的要求设计内容与预期目标2设计内容与预期目标2.1 设计内容多功能智能家居门禁系统把自动照明、语音提示及录音、液晶显示、智能密码锁和 温度传感器,报警模块通过51单片机连接在一起,构成一个智能化、多功能的家庭实 用型门禁系统。2.1.1 语音提示及录音模块设计语音提示:采用ISD1720芯片的SPI模式,

9、通过程序分别录入3段代表不同状态的 话,并记录每一段语音的起始地址。正常工作时,单片机根据各个传感器和内部定时的 状态,操作ISD1720出不同的声音段播放。比如密码错误时,就调用录有“密码错误,请重新输入”这一片段的始末地址,然后放音。留言功能:采用ISD1720芯片的直接按键模式,启用放音模式用后的其他语音地址 留给来访者按键录音,单片机采用自动加一方式,由于受实验模块的影响最多可有15s 左右留言。2.1.2 智能拨号报警设计工作前,将所需拨的号码设置并存放在智能拨号提示器内的数据存储器中。工作时 本机直接接在电话线上,系统处于低功耗的睡眠工作状态,一旦触发开关有动作(比如 输入密码3次

10、错误),提示器便立即被唤醒,进人拨号工作状态,把预先设置好的号码 从电话线上拨发出去,从而实现向远离现场的主人提示。在本实验中,暂时先采用用蜂 鸣器模拟报警的方式,即若密码输入错误达到三次,51单片机即驱动蜂鸣器发出报警 声,只有在输入正确的密码后,才能解除报警。2.1.3 自动照明模块设计采用红外感应技术,在1 m内感应人体发出的红外线,以开关量形式输出信号,单 片机检测到有人后,根据低光照传感器的信号判断走廊是否需要照明装置。2.1.4液晶显示设计液晶显示模块是本系统主要的人际交互平台。红外传感器探测到有人靠近时才会点 亮液晶屏,先是显示一幅家的图案,然后进入正常工作状态,它能根据温度传感

11、器采集 的数据分别显示温度。另外,当有人使用门禁系统后,能够给出相应的提示,如“请输 入密码”,“密码错误,请重新输入”等。2.1.5智能密码锁设计将输入的密码和存储的参数进行比对,如果完全一致,则驱动步进电机打开门锁,并通告语音和液晶提示“密码正确,欢迎光临”,如果有留言,此时液晶屏上面还会提 醒有多少段留言;如果不一致,则语音提示和液晶均提示“密码错误,请重新输入”。2.1.6温度传感器设计传感器采集环境的温度,并将相应的数据通过单片机处理后送到液晶显示屏显示。2.2 预期目标2.2.1 功能本项目实现的功能如下:1有人靠近时,红外传感器发出信号,使液晶屏点亮,液晶屏显示欢迎词及实时温度。

12、2晚上且有人靠近时,红外传感器也光敏电路工作,启动照明装置。3主人通过输入密码,打开门锁,并且可以通过液晶屏获知是否有留言,有几段留言。其中打开门锁,用驱动步进电机模拟。4客人如果按门铃无人接听,达到3次液晶屏上会提示“主人暂不在家,欢迎使用留言 功能”,即可以按录音键,使用留言功能。主人叵I家后可以收听留言。5输入密码时,液晶屏给出相应操作提示,密码错误时提醒重新输入。同时一,也会给出 相应的语音提示。6密码输入3次错误,启动报警装置。其中打开报警装置用驱动蜂鸣器模拟,输入正确 密码可以解除报警。2.2.2优点(特色与创新)通过我们的努力与优化,该系统应具有以下优点:1操作上:设置合理,简洁

13、易用,注意交互除了最基本的通过输入密码开关门以为,还配备了留言,温度显示等人性化功能与报警 等安全措施,具有较高的合理性与实用性。2提示方式上:设置合理,LCD液晶显示为主,语音提示为辅,安排得当每一步操作都有相应的LCD液晶显示的提示,在面对某些相对较为重要的提示时,采 取语音与液晶共同提示,从而使交互性更强。同时,语音提示的音量可以调整到最适合 用户的大小,更体现出人性化。3在系统内部功能上:以单片机为核心,和用户输入,显示输出等模块紧密结合 多功能智能家居门禁系统把自动照明、语音提示及录音、智能拨号提示、液晶显示、智 能密码锁和温度传感器通过51单片机连接在一起,构成一个智能化、多功能的

14、家庭实 用型门禁系统。4在器件选用上:充分利用老师配给的试验箱,能用已有器件模拟的尽量模拟 这样做一方面可以和课程要求紧密结合,温习了很多课程要求做的实验,比如查询时键 盘,DS18B20传感器温度控制实验等;另一方面,也相应降低了对新的一些器件的实 验要求,节约了人力物力,保证了项目在短时间内的可实现性。另外,我们选择用驱动 步进电机模拟开锁,驱动蜂鸣器模拟报警,用加热电阻的方式来模拟温度变化,虽然只 是一个简单的步进电机或者蜂鸣器,但确实使我们的系统拥有了更加丰富的自山度。5环保性:我们的项目充分体现了节能环保性比如只在有人靠近需要操作时液晶屏才会点亮。作为一名工科的学生和日后的科技工作

15、者,无论我们做什么项目,我们都要吧节能环保考虑在内。也许只是我们在设计上,不 经意的一笔,却能在节能环保上面带来巨大的收益。6美观性:多次修改,充分保证美观性开机画面,提示图案,都是我们修改多次后的产物,非常美观动人,生动幽默,吸引人 的注意。语言也十分简洁合理,处处体现着一种美。3总体结构设计主程序逻辑控制:总体硬件关系图:我们设计的智能门禁系统,具体来说是以51单片机为核心将几个模块的功能紧密,人性化地结合在一起,并实现语音,液晶等多方面的交互功能。在具体的实践过程中,我们充分利用试验箱的模块,例如键盘模块,语音模块,显 示模块,温度模块均是宜接利用实验箱已有模块完成的,而报警模块和开锁模

16、块也是利 用实验箱中的蜂鸣器和步进电机分别模拟的。在项目完成过程中,我们先是学习课本中的基础知识,然后把每一模块的功能单独 实现,这样有多个好处,一是循序渐进,成功实现的可能性较大,而是可以测试试验箱 的模块是否可用,如果是坏的,应该更加更换,这样如果最后把这些模块组合到一起时,万一功能无法正常实现,我们也可以把调试的重心放在软件程序上,不用怀疑硬件模块 是否可用,从而浪费大量的时间。液晶模块是我们这一项目的主体模块,我们首先实现的是液晶的显示功能:开机时 显示一幅家的图案,然后跳转到欢迎界面(待机界面)。第二步实现的是温度在液晶上 的显示功能,即在欢迎界面中显示实时温度,其中我们用加热电阻的

17、方式来模拟温度的 变化。第三步实现的是键盘模块与显示模块的结合,输入正确密码即可用驱动步进电机。第四步实现的语言模块即报警模块的功能,即在密码输入错误时能够调用相应的语言片 段,超过三次密码错误时能够驱动蜂鸣器报警。第五步实现的是其他功能的实现,比如 照明模块等。总之,我们是按先主后次,先急后缓的顺序来展开项目的,取得了较为良好的效果。4硬件设计4.1语音模块密码正褊:密码正 确,欢迎回家,按留言键:主人暂不 在家,欢迎留言。:语音芯片选择:ISD1720Vc c D1ISD170028V$SDTed227INT/RDYRESETMISO26FWD425ERASEMOSI524reTSCLK6

18、23PLAYss722*FTVSSA821Vc CA RoseAnalnMIC+9201019VOLMIC-11AGCVS3P21217AUD/AUXSP-1316V$spiVccp1415Sp+实验箱模块:一 A Ncoo q3多 一k k p;a;e 。4.1.1录音录音功能采用:独立按键工作模式。这儿的录音指实现留言功能,包括留言和听取留言,以及相关的功能设置。ISD1720的独立按键工作模式录放电路非常简单,而且功能强大。不仅有录、放功能,还有快进、擦除、音量控制、直通放音和复位等功能。这些功能仅仅通过按键就可完成。录音操作:录音:按下REC键,/REC管脚电平变低后开始录音,直到松开

19、按键使电平拉高或者芯 片录满时结束。录音结束后,录音指针自动移向下一个有效,而放音指针则指向刚刚录 完的那段语音。听取留言,即放音操作:放音操作有两种模式,分别是边沿触发和电平触发,都由/PLAY管脚触发。A)边沿触发模式:点按一下PLAY键,/PLAY管脚电平变低便开始播放当前段的语音,并在遇到EOM标志 后自动停止。放音结束后,播放指针停留在刚播放的语音起始地址处,再次点按放音键 会重新播放刚才的语音。在放音期间,LED灯会闪烁直到放音结束时熄灭。如果在放音 期间点按放音键会停止放音。B)电平放音模式:如果一直按住PLAY键,使/PLAY管脚电平持续为低,那么会将芯片内所有语音信息播 放出

20、来,并且循环播放直到松开按键将/PLAY管脚电平拉高。在放音期间LED闪烁。当 放音停止,播放指针会停留在当前停止的语音段起始位置。快进操作:点按一下FWD按钮将/FWD端拉低,会启动快进操作。快进操作用来将播放指针移向下 一段语音信息。当播放指针到达最后一段语音处时,再次快进,指针会返回到第一段语 音。当下降沿来到/FWD端时,快进操作还要决定于芯片当时的状态:A)如果芯片在掉电状态并且当前播放指针的位置不在最后一段,那么指针会前进一段,到达下一段语音处。B)如果芯片在掉电状态并且当前播放指针的位置在最后一段,那么指针会返回到第一 段语音处。C)如果芯片正在播放一段语音(非最后一段),那么此

21、时放音停止,播放指针前进到 下一段,紧接着播放新的语音。D)如果芯片正在播放最一段语音,那么此时,放音停止,播放指针返回到第一段语音,紧接着播放第一段语音。擦除操作:擦除操作分为单段擦除和全体擦除两种擦除方式,区别如下:A)单个擦除:只有第一段或最后一段语音可以被单个擦除。点按一下ERASE健将/ERASE管脚拉低,这时具体的擦除情况要看播放指针的状态:如果芯片空闲并且播放指针指向第一段语音,则会删除第一段语音,播放指针指向新 的第一段语音(执行擦除操作前的第二段)如果芯片空闲并且播放指针指向最后一段语音,则会删除最后一段语音,播放指针指 向新的最后一段语音(执行擦除操作前的倒数第二段)如果芯

22、片空闲并且播放指针指向没有指向第一或最后一段语音,则不会删除任何语音,播放指针也不会被收变 如果芯片当前正在播放第一段或最后一段语音,点按下ERASE键会删除当前语音。B)全体擦除:当按下ERASE键将/ERASE管脚电平拉低超过2.5秒钟,会触发全体擦除操作,删除全 部语音信息。复位操作:如果用RESET控制此管脚,建议/RESET管脚与 之间连接一个0.1 口 F电容。当/RESET被 触发,芯片将播放指针和录音指针都放置在最后一段语音信息的位置。音量操作:点按一下VOL键将/VOL管脚拉低会收变音量大小。每按一下,音量会减小一档,再到达 最小档后再按的话,会增加音量直到最大档,如此循环。

23、总共有8个音量档供用户选择,每一档会收变4dB。复位操作会将音量档放在默认位置,即最大音量。4.1.2放音放音功能采用:SPI串行工作模式。此处的放音包括两部分,一部分是事先把需要的语 音部分录入,另一部分是在相应的需要放音的时候放音。只需要SCLKMOSI SSMOSO四个接口,在遵循SPI协议的前提下即可实现非常强大的 功能。主控单片机主要通过四线(SCLK,MOST,MISO,/SS)SPI协议对ISD1700进行串 行通信。ISD1700作为从机,几乎所有的操作都可以通过这个SPI协议来完成。为了兼容 独立按键模式,一些SPI命令:PLAY,REC,ERASE,FWD,RESET和GL

24、OBAJERASE的运行 类似于相应的独立按键模式的操作。另外,SET_PLAY,SET_REC,SET_ERASE命令允许用 户指定录音、放音和擦除的开始和结束地址。M外,还有一些命令可以访问APC寄存器,用来设置芯片模拟输入的方式。SPI协议:ISD1700系列的SPI串行接口操作遵照以下协议:1.一个SPI处理开始于/SS管脚的下降沿。2.在一个完整的SPI指令传输周期,/SS管脚必须保持低电平。3.数据在SCLK的上升沿锁存在芯片的MOSI管脚,在SCLK的下降沿从MISO管脚输出,并 且首先移出低位。4.SPI指令操作码包括命令字节,数据字节和地址字节,这决定于1700的指令类5.当

25、命令字及地址数据输入到MOSI管脚时,同时状态寄存器和当前行地址信息从MISO 管脚移出。6.一个SPI处理在/SS变高后启动。7.在完成一个SPI命令的操作后,会启动一个中断信息,并且持续完成通信协议后,只有用set _play指令加上语言的地址即可播放,se t-r e cor d指令即 可实现录音。非常方便,适用于较为复杂的情况下。具体见软件部分。4.2液晶模块设备:128X64点阵型液晶显示屏ooooooooe o1本实验箱采用内置控制器、不带字库的图形点阵液晶显示模块,点阵数为128X64。它主要由行驱动器/列驱动器及128X64全点阵液晶显示器组成,可完成图形显示也可以显示8X4个

26、(16X16点阵)汉字。2对液晶屏进行一次写、擦除操作的最小单元是8*1个像素,通过对这些小单元的不断写和擦除操作,可以造成动态显示的效果3把液晶模块插到目标板中,用8P数据线将80c51MCU模块的JDO(P0 0)JD1(P1 口)分别与液晶显示模块的JD1A7JD2A7相连;液晶显示模块的电源短路帽JD5A7打在右端。4.3温度传感器模块:-:温度传感器:热释电红外传感器RE200B。通过专用芯片BISS0001与51单片机相连DS18B20DS18B20采用外接电源方式工作,一线测温一线与C51连接,测出的数据放在寄存器 中,将数据经过BCD码转换后送到LCD显示。D S 1 8 B

27、2 0 弱猊 独特的单线接口仅需一个端口引脚进行通讯 每个器件有唯一的64位的序列号存储在内部存储器中 简单的多点分布式测温应用 无需外部器件 可通过数据线供电。供电范围为3.0V到5.5V。测温范围为-55+125(67+257F)在一10+85范围内精确度为5 温度计分辨率可以被使用者选择为912位 最多在750ms内将温度转换为12位数字 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序DS18B20数字温度计提供9-12位摄氏温度测量而且有一个由高低电平触发的可编 程的不因电源消失而改变的报警功能。DS18B20通过一个单线接口发送或接受信息,因 此在中央处理器和DS1

28、8B20之间仅需一条连接线(加上地线)。它的测温范围为-55+125,并且在-10+85精度为5。除此之外,DS18B20能直接从单线通讯线上 汲取能量,除去了对外部电源的需求。4.4键盘模块键盘模块门 铃 键留 言 键按门铃键即可使门铃音乐响起,按留言键即可留言,输入的按键有十六颗,密码为六位 密码,这样可以大大增强安全性。初始密码为123456.若不采用7279,那么按键数目则不够,因此,虽然7279使用较为麻烦,在本项目的实现中仍使用7279.控制键盘模块。7279的详细说明见教材,此处不展开。4.5其它一:接口分配本项目模块众多,因此接口众多,如果合理优化使用PO,Pl,P2,P3 口

29、是一项不可缺 少的内容。PO,P 1.0-5;接液晶P1.6;接蜂鸣器的IN;P1.7;接 7279 的 CSP3.4;接语音芯片的SCLKP3.5;接语音芯片ISD1720的MOSIP3.6;接语音芯片ISD1720的MISOP3.7;接6口1720 的 SSP2.4;接 7279 的 CLKP2.5;接 7279 的 DATP2.6;接 7279 的 KEYP2.7;接温度传感器DS 18B20的OUT5软件设计1主程序在前,模块子程序在后,有详细注释,省略1000行左右的表格数据。2本程序多使用函数调用,相应函数在相应模块内,并按被调用的先后顺序进行排列-液晶模块动态刷新实现:初始.化开

30、左延时 半屏 幕开右 半屏 幕示半幕 显右屏本项目液晶显示的特色:1动静结合:比如(待机时)动态显示:温度 静态显示:欢迎辞2 图文并茂:比如图:密码错误3次时的警铃画面3 动画效果:比如动画:密码正确时的开门动画二语音模块SPI模式时序:SSSCLKMOSIMISO指定区间录音:1参考手册II 力唤A到上纣U仙17治家夕出7*机I力阳I|uq F-占织D VTATI宁片令i:出&犬忐17淮SRX列用iSR)的PIK*I看为I?足2实际采用如下方案:删除了不少不必要的步骤,简化了一些必要步骤。但是只针对本 项目有效,面对其它更复杂的问题时如此简化的方案不一定可以实现。初始化1720 上 电录音

31、指 令发送 次SPI指 令结束指定区间放音:完全类似与指定区间录音。只要把录音指令改为放音指令即可。三读取温度延时,等待 AD转换结束准备读温度 前复位发出读温度 命令四:7279模块流程图初始化7279,用来输入密码五中断模块DOORBELL中断服务程序 使蜂鸣器发声,模拟门铃BACKHOME中断服务程序 主人 回家按键后进入BACKHOME函数采用独立键盘实现 下降沿触发,需要去 抖动,采用延时5ms六主流程图INT0JNT1 中断TO中断(高优先级)设置TO为高优先级中断(因为 在DOORBELL程序是在INTO 中断中实现的,而里面又要用 到TO中断来实现乐曲的演奏;如果不设置TO为高

32、优先级,则TO中断被INTO中断所屏 蔽,导致蜂鸣器只能够一直发 同一频率的声音,同理T1)调用初始化函数 进行初始化0LCD控制器复位输入正确密 码,解除报警驱动蜂鸣器报 警置起留言标志 并提示留言回到待机入口地址以下为包含详细注释的完整程序XPOS EQU21HYPOS EQU 22HTEMPER_H EQU 23HTEMPER L EQU 24HTOCOUNT EQU 25HBELLCOUNT EQU 26HZHENGSHU_H EQU 29HZHENGSHU_L EQU 2AHXIAOSHU_H EQU 2BHXIAOSHU_L EQU 2CHDATA IN EQU 2DHDATA O

33、UT EQU 2FHCODE_EXIST EQU 30HCODE IN EQU 36HBIT C EQU 3EHTIMERI EQU 3CHTIMER2 EQU 3DHCUO EQU 3FH;变量定义,从21H到3FH,空出可以位寻址的20H作为8个可用标记位YUYINZHILING EQU 40H;40H-45H为语音指令SPI的1至6位存储单元,46H-4BH为返回的寄存器内容FLAG1 EQU OOHBAOJING_FLAG EQU 01H;定义标志位YOULIUYAN EQU 02H;PO 口全部用于控制液晶RSPIN BITP 1.0RWPIN BITP1.1EPIN BIT Pl.

34、2CS1PIN BIT Pl.3CS2PIN BIT Pl.4LCDRSTB1TP1.5FENGMINGQI BIT Pl.6CS BIT Pl.7SCLK ISD BITP3.4MOSI BIT P3.5MISO BIT P3.6SS BITP3.7CLK BIT P2.4DAT BIT P2.5KEY BIT P2.6;P0,P1.05位被液晶占据,;接蜂鸣器的IN;接 7279 的 CS;接语音芯片的SCLK;接语音芯片ISD1720的MOSI;接语音芯片ISD1720的MISO;接 ISD1720 的 SS;接 7279 的 CLK;接 7279 的 DAT;接 7279 的 KEYO

35、UT DS18B20 BIT P2.7;接温度传感器 DS18B20 的 OUT;定义广脚;本程序多使用函数调用,相应函数在相应模块内,并按被 调用的先后顺序进行排列ORG 0000HLJMP MAINORG 0003HLJMP DOORBELL;跳转到按门铃的中断服务程序ORG 000BHLJMP INTT0;跳转到T0定时器中断服务程序,形成10ms中断,给放音程序使用ORG0013HLJMP BACKHOME;跳转到主人回家的中断服务程序,进LCALL LCDFILL行输密码的操作ORG0100HMAIN:MOV SP,#60HLCALL IN IT;调用初始化函数进行初始化LCALL

36、LCDRESETMOV A,#00H;LCD控制器复位;控制器清屏!*显示开机画面MOVDPTR,#TU_TAB;128*64的图片数据LCALLDIS_TU;显示LCALLDELAY IS;延时LCALLDELAY ISLCALLDELAY ISLCALLDELAY ISLCALLDELAY ISLCALLDELAY ISLCALLDELAY ISLCALLDELAY ISSTART:;作为从其他画面回到待机画面的入口地址*,青MOV A,#00H LCALL LCDFILL*;*静态显示模块“欢迎您,现在温度是”,以后不用再次扫描*LCALL STATIC_DISPLAY*LOOP:;作为

37、待机界面更新温度循环入口地址,因为更新温度不需要更新这是钱炜的家,欢迎您等字符;*判断按门铃次数次数是否达到3次,若达到,则提示进 彳丁己*MOV A,BELLCOUNT CJNE A,#3H,DEALTEMPER SETB YOULIUYAN LCALL DISPLAY_LIUYAN LCALL DELAY IS;置起留言标志;在液晶屏上提示留言功能LCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY

38、 ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY ISLCALL DELAY IS;使提示字符大概保持8秒钟,用软件定时20*0.4=8SLJMP START;因为要由提示画面回到待机画面,所以入口地址应为START,需要清屏;*获取有两位小数精度的温度,整数高位存入29H,低位存入2AH,小数高 一位存入2BH,低位存入2cH,并显示*DEALTEMPER:LCALL GETTEMPERLC

39、ALL SHOW TEMPERLJMP LOOP;以上为主函数;#;#;以下为各子函数,分为主函数初始化模块,中断模块,温度传感器DS18B20模块,;液晶LCD12864模块,各模块用前后各5条”*”隔开,模块内的函数用1条较短*隔开9*主函 数初始化模块,*初始化程序*;完成堆栈指针的初始化,开INTO,INT1,TO中断,设置TO为高优先级中断(因为在 DOORBELL程序是在INTO中断中实现的,而里面又要用到TO中断来实现乐曲的演奏;如果不设置TO为高优先级,则TO中断被INTO中断所屏蔽,导致蜂鸣器只能够一直 发同一频率的声音,同理T1)设置定时器0和1的初值,T1定时50ms,T

40、O定时10ms,设置 INTO,INTI;为边沿触发方式,将密码输错次数清零,清除报警标志,并将密码所在单元赋值 IN IT:MOV IE,#87HSETB PTO;应把TO设置为高优先级的中断SETB PT1MOV TMOD,#11HMOV TH1,#3CHMOV TL1,#OBOHMOV TH0,#0D8HMOV TL0,#0F0H SETB ITO SETB IT1MOV BELLCOUNT,#00HCLR BAOJING_FLAGMOV 3FH,#00HMOV30H,#01MOV 31H,#01MOV32H,#01MOV33H,#01MOV 34H,#01 MOV35H,#01 LCA

41、LL RESET LCALL DELAY IS LCALL UPLCALL DELAY IS RET,99999*,初始化函数RESET:MOV 40H,#03H MOV41h,#OOH MOV A,40H ACALL SPIO MOVA,41H ACALL SPIO SETB SSRET,*SD 1720 上电,UP:MOV 40H,#01H MOV41H,#OOH MOVA,40H ACALL SPIO M0VA,41H ACALL SPIO SETB SS RET*SD720 下电,DSTOP:MOV 40H,#07HMOV41H,#OOH MOV A,40H ACALL SPIO M0

42、VA,41H ACALL SPIO SETB SS RET*SPI指令发送,寄存器内容返回函数函数SPIO:CLR MOSI;先输出低位,SETB SCLK ISDCLR SSMOV R6,#8SPI01:CLR SCLK ISDNOPNOPMOV C,MISO;将数据也读了进来,A中即为读进来的数RRCAMOV MOSI,CSETB SCLKJSDDJNZ R6,SPIO1CLR MOSI RET*-读 寄 犬RDSTATUS:MOV 20h,#05HMOV21h,#OOHMOV 22H,#00HMOV A,20hACALL SPIOMOVA,21hACALL SPIOMOV A,22HAC

43、ALL SPIOSETB SSRET9,9*中 断模块,*D00R3ELL 中断服务程序,使蜂鸣器发声,模I*;用单次脉冲来实现下降沿中断DOORBELL:INC BELLCOUNT;按铃次数增一,到达三次时提示留言PUSHACCPUSHBSETB RS0;保护现场MOV DPTR,#DAT_MUSIC;音乐编码地址MOV 25H,#00MOV B,#0MUSIC1:NOPCLRAMOVC A,A+DPTRJZ ENDONOPMOV R6,AINC DPTRMOVA,BMOVC A,A+DPTRMOV R7,ASETB TROMUSIC2:NOPCPLP1.6MOV A,R6MOV R3,AL

44、CALL DELMOV A,R7CJNE A,25H,MUSIC2 冲断计数器(25H)=R7 否?;不等,则继续循环MOV 25H,#00H;等于,则取下一代码INC DPTRLJMP MUSIC 1DEL:NOPDEL3:MOV R4,#02HDEL4:NOPDJNZ R4,DEL4NOPDJNZ R3,DEL3RETENDO:CLR RSOPOPBPOPACCCLR TRORETI;*BACKHOME 中断服务程序,主人家按键后进 入 BACKHOME 函数*;采用独立键盘实现下降沿触发,需要去抖动,采用延时5ms去抖动 BACKHOME:SETB P3.3MOV TIMERI,#10S

45、_DELAY1:LCALL D500MSDJNZ TIMER 1,S_DELAY 1;延时-5ms 去抖动JNB P3.3,EXIT1RETIEXIT1:PUSH ACCPUSHBSETB RSOLOOP 10:MOV A,#00HLCALL LCDFILLMOV XPOS,#0MOV YPOS,#0MOV DPTR,#BBS13MOV RO,#5L00P4:LCALLPUTCHARDOTLCALLPUTCHARDOTDJNZ RO,LOOP4;在液晶上显示请输入密码;%使用语音芯片%MOV A,#80H LCALL SPIO MOV A,#00H LCALL SPIO MOV A,#1 OH

46、 LCALL SPIO MOV A,#00H LCALL SPIO MOVA,#2FH LCALL SPIO MOV A,#00H LCALL SPIOSETB SS;%SETB CLKCLR CSSETB KEYSETB DAT;初始化7279弓|脚MOV TIMERI,#50S_DELAY:LCALL D500MSDJNZ TIMER 1,S_DELAYMOV DATA OUT,#OA4H;初始化7279,用来输入密码CALL SEND7279SETB CSMOV XPOS,#0MOV YPOS,#2MOV R0,#36HMAIN7279:JB KEY,MAIN7279MOV DATA O

47、UT,#15HLCALL SEND7279LCALL RECEIVECJNE RO,#3CH,MIMASHAOYU6;输入未到六个,则继续循一环LJMP COMPAREMIMASHAOYU6:MOV R0,DATA IN INC ROMOV DPTR,#BBS14LCALLPUTCHARDOTWAIT:;JNB ENTER,MA1NEXIT JNB KEY,WAITLJMP MAIN7279COMPARE:MOVA,36HCJNE A,30H,ERROR 1MOVA,37HCJNE A,31H,ERROR 1MOVA,38HCJNE A,32H,ERROR 1MOVA,39HCJNE A,33

48、H,ERROR 1MOV A,3 AHCJNE A,34H,ERROR 1MOVA,3BHCJNE A,35H,ERROR 1LJMP RIGHT;比较,看密码是否正确ERROR1:LJMP ERRORRIGHT:;%使用语音芯片提示密码正 确%MOVA,#80H LCALL SPIO MOVA,#OOH LCALL SPIOMOVA,#50H LCALL SPIO MOVA,#OOH LCALL SPIO M0VA,#6FH LCALL SPIO MOVA,#OOH LCALL SPIOSETB SS;%MOV RO,#16 MOVA,#OOH LCALL LCDFILL MOV XPOS,

49、#0 MOV YPOS,#0MOV DPTR,#BBS16;密码正确后该显示的字符地址送DPTRLOOP6:LCALL PUTCHARDOTLCALL PUTCHARDOT;显示恭喜密码正确等字DJNZ RO,LOOP6CLR BAOJING_FLAGMOV 3FH,#00H;密码正确则清除报警标志和错误计数LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELAY IS LCALL DELA

50、Y IS LCALL DELAY ISMOV DPTR,#OPENDOOR;显示开门动画LCALL DIS TULCALL DELAY ISLCALL DISTULCALL DELAY ISLCALL DISTULCALL DELAY ISLCALL DISTULCALL DELAY ISLCALL DIS_TULCALL DELAY ISLCALL DIS_TULCALL DELAY ISLCALL DISTULCALL DELAY ISLCALL DISTULCALL DELAY ISLCALL DISTULCALL DELAY ISLCALL DIS_TULCALL DELAY IS;驱

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 环境建筑 > 材料/保温

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服