单片机基于单片机控制的模拟电梯显示Word下载.docx
- 文档编号:22873456
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:33
- 大小:162.40KB
单片机基于单片机控制的模拟电梯显示Word下载.docx
《单片机基于单片机控制的模拟电梯显示Word下载.docx》由会员分享,可在线阅读,更多相关《单片机基于单片机控制的模拟电梯显示Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
二是在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;
设置正
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 基于 控制 模拟 电梯 显示