单片机基于单片机控制的模拟电梯显示Word下载.docx

上传人:b****8 文档编号:22873456 上传时间:2023-02-05 格式:DOCX 页数:33 大小:162.40KB
下载 相关 举报
单片机基于单片机控制的模拟电梯显示Word下载.docx_第1页
第1页 / 共33页
单片机基于单片机控制的模拟电梯显示Word下载.docx_第2页
第2页 / 共33页
单片机基于单片机控制的模拟电梯显示Word下载.docx_第3页
第3页 / 共33页
单片机基于单片机控制的模拟电梯显示Word下载.docx_第4页
第4页 / 共33页
单片机基于单片机控制的模拟电梯显示Word下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

单片机基于单片机控制的模拟电梯显示Word下载.docx

《单片机基于单片机控制的模拟电梯显示Word下载.docx》由会员分享,可在线阅读,更多相关《单片机基于单片机控制的模拟电梯显示Word下载.docx(33页珍藏版)》请在冰豆网上搜索。

单片机基于单片机控制的模拟电梯显示Word下载.docx

二是在IBM-PC机上创建一个模拟目标单片机的模拟环境,把编好的程序在这个模拟环境下运行,进而进行排错和调试。

该方法对单片机软件的开发简单易行,它不需要任何在线仿真器,也不需要调试样机。

2.2MCS-51对系统环境的要求:

MCS-51的开发环境要求较低,软件资源十分丰富,硬件只需配备一台PC,一台仿真编程器即可实现产品开发,我们在软件方面采用汇编语言编写代码,在硬件方面我们使用个人电脑结合西安唐都科教仪器公司开发的TDN-MI单片机开发实验系统。

TDN-MI主要功能包括:

程序的输入、信息的保存、程序的运行和调试、以及应用系统的仿真、程序的固化等。

其中TDN-MI和个人PC之间采用RS232串行接口连接。

2.3硬件电路设计:

硬件电路设计一般包括两个部分的内容:

一是扩展单片机芯片内部单元的功能,如ROM、RAM、定时/记数器、I/O接口线等的容量不满足应用系统的要求时,就需要设计相应的功能扩展电路;

二是根据应用系统的功能要求配置一定的外部设备,如键盘、显示器、打印机、A/A、D/A等。

对应用系统进行扩展与配置时,应充分考虑如下的设计原则。

1)、尽可能选择典型电路,并符合单片机的常规使用要求。

2)、扩展与配置的数量应充分满足应用系统功能的要求并留有余地,以便能方便地进行功能扩展和进一步的开发。

3)、应充分结合软件方案老考虑硬件结构。

4)、整个系统中的相关器件应尽可能做到性能匹配,如选用的晶振频率较高时,就应选择存取速度较高的芯片。

5)、应重视整个系统的可靠性及抗干扰设计,如充分筛选芯片和器件,增加去耦电路,采取隔离和屏蔽等措施。

在此,我们的设计用到的硬件有:

89C51,74LS164,数码管,电容,二极管,电阻,等

组成的单片机最小系统如图2-2:

图2-2单片机最小系统图

第三节软件系统的设计

一些在此次电梯设计中用到的运行特征:

1)、键位特征:

外键:

EEH,EDH,EBH,----上键值

DEH,DDH,DBH----下键值

上键值特征:

P2.0=1

下................:

P2.0=0

内键:

77H,7BH,7DH,7EH

2)、运行特征:

正在执行上,下程序特征:

P2.3=1

没在执行:

P2.3=0

正在上行特征:

P2.4=1

正在下行:

P2.4=0

3)、取键特征:

KEYA:

取外键值

KEYB:

取内键值

R2:

电梯运行的终止层

R3:

内键或外键中断层

FLOORNOW:

现在的楼层数

4)、子程序代码:

OPENOUT:

按外键时的情况

OPENIN:

按内键时的情况

MAKER3:

取按键所在的层-中断层数值。

DISPL:

由现在层FLOORNOW运行到R2

DISPLA:

先由现在层运行到R2,再到R3------上升

DISPLB:

由现在层运行到R3,再到R2------下降

DISPLD:

根据实际情况判断。

DISPS:

数码管显示楼层数

DISPLS:

通过FLOOLNOW所在层灯的闪烁表示开关门。

:

R2中的内容和R3中的内容互换

