武汉科技大学微机原理课程设计 模拟电梯系统(汇编)

合集下载

微机综合课程设计,模拟电梯控制系统

微机综合课程设计,模拟电梯控制系统

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。

电梯模拟课程设计方案模板

电梯模拟课程设计方案模板

随着城市化进程的加快,电梯作为一种重要的交通工具,其安全性和智能化程度日益受到重视。

为了让学生更好地了解电梯的工作原理、控制方法及维护保养,本课程设计旨在通过模拟电梯运行,让学生在理论与实践相结合的过程中,掌握电梯相关知识和技能。

二、课程目标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. 期末考核:理论考试、实践操作考核及项目答辩。

六、课程总结通过本课程设计,学生能够全面了解电梯的相关知识,掌握电梯控制系统的编程、调试与优化方法,以及电梯的维护保养流程。

同时,培养学生的创新思维和团队协作能力,为今后从事电梯行业打下坚实基础。

电梯课程设计---电梯模拟控制系统设计

电梯课程设计---电梯模拟控制系统设计

电气控制技术课程设计任务书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可编程控制器在工厂中的应用也越来越广泛,而且几乎涉及到工厂的各个方面,包括供电、生产、物料管理、运输等等。

电梯模拟程序课程设计

电梯模拟程序课程设计

电梯模拟程序课程设计一、课程目标知识目标:1. 让学生理解电梯的工作原理,掌握电梯运行的模拟编程知识。

2. 使学生掌握利用流程图描述电梯运行逻辑的方法。

3. 帮助学生理解并运用条件语句和循环语句实现电梯模拟程序。

技能目标:1. 培养学生运用编程语言(如Scratch或Python)编写简单电梯模拟程序的能力。

2. 培养学生通过流程图分析问题、解决问题的能力。

3. 提高学生团队协作、沟通交流的能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生主动探索新知识的热情。

2. 培养学生严谨、细心的学习态度,增强面对困难的勇气和毅力。

3. 培养学生遵守程序设计规范,养成良好的编程习惯。

课程性质:本课程为信息技术学科的课程,以项目式学习为主,注重实践操作和团队合作。

学生特点:学生为五年级学生,具备一定的信息技术基础,对新事物充满好奇,喜欢动手操作。

教学要求:教师需引导学生通过自主探究、小组合作等方式完成课程内容,注重培养学生的实践能力和创新精神。

同时,关注学生的个体差异,提供有针对性的指导。

通过本课程的学习,使学生能够达到上述课程目标,实现具体的学习成果。

二、教学内容1. 电梯工作原理介绍:包括电梯的基本结构、运行原理、信号控制系统等,让学生对电梯的运行机制有整体认识。

2. 编程语言基础:回顾并巩固Scratch或Python编程语言的基础知识,如变量、列表、条件语句、循环语句等,为编写电梯模拟程序打下基础。

3. 流程图设计:学习如何利用流程图描述电梯运行的逻辑过程,分析电梯运行中的各种情况,并进行流程图设计。

4. 电梯模拟程序编写:根据流程图,运用所学编程知识,分组合作编写电梯模拟程序,实现基本的运行、停止、开门、关门等功能。

5. 程序调试与优化:指导学生如何调试程序,发现并解决程序中的问题,提高程序的稳定性和运行效率。

教学内容安排和进度:第一课时:电梯工作原理介绍,回顾编程语言基础知识。

第二课时:学习流程图设计,分析电梯运行逻辑。

电梯微机原理课程设计

电梯微机原理课程设计

电梯微机原理课程设计一、课程目标知识目标:1. 学生能够理解电梯微机原理的基本概念,掌握电梯控制系统的组成及其功能。

2. 学生能够描述电梯运行的常见信号流程,了解电梯故障诊断的基本方法。

3. 学生掌握电梯速度、加速度及制动力等关键参数的计算与应用。

技能目标:1. 学生能够运用所学知识,分析电梯运行过程中可能出现的故障,并提出合理的解决方案。

2. 学生能够设计简单的电梯控制系统,运用编程实现电梯的基本功能。

3. 学生通过实际操作,掌握电梯维护保养的基本技能,提高实践操作能力。

