ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:161.73KB ,
资源ID:9046805      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9046805.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机毕业设计基于单片机控制的模拟电梯显示.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机毕业设计基于单片机控制的模拟电梯显示.docx

1、单片机毕业设计基于单片机控制的模拟电梯显示摘要 电梯是标志现代物质文明的垂直运输工具、是机电一体化的复杂运输设备。它涉及电子技术、机械工程、电力电子技术、微机技术、电力拖动系统和土建工程等多个科学领域。目前电梯的生产情况和使用数量已成为一个国家现代化程度的标志之一。随着现代化城市的高速发展,每天都有大量人流及物流需要输送。为节约用地和适应经贸事业的发展,一幢幢高楼拔地而起,这些高层建筑的垂直运输是一个突出问题,与人们的工作和生活紧密相关 8051是MCS-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了硬件乘除法器、21个专用控制寄存器、4kB的程序存储器、128字节的数据

2、存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。 MCS-51具有比较大的寻址空间,地址线宽达16条,即外部数据存储器和程序存储器的寻址范围达216=64kB,这作为单片机控制来说已是比较大的,这同时具备对I/O口的访问能力。此外,MCS-51采用模块化结构,可方便地增删一个模块就可引脚和指令兼容的新产品。从而容易使产品形成系列化。 关键词 电梯 单片机 汇编第一节 概述MCS-51把微型计算机的主要部件都集成在一块心片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能

3、力加强,工作亦相对稳定。因此,在工业测控系统中,使用单片机是最理想的选择。单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。设计要求:1)、不管电梯停在哪一层,可以响应其他任意一层的呼叫2)、电梯在上升过程中,响应将经过楼层或高出目的楼层的同向呼叫,停靠同一方的所选楼层,不响应其他呼叫。3)、电梯在下降过程中,响应将经过楼层或低于目的楼层的同向呼叫,停靠同一方向的所选楼层,不响应其他呼叫。4)、电梯中途停靠,需延时一段时间,作为上下客时间,然后再继续运行到最终目的地。5)、电梯在上升或下降的过程中停靠期间,其上升或下降指示灯不灭。6)、如果无任何键按下,电梯不运行第二节 硬件系统的设计

4、由于MCS-51集成了几乎完善的8位中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理机及各种逻辑运算和转移指令,这给应用提供了极大的便利2.1、软件硬件结合调试:8051中集成了完善的各种中断源,用户可十分方便地控制和使用其功能,使得它的应用范围加大可以说它可以满足绝大部分的应用场合。当把单片机应用系统的试验样机装配完毕以后,便可进入硬件调试阶段,硬件调试一般按脱机检查和联机调试两步进行。脱机检查就是根据硬件逻辑电路图,用万用表等工具检查试验样机联线的正确性与可靠性,其中对电源系统的极性、短路故障等问题要特别注意。要仔细地检查硬件电路的地址

5、总线、数据总线和控制总线是否有短路、开路或错位情况;在电路检查完成以后,可在不插入集成电路芯片的情况下加电检查,确定一些点的电位是否正常;断电后,再把集成电路芯片正确地插入各插座,然后加电,迅速地检查各芯片是否有温升异常,以及单片机和有关接口电路的通电初始化状态是否正确。在上述情况都正常后,便可进入硬件的联机调试。值得注意的是,在加点情况下,不可拔插任何集成电路芯片。联机调试就是把试验样机上的单片机和EPROM拔下,并将单片机开发装置的仿真头插入试验样机上的单片机插座上,这样就将仿真器与单片机应用系统两者连接起来,构成了联机调试状态。联机调试时,首先分别接通开发装置和试验样机的电源,在加电后,