主程序流程图如图3-1:

图3-1主程序流程图

一:

主程序:

DINEQUP0.0

CLKEQUP0.1

FLOORNOWEQU35H

FLOORLASTEQU45H

ORG0000H;

初使化

LJMPSTART

ORG000BH

MOVR5,#200

CLRP2.6

PUSHACC

PUSHPSW

DJNZR5,EXIT

LCALLKEYA

LCALLKEYB

JBP2.6,LP;

有键按下时跳到主程序,

EXIT:

POPPSW;

无键按下的返回

POPACC

RETI

START:

MOVR7,#00H;

数码管显0

CLRP2.3;

无执行

MOVFLOORLAST,#01H

MOVFLOORNOW,#01H

MOVTMOD,#02H;

方式二

MOVIE,#82H

MOVTH0,#56H

MOVTL0,#56H

SETBTR0

LCALLDISPS

LP:

LJMPLP

二:

外键盘查询子程序---KEYA:

MOVP1,#0FH

;

A1-A4输出,B1-B4输入

MOVA,P1

CJNEA,#0FH,K11;

有键按下

K10:

AJMPK17;

无键按下

K11:

ACALLYAN;

延时去前沿抖动

MOVA,P1;

再读键盘状况

CJNEA,#0FH,K12;

确有键按下

SJMPK10

K12:

MOVB,A;

存行值

MOVP1,#0EFH;

按键在A?

列,设键在A4列

MOVA,P1

CJNEA,#0EFH,K13

MOVP1,#0DFH;

设键在A3列

MOVA,P1

CJNEA,#0DFH,K13

MOVP1,#0BFH;

设键在A2列

CJNEA,#0BFH,K13

MOVP1,#07FH;

设键在A1列

CJNEA,#07FH,K13

AJMPK10;

多键同时按下

K13:

ANLA,#0F0H

ORLA,B;

拼装键值

MOVB,A;

暂存键值

MOVR1,#7H;

7个键

MOVR2,#00H;

键码初值

MOVDPTR,#KEYATAB;

键码表首地址

K14:

MOVA,R2

MOVCA,@A+DPTR;

从键值表中取键值

CJNEA,B,K16;

键值比较

MOVP1,#0FH;

相等,则完成以下步骤

K15:

MOVA,P1

CJNEA,#0FH,K15;

等键释放

ACALLYAN;

延时去后沿抖动

MOV31H,R2;

得键码

MOV30H,B

MOVA,30H

ANLA,#0F0H;

高四位

CJNEA,#0E0H,K19

SETBP2.0;

上行键特征

AJMPK18

K19:

CLRP2.0;

下行键特征

SETBP2.1

AJMPK18

K16:

INCR2;

不相等,到继续访问键值表

DJNZR1,K14

AJMPK17

K18:

SETBP2.6;

置有键按下时特征

LCALLOPENOUT

K17:

RET

KEYATAB:

DB0EFH,0EEH,0EDH,0EBH

DB0DEH,0DDH,0DBH

三:

内键盘查询子程序逻辑---KEYB:

A1-A4输出,B1-B4输入,

;

输入者对应锁存先写1

CJNEA,#0FH,L11;

L10:

AJMPL17;

L11:

MOVP1,#0FH

MOVA,P1;

CJNEA,#0FH,L12;

SJMPL10

L12:

MOVB,A;

MOVP1,#0EFH;

CJNEA,#0EFH,L13

MOVP1,#0DFH;

CJNEA,#0DFH,L13

MOVP1,#0BFH;

CJNEA,#0BFH,L13

MOVP1,#07FH;

CJNEA,#07FH,L13

AJMPL10;

L13:

ANLA,#0F0H

ORLA,B;

MOVB,A;

MOVR1,#5H;

16个键

MOVR2,#00H;

MOVDPTR,#KEYBTAB;

键码表首地址(如图6-9所示编码)

L14:

MOVA,R2

MOVCA,@A+DPTR;

CJNEA,B,L16;

L15:

CJNEA,#0FH,L15;

MOV41H,R2;

CLRP2.1

AJMPL18

L16:

INCR2;

DJNZR1,L14

AJMPL17;

L18:

SETBP2.6;

LCALLOPENIN

L17:

KEYBTAB:

DB0FFH,77H,7BH,7DH,7EH