情感态度价值观目标:1. 学生对电梯微机原理产生兴趣,培养主动学习和探究的精神。

2. 学生认识到电梯安全运行的重要性,增强安全意识,养成遵守规范的良好习惯。

3. 学生通过小组合作,培养团队协作精神,提高沟通与交流能力。

课程性质:本课程为电气工程及其自动化专业选修课,旨在帮助学生掌握电梯微机原理及控制技术。

学生特点:学生具备一定的电气基础知识,对电梯控制技术有一定了解,但实践经验不足。

教学要求:结合理论与实践,注重培养学生的动手能力和创新能力,提高学生分析问题、解决问题的能力。

通过本课程的学习,使学生能够将理论知识应用于实际工作中,为未来从事电梯行业及相关领域工作奠定基础。

二、教学内容1. 电梯概述:电梯的发展历程、分类及主要技术参数。

教材章节:第一章 电梯概述2. 电梯控制系统:电梯控制系统的组成、工作原理及功能。

教材章节:第二章 电梯控制系统3. 电梯微机原理:微机在电梯控制中的应用,微机控制系统硬件、软件设计。

教材章节:第三章 电梯微机原理4. 电梯运行控制算法:电梯速度、加速度、制动力等参数的计算与应用。

教材章节:第四章 电梯运行控制算法5. 电梯故障诊断与维修:电梯故障分类、诊断方法及维修措施。

教材章节:第五章 电梯故障诊断与维修6. 电梯安全与防护:电梯安全系统设计,防护措施及安全规范。

教材章节:第六章 电梯安全与防护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,使用汇编语言编程。

武科大微机原理课程设计

武科大微机原理课程设计