6、若开发装置能正常工作,就说明试验样机的地址总线、数据总线和控制总线无短路故障,否则应再断电检查试验样机的线路,直到排除了鼓掌为止;联机调试状态下,还可使用开发装置对试验样机进行全面的检查,例如检查读写结果、观察试验样机I/O设备的状态等,利用这些手段还可进一步检查、排除试验样机的硬件故障(包含设计和工艺错误)。在试验样机中,常见的故障有元器件质量低劣,开发装置或试验样机接地不良,电压波动大,单片机负载过重,线路短路或断路以及设计工艺错误。硬件电路如图2-1: 图2-1 硬件电路图 MCS-51的指令系统近乎完善,指令系统中包含了全面的数据传送指令、完善的算术和逻辑运算指令、方便的逻辑操作和控制

7、指令、对于编程来说,是相当灵活和方便的。对应用程序进行排错调试 就是对已经进行过硬件检查的试验样机和翻译成机器码的应用程序,还要进行联合排错和调试检查。目前常用的排错、调试方法有两种,一是用单片机仿真开发装置与试验样机联机提供排错、调试手段,具体的方法有单步运行、断点运行、跟踪运行、全速运行等。其中单步运行方法是使所编制的程序指令仅执行一条就停止下来,检查试验样机和应用程序中的错误,然后再单步执行下一条指令;断点运行方法是在程序中设置断点,使得当程序执行到断点处时停止,供设计者检查试验样机和应用程序中的错误;跟踪运行方法是应用程序指令一条一条地执行,开发装置摄取运行每一条指令的地址、单片机各部

8、分数据、I/O端口等处信息,供调试者随时停止程序,对各种信息进行检查和修改;全速运行方法是实时地运行用户程序,可以检查用户程序最终执行结果。二是在IBM-PC机上创建一个模拟目标单片机的模拟环境,把编好的程序在这个模拟环境下运行,进而进行排错和调试。该方法对单片机软件的开发简单易行,它不需要任何在线仿真器,也不需要调试样机。2.2 MCS-51对系统环境的要求: MCS-51的开发环境要求较低,软件资源十分丰富,硬件只需配备一台PC,一台仿真编程器即可实现产品开发,我们在软件方面采用汇编语言编写代码,在硬件方面我们使用个人电脑结合西安唐都科教仪器公司开发的TDN-MI单片机开发实验系统。TDN

9、-MI主要功能包括:程序的输入、信息的保存、程序的运行和调试、以及应用系统的仿真、程序的固化等。其中TDN-MI和个人PC之间采用RS232串行接口连接。2.3硬件电路设计:硬件电路设计一般包括两个部分的内容:一是扩展单片机芯片内部单元的功能,如ROM、RAM、定时/记数器、I/O接口线等的容量不满足应用系统的要求时,就需要设计相应的功能扩展电路;二是根据应用系统的功能要求配置一定的外部设备,如键盘、显示器、打印机、A/A、D/A等。对应用系统进行扩展与配置时,应充分考虑如下的设计原则。1)、尽可能选择典型电路,并符合单片机的常规使用要求。2)、扩展与配置的数量应充分满足应用系统功能的要求并留

10、有余地,以便能方便地进行功能扩展和进一步的开发。3)、应充分结合软件方案老考虑硬件结构。4)、整个系统中的相关器件应尽可能做到性能匹配,如选用的晶振频率较高时,就应选择存取速度较高的芯片。5)、应重视整个系统的可靠性及抗干扰设计,如充分筛选芯片和器件,增加去耦电路,采取隔离和屏蔽等措施。 在此,我们的设计用到的硬件有:89C51,74LS164,数码管,电容,二极管,电阻,等组成的单片机最小系统如图2-2:图2-2 单片机最小系统图第三节 软件系统的设计一些在此次电梯设计中用到的运行特征:1)、键位特征:外键:EEH,EDH,EBH,-上键值 DEH,DDH,DBH-下键值上键值特征:P2.0

11、=1下.:P2.0=0内键:77H,7BH,7DH,7EH2)、运行特征:正在执行上,下程序特征:P2.3=1没在执行 :P2.3=0正在上行特征:P2.4=1正在下行 :P2.4=03)、取键特征:KEYA:取外键值KEYB:取内键值R2:电梯运行的终止层R3:内键或外键中断层FLOORNOW:现在的楼层数4)、子程序代码:OPENOUT:按外键时的情况OPENIN :按内键时的情况MAKER3:取按键所在的层-中断层数值。DISPL:由现在层FLOORNOW运行到R2DISPLA:先由现在层运行到R2,再到R3-上升DISPLB:由现在层运行到R3,再到R2-下降DISPLD:根据实际情况