执行有外键按下时流程图3-2,3-3:

图3-2无执行流程图

3-3正在执行流程图

 

四:

执行有外键按下时子程序----OPENOUT:

JBP2.3,OUTLP;

正在执行则跳转

LCALLMAKER3;

取中断层

MOVA,R3

MOVR2,A

LJMPDISPL

OUTLP:

JBP2.0,OUTLP2;

按的是下行键则跳转

JNBP2.4,OUTLP3;

正在上行则跳转

OUTLP3:

LCALLMAKER3;

MOVA,FLOORNOW

MOVB,R3

DIVAB

JNZOUTLP4;

中断层小于现在层则跳转

OUTLP4:

MOVA,R2

JZOUTLP5;

终止层小于中断层则跳转

XCHA,R3

OUTLP5:

LCALLDISPLB

OUTLP2:

JBP2.4,OUTLP6

OUTLP6:

MOVA,FLOORNOW

JZOUTLP7;

现在层小于中断层则跳转

RET;

现在层小于中断层则返回

OUTLP7:

JNZOUTLP8;

中断层小于终止层则跳转

OUTLP8:

LCALLDISPLA

五:

执行有内键按下时流程图3-4:

3-4内键按下流程图

执行有外键按下时子程序:

OPENIN:

JBP2.3,INLP;

正在运行则跳转

LCALLMAKER3

LCALLDISPL

INLP:

LCALLMAKER3

LCALLDISPLD

取中断层R3流程图3-5:

3-5取中断层流程图

六:

取中断层R3子程序:

JNBP2.1,MAKELP3;

按内键则跳转

JBP2.0,MAKELP1;

按下行键则跳转

MOVA,#8

SUBBA,31H

LJMPMAKELP2

MAKELP1:

MOVA,#4

MAKELP2:

MOVR3,A

AJMPMAKELP4

MAKELP3:

MOVR3,41H

MAKELP4:

RET

DISPL子程序:

MOV32H,R2

MOVA,FLOORNOW

CJNEA,32H,LPL4;

现在层是否等于终止层

MOVDPTR,#KEYTAB

取现在层的显示二进制数值

MOVP3,A

MOVR7,FLOORNOW

LCALLDISPS;

数码管显示层数

AJMPLPL5

LPL4:

MOVA,FLOORNOW

MOVB,R2

JNZLPL1;

现在层大于终止层则跳转

MOVCA,@A+DPTR;

MOV50H,A

LPL2:

MOVA,50H

SETBP2.3

RLA;

上升

SETBP2.4

MOVFLOORLAST,FLOORNOW

INCFLOORNOW

INCR7

LCALLDISPS;

LCALLLONGYAN

CJNEA,FLOORLAST,LPL2;

是否到达终止层?

DECFLOORNOW

CLRP2.3

LCALLDISPLS;

闪烁,表示开门

LCALLYAN;

延时

闪烁,表示关门

LPL1:

MOVDPTR,#KEYTAB

MOVCA,@A+DPTR;

LPL3:

SETBP2.3;

设置正在运行状态位

RRA;

下降

CLRP2.4;

设置正在下降状态位

DECFLOORNOW;

未到终止层则现在层减一,继续下降

DECR7

CJNEA,FLOORLAST,LPL3;

是否到达终止层

INCFLOORNOW;

到达终止层,回复现在层的层数

CLRP2.3;

置无在运行状态位

LPL5:

LCALLDISPLS;

LCALLYAN;

LCALLDISPLS;

SJMP$

DISPLA子程序:

MOVDPTR,#KEYTAB

LPLA1:

SETBP2.3;

RLA

SETBP2.4于;

设置正在上升状态位

CJNEA,FLOORLAST,LPLA1;

现在层=中断层?

DECFLOORNOW;

恢复现在层数值

LCALLDISPLS;

LCALLDISPLS;

LPLA2:

MOVA,FLOORNOW

MOVCA,@A+DPTR;

LPLA3:

SETBP2.4;

CJNEA,FLOORLAST,LPLA3;

现在层=终止层?

DECFLOORNOW;

LCALLYAN;

CLRP2.3;

清除正在运行标志位

SJMP$

DISPLB子程序:

LPLB1:

RRA;

CLRP2.4;

设置正

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

当前位置:首页 > 成人教育 > 专升本

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

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