版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《微机应用设计与实践》课程设计23-《微机应用设计与实践》课程设计设计题目小区楼道开门控制系统系别专业班级学生姓名学号 指导教师2012年07月05日目录TOC\o"1-3"\h\u15360一、设计任务225331.1设计课题 3127131.2设计目的 327751.3设计任务 3162371.4基本设计要求 3189331.5扩展功能提示 4141951.6设计环节及进程安排 423344二、总体方案设计与方案论证225332.1总体方案设计 5127132.2方案论证及选择 523344三、总框图及总体软件设计说明263743.1总流程图 749863.2总体软件设计说明 923344四、系统资源分配说明55684.1硬件资源分配 10267604.2片内系统资源存储空间分配 122449423344五、局部程序设计说明91195.1入口程序初始化 13284495.2拆字及显示内容送显缓模块 13258675.3显示更新子程序 14242355.4消抖动子程序模块 1591195.5有按键时发出按键声子程序模块 16284495.6无按键后30秒自动返回到时钟状态模块 16258675.7定时器T1中断服务模块 17242355.8房间处理模块模块 175.9密码处理子模块 195.10时钟修改子模块205.11用户密码修改子模块202449423344六、系统功能与操作说明91196.1系统功能描述及操作说明 212449423344七、存在问题与程序改进说明91197.1按键处理问题 22284497.2房号输入问题 22258677.3修改密码问题 22258677.3延时问题 222449423344八、设计总结 232449423344九、参考文献 232449423344附录、源程序 24第一章设计任务1.1设计课题:小区楼道开门控制系统1.2设计目的:通过小型微机应用产品的设计与调试过程,运用微机原理及接口技术课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高发展,通过实践的过程学习与掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。1.3设计任务:设计一个以单片机为核心的楼道开门装置,该装置平时显示时钟信息,也可加入按照一定的节拍交替显示环境温度数据功能,住户通过输入由物业管理员预先设置的密码开启楼道门,住户也可输入房号开启与相应住户之间的对讲门铃并可由住户发来开门信号。装置可由管理员设置新的通行密码、时钟等参数。本课程设计环节进行编程并在单片机实验板上模拟调试实现。1.4基本设计要求:1、八位LED7段数码管显示时钟、密码输入界面、房号输入面以及设定修改参数界面信息。2、基本显示模式为按照24小时制动态显示时、分、秒实时钟信息。3、4×4键盘用于操作及输入参数,应回馈短促的按键音以提供良好的操作手感。4、住户输入6位密码过程为了保密而逐位仅显示“-”符号,按“确定”键后在住户输入正好6位密码的情况下进行密码核对,密码吻合则输出开门驱动控制信号,5秒钟后撤销,输入位数不符或密码不吻合则发出相应提示音。5、住户输入3位房号(101~601、102~602)过程逐位如实显示数码,按“确定”键后在房号符合的情况下发出开启与相应住户之间的对讲门铃的控制信号,该信号维持1秒钟后撤销,此后住户若发来开门信号,则输出开门驱动控制信号,5秒钟后撤销,输入的房号不符则发出相应提示音。6、设置一个外接的“开门”按钮开关,安装于门内用于人员出来时开门操作,检测到该按钮压下后,发出开门驱动控制信号,5秒钟后撤销。对开关量输入信号须进行软件消抖动处理。7、输入管理员密码(6位)经判断吻合的话,进入设定时钟、住户开门密码参数界面,先设定时钟参数,按“确定”键后保存新时钟数据转入设定住户开门密码参数,期间按“取消”键则不保存且退出设定界面,设定参数的过程可用闪烁方式指示当前修改位。8、非基本显示模式下无操作时间超过30秒钟后自动恢复为基本的显示时钟状态。1.5功能扩展提示:(选做)1、开机进行接口部件及数码显示器、指示灯、讯响器等自检。2、在基本显示模式下,每隔一定的时间,穿插显示环境温度信息,包括温度值(保留一位小数)与温度单位符号“oC”,设选用的温度传感变送器将检测的0oC~+100oC温度成比例变换为0~5V电压信号。3、判别错误密码输入三次则封锁密码开门功能五分钟,以限制无止境地探测密码,此后管理员可通过断电后重新上电解除封锁的限制。4、管理员密码修改功能,应判断输入两遍的新密码一致的情况下才替换密码。5、其他功能扩展。1.6设计环节及进程安排:1、布置课题,明确任务、总体方案设计1天2、基本功能控制程序设计及调试3天3、程序功能完善、改进、扩展3天4、答辩及编写设计说明书3天第二章总体方案设计与方案论证2.1总体方案设计根据设计要求,把各个功能按模块式进行编写,注意模块之间的联系。总体有以下几个模块:有定时器0中断服务子程序、程序的总初值化(自检包括蜂鸣器,L0-L15和数码管)、主流程程序。主流程对各个基本子模块进行反复循环调用,其中基本子模块包括:拆字及显示内容送显缓子程序、键盘扫描子程序、调用房间处理子程序(包含对应驱动L0-15灯子程序)、调用密码处理子程序(对应驱动开门并延时灯子程序)、调用时钟修改子程序、调用用户密码修改子程序(包含修改住户开门密码界面子程序)、对PB口输入并消抖子程序、独立按键PB0-7的检测且对应控制门控位子程序、非基本时钟显示界面无操作30S返回子程序、显示更新子程序、按键声处理子程序。每个模块联系密切,相辅相成。2.2方案论证2.2.1LED数码管显示方式:LED数码管为常用的输出外设,基本运行模式时,2路电压值通过它来巡回的显示;节拍设定模式的显示;扩展电压显示模式时,2路电压同时的显示;扩展时间显示模式时,实时钟的显示。实验板上的LED数码管为是8段共阳极的。(1)、LED静态显示方式LED显示器工作于静态显示方式时,各位的共阳极连接在一起并接+5V,每位的段码线分别与一个8位的锁存器输出相连。静态显示方式虽然接口编程容易,但是占用口线较多,如果要增加显示器的位数,则需要增加I/O口的数目,而该设计中需要用到8个LED数码管,单片机的I/O口又是有限的,所以静态显示方式不能采用。(2)、LED动态显示方式将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阳极由相应的I/O线控制,形成各位的分时选通,即为LED动态显示方式。采用这种方式虽然牺牲了单片机的时间,但是换取了I/O端口的减少。2.2.2数码管自检方案的选择:方案一:通过逐一检查一个数码管的每段是否正常,逐个数码管进行检查,达到自检目的。这种方法效果很好观察,是一种不错的选择,但不好实现。方案二:让八段数码管都亮“8.”这种方案程序较为简单,显示效果也比较好。只要在总初始化上给30H~37H赋全亮的立即数(0CH),再调用显示更新子程序,大约保留显示2s左右,即可判断数码管是否正常,与第一种相比较容易实现。2.2.3消抖动方案选择:消抖动的方案包含有硬件方法(电容滤波法、RS触发器消抖电路),消除抖动的软件方法(表决法、滚动滤波法、调用软件延时子程序)。方案一:延时消抖动。通过在按键执行动作后,加入一个延时子程序,延时结束后再检测一下按键的动作,以此来达到消抖动的目的。即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。在键数较少时可用硬件方法消抖动。常利用电容的放电延时,采用并联电容法。方案二:滚动滤波消抖动。比较几个连续的电平值,相等则将其存起来与原态相比,假如该状态与原态不等就认为按键有动作。在本次程序设计中采用了这种消抖动。用几个连续的单元存放最近几次的电平值,比较几个电平值,若相等则存起来与原态相比较,若新态与原态不等则认为一次电平变化。该子程序简单,速度快,所以选择该方案。2.2.4延时时间的选择:由于主程序要不断地循环,在每个子模块中不允许调用软件延时子程序。在这边有两种方法可实现延时;第一,就是累计主程序循环时间(一个周期大概10ms),然后借助DJNZ指令,对某个单元的内容进行减1不为0,返回继续计时,只有将这个单元的内容减到等于0时,才执行下面的内容,这样就起到了延时的效果。第二,就是借助定时器中断服务子程序。23344第三章、总框图及总体软件设计说明3.1总流程图返回主流层返回主流层开始延时等待各芯片退出复位基本初始化设备自检工作初始化显示内容送显缓显示更新驱动密码输入处理房号输入处理开关量输入及消抖动设住户开门密码输出控制设定时钟*长时间无操作处理键盘扫描……3.2总体软件设计说明总初始化:主要由自检包括蜂鸣器,L0-L15LED灯,还有八位LED7段数码管。还有U3,U5芯片的初始化,和一些要用到的单元进行初始化。拆字及显示内容送显缓子程序:对要进行显示的内容进行拆字,当为基本进程(01H)让实时钟3AH、3BH、3CH单元进行拆字,为其他进程时,不进行拆字,直接把需显示的内容直接送给数码管显示缓存单元。键盘扫描子程序:利用反转法得键码再进行查表得出对应的键号,还有按下数字键做出相应事情,按下功能键置某位以便识别。按键声处理子程序:当检测到有按键按下时,会发出短促的声音。定时器T0中断服务子程序:此字程序是对时间进行计时,以致能时钟显示调用房间处理子程序:当输入数据为三位以内的时候,需要将数据按移位的顺序将数字存入数据缓存单元,并完全在数码管上显示数据,等到输入数据为三位时,要进行跟房号(101-601,102-602)对比,正确时要开启对讲信号灯,此时也有可能是密码输入的前三位。调用密码处理子程序:当输入数据位大于三位时,即为输入密码状态,在此过程中,要对不同的进程下,对功能键(确定,撤销,退格)和数字键进行识别,并作出不同的处理动作。只有在输入为六位时,才进行先用户密码后管理员密码的比对,符合用户密码,作出开启开门信号控制灯,为管理员密码时,为时钟修改做准备。显示更新子程序:三种显示状态:正常显示时钟,闪烁显示某位其它照常显示,对输入的数字进行显示。有显示一位数字,一直到能显示六位数字,其中前三位可以直接看见,后三位看不见真正的数字,只显示“-”符号(直接将要显示的内容先存储在数据缓存单元,在送到数码管显示缓冲单元)。调用时钟修改子程序:当密码比对为管理员密码时,先进入时钟修改界面进行时钟修改,而后进行用户密码修改。对PB口输入并消抖子程序:对PB口的输入进行滚动消抖,就是按下按钮后,只有检测到五次地电平数据都相等时,才把这次电平存入新态2EH中,2EH单元的内容推进前态2FH单元中。独立按键PB0-7的检测且对应控制门控位子程序:设置为PB为按下时为有效,且当相应的房号输入正确后,按下相应的PB按键时开启开门控制灯。非基本时钟显示界面无操作30S返回子程序:无按键操作时,无论数码管显示什么,不为时钟显示时,只要延时30s后,自动会返回时钟显示。报警子程序:由于该子程序较小,故直接放在以上需要报警的子程序里面。第23344四章、系统资源分配说明4.1硬件资源分配本次课程设计小区楼道开门控制系统的硬件电路主要由键盘输入模块,数码管显示控制模块,LED灯显示模块,蜂鸣器模块组成。根据实验电路板来设计各个模块的资源分配,使用一片AT89C51芯片作为主驱动的芯片,并使用82C55芯片对I/O引脚进行扩展,由82C55的C口(地址为FEFE)作为键盘的输入模块,由82C55的A口(地址为FEFC)字段码输入口和B口(地址为FEFD)字位码输入口共同组成数码管显示控制模块,由89C51的P1口作为LED灯的显示模块,由P3.2作为蜂鸣器的驱动模块。硬件资源分配名称实现的功能房间号对应的LED灯PB0-PB5住户开门按键LED灯房间号PB7外接开门按钮L0101K0输入0L1201K1输入1L2301K2输入2L3401K3输入3L4501K4输入4L5601K5输入5L7开门信号指示灯K6输入6L8102K7输入7L9202K8输入8L10302K9输入9L11402KA确定键L12502KB撤消键L13602KC退格键P3.2接蜂鸣器键盘表0123456789确定撤销退格无无无4.2片内系统资源存储空间分配AT89C51片内的数据存储空间的范围是00H--7FH,其中00H--1FH为4组通用工作寄存器区,20H--2FH的16个单元的128位可进行位寻址,30H--7FH为用户的RAM区,所以,选择29H--2FH作为滚动滤波的地址单元1CH:存放进程单元1DH,1EH,1FH:为用户密码存储单元2DH,2EH,2FH:为管理员密码存储单元22H:为101~601各用户对讲标志位23H:为102~602各用户对讲标志位16H~1BH:六位输入数字缓存单元26H.0:为确定键标志位26H.1:为撤销键标志位26H.2:为退格键标志位29H~2FH:开关量及消抖动30H~37H:显缓38H~3CH:实时钟4EH,4FH:为30s无键按下返回子程序的存放新旧态50H~56H:为利用软件延时控制单元64H,65H:为键盘扫描的新态和旧态的存放单元进程码安排:基本时钟进程:01H输房号进程:10H、11H、12H输密码进程:13H、14H、15H设时钟进程:20H~25H设住户开门密码:30H~35H第2449423344五章、局部程序设计说明5.1入口程序初始化(包含数码管自检程序)单片机上电后,第一步,调用30ms的延时程序,使实验板上的各个芯片都能完成复位功能,第二步,让蜂鸣器响1秒以检测蜂鸣器的好坏,接着给八个数码管置亮码,驱动八个数码管全亮,检测数码管能否正常显示,第三步,对两片外扩的8255芯片的接口模式以及工作方式进行初始化,第四步,对显示缓冲单元以及存放时钟的单元进行初始化,以确定上电后八个数码管显示数据,第五步,将定时计数器T1赋初值,开启定时计数中断,所赋值的初值要实现定时计数器T1精确定时,在数码管上显示精确时钟信号,第六步,对所用到的存储单元进行初始化,例如,存放用于用户初始密码单元(1DH-1FH),存放用于管理员初始密码单元(2DH-2FH),数码管缓存单元(30H-37H),标志单元(22H,23H),循环次数存放单元(50H-56H)。5.2拆字及显示内容送显缓子程序模块CZ:MOVA,1CH;对进程单元内容进行判断,只有(1CH)=01H时才进行拆字CJNEA,#01H,CZN;MOVR0,#3AH;显示内容送显缓子程序(拆字子程序)。置时钟数据单元首地址(秒单元) MOVR1,#30H ;置显示缓冲单元首地址(对应于最右显示位)CZ1:MOVA,@R0 ;取当前数据单元BCD码 ANLA,#0FH ;保留低4位(个位) MOV@R1,A ;送显缓当前个位单元 INCR1 ;指向显缓当前十位单元 MOVA,@R0 ;再取当前数据单元BCD码 ANLA,#0F0H ;保留高4位(十位) SWAPA ;交换到低4位MOV@R1,A ;送显缓当前十位单元 INCR1 ;指向显缓下一个个位单元 INCR1INCR0 ;指向下一个时钟数据单元 CJNER0,#3DH,CZ1 ;未完继续MOV32H,#10H;32H单元显示“-”,对应的值为10HMOV35H,#10H;35H单元显示“-”,对应的值为10HCZN:RET ;子程序返回工作原理:只有当进程单元为01H(为显示时钟进程),才进行拆字,其他进程直接把需要显示的数据送到数码管显示缓存单元(30H-37H),拆字时,将实时钟的单元(3AH,3BH,3CH)对应的各自拆完后存放于(30H,31H),(32H,33H),(34H,35H);利用R0指向实时钟单元,R1指向数码管显示缓存单元,逐次的将时钟高低字节拆开后分别存放于高低位单元。5.3显示更新子程序模块源程序如下:DISP:MOVR0,#30H;显示更新子程序。置显示缓冲单元首地址MOVR3,#01H;字位码初值(从最右位起)MOVA,R3DISP1:MOVDPTR,#0FEFDH;8255-B口(字位码输出口)MOVX@DPTR,A;输出当前字位码JNB21H.5,DISP2;判断是否有输入正确管理员密码,如无跳转MOVA,R0CJNEA,5FH,DISP2;跟5FH中的内容比较哪位需要闪烁JB21H.6,DISP2;判断该位要显示还是不显示MOVA,#0FFH;显示空格LJMPNEXTPCDISP2:MOVA,@R0;取当前位显示数据码ADDA,#TAB-NEXTPC;加TAB与NEXTPC差址MOVCA,@A+PC;查表得相应字段码NEXTPC:MOVDPTR,#0FEFCH;8255-A口(字段码输出口)MOVX@DPTR,A;输出字段码LCALLD1MS;保持显示1毫秒INCR0;指向下一显示缓冲单元MOVA,#0FFH;关掉段码MOVX@DPTR,AMOVA,R3;取出字位码JBACC.7,DISP3;判已显示到最左位否RLA;未完,字位码左移1位MOVR3,A;回存新字位码LJMPDISP1;转下一位的显示驱动DISP3:RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;显示字段码表。"0"~"9"DB0BFH,0FFH,00H ;"-","空格","全亮"工作原理:显示模块的作用是将显示缓存的单元(30H—37H)中的内容在数码显示管上显示出来。首先将显示缓存第一个单元中的内容(30H)的字段码送入到82C55的B口,之后将右边第一位的位码送入到82C55的A口,则30H单元中的内容可以显示在显示数码管的最左边,在利用循环控制语句就可以将30H—37H中的内容从左到右依次显示在数码管上了。5.4消抖动子程序用几个连续的单元存放最近几次的电平值,比较几个电平值,若相等则存起来与原态相比较,若新态与原态不等则认为一次电平变化。源程序清单如下:XDPB:MOV2FH,2EH;PB口输入并消抖子程序。原新态存为前态MOV2DH,2CH;前4次输入的电平值前推至2AH~2DH单元MOV2CH,2BHMOV2BH,2AHMOV2AH,29H;29H-2FH递存MOVDPTR,#0FDFDH;输入PB0~7新电平值存29H单元MOVXA,@DPTR;取P0到P7的值MOV29H,A;存入首单元MOVA,2DH;比较近5次输入的电平值不一致则新态照旧CJNEA,2CH,XDRCJNEA,2BH,XDRCJNEA,2AH,XDRCJNEA,29H,XDR;取29H-2CH与2DH分别比较MOV2EH,A;递存XDR:RET;循环子程序说明:执行这条子程序时,先把前4次输入的电平值前推至2AH~2DH单元,然后从地址0FDFDH中读取P0到P7的值,然后对29H,2AH,2BH,2CH,2DH这五个单元进行比较,只有这五个单元的内容一样时,才能把2DH中的内容存入2EH中,这样就比较有效地避免开关量抖动的影响了。5.5有按键时发出按键声子程序AJYHANDLE:MOVA,65H;判断是否是(65H)=10H且(64H)≠10H,有则说明有新键按下,否则无键按下直接跳出子程序CJNEA,#10H,AHHMOVA,64HCJNEA,#10H,AHHCLRP3.2DJNZ50H,AHH;软件延时30ms,主流程大概10msMOV50H,#3SETBP3.2AHH:RET工作原理:首先先识别有键按下,但(65H)=10H且(64H)≠10H才是有键按下,再对蜂鸣器进行清0,利用软件延时,50H单元控制延时时间(主流程大约为10ms),延时30ms。5.6无按键后30秒自动返回到时钟状态WCZ:MOVA,1CH;判断3AH的前后态来计时CJNEA,#01H,WCZKMOV4DH,#30RETWCZK:MOVR6,65H CJNER6,#10H,WCZ3MOVR6,64HCJNER6,#10H,WCZ3MOV4EH,3AHMOVA,4EHCJNEA,4FH,WCZ1RETWCZ1:MOV4FH,4EHDJNZ4DH,WCZ2MOV1CH,#01HMOV3EH,#80HMOVP1,#0FFHWCZ3:MOV4DH,#20WCZ2:RET工作原理:只有在非时钟显示情况下,利用秒单元3AH,4EH,4FH用于存放实时钟的新旧态,当新旧态不同时,说明有1s时间,在利用一个控制次数的4DH来控制延时时间5.7定时器T1中断服务子程序:IT1P:PUSHACC ;定时器1服务子程序。保护现场PUSHPSWINC38H ;每200uS加1MOVA,38HCJNEA,#50,DONE ;满10mS?MOV38H,#0 ;200uS计数单元清0INC39H ;每10mS加1MOVA,39HCJNEA,#100,DONE ;满1S? MOV39H,#0 ;10mS计数单元清0 MOVA,3AH ;秒单元(按BCD码)加1 ADDA,#1 DAA MOV3AH,A CJNEA,#60H,DONE ;满1分钟? MOV3AH,#0 ;秒单元清零 MOVA,3BH ;分钟单元(按BCD码)加1 ADDA,#1 DAA MOV3BH,A CJNEA,#60H,DONE ;满1小时? MOV3BH,#0 ;分钟单元清零 MOVA,3CH ;小时单元(按BCD码)加1 ADDA,#1 DAA MOV3CH,A CJNEA,#24H,DONE ;满24小时? MOV3CH,#0;小时单元清零DONE:POPPSW ;恢复现场POPACCRETI;中断返回工作原理:中断服务程序流程,其中每277.77777778us中断一次对38H单元进行加1.当38H单元满36时,就对39H单元内容加1,同时对38H单元清0,重新计数。当39H单元的内容满100时,就对3AH单元内容加1,同时对39H单元清0,重新计数.当3AH单元的内容满60时,就对3BH单元内容加1,同时对3AH单元清0,重新计数.当3BH单元的内容满60时,就对3CH单元内容加1,同时对3BH单元清0,重新计数.当3CH单元的内容满24时,只对3CH单元内容清0,回到初始继续这样循环下去。5.8房间处理模块工作原理:对应房号输入处理的流程图如上所示,通过在不同的进程里面来判断是否是功能键(确定键,退格键,撤消键)或者数字键(0-9),在01H进程里,是功能键时直接返回(进程改为01H),数字键时,将数据送到数据缓存单元16H(进程改为01H);在10H进程里,是功能键的确定键时,直接返回,进程改为01H,为撤消键时,直接返回(进程改为01H),为退格键时,也直接返回(进程改为01H),为数字键时,数据往高位滚存(到达17H),进程加1(变为11H)。以此,在不同进程里判断不同按键后,做出相应的动作,当进程为12H时,按下确定键时,要注意比对房间号,比对正确就开启对讲信号灯(进程码变为01H),为其他键时,做出其他的相应动作。5.9密码处理子模块工作原理:密码输入流程图如上所示,它是建立在房间处理模块的基础之上,在进程为12H时,还继续输入数字键时,必为要输入用户密码或者管理员密码,一次将数字继续往高地址的数据缓存单元缓存后返回(进程码加1)。依次下去,退格键时,直接将数据从高位往低位滚存,最低位覆盖掉(进程码减1);撤消键时,直接返回(进程码为01H)。当进程为15H时,按下确定键时,先进行用户密码的比对,相符时开启相应的对讲信号灯(进程码变为01H),不符时再进行管理员密码的核对,相符时进入时钟修改界面,不符时直接告警(进程码变为01H)后返回。5.10时钟修改子模块工作原理:时钟修改模块流程图如上所示,也是通过在不同的进程里面进行判断相应键后作出不同的动作,在时钟修改进程(20H-25H),一旦确定键按下就要直接保存修改数据于数据缓存单元,按下数字键时,要在不同进程里判断输入的数据是否符合实际情况,不符时不让该位执行修改并停留在该位修改的位置,等待修改。5.10用户密码修改子模块工作原理:在设时钟进程,20H~25H,按下确定键,则改进程为30H,每输入1位数字,则进程码加1,进程为35H时,再输1位数字,进程仍为35H。进程35H时,按下确定键,则保存住户开门密码,进程改为设管理员密码40H,30H~35H时,按下取消键则不保存退出,进程改为01H。第2449423344六章、系统功能与操作说明6.1系统功能描述1.总初始化自检功能:把由keil软件生成的.HEX文件下载到实验板上单板机中,先上电等待各芯片均上电复位后自检,先是蜂鸣器响1S后关闭,U3和U5芯片初始化,L8-L15点亮,L0-L7点亮1S后熄灭,数码管每段全亮大约1S检测设备是否完好。2.自检完后显示时钟初始为08:59:45,如果不进行任何操作,一直显示时钟。当你输入正确用户密码,P1.7会亮,延时5s后熄灭,输入位数不符或密码不正确都会报警。密码在界面上前三位可看见,后三位看不见(用“—”表示)。也可以通过按下PB7(外接开门按钮)来使P1.7亮,同样延时5s后熄灭。3.用键盘做输入时,按下键的瞬间,会发出短促的按键声。4.设置了取消键,按下此键无论数码管显示什么,都会返回时钟显示。5.输入正确的房间号(12间)会让对应的LED(对讲门铃)亮1s后熄灭,此后再按下PB6也可使P1.7点亮,同样5s后会自动熄灭。没有输入正确房间号,按下PB6,P1.7不会亮。6.当输入出错时会报警,就是蜂鸣器响1s后停止。7.无任何操作时,经过30s会自动返回时钟显示。8.按下输管理员按键时,就可以输入管理员密码,如果输入正确,变成时钟界面,可通过键盘进行修改时间。改完时间后按确定键,如果修改正确,则进入住户开门密码参数界面,否则返回时钟继续修改。进入住户开门密码参数界面,当你通过键盘输入六位数时,再按确定键,就把你刚才输入的六位数变成了用户密码,如果不想改用户密码按取消键即可返回时钟显示。第2449423344七章、存在问题与程序改进说明问题1:在输入按键后,只能执行一轮解决方法:出现这种问题的主要原因是用来作标志位的存储单元在用完之后没有及时的清零,由于执行第一轮执行时,在初始化时已经将标志位清零了,所以可以正常执行,但是在后面的程序中,如果没有软件将它清零,会导致该模块一直执行,从而造成出错。所以只要在每次用完标志位后马上将它清零掉。问题2:当房号输入正确时,对应对讲的灯不能保持点亮1秒解决方法:添加一个让它保持点亮1秒的子程序,通过利用主流程执行的一次的时间大概10ms来设定适当的循环计数值,从而达到定时1秒的目的,。问题3:修改用户密码时,输入修改密码时,密码会跟之前输入的不同解决方法:通过对程序的分析知道,是由于数据从缓存单元送入(1DH,1EH,1FH)出错了。问题4:调试过程主流程直接调用1s的子程序,之后的程序在利用软件延时会出现不精准解决方法:主流层增加了调用1s的子程序,让主流程的循环一次的时间大大的超出10ms,之后全部改用软件延时,果真能达到延时的时间。第八章设计总结在这两周的课程设计中,仅仅是对小型微机应用产品的设计与调试,但却学到了很多的具体的微机应用知识,将以前学到的理论知识在设计中得到应用,进而会对知识更深的理解,巩固,并且在实践的过程中也提高了对问题的仔细分析与解决实际问题能力,真的使自己受益良多。设计一个以单片机为核心的楼道开门装置,该装置平时显示时钟息,也可加入按照一定的节拍交替显示环境温度数据功能,住户通过输入由物业管理员预先设置的密码开启楼道门,住户也可输入房号开启与相应住户之间的对讲门铃并可由住户发来开门信号。装置可由管理员设置新的通行密码、时钟等参数。本课程设计环节进行编程并在单片机实验板上模拟调试实现。要完成这个任务就要对单片机有充分的了解,也就是把课堂上所学到的理论知识用在实际的产品中,并且还要根据实验电路板TEST2012的模块用到自己所设计的产品中来。课程设计初期就是把所要写的整个程序划分为几个模块,也就是把整体电路大的流程图构思出来,从硬件的结构出发,需要按键的输入模块,需要数码管的显示模块,在根据所要达到的基本要求考虑,要对输入密码进行处理,所以程序必要的模块为键盘扫描模块,拆字模块,显示模块,按键处理的模块等,在有了整体的思路后,在接下来的一周中,就是根据基本的设计要求,来写各个模块的程序,当各个模块写好之后,组合完整的程序进行调试时出现了很多问题,最后在老师的帮助下,找到了原因,就是各个模块之间缺少联系的关系,其实在主流程序中的执行的就是调用各个模块,而各个模块之间的程序是有联系的,在找到原因之后,在原理的基础上增加了一些模块之间的联系。在第二周,就是对程序的调试,以及做了功能的扩展,最后在自己的努力下,完成了这次课程设计的基本要求与一些的扩展功能。通过这次的设计,对单片机知识有了根据具体的学习与理解,把平时学到的理论知识应用到了实践中,在对产品的设计与调试的过程中,也提高了自己的思维与要考虑整体设计的思想,既加深了理论知识的理解,也提高了自己的动手能力,同时对团队合作也加深了理解,这在对以后的生活与工作中,都会是很大的帮助。第九章参考文献1《单片机原理及接口技术》人民邮电出版社张毅刚,彭喜元 编著目录第一章总论11、项目名称及承办单位12、编制依据43、编制原则54、项目概况65、结论6第二章项目提出的背景及必要性81、项目提出的背景82、项目建设的必要性9第三章项目性质及建设规模131、项目性质132、建设规模13第四章项目建设地点及建设条件171、项目建设地点172、项目建设条件17第五章项目建设方案251、建设原则252、建设内容253、工程项目实施33第六章节水与节能措施371、节水措施372、节能措施38第七章环境影响评价391、项目所在地环境现状392、项目建设和生产对环境的影响分析393、环境保护措施……404、环境影响评价结论……………..……………42第八章劳动安全保护与消防441、危害因素和危害程度442、安全措施方案443、消防设施…………...45第九章组织机构与人力资源配置461、组织机构462、组织机构图46第十章项目实施进度481、建设工期482、项目实施进度安排483、项目实施进度表48第十一章投资估算及资金筹措491、投资估算依据492、建设投资估算49目录TOC\o"1-2"\h\z\u1. 总论 11.1 项目概况 11.2 项目建设的必要性 21.3 可行性研究工作依据 61.4 可行性研究报告的编制原则 61.5 可行性研究报告内容概要 71.6 建议引进设备清单 151.7 结论及建议 151.8 项目主要技术经济指标汇总 162. 市场需求预测与竞争能力分析 192.1 概述 192.2 广西区内市场 192.3 主要目标市场分析 222.4 广东省水泥市场分析 242.5 竞争能力分析 272.6 市场分析结论 283. 建设条件与厂址选择 293.1 原、燃材料 293.2 交通运输 313.3 供电电源 313.4 水源 313.5 厂址条件 324. 工程技术方案 334.1 原燃料与配料设计 334.2 石灰石矿山 464.3 生产工艺 584.4 总图运输 724.5 电气及生产过程自动化 764.6 给水排水 854.7 通风及空气调节 874.8 建筑结构 895. 节约与合理利用能源 925.1 主要能耗指标 925.2 主要节能措施 926. 环境污染防治与治理 946.1 建设场地 946.2 工程概述、主要污染源和主要污染物 946.3 设计采用的环境保护标准 956.4 控制污染的方案 966.5 环境管理机构及监测机构 986.6 环境影响分析 986.7 环境保护投资估算 987. 劳动安全及工业卫生 1017.1 设计依据与执行标准 101HYPERLINK\l"_Toc828
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年学生寝室卫生的管理制度细则
- 速写的课程设计
- 二零二五版电商平台电商平台数据分析与产品优化合同3篇
- 年度特种变压器战略市场规划报告
- 2025年度社区停车位产权转让协议范本4篇
- 2025年度锌锭国际贸易结算服务合同3篇
- 2025年度智能大楼能源管理系统施工合同4篇
- 老虎画画贺卡课程设计
- 二零二五版共享单车运营管理服务合同4篇
- 2025年度个人别墅买卖合同范本8篇
- 《酸碱罐区设计规范》编制说明
- 桥梁监测监控实施方案
- 书籍小兵张嘎课件
- 艺术哲学:美是如何诞生的学习通超星期末考试答案章节答案2024年
- 北京海淀区2025届高三下第一次模拟语文试题含解析
- 量子医学治疗学行业投资机会分析与策略研究报告
- 多重耐药菌病人的管理-(1)课件
- (高清版)TDT 1056-2019 县级国土资源调查生产成本定额
- 环境监测对环境保护的意义
- 2023年数学竞赛AMC8试卷(含答案)
- 2023年十天突破公务员面试
评论
0/150
提交评论