12、判断。DISPS:数码管显示楼层数DISPLS:通过FLOOLNOW所在层灯的闪烁表示开关门。:R2中的内容和R3中的内容互换主程序流程图如图3-1:图3-1 主程序流程图 一:主程序: DIN EQU P0.0 CLK EQU P0.1 FLOORNOW EQU 35H FLOORLAST EQU 45H ORG 0000H ;初使化 LJMP START ORG 000BH MOV R5,#200 CLR P2.6 PUSH ACC PUSH PSW DJNZ R5,EXIT LCALL KEYA LCALL KEYB JB P2.6,LP ;有键按下时跳到主程序,EXIT: POP PS

13、W ;无键按下的返回 POP ACC RETISTART: MOV R7,#00H ;数码管显0 CLR P2.3 ;无执行 MOV FLOORLAST,#01H MOV FLOORNOW,#01H MOV TMOD,#02H ;方式二 MOV IE,#82H MOV TH0,#56H MOV TL0,#56H SETB TR0 LCALL DISPSLP: LCALL KEYA LCALL KEYB LJMP LP二:外键盘查询子程序 -KEYA:KEYA: MOV P1,#0FH ;A1-A4输出,B1-B4输入MOV A,P1 CJNE A,#0FH,K11 ;有键按下K10: AJMP

14、 K17 ;无键按下K11: ACALL YAN ;延时去前沿抖动 MOV A,P1 ;再读键盘状况 CJNE A,#0FH,K12 ;确有键按下 SJMP K10K12: MOV B,A ;存行值 MOV P1,#0EFH ;按键在A?列,设键在A4列 MOV A,P1 CJNE A,#0EFH,K13 MOV P1,#0DFH ;设键在A3列 MOV A,P1 CJNE A,#0DFH,K13 MOV P1,#0BFH ;设键在A2列 MOV A,P1 CJNE A,#0BFH,K13 MOV P1,#07FH ;设键在A1列 MOV A,P1 CJNE A,#07FH,K13 AJMP

15、K10 ;多键同时按下K13: ANL A,#0F0H ORL A,B ;拼装键值 MOV B,A ;暂存键值 MOV R1,#7H ;7个键 MOV R2,#00H ;键码初值 MOV DPTR,#KEYATAB ;键码表首地址K14: MOV A,R2 MOVC A,A+DPTR ;从键值表中取键值 CJNE A,B,K16 ;键值比较 MOV P1,#0FH ;相等,则完成以下步骤K15: MOV A,P1 CJNE A,#0FH,K15 ;等键释放 ACALL YAN ;延时去后沿抖动 MOV 31H,R2 ;得键码 MOV 30H,B MOV A,30H ANL A,#0F0H ;高

16、四位 CJNE A,#0E0H,K19 SETB P2.0 ;上行键特征 AJMP K18K19: CLR P2.0 ;下行键特征 SETB P2.1 AJMP K18 K16: INC R2 ;不相等,到继续访问键值表 DJNZ R1,K14 AJMP K17 K18: SETB P2.6 ;置有键按下时特征 LCALL OPENOUTK17: RETKEYATAB: DB 0EFH,0EEH,0EDH,0EBH DB 0DEH,0DDH,0DBH三:内键盘查询子程序逻辑 -KEYB:KEYB: MOV P1,#0FH ;A1-A4输出,B1-B4输入, ;输入者对应锁存先写1 MOV A,

