模拟电梯控制系统设计
第三章 软件设计
3.1汇编语言简介
汇编语言是单片机程序设计语言的重要形式,也是当今单片机开发人员进行程序开发最常用的语言形式。汇编语言是一种用来替代机器语言进行程序设计的语言。汇编语言的特点是每一条指令都给出了助记符。由于助记符用英文缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。
汇编语言源程序中的每条语句可以有多项构成,其格式如下:
[标号]:操作码助记符 [第一操作数] [,第二操作数] [,第三操作数] [;注释] 其中,带方括号[ ]的部分为可选项。
在单片机系统设计中,程序设计是重要的一环,它的质量直接影响到整个系统的功能,用汇编语言进行程序设计的过程大致可以分为以下几个步骤:
(1) 明确课题对程序功能、运算精度、执行速度等方面的要求及硬件条件。
(2) 把复杂问题分解为若干个模块,确定各模块的处理方法,画出程序流程图。对复杂问题可分别画出分模块流程图和总的流程图。
(3) 存储器资源分配,如各程序段的存放地址、数据区地址、工作单元分配等。
(4) 编制程序,根据程序流程图精心选择合适的指令和寻址方式来编制源程序。
(5) 对程序进行汇编、调试和修改。将编制好的源程序进行汇编,并进行目标程序、检查修改程序中的错误,对程序运行结果进行分析,直到正确为止。
第- 13 –页 共33 页
运城学院计算机科学与技术系毕业论文
3.2流程图设计 初始化
按键查询 1层按键按下
2层按键按下 3层按键按下 4层按键按下 对应中断程序 5层按键按下 6层按键按下 7层按键按下 8层按键按下 图 3.1 主程序流程图
第- 14 –页 共33页
模拟电梯控制系统设计
该图为电梯上升时的流程,任意按键按下时则进入相应的中断程序,否则一直进行1到8层按键的循环检测。电梯下降时则进行8到1层按键的循环检测。
3.3程序设计
此单片机模拟电梯用绿色发光二极管组成的箭头来指示电梯当前是处于上升状态还是下降状态,用数码管显示当前是处于哪一层,用红色发光二极管指示电梯走到哪一层会停.电源接通后,若没有人按下停止按键,它就以每层2秒的速度一直上下运行,若有人按下某一层的停止按键,它就会在相应的那一层停止4秒钟,并伴有开门和关门的声音提示。 3.3.1程序初始化
TCOUNT EQU 4CH CENG EQU 4DH ORG 0000H LJMP START ORG 000BH LJMP INT0X ORG 0030H
;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;; START: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H ;50MS MOV IE,#82H SETB TR0 MOV TCOUNT,#4 CLR F0 MOV 20H,#0 MOV R0,#30H MOV R1,#30 QING: MOV @R0,#00H INC R0
DJNZ R1,QING ;把30H到4DH这30个单元清0 MOV P0,#06H MOV P3,#0F8H
第- 15 –页 共33 页
运城学院计算机科学与技术系毕业论文
3.3.2主程序调用 XUN: ONE: TWO: THR: FOU: FIV: SIX: SEV:
JB P1.0,ONE LCALL YS10MS
JB P1.0,ONE ;判断一层的停止按键是否按下 CLR P2.0 ;若按下则把对应的红色发光二极管点亮 JB P1.1,TWO LCALL YS10MS
JB P1.1,TWO ;判断二层的停止按键是否按下 CLR P2.1 ;若按下则把对应的红色发光二极管点亮 JB P1.2,THR LCALL YS10MS JB P1.2,THR CLR P2.2
JB P1.3,FOU LCALL YS10MS JB P1.3,FOU CLR P2.3
JB P1.4,FIV LCALL YS10MS JB P1.4,FIV CLR P2.4
JB P1.5,SIX LCALL YS10MS JB P1.5,SIX CLR P2.5
JB P1.6,SEV LCALL YS10MS JB P1.6,SEV CLR P2.6
JB P1.7,XUN LCALL YS10MS JB P1.7,XUN CLR P2.7
LJMP XUN
3.3.3中断程序调用 INT0X: MOV TH0,#3CH MOV TL0,#0B0H
第- 16 –页 共33页