一、设计题目键控数据采集及数值显示电路设计二、设计任务按不同的数字键(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”键后显示程序终止正常,退出系统。

电梯模拟系统

电梯模拟系统

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.电梯系统依照某种预先定义好的调度策略对随机出现的呼叫和目 标进行分析和响应。

电梯运行模拟状态——微机原理课程设计

电梯运行模拟状态——微机原理课程设计

;用于在模拟楼房方框左边显示楼层号码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=显示方式。

模拟电梯控制系统-微机原理课程设计

模拟电梯控制系统-微机原理课程设计

沈阳航空航天大学课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:模拟电梯控制系统院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期: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并显示在八段数码管上,按下后电梯开始运行,发光二极管右移逐个点亮直至目的楼层停止。

电梯程序模拟课程设计

电梯程序模拟课程设计

电梯程序模拟课程设计一、课程目标知识目标:1. 理解电梯的基本工作原理,掌握电梯程序设计的关键概念;2. 学会使用流程图和伪代码表达程序设计思路;3. 掌握运用顺序、选择和循环结构进行电梯程序设计。

技能目标:1. 能够运用所学知识,设计出符合实际需求的电梯程序;2. 通过编程实践,提高逻辑思维和问题解决能力;3. 学会与同伴合作,进行程序调试和优化。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发创新精神;2. 培养学生面对问题时的耐心和毅力,增强克服困难的信心;3. 增强学生的团队协作意识,培养良好的沟通与表达能力。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在理解电梯工作原理的基础上,通过学习程序设计方法,培养其逻辑思维和问题解决能力。

课程将引导学生从实际需求出发,学会分解问题、设计算法,并通过编程实践,实现电梯程序的模拟。

通过本课程的学习,学生将能够将所学知识应用于实际情境,提高其编程技能,并在团队合作中培养良好的沟通与协作能力。

二、教学内容1. 电梯工作原理介绍:分析电梯的基本结构、运行模式和控制系统;- 教材章节:第二章“自动控制系统原理”,第三节“电梯控制系统”。

2. 程序设计基本概念:流程图、伪代码及其在电梯程序设计中的应用;- 教材章节:第四章“程序设计基础”,第一节“流程图与伪代码”。

3. 程序设计结构:顺序结构、选择结构、循环结构在电梯程序设计中的应用;- 教材章节:第四章“程序设计基础”,第二节“程序设计结构”。

4. 电梯程序设计实践:- 任务一:设计一个简单的电梯召唤程序;- 任务二:设计一个具有楼层选择功能的电梯程序;- 任务三:优化电梯程序,实现连续召唤和节能控制。

5. 团队合作与程序调试:分组进行程序设计,相互协作完成程序调试与优化;- 教材章节:第五章“程序调试与优化”,第一节“团队合作与问题解决”。

教学内容安排与进度:第一课时:电梯工作原理介绍,程序设计基本概念;第二课时:程序设计结构,任务一设计;第三课时:任务二设计,团队合作与程序调试;第四课时:任务三优化,总结与展示。

电梯模拟系统课件

电梯模拟系统课件
成熟阶段
目前,电梯模拟系统已经发展得相 当成熟,具备高度逼真的模拟效果 和强大的功能,成为电梯行业不可 或缺的重要工具。
02
系统硬件组成
电梯机房
电梯机房是电梯系统的核心部分,包括电梯主机、控制柜、曳引机等关键部件。
机房的作用是提供动力和控制电梯的运行,确保电梯能够安全、稳定地升降。
机房的设计和安装需要符合相关安全标准,确保机房的通风、散热和防尘等条件良 好。
06
实际应用案例分析
案例一:某大楼电梯模拟系统应用
总结词:高效便捷
详细描述:某大楼采用电梯模拟系统,实现了电梯的智能化管理。通过模拟系统 ,可以实时监控电梯的运行状态,提高电梯的运行效率。同时,该系统还可以实 现智能派梯、语音导航等功能,为乘客提供更加便捷的出行体验。
案例二:某医院电梯模拟系统应用
科学研究
电梯模拟系统还可以用于科学研究, 通过模拟实验和研究来探究电梯系统 的性能和优化方案。
电梯模拟系统还可以用于培训和教育 ,帮助学员掌握电梯操作和维护技能 ,提高其专业水平。
系统发展历程
初期阶段
早期的电梯模拟系统主要用于简 单的模拟和演示,功能相对较为
简单。
发展阶段
随着计算机技术的不断发展,电梯 模拟系统的功能和精度得到了大幅 提升,开始广泛应用于实际生产和 科研领域。
系统故障处理与预防措施
故障诊断与修复
系统具备故障自动诊断功能,能够快速定位故障原因,并采取相 应的修复措施,确保系统正常运行。
预防性维护
定期对系统进行预防性维护,检查各部件的工作状态,及时发现并 处理潜在的故障隐患,提高系统的可靠性。
应急预案
制定针对不同故障情况的应急预案,确保在系统出现故障时能够迅 速启动应急处理程序,最大程度地保障乘客的安全。

微机原理扩展实验:单片机制作模拟电梯

微机原理扩展实验:单片机制作模拟电梯

微机原理扩展实验:单片机制作模拟电梯
本实验采用51单片机制作电梯的控制系统,能够实现电梯的上下运行、楼层的选择放和打开/关闭门等功能。

具体步骤如下:材料准备:
- 51单片机开发板
- 光电开关
- 驱动电机
- 七段数码管
- LED灯
- 按键开关
- 杜邦线
电路连接步骤:
1. 驱动电机正负极连接相应的接口,设置相关参数。

2. 光电开关连接到51单片机开发板上,用于检测电梯是否到达目标楼层。

3. 七段数码管用于显示当前所在楼层。

4. LED灯用于指示电梯门的状态。

5. 按键开关用于选择电梯要去的楼层以及开/关电梯门。

软件编写步骤:
1. 定义各个相关的IO口。

2. 编写楼层显示程序:通过IO口和七段数码管将电梯当前所在楼层显示出来。

3. 编写选择楼层程序:当按键按下时,将要去的楼层存储在一个变量中。

4. 编写电梯上下运行程序:通过光电开关检测电梯是否到达目
标楼层,从而控制电梯的上下运动。

5. 编写开/关门程序:通过LED灯的状态来指示电梯门的状态,同时通过电梯内部的按键开关来控制电梯门的开/关。

以上就是制作模拟电梯的基本步骤,这样的实验既有硬件的搭建,又涉及到的软件编写,能够很好地锻炼学生的综合能力。

模拟电梯控制系统

模拟电梯控制系统
课程设计
设计题目 模 拟 电 梯 控 制 系 统
学生姓名
学号
专业班级
通 信 工 程 10-01
指导教师
2013 年 07 月 11 日
设计 题目
模拟电梯控制系统
成绩
1、绪论
2、课程设计任务及要求 课 程 3、设计方案 设 4、硬件系统说明及电路原理图 计 主 5、软件模块说明及流程图 要 6、课程设计总结 内 容 7、参考文献
间。 电梯上升和下降过程中相应的直流电机进行转动,模拟电梯的运动过程。
3.3 创新点及采用的新技术 采用了直流电机等进行模拟电梯的动力系统。
4、硬件系统说明及电路原理图
4.1 硬件系统说明 本设计采用 51 单片机作为 CPU,采用 8279 可编程芯片控制键盘读写及数码
第2页
管的显示,使用 LED 灯模拟电梯上、下以及停梯、开关门过程,通过单片机控制 8279 的定时显示、LED 灯的亮灭以及直流电机的转和停实现整个硬件系统。系统 框图如下:
第1页
4、驱动电路可选用实验箱直流电机驱动电路或步进电机驱动电路,电机启 动转动模拟电梯运行,电机停转模拟电梯停止运行。电梯运动方式:启动→慢速 →快速,可以用电机启动加速至最高速模拟,到达指定楼层之前运动方式:快速 →慢速→平层停车,可以用电机减速至停转模拟。
2.2 课程设计要求 本课题要求在 ZY15MCU12BC2 实验平台上,设计模拟电梯控制系统,实现如
第3页
5.3 源程序 见附录
6、课程设计总结
6.1 收获与体会 通过本次课程设计实验,加强我对单片机控制系统的理解,以及对其功能用
途的强大有了更深的认识,在实验过程中,我熟悉并掌握了 keil uvision3 软件 进行单片机编程,以及其可以调试、烧录程序到实验箱,并学习了模块化编程的 方法,后期在做报告时,使用了 proteus 作电路图,以及使用了 Microsoft Visio 2010 作流程图,也使自己得到了锻炼。

模拟电梯课程设计方案模板

模拟电梯课程设计方案模板

一、课程名称模拟电梯控制系统课程设计二、课程背景随着现代建筑的高度化,电梯作为重要的垂直交通工具,其控制系统的研究与开发显得尤为重要。

本课程设计旨在通过模拟电梯控制系统,让学生深入了解电梯控制系统的原理、设计方法以及实现过程,培养学生的动手能力、创新能力和工程实践能力。

三、课程目标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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二○一三~二○一四学年第二学期电子技术学院电子信息工程系课程设计报告书班级:姓名:课程名称:微机原理及应用课程设计学时学分: 1 周 1 学分指导老师:**二○一三年十二月三十一日一、课程设计目的:综合运用本课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。

二、课程设计时间安排:第一天:教师布置设计任务,讲解设计要求,提示设计要点。

第二~三天:查阅资料(在图书馆或上网),提出设计方案。

第三~七天:画出详细设计图(电路图),编写程序,调试程序,得出实验结果并写出设计报告。

三、课程设计选题:设计要求:(1). 在1-- 8楼之间一次可输入多个任意楼层号连续控制电梯按指定楼层号顺序上升与下降.以上过程完成后可重新输入任意楼层号连续控制电梯按指定楼层号顺序上升与下降.只有按ESC键才退出程序返回DOS状态。

例如: 1-3-5-7-6-4-2-1 (可观察教十楼电梯的实际运行情况).(2). 在1 -- 7 楼之间按任意顺序不连续控制电梯上升与下降. 按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼. (上箭头的ASCII码19H , 下箭头的ASCII码1AH . )(3). 在电梯上升与下降过程中,要显示出1--7 楼之间所要到达的楼层数,同时还要用箭头显示电梯是上升状态还是下降状态.(4). 电梯运行到指定楼层后,打开电梯门,然后关门继续运行.(5). 电梯运行时, 在任意时刻遇到紧急情况时应能实时中断电梯运行.也可以在任意时刻恢复电梯运行.(按A/a 键模拟中断发生,电梯停止运行.按B/b 键恢复电梯运行)(6). 在计算机屏幕上将电梯的平面模型改成三维立体模型.(7). 在电梯旁画一个小方块.这个小方块随电梯上升而上升,下降而下降.以增加电梯运行时的动感.(8). 电梯仿真软件运行时,应在计算机屏幕上详细说明其使用方法,以及本软件作者姓名和日期.报告要求:(1). 在报告中应对电梯仿真软件的设计思想,设计方法用文字详细说明.(2). 在报告中应有完整的程序清单(必需加注释).(3). 在报告中应有完整的程序框图.(4). 谈谈自己通过这次设计实践的收获和体会.参考文献:[1] 朱定华,微机原理、汇编与接口技术,清华大学出版社,2005[2] 徐士良,PC机C图形编程手册,清华大学出版社,1994四、课程设计内容:1、程序模块:2、程序流程图:3、程序设计思路:电梯模拟程序主要是一个画图程序,程序需要利用一连串的画图指令来实现动画效果。

首先,程序中将用到INT 10H的一系列指令来实现画图功能。

要实现动画效果,如电梯门开关、电梯上下移动就必须在生成新的图形同时将老的图形擦去,所以运动的过程分为擦去原有图像和画新图像两部分完成。

当新的图形可以直接覆盖原有效果时则直接画新图形即可,新图形无法覆盖老效果时则首先要用背景颜色将原有图形重绘一次,这样就达到了擦出的效果。

CPU完成一连串画图指令速度是非常迅速的,为了清除观察到动画效果所以添加了一个延时模块,在画图命令中调用此命令可以清晰观察到动画效果。

其次,还需要INT 21H 的9H号功能实现字符串的显示功能。

由于需要键盘输入电梯控制相关指令,所以需要用到INT 16H的1H号功能停止和继续电梯的运动;还需要INT 21H的0AH号功能实现输入兵显示字符串;以及INT 21H的0CH号功能清空键盘缓存。

在此基础上,用一系列的循环、判断、跳转命令将各种功能结合起来最终搭建成模拟电梯程序。

4、程序代码及注释:CLEAR MACRO ; 清屏的宏MOV BH,7 ; 卷入行属性,黑底白字,正常显示.MOV AX,0600H ; AH=6 屏幕初始化或上卷.AL=0 整个窗口空白. INT 10H ; CH=左上角行号,CL=左下角列号.ENDM ; DH=右上角行号,DL=右下角列号.;---------------------------------------POS MACRO ; 移动光标的宏MOV BH,00H ; BH=页号 DH,DL=行号,列号.MOV AH,02H ; AH=2 置光标位置.INT 10HENDM;---------------------------------------HENG MACRO X1,Y1,COLOR,X2 ; 写横的宏LOCAL BH1 ; 定义标号MOV CX,X1 ; 起始点横作标-->CXMOV DX,Y1 ; 起始点纵作标-->DXBH1: MOV AH,0CH ; 写象素MOV AL,COLOR ; 设定颜色参数-->ALINT 10HINC CXCMP CX,X2 ; 写至终点横作标为止JNZ BH1ENDM;---------------------------------------SHU MACRO CX1,CY1,COLOR,CY2 ; 写竖的宏LOCAL BH2 ; 定义标号MOV CX,CX1MOV DX,CY1BH2: MOV AH,0CHMOV AL,COLOR ; AL=(00--0FH)共16种颜色.INT 10HINC DXCMP DX,CY2JNZ BH2ENDM;---------------------------------------DELAY MACRO ;延时1s的宏LOCAL READPUSH DX ;入栈,保护原有DX、CX中的数据PUSH CXSUB AX,AXINT 1AH ;INT 1AH的0号功能读当前时钟值,CX:DX=时钟计数值MOV TIME,DXMOV TIME[2],CXREAD: SUB AX,AXINT 1AHSUB DX,TIMESBB CX,TIME[2]CMP DX,DLYJB READPOP CX ;出栈,恢复现场POP DXENDM;---------------------------------------UP MACRO N,DX1 ;小方块上升的宏LOCAL UPA,UPB ; 定义标号MOV AL,N ;小方块从N-1层上升至N层MOV CH,30 ;小方块上升一层,并且将下一层的小方块清除 MUL CH ;30*N个像素MOV DX,430SUB DX,AX ;430-30*N个像素得到画小方块的纵坐标下限值 MOV [DZ],DXADD DX,20 ;每个小方块边长为20个像素MOV DX1,DX ;得到纵坐标上限值UPA: HENG 170,[DZ],0CH,190 ;画小方块INC [DZ]MOV AX,DX1CMP [DZ],AXJNZ UPAADD DX,11 ;坐标调整到移动之前的坐标MOV [DZ],DXADD DX,20MOV DX1,DXUPB: HENG 170,[DZ],00H,190 ;擦原小方块INC [DZ]MOV AX,DX1CMP [DZ],AXJNZ UPBENDM;---------------------------------------DOWN MACRO N,DX1 ;小方块下降的宏LOCAL DOWNA,DOWNB ; 定义标号MOV AL,N ;小方块从N+1层下降至N层MOV CH,30 ;小方块下降一层,并且将上一层的小方块清除 MUL CHMOV DX,430SUB DX,AXMOV [DZ],DXADD DX,20MOV DX1,DXDOWNA: HENG 170,[DZ],0CH,190 ;画小方块INC [DZ]MOV AX,DX1CMP [DZ],AXJNZ DOWNASUB DX,49MOV [DZ],DXADD DX,20MOV DX1,DXDOWNB: HENG 170,[DZ],00H,190 ;擦原有小方块INC [DZ]MOV AX,DX1CMP [DZ],AXJNZ DOWNBENDM;---------------------------------------CLOSE MACRO ;画电梯关门状态的宏LOCAL CEMOV [DZ],220CE: HENG 210,[DZ],09H,370 ;电梯关门INC [DZ]CMP [DZ],420JNZ CESHU 291,220,02H,420 ;电梯大门缝隙 SHU 290,220,02H,420SHU 289,220,02H,420ENDM;---------------------------------------HALF MACRO ;画电梯半开门状态的宏LOCAL HFMOV [DZ],221HF: HENG 210,[DZ],09H,250 ;电梯半开门 HENG 252,[DZ],07H,328HENG 330,[DZ],09H,370INC [DZ]CMP [DZ],420JNZ HFSHU 251,220,02H,420 ;电梯大门缝隙 SHU 329,220,02H,420ENDM;---------------------------------------FULL MACRO ;画电梯全开门状态的宏LOCAL FLMOV [DZ],221FL: HENG 210,[DZ],09H,215 ;电梯全开门 HENG 217,[DZ],07H,363HENG 365,[DZ],09H,370INC [DZ]CMP [DZ],420JNZ FLSHU 216,220,02H,420 ;电梯大门缝隙 SHU 364,220,02H,420ENDM;---------------------------------------PAUSE MACRO ;电梯紧急暂停的宏LOCAL WAIT,WANSUB AX,AXMOV AH,1CMP AL,'a' ;读取键盘缓存中是否有"a",有就进入暂停等待循环,没有则退出JNZ WANMOV DX,0301HPOSMOV DX,OFFSET MSG7 ;显示MSG7MOV AH,9INT 21HMOV AH,0CH ;清空键盘缓存INT 21HWAIT: CLC ;CF=0MOV AH,1INT 16HCMP AL,'b' ;检测键盘缓存中是否有"b",有就退出暂停等待循环,没有则继续循环JNZ WAITWAN: MOV DX,0301HPOSMOV DX,OFFSET MSG6 ;用于将MSG7的信息擦除MOV AH,9INT 21HMOV AH,0CHINT 21HENDM;---------------------------------------data segmentMSG1 DB 'Please press "1-8" or "w/s" ro others to terminate.(eg: 1-3-8/w): $' ; 输出多个空格是为了清空上一次的输入MSG2 DB 'Please press any key.','$'MSG3 DB 'Floor: $'MSG4 DB 'Direction: $'MSG5 DB 'To: $'MSG6 DB 'When the elevator running, please press "a" to emergency stop. $'MSG7 DB 'Please press "b" to continue. $'MSG8 DB 'WUST LiGang 2014.2.5 $'DAT DB 0FFH,0,255 DUP(0)DLY EQU 18DZ DW 0TIME DW 0,0NUM1 DB 1NUM2 DB 1COUNT DB 0DX2 DW 0data ends;---------------------------------------stacks segmentSTA DW 100 DUP(0)TOP DW ?stacks ends;---------------------------------------code segmentassume cs:code,ds:data,ss:stacks;---------------------------------------start proc farmov ax,datamov ds,axmov ax,stacksmov ss,axmov ax,datamov es,axpush axpush bxpush cxpush dxpush sipush diMOV CX,0MOV DX,2479HMOV BH,7MOV AX,0601HINT 10HMOV AX,0012H ;置图形显示方式INT 10H ;640列*480行,16色.MOV DX,0 ;光标位置初始化POSHENG 220,99,0AH,420 ;信息栏外边框 HENG 220,151,0AH,420SHU 220,99,0AH,151SHU 420,99,0AH,151HENG 223,102,0AH,417 ;信息栏内边框 HENG 223,148,0AH,417SHU 223,102,0AH,148SHU 417,102,0AH,148CLOSE ;电梯大门处于关闭状态HENG 210,220,02H,370 ;电梯大门缝隙边框 HENG 210,420,02H,370SHU 210,220,02H,420SHU 370,220,02H,420HENG 209,219,02H,371 ;加粗边框SHU 209,220,02H,420SHU 371,220,02H,420MOV [DZ],219MOV DX1,210MOV DX2,370SB1: HENG DX1,[DZ],03H,DX2 ;三维电梯上侧面 DEC [DZ]INC DX1INC DX2CMP [DZ],180JNZ SB1MOV [DZ],371MOV DX1,220MOV DX2,420SB2: SHU [DZ],DX1,03H,DX2 ;三维电梯右侧面 INC [DZ]DEC DX1DEC DX2CMP [DZ],410JNZ SB2MOV [DZ],421SB3: HENG 160,[DZ],0EH,200 ;画电梯框架SUB [DZ],30CMP [DZ],151JNZ SB3SHU 160,181,0EH,422SHU 200,181,0EH,422MOV [DZ],400BRICK: HENG 170,[DZ],0CH,190 ;画初始小方块INC [DZ]MOV AX,420CMP [DZ],AXJNZ BRICKMOV DX,072BHPOSMOV DL,NUM1ADD DL,30HMOV AH,2INT 21H ;初始楼层显示"1"MOV DX,1C3BHPOSMOV DX,OFFSET MSG8 ;显示MSG8MOV AH,9INT 21HMOV DX,0723HPOSMOV DX,OFFSET MSG3 ;显示MSG3MOV AH,9INT 21HMOV DX,081DHPOSMOV DX,OFFSET MSG4 ;显示MSG4MOV AH,9INT 21HMOV DX,082DHPOSMOV DX,OFFSET MSG5 ;显示MSG5MOV AH,9INT 21HMOV DX,0301HPOSMOV DX,OFFSET MSG6 ;显示MSG6MOV AH,9INT 21HINPUT: MOV DX,0101HPOSMOV DX,OFFSET MSG1 ;显示MSG1MOV AH,9INT 21HMOV DX,0143HPOSMOV DX,OFFSET DAT ;输入并显示字符串MOV AH,10INT 21HMOV AL,DAT+1MOV COUNT,AL ;记录输入的字符个数MOV BP,2MOV AL,DAT[BP]CMP AL,'w' ;输入w则上升一层JE UP1CMP AL,'s' ;输入s则下降一层JE DOWN1CMP AL,31H ;输入小于1的ACSⅡ码则退出JB OVERCMP AL,38H ;输入大于8的ACSⅡ码则退出JA OVERAND AL,0FH ;输入1至8则进入多楼层控制命令循环TARGET1 MOV NUM1,ALTARGET1: ADD BP,2 ;因为输入格式为"1-2-6",每次BP偏移两位起到了仅取有效位数字的作用MOV AL,DAT[BP]AND AL,0FH ;将字符转换为数字CMP AL,1 ;检测后续输入的字符是否合法,超出1~8范围则返回输入界面JB INPUTCMP AL,8JA INPUTMOV NUM2,ALMOV DX,0831HPOSMOV DL,DAT[BP] ;显示电梯下一站要停的楼层数MOV AH,2INT 21HDELAYTARGET2: MOV AL,NUM2CMP AL,NUM1 ;若下一站楼层大于当前楼层,则跳至上升命令段 JA TARGET3 ;若下一站楼层小于当前楼层,则在当前命令段MOV AL,NUM2CMP AL,NUM1 ;第二次比较,若到达目标楼层或两站楼层相同则跳至SHOW命令显示开关门动画JZ SHOWDEC NUM1PAUSE ;在画图命令之前插入暂停命令,确保电梯在任何楼层时都能暂停DOWN NUM1,DX1 ;电梯下降MOV DX,0829HPOSMOV DL,19H ;显示下箭头MOV AH,2INT 21HMOV DX,072BHPOSMOV DL,NUM1 ;显示当前楼层数ADD DL,30H ;将数字转换为ASCⅡ码MOV AH,2INT 21HDELAY ;电梯在每一层停留1S以便观察JMP TARGET2TARGET3: INC NUM1PAUSE ;在画图命令之前插入暂停命令,确保电梯在任何楼层时都能暂停UP NUM1,DX1 ;电梯上升MOV DX,0829HPOSMOV DL,18H ;显示上箭头MOV AH,2INT 21HMOV DX,072BHPOSMOV DL,NUM1 ;显示当前楼层数ADD DL,30H ;将数字转换为ASCⅡ码MOV AH,2INT 21HDELAY ;电梯在每一层停留1S以便观察JMP TARGET2UP1: CMP NUM1,8JNB INPUTINC NUM1MOV DX,0831HPOSMOV DL,NUM1 ;显示电梯下一站要停的楼层数ADD DL,30HMOV AH,2INT 21HUP NUM1,DX1 ;电梯上一层MOV DX,0829HMOV DL,18H ;显示上箭头MOV AH,2INT 21HMOV DX,072BHPOSMOV DL,NUM1 ;显示当前楼层数ADD DL,30H ;将数字转换为ASCⅡ码MOV AH,2INT 21HJMP SHOWDOWN1: CMP NUM1,1JNA INPUTDEC NUM1MOV DX,0831HPOSMOV DL,NUM1 ;显示电梯下一站要停的楼层数ADD DL,30HMOV AH,2INT 21HDOWN NUM1,DX1 ;电梯下一层MOV DX,0829HPOSMOV DL,19H ;显示下箭头MOV AH,2INT 21HMOV DX,072BHPOSMOV DL,NUM1 ;显示当前楼层数ADD DL,30H ;将数字转换为ASCⅡ码MOV AH,2INT 21HSHOW: MOV DX,0829HPOSMOV DL,'-' ;到达楼层时"Direction"显示"-"MOV AH,2INT 21HDELAY ;电梯门开关每个动作间停留1S以便观察PAUSE ;每个动作后插入PAUSE使电梯能在开关门时暂停 HALFDELAYPAUSEDELAYPAUSEHALFDELAYPAUSECLOSEDELAYPAUSESUB AX,AXINT 1AHMOV TIME,DXMOV TIME[2],CXMOV AH,0CHINT 21H ;清空键盘缓冲区MOV AL,COUNTCBW ;将字节扩展为字CMP BP,AX ;若此时没到输入数据最后一位则进入TARGET1,若已到最后一位则进入INPUT开始新一轮运行 JB TARGET1JMP INPUTOVER: MOV DX,101CH ;显示MSG2POSMOV DX,OFFSET MSG2MOV AH,9INT 21HMOV DL,0FFHMOV AH,6INT 21HJZ OVERMOV CX,0MOV DX,2479HCLEARMOV AX,4C00HINT 21H ; 返回DOS.MOV AH,02HINT 10H ; 恢复文本显示方式.pop dipop sipop dxpop cxpop bxpop axstart endp;---------------------------------------- code endsend start5、程序运行截图:程序初始界面电梯移动界面开关门状态(半开)暂停状态(第二行提示语句改变)程序退出界面五、心得体会:此次课程设计是我首次使用汇编语言进行大规模编程,在这个过程中我学到了很多“微机原理及应用”课堂上未曾提到的知识,也加深了在课堂上学到的知识,使我对于微机原理和汇编语言的掌握程度达到了新的高度。

相关文档
最新文档