17、P1 CJNE A,#0FH,L11 ;有键按下L10: AJMP L17 ;无键按下L11: ACALL YAN ;延时去前沿抖动 MOV P1,#0FH MOV A,P1 ;再读键盘状况 CJNE A,#0FH,L12 ;确有键按下 SJMP L10L12: MOV B,A ;存行值 MOV P1,#0EFH ;按键在A?列,设键在A4列 MOV A,P1 CJNE A,#0EFH,L13 MOV P1,#0DFH ;设键在A3列 MOV A,P1 CJNE A,#0DFH,L13 MOV P1,#0BFH ;设键在A2列 MOV A,P1 CJNE A,#0BFH,L13 MOV P1,

18、#07FH ;设键在A1列 MOV A,P1 CJNE A,#07FH,L13 AJMP L10 ;多键同时按下L13: ANL A,#0F0H ORL A,B ;拼装键值 MOV B,A ;暂存键值 MOV R1,#5H ;16个键 MOV R2,#00H ;键码初值 MOV DPTR,#KEYBTAB ;键码表首地址(如图6-9所示编码)L14: MOV A,R2 MOVC A,A+DPTR ;从键值表中取键值 CJNE A,B,L16 ;键值比较 MOV P1,#0FH ;相等,则完成以下步骤L15: MOV A,P1 CJNE A,#0FH,L15 ;等键释放 ACALL YAN ;延

19、时去后沿抖动 MOV 41H,R2 ;得键码 CLR P2.1 AJMP L18L16: INC R2 ;不相等,到继续访问键值表 DJNZ R1,L14 AJMP L17 ;多键同时按下L18: SETB P2.6 ;置有键按下时特征 LCALL OPENINL17: RETKEYBTAB: DB 0FFH,77H,7BH,7DH,7EH执行有外键按下时流程图3-2,3-3: 图3-2 无执行流程图3-3 正在执行流程图 四:执行有外键按下时子程序 -OPENOUT:OPENOUT:JB P2.3,OUTLP ;正在执行则跳转 LCALL MAKER3 ;取中断层 MOV A,R3 MOV

20、R2,A LJMP DISPL RETOUTLP:JB P2.0,OUTLP2 ;按的是下行键则跳转 JNB P2.4,OUTLP3 ;正在上行则跳转 RETOUTLP3:LCALL MAKER3 ;取中断层 MOV A,FLOORNOW MOV B,R3 DIV AB JNZ OUTLP4 ;中断层小于现在层则跳转 RETOUTLP4:MOV A,R2 MOV B,R3 DIV AB JZ OUTLP5 ;终止层小于中断层则跳转 MOV A,R2 XCH A,R3 MOV R2,AOUTLP5:LCALL DISPLB RETOUTLP2:JB P2.4,OUTLP6 RETOUTLP6:M

21、OV A,FLOORNOW MOV B,R3 DIV AB JZ OUTLP7 ;现在层小于中断层则跳转 RET ;现在层小于中断层则返回OUTLP7:MOV A,R2 MOV B,R3 DIV AB JNZ OUTLP8 ;中断层小于终止层则跳转 MOV A,R2 XCH A,R3 MOV R2,AOUTLP8:LCALL DISPLA RET五:执行有内键按下时流程图3-4:3-4 内键按下流程图执行有外键按下时子程序:OPENIN:JB P2.3,INLP ;正在运行则跳转 LCALL MAKER3 MOV A,R3 MOV R2,A LCALL DISPLINLP: LCALL MAK

22、ER3 LCALL DISPLD RET取中断层R3流程图3-5:3-5 取中断层流程图六:取中断层R3子程序:MAKER3: JNB P2.1,MAKELP3 ;按内键则跳转 JB P2.0,MAKELP1 ;按下行键则跳转 MOV A,#8 SUBB A,31H LJMP MAKELP2MAKELP1: MOV A,#4 SUBB A,31HMAKELP2: MOV R3,A AJMP MAKELP4MAKELP3: MOV R3,41HMAKELP4: RETDISPL子程序:DISPL: MOV 32H,R2 MOV A,FLOORNOW CJNE A,32H,LPL4 ;现在层是否等

