武汉科技大学微机原理课程设计模拟电梯系统(汇编)
微机综合课程设计,模拟电梯控制系统
data segmentioport equ 0ec00h-0280hio8253a equ ioport+280h;0计数端口计数为10000,方式3io8253b equ ioport+281h;1计数端口计数为200,方式0io8253c equ ioport+283h;8253控制端io8255a equ ioport+288h;8255控制端以及a,b,c端口地址io8255b equ ioport+289hio8255c equ ioport+28ahio8255 equ ioport+28bhproth equ ioport+290h;点阵灯显示,行阵protlr equ ioport+298h;点阵灯显示,列阵number db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;七段码min db 00h,01h,02h,03h,04h,05h,06h,07h;点阵的行buff1 db 10h,30h,7fh,0ffh,0ffh,7fh,30h,10h;向上箭头buff2 db 08h,0ch,0feh,0ffh,0ffh,0feh,0ch,08h;向下箭头menu db '************************************************',0DH,0AH db '* elevator procedures *',0DH,0AH db '* 8253cs~280h 8255cs~288h *',0Dh,0Ah db '* lightrow~290h lightred~298h *',0Dh,0Ah db '* 数码管s0---0 s1-----5V *',0Dh,0Ah db '* pa0~pa6-----a~g pb0-pb7-----led0~led7 *',0Dh,0Ahdb '* out1--------pc0 gate0&&gate1--5V *',0Dh,0Ah db '* clk0---1MHZ clk1---out0 *',0Dh,0Ah db '* *',0Dh,0Ahdb '* 08008XXX by XXXXXXXX *',0Dh,0Ahdb '************************************************',0Dh,0Ahdb '1~8------1 ~ 8floor!',0DH,0AHdb 'esc----------exit!',0DH,0AHdb 'enter--------run!',0DH,0AHdb 'a------------go directly!',0Dh,0Ahdb 'b------------emergentstop!',0Dh,0Ahdb 'c------------elctricityfix!',0Dh,0Ah,'$'data endsstacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ds:data,ss:stacksstart:mov ax,data;初始化mov ds,axmov dx,offset menu;打印菜单,说明硬件电路的连接等mov ah,09int 21hmov dx,io8255;8255初始化,a、b输出,c口输入mov al,89hout dx,almov bl,31h;bl代表当前电梯所在楼层,初始值设为1main: mov al,0call shownumber;显示当前楼层mov cl,0;cl为第一次输入的要去的楼层mov ch,0;ch为在中途中再次输入的要去的楼层call showledmov ah,01;通过键盘输入第一次要去得楼层clint 21hcmp al,1bh;是esc则退出je exitcmp al,31h;键入的数字是否在1-8之间,如不是重新输入jl maincmp al,38hjg mainmov cl,alcall showled;8个led灯显示cl对应的楼层cmp cl,bl;cl与bl比较je main;相等则返回重新输入jg up;大于则向上运行jl todown;小于则向下运行exit: mov ah,4chint 21h;---------------------------------------------------------------------------------电梯上行up: call panduan;电梯上行的情况up1: add bl,1call updelay;调用向上运行延时子程序,出现向上的箭头call shownumber;调用显示子程序,通过数码管显示当前楼层blcmp bl,cl;bl,cl不等则继续je main;相等则返回jmp up1upgetch:mov ah,1;在上升过程中如果有其他的键按下时int 21hcmp al,62h;判断是否为急停键bje jitcmp al,63h;判断是否为断电待修键cje noelccmp al,31h;数字是否在1-8之间如不是继续上行jl gotoupcmp al,38hjg gotoupmov ch,alcall showledcall delayupcall shownumbercall clequbl;判断当前楼层与第一次要去的楼层是否相同cmp ch,bl;比较ch与bl的区别je stopupcl;相等则在该层停,等待运行信号输入jl upcldownch;ch小于bl则先上行至cl在下行至chcmp ch,cl;ch大于bl则在判断ch与cl的大小关系je jmpupcl;相等则一直上行至cljl upchupcl;ch大于bl小于cl则先上行到ch在上行到cljg toupclupch;ch大于cl则先上行到cl在上行到chgotoup: call delayupjmp up1noelc: mov al,0;上升时遇到了断电的情况,则等待键入,除非再次键入的为c才继续运行mov ah,7int 21hcmp al,63hjne noelccall delayupcall shownumberjmp up1jit: call delayup;上升时遇到了急停的情况,则停在下一层,然后回到main call shownumberjmp maintodown: jmp downupdelay proc near;向上运行的延时子程序call delayfirst;用于初始化8253push dxcall dianqing ;调用使其能够清零updelay1:call dianshang;循环调用向上的箭头显示mov ah,1;键盘是否有输入int 16hjne upgetch;如有则跳转到输入处理mov dx,io8255c;8255c口输入,看2s延时是否结束in al,dxand al,01;是否计时结束jz updelay1pop dxretupdelay endptomain: jmp maintoupclupch:jmp upclupch;---------------------------------------------------------------------------------上行中遇到的各种情况列举stopupcl:call shownumber;第二次要去得楼层与当前楼层相同,直接停在该层mov ch,0call showledcall stop2call upcljmp mainupcldownch:call showled;先上行到cl再下行到chcall upclmov cl,0call showledcall stop2call downchjmp mainjmpupcl:mov ch,0;第二次要去的楼层与第一次要去的相同,直接上行到第一次要取得楼层call showledcall upcljmp mainupchupcl:call showled;同方向的楼层,先上行到ch再上行到clcall upchmov ch,0call showledcall stop2call upcljmp mainupclupch:call showled;同方向的楼层,先上行到cl再上行到chcall upclmov bl,0call showledcall stop2call upchjmp mainjittt: jmp jit;----------------------------------------------------------电梯下行,与电梯上行的情况基本类似,稍作修改即可down: call panduandown1: sub bl,1call downdelaycall shownumbercmp bl,clje tomainjmp down1downgetch:mov ah,1cmp al,62hje jit1cmp al,63hje noelc1cmp al,31hjl gotodowncmp al,38hjg gotodownmov ch,alcall showledcall delaydowncall shownumbercall clequblcmp ch,blje stopdowncljg downclupch;ch大于bl则先下行至cl在上行至chcmp ch,cl;ch小于bl则在判断ch与cl的大小关系je jmpdowncl;相等则一直下行至cljl downcldownch;ch小于bl小于cl则先下行到cl在下行到chjg todownchdowncl;ch大于cl则先下行到ch在下行到clgotodown:call delaydownjmp down1noelc1: mov al,0;下降遇到了断电的情况,则等待键入,除非再次键入的为c才继续运行mov ah,7int 21hcmp al,63hjne noelc1call delaydowncall shownumberjmp down1jit1: call delaydown;下降时遇到了急停的情况,则停在下一层,然后回到main call shownumberjmp maindowndelay proc near;向下运行延时子程序,与向上运行延时子程序大体相同call delayfirstpush dxcall dianqing;调用使其能够清零ddy: call dianxia;循环调用向下的箭头显示mov ah,1int 16hjne downgetchmov dx,io8255cin al,dxjz ddypop dxretdowndelay endptodownchdowncl:jmp downchdowncl;---------------------------------------------------------------------------------下行中遇到的各种情况列举stopdowncl:call showledmov ch,0call showledcall stop2call downcljmp maindownclupch:call showledcall downclmov cl,0call showledcall stop2call upchjmp mainjmpdowncl:mov ch,0call showledcall downcljmp maindowncldownch:call showledcall downclmov cl,0call showledcall stop2call downchjmp maindownchdowncl:call showledcall downchmov ch,0call showledcall stop2call downcljmp main;--------------------------------------------------------------------电梯上、下行中遇到的各种情况处理方法jitt: jmp jitttclequbl proc near ;判断当前楼层与第一次要去的楼层的关系cmp cl,bljne backje clequchmov cl,0call shownumbercall showledcall stop2cmp ch,bljg upchherejl downchhere upchhere:call upchjmp main downchhere:call downchjmp mainclequch:mov ch,0call showledcall onlydelay;jmp mainback: retclequbl endpupcl proc near;上行到cl的子程序upcl1: add bl,1call dirdelay1call shownumbercmp bl,cljl upcl1retupcl endpjitt1: jmp jit1upch proc near;上行到ch的子程序upch1: add bl,1call dirdelay1call shownumbercmp bl,chjl upch1retupch endpdowncl proc near;下行到cl的子程序downcl1:sub bl,1call dirdelay2call shownumbercmp bl,cljg downcl1retdowncl endpdownch proc near;下行到ch的子程序downch1:sub bl,1call dirdelay2call shownumbercmp bl,chjg downch1retdownch endp;----------------------------------------------------------------------直接上下行时对按键情况的处理stop2 proc near;没有直达键的暂停子程序gostop2:mov al,0mov ah,1int 21hcmp al,13jne gostop2mov al,0retstop2 endpdirgetch1:mov ah,1;直接上行对按键的处理int 21hcmp al,63hje dirnoelc1cmp al,62hje jit21jmp dirback1dirgetch2:mov ah,1;直接下行对按键的处理int 21hcmp al,63hje dirnoelc2cmp al,62hje jit22jmp dirback2jit21: call delayup;call shownumberjmp mainjit22: call delaydown;call shownumberjmp maindirnoelc1:mov al,0;直接上行时遇到了断电待修的情况mov ah,1int 21hcmp al,63hjne dirnoelc1call delayup;call shownumberjmp dirback1dirnoelc2:mov al,0;直接下行时遇到了断电待修的情况mov ah,1int 21hcmp al,63hjne dirnoelc2call delaydown;call shownumberjmp dirback2tojit: jmp jittdirdelay1 proc near;直接上行的延时子程序call delayfirstpush dxcall dianqingdirback1:call dianshang;mov ah,1int 16hjne dirgetch1mov dx,io8255cin al,dxand al,01jz dirback1pop dxretdirdelay1 endptojit1: jmp jitt1dirdelay2 proc near;直接下行的延时子程序call delayfirstpush dxcall dianqingdirback2:call dianxia;mov ah,1int 16hjne dirgetch2mov dx,io8255cin al,dxand al,01jz dirback2pop dxretdirdelay2 endp;----------------------------------------------------------------------直达情况的处理panduan proc near;判断是否为直达键,如果是就直接到达,如果为enter正常执行next1: mov al,0mov ah,1int 21hcmp al,61h;是否为直达键je zhidacmp al,13jne next1mov al,0retpanduan endpzhida: cmp cl,bljl zhidadownjg zhidaupjmp mainzhidadown:call delaydownsub bl,1call zhidadelay2call shownumberjmp zhidazhidaup:call delayupadd bl,1call zhidadelay1call shownumberjmp zhidazhidabutton1:mov ah,1;直达对按键情况的处理,在上升时跳到此处int 21hcmp al,63hje zhidanoelc1cmp al,62hje tojitjmp zhidazhidabutton2:mov ah,1;直达对按键情况的处理,在下降时跳到此处int 21hcmp al,63hje zhidanoelc2cmp al,62hje tojit1jmp zhidazhidanoelc1:mov al,0;上升时遇到断电待修时mov ah,1int 21hcmp al,63hjne zhidanoelc1call delayup;call shownumberjmp zhidazhidanoelc2:mov al,0;下降时遇到断电待修时mov ah,1int 21hcmp al,63hjne zhidanoelc2call delaydown;call shownumberjmp zhidazhidadelay1 proc near;直达延时程序call delayfirstpush dxcall dianqingnext21: call dianshang;mov ah,1int 16hjne zhidabutton1mov dx,io8255cin al,dxand al,01jz next21pop dxretzhidadelay1 endpzhidadelay2 proc near;直达延时程序call delayfirstpush dxcall dianqingnext22: call dianxia;mov ah,1int 16hjne zhidabutton2mov dx,io8255cin al,dxand al,01jz next22pop dxretzhidadelay2 endp;------------------------------------------------------------------------------判断延时是否结束以及8253初始化delayfirst proc near;初始化8253的子程序,两计数器连级,接入1MHZ的脉冲,2s每次第二个out接pc0push dxmov dx,io8253c;8253的计数器0置方式3mov al,36hout dx,almov dx,io8253a;计数器0初始值为10000mov ax,10000out dx,almov al,ahout dx,almov dx,io8253c;8253的计数器1置方式0mov al,70hout dx,almov dx,io8253b;计数器1初始值为200mov ax,200out dx,almov al,ahout dx,alpop dxretdelayfirst endponlydelay proc near;判断延时时是否结束的子程序,注意由于点阵灯的显示要写进循环中,所以分类,该延时仅用于延时push dxdelayx: mov dx,io8255cin al,dx ;查询8255的Pc0是否为高电平and al,01jz delayxpop dxretonlydelay endpdelayup proc near;判断上升延时是否结束的子程序,包括了显示向上箭头的部分push dxcall dianqingdelayy: call dianshangmov dx,io8255cin al,dx ;查询8255的Pc0是否为高电平and al,01jz delayypop dxretdelayup endpdelaydown proc near;判断下降延时是否结束的子程序,包括了显示向下箭头的部分push dxcall dianqingdelayz: call dianxiamov dx,io8255cin al,dx ;查询8255的Pc0是否为高电平and al,01jz delayzpop dxretdelaydown endp;----------------------------------------------------------------------------------------------显示的子程序dianqing proc near;用于对点阵显示的清零,在第一次要循环前使用push dxpush axmov al,00mov dx,protlrout dx,alpop axpop dxdianqing endpdianshang proc near;点阵箭头的显示,向上箭头的显示子程序push cxpush axpush bxmov cx,0008hmov si,offset minmov ah,01movex: mov al,[si]mov bx,offset buff1xlat ;得到第一行码mov dx,prothout dx,almov al,ahmov dx,protlrout dx,al ;显示第一行红shl ah,01inc sipush cxmov cx,0ffffhdelayp: loop delayp ;延时pop cxloop movexpop bxpop axpop cxretdianshang endpdianxia proc near;点阵箭头的显示,向下箭头的显示子程序push cxpush axpush bxmov cx,0008hmov si,offset minmov ah,01movey: mov al,[si]mov bx,offset buff2xlat ;得到第一行码mov dx,prothout dx,almov al,ahmov dx,protlrout dx,al ;显示第一行红shl ah,01inc sipush cxmov cx,0ffffhdelayq: loop delayq ;延时pop cxloop moveypop bxpop axpop cxretdianxia endpshownumber proc near;用七段码显示当前楼层的子程序(a口输出)mov dl,blmov ah,2int 21h;用于在屏幕上显示mov dl,0dhmov ah,2;回车符int 21hmov dl,0ahmov ah,2;换行符int 21hsub bl,30h;七段码显示mov al,blpush bxpush dxmov bx,offset numberxlatmov dx,io8255aout dx,alpop dxpop bxadd bl,30hmov al,0retshownumber endpshowled proc near;8led显示,显示cl与ch对应的楼层,从8255b口输出push axcmp cl,0hje l0cmp cl,31hje l1cmp cl,32hje l2cmp cl,33hje l3cmp cl,34hje l4cmp cl,35hje l5cmp cl,36hje l6cmp cl,37hje l7cmp cl,38hje l8l0: mov al,0bjmp addledl1: mov al,1bjmp addledl2: mov al,10bjmp addledl3: mov al,100bjmp addledl4: mov al,1000bjmp addledl5: mov al,10000bjmp addledl6: mov al,100000bjmp addledl7: mov al,1000000bjmp addledl8: mov al,10000000bjmp addledaddled: cmp ch,0je h0cmp ch,31hje h1cmp ch,32hje h2cmp ch,33hje h3cmp ch,34hje h4cmp ch,35hje h5cmp ch,36hje h6cmp ch,37hje h7cmp ch,38hje h8h0: add al,0bjmp showh1: add al,1bjmp showh2: add al,10bjmp showh3: add al,100bjmp showh4: add al,1000bjmp showh5: add al,10000bjmp showh6: add al,100000bjmp showh7: add al,1000000bjmp showh8: add al,10000000bjmp showshow: push dxmov dx,io8255b ;8255b口输出out dx,alpop dxpop axmov al,0ret showled endp code ends end start。
电梯课程设计---电梯模拟控制系统设计
电气控制技术课程设计任务书20 11 -20 12 学年第 2学期第 19 周- 19 周题目电梯模拟控制系统设计内容及要求运行要求:运行程序时,电梯停在一楼。
如按下A3,电梯从一楼到二楼,并等待再按选择楼层按钮,如再按A6按钮则电梯从二楼到四楼,然后再按A1按钮电梯会从四楼到一楼。
其它情形实验者可多做几次,其具体效果与实际电梯相类似。
根据运行要求,画出控制系统线路图、列输入输出分配表、编写梯形图并逐条加注释,且写出程序流程图。
完成课程设计说明书与课程设计报告。
进度安排1、讲授课程设计的要求、任务和方法,布置设计题目(0.5天);2、查阅资料,确定设计方案(1天);3、设计、实验调试并完成课程设计报告(2.5天);4、当场个人答辩及报告评阅(1天)。
学生姓名:蔡系海指导时间 2012 年6月 18日至2012年6月 22日指导地点: F楼 212室任务下达2012 年 6月 15日任务完成2012年6月 22日考核方式 1.评阅□ 2.答辩□ 3.实际操作□ 4.其它□指导教师系(部)主任摘要随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,电梯也已成为人类现代生活中广泛使用的运输工具。
随着人们对电梯运行的安全性、舒适性等要求的提高,电梯得到了快速发展,其拖动技术已经发展到了调频调压调速,其逻辑控制也由 PLC 代替原来的继电器控制。
可编程控制器(PLC)因为稳定可靠、结构简单、成本低廉、简单易学、功能强大和使用方便已经成为应用最广泛的通用工业控制装置,成为当代工业自动化的主要支柱之一。
电梯控制要求接入设备使用简便,对应系统组态的编程简单,具有人性化的人机界面,配备应用程序库,加快编程和调试速度。
通过 PLC 对程序设计,提高了电梯的控制水平,并改善了电梯的电梯运行的舒适感。
本文争对以上优点,对电梯运行进行了改进,使其达到了比较理想的控制效果。
关键词 PLC 电梯控制系统目录前言.......................................................... .5一. 四层电梯控制上下行主电路 (7)二. 四层电梯控制电路图 (7)三. 四层电梯门电机控制电路原理 (7)四. 程序流程图 (8)五. 输入/输出的分配表 (8)六.四层电梯控制程序梯形图 (9)七. 心得体会 (13)八. 参考文献 (14)前言伴随着工厂自动化程度的提高,PLC可编程控制器在工厂中的应用也越来越广泛,而且几乎涉及到工厂的各个方面,包括供电、生产、物料管理、运输等等。
武科大微机原理课程设计
一、设计题目键控数据采集及数值显示电路设计二、设计任务按不同的数字键(0、1、2、3、4、5、6、7)采集0809相应数据通道的模拟量,并在LED 数码管上显示值。
设定输入模拟量在0—5V范围内,显示值在0—255范围内。
三、设计要求1.画出连接线路图或功能模块引脚连接图。
2.采用8088CPU作主控制器,0809作A/D转换器,采用直接地址译码方法,给各芯片分配地址,选取芯片中必须包含有8255。
3.采用3个共阴极型LED动态显示,只需显示0—255范围内的值。
四、设计思想及需要用的主要芯片1、设计思想首先通过编程对8255初始化,然后通过8255对ADC0809转换器初始化,通过0~7号按键(在这里0~7号按键用开关实现,有按键的过程中会有抖动,所以需要加入一个74LS244芯片,用于缓冲),经8088微处理器处理后选择ADC0809的模拟通道,将0~5V内的模拟量通过选择的模拟通道传递给模数转换器,通过转换器把模拟量转换为0~255之间的数字量,将数字量通过可编程并行接口8255(在这里端口A作为数据输入端,端口B作为数据输出端,端口C作为控制端),送给LED数码管显示。
2.主要芯片及其功能ADC0809与系统的接口包括两个输出口和一个输入口,第一个输出口用于控制芯片内部的模拟通道选择,CPU输出的通道地址从ADC0809的引脚ADDA、ADDB、ADDC输入,并利用ALE信号触发锁存;第二个输出口是哑元,用以触发ADC0809的引脚START启动转换。
当转换结束后,ADC0809的引脚EOC会产生一个高电平的状态信号,该信号用于检测,也可用于申请中断。
随后,CPU可以从ADC0809的引脚D0-D7输入转换后的数据。
其芯片引脚图如下8255是并行通信接口芯片,其基本功能是以并行的方式在系统总线与I/O设备之间传送数据。
8255A共有三个I/O端口,其中A口和B口J均为8位,而C口既可以作为8位端口,又可以分成两个4位端口。
武汉科技大学微机原理课程设计
课程设计报告学号:姓名:学院:信息科学与工程学院专业:电子信息工程班级:电信班指导教师:熊庆国用汇编语言实现电话本功能一、目的:运用所学汇编语言知识,编写一个具有电话本功能的程序,达到提高动手能力以及检验对微机原理课程学习和掌握的程度。
二、内容及要求:1)能够储存50个电话号码,其中包括人名(20个字符),电话号码(11个字符)。
2)系统可以随时接收新的人名及电话号码。
3)系统具有随时查询号码的功能,输入人名后,在屏幕上显示其相应的电话号码。
4)运行此系统后,显示菜单选项进行功能选择。
三、数据存储方案:对于电话薄的每一位联系人,姓名占20个字符,加上结束标志$共21字符;电话占11个字符,加上结束标志$共12个字符。
所以每一位联系人共占据33个单元,这样我们可以在存储区开辟33*50=1650字节的地址空间。
四、流程图:(1)程序框图:在主菜单界面下有三大模块,分别是:添加联系人信息,搜索联系人信息,退出系统。
(2)汇编流程图:有错误有错误有错误建立、修改asm 文件 汇编生成obj 文件正确? 链接、生成exe 可执行文件正确? Debug 调试 正确? 结束 开始五、汇编运行效果:(1)在win7命令窗口下使用MASM对源程序进行编译,生成目标文件weiji.obj;(2)对生成的weiji.obj文件使用link命令进行链接生成weiji.exe可执行文件;(3)在win7继续执行debug weiji.exe,会出现如下结果,这是由于版本不兼容造成的。
我之后的实验步骤均是在DOSBox软件下完成的。
(4)打开DOSBox,找到汇编路径。
执行命令debug.exe,然后使用U命令进行反汇编。
(5)继续使用G命令运行程序,得到如下界面菜单显示。
按“1”键后显示添加联系人信息,添加完毕后显示菜单。
(6)按“2”键后显示搜索联系人姓名,回车后显示对应联系人电话号码,同时显示菜单界。
(7)按“3”键后显示程序终止正常,退出系统。
电梯运行模拟状态——微机原理课程设计
;用于在模拟楼房方框左边显示楼层号码FNUM MACROLOCAL ML1PUSH CXPUSH AXPUSH DXPUSH SIMOV CH,13HMOV CL,31HMOV SI,9ML1: MOV AH,02H ;2号功能调用,设置光标位置MOV DH,CHMOV DL,1FHINT 10HMOV AH,02HMOV DL,CLINT 21HDEC CHINC CLDEC SIJNZ ML1POP SIPOP DXPOP AXPOP CXENDM;用于显示未上电梯时的模拟状态图形SITUA TION MACRO NOWFLOCAL L1,L2,L3,L4,L5,L6,L7,L8,PASS1MOV AH,03HINT 10HFNUMMOV AH,02HINT 10HMOV SI,101HL0: MOV AH,0CHMOV DX,LASTFMOV CX,SIMOV AL,0INT 10HINC SICMP SI,120HMOV BH,1HMOV SI,100H L1: MOV AH,0CHMOV DX,20HMOV CX,SIMOV AL,BHINT 10HADD SI,1HINC BHCMP SI,120HJNE L1MOV SI,20HMOV BH,1H L2: MOV AH,0CHMOV DX,SIMOV CX,100HMOV AL,BHINT 10HADD SI,1HINC BHCMP SI,9BHJNE L2MOV SI,100HMOV BH,1H L3: MOV AH,0CHMOV DX,9BHMOV CX,SIMOV AL,BHINT 10HINC BHINC SICMP SI,120HJNE L3MOV SI,20HMOV BH,1H L4: MOV AH,0CHMOV DX,SIMOV CX,120HMOV AL,BHINT 10HADD SI,1HINC BHCMP SI,9BHMOV FLAG1,1MOV DI,NOWF ;NOWFLOORMOV SI,101HL5: MOV AH,0CHMOV DX,DIMOV CX,SIMOV AL,1INT 10HINC SICMP SI,120HJNE L5ENDM;用于显示电梯运动MOVEF MACRO NOWF,LASTF LOCAL L1,L2,L3,L4,L5,L6,L7,L8,PASS1 MOV BH,1HMOV SI,100HL1: MOV AH,0CHMOV DX,20HMOV CX,SIMOV AL,BHINT 10HADD SI,1HINC BHCMP SI,120HJNE L1MOV SI,20HMOV BH,1HL2: MOV AH,0CHMOV DX,SIMOV CX,100HMOV AL,BHINT 10HADD SI,1HINC BHCMP SI,9BHJNE L2MOV SI,100HMOV BH,1HL3: MOV AH,0CHMOV DX,9BHMOV CX,SIMOV AL,BHINT 10HINC BHINC SICMP SI,120HJNE L3MOV SI,20HMOV BH,1HL4: MOV AH,0CHMOV DX,SIMOV CX,120HMOV AL,BHINT 10HADD SI,1HINC BHCMP SI,9BHJNE L4MOV FLAG1,1MOV DI,NOWF ;NOWFLOOR L6: MOV SI,101HL5: MOV AH,0CHMOV DX,DIMOV CX,SIMOV AL,1INT 10HINC SICMP SI,120HJNE L5MOV AX,FLAG1CMP AX,1JNE PASS1XOR AX,AXMOV FLAG1,AXMOV AH,09HMOV DX,OFFSET MSGENINT 21HMOV DX,OFFSET MSG3INT 21HMOV AH,01HINT 21HPASS1:MOV BX,06FFH ;可修改速度MOV CX,0FFFFHTIME: LOOP TIME ;延时DEC BXCMP BX,0JNE TIMEMOV SI,101HL7: MOV AH,0CHMOV DX,DIMOV CX,SIMOV AL,0INT 10HINC SICMP SI,120HJNE L7MOV AX,NOWFCMP AX,LASTFJA PASS2INC DIJMP PASS3PASS2: CMP AX,LASTFJNE PASS4JMP PASS3PASS4: DEC DIPASS3:CMP DI,LASTF ;LASTFLOORJNE L6MOV SI,101HL8: MOV AH,0CHMOV DX,DIMOV CX,SIMOV AL,1INT 10HINC SICMP SI,120HJNE L8ENDM;定义程序中要用到的数据段DA TA SEGMENTMSG1 DB 'FLOOR YOU SIT NOW(JUST 1-9F):$'MSG2 DB 'FLOOR YOU W ANT GO(JUST 1-9F):$' MSG3 DB 'INPUT ANY KEY TO START...$' MSG4 DB 'WANT EXPERIENCE AGAIN (Y/N)..$' MSGEN DB 0AH,0DH,'$'NOWF DW ? ;NOWF变量表示原在楼层号码LASTF DW ? ;LASTF表示目的楼层号码FLAG1 DW 1 ;起一定小作用的变量DA TA ENDS;定义程序中用到的堆栈段STACK SEGMENTBUFS DB 100 DUP(?)TOPS LABEL WORDSTACK ENDS;主代码段CODE1用于程序的执行或结束CODE1 SEGMENTASSUME CS:CODE1, DS:DA TA, SS:STACK MAIN PROCSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,TOPSMOV AH,0HMOV AL,04HINT 10HREPEAT1:CALL FAR PTR ELEV ATORMOV AH,09HMOV DX,OFFSET MSGENINT 21HMOV DX,OFFSET MSG4INT 21HMOV AH,01HINT 21HCMP AL,'Y'JE REPEAT1CMP AL,'y'JE REPEAT1MOV AH,4CHINT 21HRETMAIN ENDPCODE1 ENDS;子段码CODE2用于控制楼层状态和运动CODE2 SEGMENTELEVATOR PROC FARASSUME CS:CODE2, DS:DA TA, SS:STACK MOV AX,DATAMOV DS,AXMOV AX,SSMOV SS,AXREPUT1:MOV AH,09HMOV DX,OFFSET MSGENINT 21HMOV DX,OFFSET MSG1INT 21HMOV AH,01HINT 21HCMP AL,'1'JB REPUT1CMP AL,'9'JA REPUT1SUB AL,30HXOR AH,AHDEC AXMOV DX,08HMUL DXMOV DX,AXMOV AX,9BHSUB AX,DXMOV NOWF,AXSITUA TION NOWFREPUT2: MOV AH,09HMOV DX,OFFSET MSGENINT 21HMOV DX,OFFSET MSG2INT 21HMOV AH,01HINT 21HXOR AH,AHCMP AL,'1'JB REPUT2CMP AL,'9'JG REPUT2SUB AL,30HXOR AH,AHDEC AXXOR DX,DXMOV DX,AXMOV AX,08HSUB AX,DXMOV DX,AXMOV AX,08HMUL DXADD AX,5BHMOV LASTF,AXCMP AX,NOWFJE REPUT2 MOVEF NOWF,LASTF RETF ELEVATOR ENDP CODE2 ENDSEND STARTBIOS中断表10设置显示方式AL=00 40×25黑白方式AL=01 40×25彩色方式AL=02 80×25黑白方式AL=03 80×25彩色方式AL=04 320×200彩色图形方式AL=05 320×200黑白图形方式AL=06 320×200黑白图形方式AL=07 80×25单色文本方式AL=08 160×200 16色图形(PCjr) AL=09 320×200 16色图形(PCjr) AL=0A 640×200 16色图形(PCjr) AL=0B 保留(EGA)AL=0C 保留(EGA)AL=0D 320×200 彩色图形(EGA) AL=0E 640×200 彩色图形(EGA) AL=0F 640×350 黑白图形(EGA) AL=10 640×350 彩色图形(EGA) AL=11 640×480 单色图形(EGA) AL=12 640×480 16色图形(EGA) AL=13 320×200 256色图形(EGA) AL=40 80×30 彩色文本(CGE400) AL=41 80×50 彩色文本(CGE400) AL=42 640×400 彩色图形(CGE400)101置光标类型(CH)0-3=光标起始行(CL)0-3=光标结束行102置光标位置BH=页号DH,DL=行,列103读光标位置BH=页号CH=光标起始行DH,DL=行,列104读光笔位置AH=0 光笔未触发=1 光笔触发CH=象素行BX=象素列DH=字符行DL=字符列105置显示页AL=页号106屏幕初始化或上卷AL=上卷行数AL=0 整个窗口空白BH=卷入行属性CH=左上角行号CL=左上角列号DH=右下角行号DL=右下角列号107屏幕初始化或下卷AL=下卷行数AL=0 整个窗口空白BH=卷入行属性CH=左上角行号CL=左上角列号DH=右下角行号DL=右下角列号108读光标位置的字符和属性BH=显示页AH=属性AL=字符109在光标位置显示字符及属性BH=显示页AL=字符BL=属性CX=字符重复次数10A在光标位置显示字符BH=显示页AL=字符CX=字符重复次数10B置彩色调板(320×200图形) BH=彩色调板IDBL=和ID配套使用的颜色10C写象素DX=行(0-199)CX=列(0-639)AL=象素值10D读象素DX=行(0-199) CX=列(0-639) AL=象素值10E显示字符(光标前移)AL=字符BL=前景色10F取当前显示方式AH=字符列数AL=显示方式。
电梯模拟系统(2020年整理).doc
目录一:问题描述—————————————————————————第2页二:问题分析—————————————————————————第2页三:数据结构—————————————————————————第2页四:算法设计—————————————————————————第4页五设计与调试分析———————————————————————第6页六:体会及建议————————————————————————第7页七:参考文献—————————————————————————第7页八:原代码——————————————————————————第7页一:问题描述设计一个电梯模拟系统。
这是一个离散的模拟程序,因为电梯系统是乘客和电梯等“活动体”够成的集合,虽然他们彼此交互作用,但是他们的行为是基本独立的。
在离散的模拟中,一模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。
二:问题分析(1)、模拟某校五层教学楼的电梯系统。
该楼有一个自动电梯,能在每层停留。
五个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来该层候命。
五个楼层从下到上的编号为:0、1、2、3、4。
除了地下层外,每一层都有一个要求向下的按钮除了第四层外,每一层都有一个要求向上的按钮。
对应的变量为:CallUp[0..3]和CallDown[1..4]。
电梯内的五个目标层按钮对应的变量为:CallCar[0..4]。
(2)、电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。
(3)、乘客可随机地进出于任何层。
对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
微机原理扩展实验:单片机制作模拟电梯
微机原理扩展实验:单片机制作模拟电梯
本实验采用51单片机制作电梯的控制系统,能够实现电梯的上下运行、楼层的选择放和打开/关闭门等功能。
具体步骤如下:材料准备:
- 51单片机开发板
- 光电开关
- 驱动电机
- 七段数码管
- LED灯
- 按键开关
- 杜邦线
电路连接步骤:
1. 驱动电机正负极连接相应的接口,设置相关参数。
2. 光电开关连接到51单片机开发板上,用于检测电梯是否到达目标楼层。
3. 七段数码管用于显示当前所在楼层。
4. LED灯用于指示电梯门的状态。
5. 按键开关用于选择电梯要去的楼层以及开/关电梯门。
软件编写步骤:
1. 定义各个相关的IO口。
2. 编写楼层显示程序:通过IO口和七段数码管将电梯当前所在楼层显示出来。
3. 编写选择楼层程序:当按键按下时,将要去的楼层存储在一个变量中。
4. 编写电梯上下运行程序:通过光电开关检测电梯是否到达目
标楼层,从而控制电梯的上下运动。
5. 编写开/关门程序:通过LED灯的状态来指示电梯门的状态,同时通过电梯内部的按键开关来控制电梯门的开/关。
以上就是制作模拟电梯的基本步骤,这样的实验既有硬件的搭建,又涉及到的软件编写,能够很好地锻炼学生的综合能力。
模拟电梯课程设计方案模板
一、课程名称模拟电梯控制系统课程设计二、课程背景随着现代建筑的高度化,电梯作为重要的垂直交通工具,其控制系统的研究与开发显得尤为重要。
本课程设计旨在通过模拟电梯控制系统,让学生深入了解电梯控制系统的原理、设计方法以及实现过程,培养学生的动手能力、创新能力和工程实践能力。
三、课程目标1. 理解电梯控制系统的基本原理和组成;2. 掌握电梯控制系统的设计方法;3. 熟悉常用电梯控制元器件及其应用;4. 培养学生的动手能力、创新能力和工程实践能力;5. 提高学生对电梯控制系统的认识,为今后从事电梯行业打下基础。
四、课程内容1. 电梯控制系统的基本原理与组成2. 电梯控制系统的设计方法3. 常用电梯控制元器件及其应用4. 电梯控制系统的模拟实验5. 电梯控制系统的编程与调试五、课程实施1. 教学方法:采用理论教学与实验实践相结合的方式,注重培养学生的动手能力和创新思维。
2. 教学步骤:(1)理论教学:讲解电梯控制系统的基本原理、组成、设计方法及常用元器件;(2)实验实践:学生分组完成电梯控制系统的模拟实验,包括电路设计、元器件选型、编程与调试;(3)课程设计:学生独立完成电梯控制系统的课程设计,包括设计任务书、电路图、程序代码等。
六、课程评价1. 课堂表现:包括课堂提问、讨论等;2. 实验实践:实验报告、实验成绩;3. 课程设计:设计报告、电路图、程序代码等;4. 期末考核:书面考试、答辩。
七、课程资源1. 教材:《电梯控制系统》、《可编程控制器原理与应用》等;2. 教学课件、实验指导书、设计指南等;3. 电梯控制元器件、实验器材等。
八、课程进度安排1. 第1周:课程介绍、基本原理与组成;2. 第2周:设计方法与常用元器件;3. 第3周:模拟实验(电路设计、元器件选型);4. 第4周:编程与调试;5. 第5周:课程设计(设计任务书、电路图、程序代码);6. 第6周:课程设计(答辩);7. 第7周:课程总结与评价。
微机原理课程设计(电梯)
微机原理课程设计(电梯)计算机原理课程设计实验报告学院:专业:班级:姓名:学号:成绩:目录1.实验题目------------------------------------------3 ------------------------------------------3分析------------------------------------------3------------------------------------------4----------------------------------------5------------------------------------------5------------------------------------------7------------------------------------------13一、实验题目垂直电梯运行曲线控制(一)模拟题:在实际中,电梯是我们的交通工具,电梯从静止开始,慢慢加速,当到达某个值时,转入匀速运动,根据电梯运行的速度,电梯快要到达停止层时,开始减速,直到平层停止,打开轿厢门,客人安全走下电梯,无人上下电梯,电梯关门,向另一个目的层运动,火灾时,电梯自动归位到首层。
二、题目分析从题目要求来看,需要实现的功能有:3.电梯所在楼层的显示三、原理分析本课程设计以步进电机为驱动电机,通过8086处理器、8259A中断控制器、8255可编程接口为核心芯片,并辅以开关、LED,构成一个控制系统,用以模拟电梯正常运行过程。
其中的实验器材原理分别为:步进电机:作为被控制的电机,电机每走一步转过度,转一圈需要48步才能转一圈。
电梯的控制方法为:A-AB-B-BC-C-CD-D-DA-A,一个周期内有八步,按照这个规律不断循环就能实现电机的连续运转。
8086:作为CPU,控制步进电机、8259A可编程中断控制器、8255可编程接口以及LED,使用汇编语言编程。
电梯微机原理课程设计
电梯微机原理课程设计一、课程目标知识目标:1. 学生能够理解电梯微机原理的基本概念,掌握电梯控制系统的组成及其功能。
2. 学生能够描述电梯运行的常见信号流程,了解电梯故障诊断的基本方法。
3. 学生掌握电梯速度、加速度及制动力等关键参数的计算与应用。
技能目标:1. 学生能够运用所学知识,分析电梯运行过程中可能出现的故障,并提出合理的解决方案。
2. 学生能够设计简单的电梯控制系统,运用编程实现电梯的基本功能。
3. 学生通过实际操作,掌握电梯维护保养的基本技能,提高实践操作能力。
情感态度价值观目标:1. 学生对电梯微机原理产生兴趣,培养主动学习和探究的精神。
2. 学生认识到电梯安全运行的重要性,增强安全意识,养成遵守规范的良好习惯。
3. 学生通过小组合作,培养团队协作精神,提高沟通与交流能力。
课程性质:本课程为电气工程及其自动化专业选修课,旨在帮助学生掌握电梯微机原理及控制技术。
学生特点:学生具备一定的电气基础知识,对电梯控制技术有一定了解,但实践经验不足。
教学要求:结合理论与实践,注重培养学生的动手能力和创新能力,提高学生分析问题、解决问题的能力。
通过本课程的学习,使学生能够将理论知识应用于实际工作中,为未来从事电梯行业及相关领域工作奠定基础。
二、教学内容1. 电梯概述:电梯的发展历程、分类及主要技术参数。
教材章节:第一章 电梯概述2. 电梯控制系统:电梯控制系统的组成、工作原理及功能。
教材章节:第二章 电梯控制系统3. 电梯微机原理:微机在电梯控制中的应用,微机控制系统硬件、软件设计。
教材章节:第三章 电梯微机原理4. 电梯运行控制算法:电梯速度、加速度、制动力等参数的计算与应用。
教材章节:第四章 电梯运行控制算法5. 电梯故障诊断与维修:电梯故障分类、诊断方法及维修措施。
教材章节:第五章 电梯故障诊断与维修6. 电梯安全与防护:电梯安全系统设计,防护措施及安全规范。
教材章节:第六章 电梯安全与防护7. 电梯控制系统设计:电梯控制系统的设计方法、步骤及实例。
电梯程序模拟课程设计
电梯程序模拟课程设计一、课程目标知识目标:1. 理解电梯的基本工作原理,掌握电梯程序设计的关键概念;2. 学会使用流程图和伪代码表达程序设计思路;3. 掌握运用顺序、选择和循环结构进行电梯程序设计。
技能目标:1. 能够运用所学知识,设计出符合实际需求的电梯程序;2. 通过编程实践,提高逻辑思维和问题解决能力;3. 学会与同伴合作,进行程序调试和优化。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发创新精神;2. 培养学生面对问题时的耐心和毅力,增强克服困难的信心;3. 增强学生的团队协作意识,培养良好的沟通与表达能力。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在理解电梯工作原理的基础上,通过学习程序设计方法,培养其逻辑思维和问题解决能力。
课程将引导学生从实际需求出发,学会分解问题、设计算法,并通过编程实践,实现电梯程序的模拟。
通过本课程的学习,学生将能够将所学知识应用于实际情境,提高其编程技能,并在团队合作中培养良好的沟通与协作能力。
二、教学内容1. 电梯工作原理介绍:分析电梯的基本结构、运行模式和控制系统;- 教材章节:第二章“自动控制系统原理”,第三节“电梯控制系统”。
2. 程序设计基本概念:流程图、伪代码及其在电梯程序设计中的应用;- 教材章节:第四章“程序设计基础”,第一节“流程图与伪代码”。
3. 程序设计结构:顺序结构、选择结构、循环结构在电梯程序设计中的应用;- 教材章节:第四章“程序设计基础”,第二节“程序设计结构”。
4. 电梯程序设计实践:- 任务一:设计一个简单的电梯召唤程序;- 任务二:设计一个具有楼层选择功能的电梯程序;- 任务三:优化电梯程序,实现连续召唤和节能控制。
5. 团队合作与程序调试:分组进行程序设计,相互协作完成程序调试与优化;- 教材章节:第五章“程序调试与优化”,第一节“团队合作与问题解决”。
教学内容安排与进度:第一课时:电梯工作原理介绍,程序设计基本概念;第二课时:程序设计结构,任务一设计;第三课时:任务二设计,团队合作与程序调试;第四课时:任务三优化,总结与展示。
电梯模拟系统课件
目前,电梯模拟系统已经发展得相 当成熟,具备高度逼真的模拟效果 和强大的功能,成为电梯行业不可 或缺的重要工具。
02
系统硬件组成
电梯机房
电梯机房是电梯系统的核心部分,包括电梯主机、控制柜、曳引机等关键部件。
机房的作用是提供动力和控制电梯的运行,确保电梯能够安全、稳定地升降。
机房的设计和安装需要符合相关安全标准,确保机房的通风、散热和防尘等条件良 好。
06
实际应用案例分析
案例一:某大楼电梯模拟系统应用
总结词:高效便捷
详细描述:某大楼采用电梯模拟系统,实现了电梯的智能化管理。通过模拟系统 ,可以实时监控电梯的运行状态,提高电梯的运行效率。同时,该系统还可以实 现智能派梯、语音导航等功能,为乘客提供更加便捷的出行体验。
案例二:某医院电梯模拟系统应用
科学研究
电梯模拟系统还可以用于科学研究, 通过模拟实验和研究来探究电梯系统 的性能和优化方案。
电梯模拟系统还可以用于培训和教育 ,帮助学员掌握电梯操作和维护技能 ,提高其专业水平。
系统发展历程
初期阶段
早期的电梯模拟系统主要用于简 单的模拟和演示,功能相对较为
简单。
发展阶段
随着计算机技术的不断发展,电梯 模拟系统的功能和精度得到了大幅 提升,开始广泛应用于实际生产和 科研领域。
系统故障处理与预防措施
故障诊断与修复
系统具备故障自动诊断功能,能够快速定位故障原因,并采取相 应的修复措施,确保系统正常运行。
预防性维护
定期对系统进行预防性维护,检查各部件的工作状态,及时发现并 处理潜在的故障隐患,提高系统的可靠性。
应急预案
制定针对不同故障情况的应急预案,确保在系统出现故障时能够迅 速启动应急处理程序,最大程度地保障乘客的安全。
电梯模拟程序课程设计
电梯模拟程序课程设计一、课程目标知识目标:1. 让学生理解电梯的工作原理,掌握电梯运行的模拟编程知识。
2. 使学生掌握利用流程图描述电梯运行逻辑的方法。
3. 帮助学生理解并运用条件语句和循环语句实现电梯模拟程序。
技能目标:1. 培养学生运用编程语言(如Scratch或Python)编写简单电梯模拟程序的能力。
2. 培养学生通过流程图分析问题、解决问题的能力。
3. 提高学生团队协作、沟通交流的能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生主动探索新知识的热情。
2. 培养学生严谨、细心的学习态度,增强面对困难的勇气和毅力。
3. 培养学生遵守程序设计规范,养成良好的编程习惯。
课程性质:本课程为信息技术学科的课程,以项目式学习为主,注重实践操作和团队合作。
学生特点:学生为五年级学生,具备一定的信息技术基础,对新事物充满好奇,喜欢动手操作。
教学要求:教师需引导学生通过自主探究、小组合作等方式完成课程内容,注重培养学生的实践能力和创新精神。
同时,关注学生的个体差异,提供有针对性的指导。
通过本课程的学习,使学生能够达到上述课程目标,实现具体的学习成果。
二、教学内容1. 电梯工作原理介绍:包括电梯的基本结构、运行原理、信号控制系统等,让学生对电梯的运行机制有整体认识。
2. 编程语言基础:回顾并巩固Scratch或Python编程语言的基础知识,如变量、列表、条件语句、循环语句等,为编写电梯模拟程序打下基础。
3. 流程图设计:学习如何利用流程图描述电梯运行的逻辑过程,分析电梯运行中的各种情况,并进行流程图设计。
4. 电梯模拟程序编写:根据流程图,运用所学编程知识,分组合作编写电梯模拟程序,实现基本的运行、停止、开门、关门等功能。
5. 程序调试与优化:指导学生如何调试程序,发现并解决程序中的问题,提高程序的稳定性和运行效率。
教学内容安排和进度:第一课时:电梯工作原理介绍,回顾编程语言基础知识。
第二课时:学习流程图设计,分析电梯运行逻辑。
电梯模拟课程设计方案模板
随着城市化进程的加快,电梯作为一种重要的交通工具,其安全性和智能化程度日益受到重视。
为了让学生更好地了解电梯的工作原理、控制方法及维护保养,本课程设计旨在通过模拟电梯运行,让学生在理论与实践相结合的过程中,掌握电梯相关知识和技能。
二、课程目标1. 理解电梯的基本组成和工作原理;2. 掌握电梯控制系统的编程方法;3. 熟悉电梯的维护保养流程;4. 培养学生的创新思维和团队协作能力。
三、课程内容1. 电梯基本知识(1)电梯的组成及工作原理;(2)电梯的驱动方式及控制系统;(3)电梯的运行参数及安全标准。
2. 电梯控制系统设计(1)PLC编程基础;(2)电梯控制系统的硬件设计;(3)电梯控制系统的软件设计;(4)电梯控制系统的调试与优化。
3. 电梯维护保养(1)电梯的日常维护保养;(2)电梯的故障排除及应急处理;(3)电梯的定期检修与维护。
1. 教学方法(1)理论教学:采用多媒体教学手段,结合实物展示,使学生了解电梯的基本知识;(2)实践教学:通过模拟电梯运行,让学生亲自动手操作,掌握电梯控制系统的编程、调试与优化;(3)项目教学:以实际电梯为例,让学生参与电梯维护保养的全过程,提高学生的实际操作能力。
2. 教学过程(1)课堂讲授:教师讲解电梯基本知识、控制系统设计及维护保养等内容;(2)实验操作:学生在教师指导下,完成电梯控制系统的编程、调试与优化;(3)项目实践:学生分组进行电梯维护保养,完成项目任务。
五、课程评价1. 课堂表现:学生出勤率、课堂纪律及参与度;2. 实验操作:学生完成电梯控制系统的编程、调试与优化情况;3. 项目实践:学生参与电梯维护保养的项目完成情况;4. 期末考核:理论考试、实践操作考核及项目答辩。
六、课程总结通过本课程设计,学生能够全面了解电梯的相关知识,掌握电梯控制系统的编程、调试与优化方法,以及电梯的维护保养流程。
同时,培养学生的创新思维和团队协作能力,为今后从事电梯行业打下坚实基础。
模拟电梯控制系统-微机原理课程设计
沈阳航空航天大学课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:模拟电梯控制系统院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2013年7月9日目录第1章总体设计方案 (1)1.1课程设计的内容和要求 (1)1.2课程设计原理 (2)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)2.3.1 电梯调度子程序 (4)2.3.2 发出中断扫描时间程序 (5)2.3.3 中断子程序 (6)2.3.4 LED显示程序 (7)第3章结果测试及分析 (8)3.1结果测试 (8)3.2结果分析 (8)参考文献 (9)附录(源程序) (10)第1章总体设计方案1.1 课程设计的内容和要求一、课程设计内容:用键盘、按键、八段码和LED模拟电梯的工作过程,具体内容如下:1.键盘数字键1~8用来键入希望停的楼层,并用八段数码管显示;2.使用8个LED指示电梯当前所在楼层;3.设计两个按键分别表示人上、下电梯,每按一次上或下一人,每上下一人,都要设置目的地址;4.电梯正常运行时以每2秒1层的速度上升或下降。
若无请求就继续按原方向运行,上升和下降要有指示。
二、课程设计要求:1.独立完成课程设计任务;2.通过老师当场验收;3.交出完整的课程设计报告。
1.2 课程设计原理本设计利用8255,8253,8259,8279芯片,发光二极管,八段数码管和键盘模拟电梯的工作过程。
运用8253芯片产生20ms的脉冲给中断提供中断信号,8259芯片主要用于中断处理, 8279芯片用于扫描键盘和显示所在楼层,8255芯片主要用于信号的输入输出。
程序运行时,用键盘的“-”和“+”号表示电梯上和下的选择状态,利用八段数码管显示目的楼层,8个发光二极管显示电梯的运行状态。
初始状态时,电梯处在第一层,等待电梯的人选择“+”后,电梯打开电梯门等待选择按下按键1~8并显示在八段数码管上,按下后电梯开始运行,发光二极管右移逐个点亮直至目的楼层停止。
电梯模拟系统
4 电梯系统的演示
查看
(1) 电 梯 电 路 模 型 设 计
电梯电路模型设计说明
1.电路模型说明 :
采用了两部电梯,分别用左右两排黄灯表示,黄灯亮表示当前电 梯位置,中间蓝灯亮表示对应楼层有人等待(蓝色灯为随即点亮)。
2.实际运行效果为:
按照前面规定的调度规则,去响应请求,模型的效果为依次点亮 电梯经过处相应的LED灯,时间间隔为3S,然后到达目标楼层,持 续点亮当前楼层对应的灯,表示电梯停止等待,随即灭掉所在楼层 对应的蓝色LED灯,表示人进入电梯。然后电梯继续运行到目标楼 层,持续点亮当前楼层对应的灯。表示电梯停止,再点亮对应楼层 的蓝色LED,蓝色灯亮2S,然后灭掉,表示人离开电梯。若其他楼 层没有请求,则电梯停在当前位置,表示为该楼层对应的LED所代 表的电梯一直亮,直到再去响应请求。
turn =TRUE;
..................................................................
相关代码实例如下:
else if(point[0].y==point[goFloor].y&&m_arrive==FALSE) {//m_arrive表示人员是否到达目标楼层 FALSE表示到达
说明:模拟电梯采用MFC界面设计。
2 电梯模拟系统需求分析
1.电梯的初始状态是电梯位于第一层处,所有按钮都没有按下。
2.乘客可以在任意时刻按任何一个目标钮和呼叫钮。呼叫和目标 对应的楼层可能不是电梯当前运行方向可达的楼层。(每个楼层出现的 乘客数量,以及所要到达的目标楼层的方向是随机产生的)
3.电梯系统依照某种预先定义好的调度策略对随机出现的呼叫和目 标进行分析和响应。