23、于终止层 MOV DPTR,#KEYTAB MOV A,FLOORNOW MOVC A,A+DPTR ;取现在层的显示二进制数值 MOV P3,A MOV R7,FLOORNOW LCALL DISPS ;数码管显示层数 AJMP LPL5LPL4: MOV A,FLOORNOW MOV B,R2 DIV AB JNZ LPL1 ;现在层大于终止层则跳转 MOV DPTR,#KEYTAB MOV A,FLOORNOW MOVC A,A+DPTR ;取现在层的显示二进制数值 MOV 50H,ALPL2: MOV A,50H MOV P3,A SETB P2.3 RL A ;上升 SETB P2.

24、4 MOV 50H,A MOV FLOORLAST,FLOORNOW INC FLOORNOW INC R7 LCALL DISPS ;数码管显示层数 MOV A,R2 LCALL LONGYAN CJNE A,FLOORLAST,LPL2 ;是否到达终止层? DEC FLOORNOW CLR P2.3 LCALL DISPLS ;闪烁,表示开门 LCALL YAN ;延时 LCALL DISPLS ;闪烁,表示关门 RETLPL1: MOV DPTR,#KEYTAB MOV A,FLOORNOW MOVC A,A+DPTR ;取现在层的显示二进制数值 MOV 50H,ALPL3: MOV A

25、,50H MOV P3,A SETB P2.3 ;设置正在运行状态位 RR A ;下降 CLR P2.4 ;设置正在下降状态位 MOV 50H,A MOV FLOORLAST,FLOORNOW DEC FLOORNOW ;未到终止层则现在层减一,继续下降 DEC R7 LCALL DISPS ;数码管显示层数 MOV A,R2 LCALL LONGYAN CJNE A,FLOORLAST,LPL3 ;是否到达终止层 INC FLOORNOW ;到达终止层,回复现在层的层数CLR P2.3 ;置无在运行状态位LPL5: LCALL DISPLS ;闪烁,表示开门 LCALL YAN ;延时 LC

26、ALL DISPLS ;闪烁,表示关门 SJMP $ DISPLA子程序:DISPLA:MOV DPTR,#KEYTAB MOV A,FLOORNOW MOVC A,A+DPTR ;取现在层的显示二进制数值 MOV 50H,ALPLA1: MOV A,50H MOV P3,A SETB P2.3 ;设置正在运行状态位 RL A SETB P2.4于 ;设置正在上升状态位 MOV 50H,A MOV FLOORLAST,FLOORNOW INC FLOORNOW INC R7 LCALL DISPS ;数码管显示层数 MOV A,R3 LCALL LONGYAN CJNE A,FLOORLAST

27、,LPLA1 ;现在层=中断层? DEC FLOORNOW ;恢复现在层数值 LCALL DISPLS ;闪烁,表示开门 LCALL YAN ;延时 LCALL DISPLS ;闪烁,表示关门LPLA2: MOV DPTR,#KEYTAB INC FLOORNOW MOV A,FLOORNOW MOVC A,A+DPTR ;取现在层的显示二进制数值 MOV 50H,ALPLA3: MOV A,50H MOV P3,A SETB P2.3 ;设置正在运行状态位 RL A SETB P2.4 ;设置正在上升状态位 MOV 50H,A MOV FLOORLAST,FLOORNOW INC FLOOR

28、NOW INC R7 LCALL DISPS ;数码管显示层数 MOV A,R2 CJNE A,FLOORLAST,LPLA3 ;现在层=终止层? DEC FLOORNOW ;恢复现在层数值 LCALL DISPLS ;闪烁,表示开门 LCALL YAN ;延时 LCALL DISPLS ;闪烁,表示关门 CLR P2.3 ;清除正在运行标志位SJMP $DISPLB子程序:DISPLB:MOV DPTR,#KEYTAB MOV A,FLOORNOW MOVC A,A+DPTR ;取现在层的显示二进制数值 MOV 50H,ALPLB1: MOV A,50H MOV P3,A SETB P2.3 ;设置正在运行状态位 RR A ;下降 CLR P2.4

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1