微机课程设计电梯仿真程序

微机课程设计电梯仿真程序
微机课程设计电梯仿真程序

二○一四~二○一五学年第一学期

信息科学与工程学院

自动化系

课程设计报告书

姓名:

学号:201204134013

班级:自动化1201

课程名称:微机原理与应用课程设计指导教师:程磊

2014年12月19日

电梯仿真程序

1.课程设计目的:

在读懂任务书给出的几个子程序的基础上,学习运用计算机动画技术等手段自己独立编

制出一个完整的电梯运行计算机仿真程序.通过编制仿真程序的实践,加强同学们对计算机

顺序控制的了解与认识,以达到掌握计算机顺序控制规律和计算机顺序控制技术所需的编程

技巧以及相关的硬件基础知识的目的。

2.设计要求:

(1). 在 1-- 8楼之间一次可输入多个任意楼层号连续控制电梯按指定楼层号顺序上升与

下降.以上过程完成后可重新输入任意楼层号连续控制电梯按指定楼层号顺序上升与下降.

只有按ESC键才退出程序返回DOS状态。例如 : 1-3-5-8-6-4-2-1 (可观察教六楼电梯的

实际运行情况).

(2). 在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降. 按一次计算机键盘的上

箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼. (上箭头的ASCII码19H ,

下箭头的ASCII码1AH . )

(3). 在电梯上升与下降过程中,要显示出 1--8 楼之间所要到达的楼层数,同时还要用箭

头显示电梯是上升状态还是下降状态.

(4). 电梯运行到指定楼层后,打开电梯门,然后关门继续运行.

(5). 电梯运行时, 在任意时刻遇到紧急情况时应能实时中断电梯运行.也可以在任意时

刻恢复电梯运行.(按A/a 键模拟中断发生,电梯停止运行.按B/b 键恢复电梯运行)

(6). 在计算机屏幕上将电梯的平面模型改成三维立体模型.

(7). 在电梯旁画一个小方块.这个小方块随电梯上升而上升,下降而下降.以增加电梯运

行时的动感.

(8). 电梯仿真软件运行时,应在计算机屏幕上详细说明其使用方法,以及本软件作者姓名

和日期.

3.使用方法和介绍:

①在提示“INPUT THE ORDER(1-8F)(SUCH AS 1-2-5-2):”后面输入用户要去的楼层,可从

任意楼层开始运行,指定楼层号顺序上升与下降,数字与数字之间用“-”连接,数字范围

为1-8。

②电梯上升与下降过程中,提示“NOW THE FLOOR IS:”后面显示出当前所要在的楼层数,

提示“TO:”后面显示1--8 楼之间所要到达的楼层数,提示“DIRECTION :”后面显示上下

箭头,代表电梯当前是上升状态还是下降状态。

③在电梯旁有一个小方块。这个小方块随电梯上升而上升,下降而下降。增加电梯运行时的

动感.。小方块在一个8层的方框内上下移动,电梯每上升一层,小方块在方框内上升一层,

电梯每下降一层,小方块在方框内下降一层。并且小方块在方框内的位置与电梯当前所在楼

层时对应的,例如:若当前电梯运行到第8层,则小方块也位于第八层方框。为了使用户能

更清晰地看到电梯的运行过程,小方块每到一层会停留1S的时间。电梯运行到指定楼层后,

打开电梯门,然后关门继续运行,为了模拟真实的效果,电梯在指定楼层停下,大门依次闭

合-半开门-全开门-半开门-闭合。

④在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降。按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼。由于所使用的计算机的某些原因,这里输入“w”上升一楼,输入“s”下降一楼。电梯的不连续控制只在电梯停在某一层且关上的门之后。提示是“UP OR DOWN ONLY VAILABLE WHEN LIFT STOP(use w or s )”,当用户可以对电梯进行不连续控制时,会出现“~~NOW VAILABLE”的提示。

⑤电梯仿真软件运行时,在计算机屏幕上显示本软件日期“***DATA: 2014-12-20***”,作者姓名“AUTHOR IS: xia zhi long ”和学号“XUEHAO:201204134013”。

4.程序的设计思路

在主程序的最前面是宏,将具有特定功能的画图代码打包成一个个宏放在住程序的最前面。有清屏的宏,移光标的宏,写横的宏,写竖的宏,画小方块上升的宏,画小方块下降的宏,画初始小方块的宏,画电梯关门状态的宏,画电梯半开门状态的宏,画电梯全开门状态的宏。由于这段画图的代码在程序中会经常使用,所将他们编成宏使用起来更方便。除了主程序外还有一个延时1S的子程序。

开始主程序的运行后,先运行一段初始化程序,然后设置图形显示方式,再显示提示信息以及有关信息,然后再画电梯的三维模型,这样整个初始界面就完成了。然后再提示信息下,用户输入要去的楼层,判断该字符串的第一个字符的ASCII码是否在1-8范围,如果不是则结束并返回DOS界面,如果是则继续进行下一步程序。将第1个数字代表的楼层设为当前站X(n),并赋给COUNT(该变量用来记录当前层)。将下个数字代表的层数设为下一站(如果当前站为最后一站,则重新回到开头提示用户输入信息),将COUNT与下一站X(n+1)相比较,若COUNT大于下一站,则小方块下降一层,COUNT--,并显示当前层和目标层以及下箭头,一直循环直到相等;若COUNT小于下一站,则小方块上升一层,COUNT++,并显示当前层和目标层以及下箭头,一直循环直到相等;相等时,则电梯大门大门依次闭合-半开门-全开门-半开门-闭合。大门关上后,调用MOV AH,1 ; INT 16H检测是否有按键按下,若没有键盘按下,则X(n)=X(n+1),读取下一个字符,将该字符所代表的楼层赋给X(n+1),并回到前面检测X(n)是否为最后目标层的程序段。若有键盘按下,则判断AL的值(该值为输入的字符的ASCII码),若AL为‘w’则小方块上升一层,COUNT++;若AL为‘s’则小方块下降一层,COUNT--;两者最后都回到“X(n)=X(n+1),读取下一个字符,将该字符所代表的楼层赋给X(n+1)”这一步,若AL即不为‘w’也不为‘s’,则直接回到该步骤。

以上是整个程序的大致流程和思路。

5.程序的流程图

6.程序清单

CLSS MACRO ; 清屏之宏

MOV BH,7 ; 卷入行属性,黑底白字,正常显示.

MOV AX,0600H ; AH=6 屏幕初始化或上卷.AL=0 整个窗口空白. INT 10H ; CH=左上角行号,CL=左下角列号.

ENDM ; DH=右上角行号,DL=右下角列号.

GB MACRO ; 移光标之宏

MOV BH,00H ; BH=页号 DH,DL=行号,列号.

MOV AH,02H ; AH=2 置光标位置.

INT 10H

ENDM

HENG MACRO X1,Y1,COLOR,X2 ; 写横的宏

LOCAL BH1 ; 定义标号

MOV CX,X1 ; 起始点横作标-->CX

MOV DX,Y1 ; 起始点纵作标-->DX

BH1: MOV AH,0CH ; 写象素

MOV AL,COLOR ; 设定颜色参数-->AL

INT 10H

INC CX

CMP CX,X2 ; 写至终点横作标为止

JNZ BH1

ENDM

SHU MACRO CX1,CY1,COLOR,CY2 ; 写竖的宏

LOCAL BH2 ; 定义标号

MOV CX,CX1

MOV DX,CY1

BH2: MOV AH,0CH

MOV AL,COLOR ; AL=(00--0FH)共16种颜色.

INT 10H

INC DX

CMP DX,CY2

JNZ BH2

ENDM

UP MACRO N,DX1 ;小方块上升的宏

LOCAL UPa,UPb ; 定义标号

MOV AL,N ;小方块从N-1层上升至N层

MOV CH,30 ;小方块上升一层,并且将下一层的小方块清除 MUL CH

MOV DX,430

SUB DX,AX

MOV [DZ],DX

ADD DX,20

MOV DX1,DX

UPa: HENG 485,[DZ],04H,515 ;画小方块

INC [DZ]

MOV AX,DX1

CMP [DZ],AX

JNZ UPa

ADD DX,11

MOV [DZ],DX

ADD DX,20

MOV DX1,DX

UPb: HENG 485,[DZ],00H,515 ;画小方块

INC [DZ]

MOV AX,DX1

CMP [DZ],AX

JNZ UPb

ENDM

DOWN MACRO N,DX1 ;小方块下降的宏

LOCAL DNa,DNb ; 定义标号

MOV AL,N ;小方块从N+1层下降至N层

MOV CH,30 ;小方块下降一层,并且将上一层的小方块清除 MUL CH

MOV DX,430

SUB DX,AX

MOV [DZ],DX

ADD DX,20

MOV DX1,DX

DNa: HENG 485,[DZ],04H,515 ;画小方块

INC [DZ]

MOV AX,DX1

CMP [DZ],AX

JNZ DNa

SUB DX,49

MOV [DZ],DX

ADD DX,20

MOV DX1,DX

DNb: HENG 485,[DZ],00H,515 ;画小方块

INC [DZ]

MOV AX,DX1

CMP [DZ],AX

JNZ DNb

ENDM

INIT MACRO N,DX1 ;画初始小方块的宏

LOCAL BEG ; 定义标号

MOV AL,N ;小方块最初停在第N层,表示电梯最初停第N层 MOV CH,30

MUL CH

MOV DX,430

SUB DX,AX

MOV [DZ],DX

ADD DX,20

MOV DX1,DX

BEG: HENG 485,[DZ],04H,515 ;画小方块

INC [DZ]

MOV AX,DX1

CMP [DZ],AX

JNZ BEG

ENDM

CLOSE MACRO ;画电梯关门状态的宏

LOCAL CC ; 定义标号

MOV [DZ],220

CC: HENG 210,[DZ],09H,370 ;电梯关门

INC [DZ]

CMP [DZ],420

JNZ CC

SHU 291,220,02H,420 ;电梯大门缝隙

SHU 290,220,02H,420

SHU 289,220,02H,420

ENDM

HALF MACRO ;画电梯半开门状态的宏

LOCAL HA ; 定义标号

MOV [DZ],221

HA: HENG 210,[DZ],09H,250 ;电梯半开门

HENG 252,[DZ],07H,328

HENG 330,[DZ],09H,370

INC [DZ]

CMP [DZ],420

JNZ HA

SHU 251,220,02H,420 ;电梯大门缝隙

SHU 329,220,02H,420

ENDM

FULL MACRO ;画电梯全开门状态的宏

LOCAL F ; 定义标号

MOV [DZ],221

F: HENG 210,[DZ],09H,215 ;电梯全开门

HENG 217,[DZ],07H,363

HENG 365,[DZ],09H,370

INC [DZ]

CMP [DZ],420

JNZ F

SHU 216,220,02H,420 ;电梯大门缝隙

SHU 364,220,02H,420

ENDM

DATA SEGMENT

MESS DB ' LIFT MODEL ' ,0AH,0DH,'$'

ME1 DB ' PRESS ANY KEY TO RETURE DOS.',0AH,0DH,'$' ;当使用者进行非正常操作时,提示使用者手动返回DOS

ME2 DB ' NOW THE FLOOR IS:',0AH,0DH,'$' ;提示当前楼层

ME3 DB ' DIRECTION : ',0AH,0DH,'$'

ME4 DB 'INPUT THE ORDER(1-8F)(SUCH AS1-2-5-2): $' ME5 DB 'AUTHOR IS: xia zhi long ',0AH,0DH,'XUEHAO:201204134013$' ; 输出多个空格键是为了清空上一次的输入

ME6 DB '***DATA: 2014-12-20***',0AH,0DH,'$'

ME7 DB ' TO:',0AH,0DH,'$' ;提示电梯下一站要停的楼层

ME8 DB 'UP OR DOWN:',0AH,0DH,'$' ;提示使用者用上、下键不连续控制电梯

ME9 DB 'ONLY VAILABLE WHEN LIFT',0AH,0DH,'$'

ME10 DB 'STOP(use w or s )',0AH,0DH,'$'

ME11 DB '~NOW VAILABLE',0AH,0DH,'$'

ME12 DB ' ',0AH,0DH,'$'

IBUFF DB 0FFH,0,255 DUP(0)

DIDAS EQU 18

DZ DW 0

TIMES DW 0,0

NUM DB 0

NUM1 DB 0

COUNT DB 0

COUNT1 DB 0

DX1 DW 3

DX2 DW 6

DATA ENDS

STAC SEGMENT

STA DW 100 DUP(0) ; 堆栈段

TOP DW ?

STAC ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:DATA DELAY1S PROC NEAR ;延时1S的子函数

PUSH DX ;压栈

PUSH CX

XOR AX,AX

INT 1AH

MOV TIMES,DX

MOV TIMES[2],CX

read_time:XOR AX,AX

INT 1AH

SUB DX,TIMES

SBB CX,TIMES[2]

CMP DX,DIDAS

JB read_time

POP CX ;出栈

POP DX

RET

DELAY1S ENDP

START PROC FAR

MOV AX,DATA ; 主程序

MOV DS,AX

MOV AX,STAC

MOV SS,AX

MOV AX,DATA

MOV ES,AX

PUSH AX

PUSH BX

PUSH CX

PUSH DX

PUSH SI

PUSH DI

MOV CX,0

MOV DX,2479H

MOV BH,7 ;黑底白字

MOV AX,0601H

INT 10H

MOV AX,0012H ; 置图形显示方式

INT 10H ; 640列*480行,16色. MOV DX,0421H ;显示MESS

GB

MOV DX,OFFSET MESS ;9号显示调用

MOV AH,9

INT 21H

MOV DX,1C32H ;显示ME5

GB

MOV DX,OFFSET ME5

MOV AH,9

INT 21H

MOV DX,1B32H ;显示ME6

GB

MOV DX,OFFSET ME6

MOV AH,9

INT 21H

MOV DX,0

GB

MOV [DZ],100

SB: HENG 220,[DZ],03,420 ;显示栏

INC [DZ]

CMP [DZ],150

JNZ SB

HENG 220,99,0AH,420 ;显示栏边框

HENG 220,151,0AH,420

SHU 220,99,0AH,151

SHU 420,99,0AH,151

CLOSE ;电梯大门处于关闭状态 HENG 210,220,02H,370 ;电梯大门缝隙边框

HENG 210,420,02H,370

SHU 210,220,02H,420

SHU 370,220,02H,420

HENG 209,219,02H,371 ;加粗边框

SHU 209,220,02H,420

SHU 371,220,02H,420

MOV [DZ],219

MOV DX1,210

MOV DX2,370

SB1: HENG DX1,[DZ],03H,DX2 ;三维电梯上侧面

DEC [DZ]

INC DX1

INC DX2

CMP [DZ],180

JNZ SB1

MOV [DZ],371

MOV DX1,220

MOV DX2,420

SB2: SHU [DZ],DX1,03H,DX2 ;三维电梯右侧面

INC [DZ]

DEC DX1

DEC DX2

CMP [DZ],410

JNZ SB2

MOV [DZ],420

SB3: HENG 70,[DZ],06H,480;画地平线

INC [DZ]

CMP [DZ],425

JNZ SB3

MOV [DZ],421

SB4: HENG 480,[DZ],04H,520 ;小方块运行在框架内 SUB [DZ],30

CMP [DZ],151

JNZ SB4

SHU 480,180,04H,420

SHU 520,180,04H,420

MOV DX,071DH

GB

MOV DX,OFFSET ME2 ;显示ME2

MOV AH,9

INT 21H

MOV DX,081DH

GB

MOV DX,OFFSET ME3 ;显示ME3

MOV AH,9

INT 21H

MOV DX,082DH

GB

MOV DX,OFFSET ME7 ;显示ME7

MOV AH,9

INT 21H

SA1s: MOV DX,0202H ;显示ME4

GB

MOV DX,OFFSET ME4

MOV AH,9

INT 21H

MOV DX,0229H

GB

MOV DX,OFFSET IBUFF ;输入并显示字符串

MOV AH,10

INT 21H

MOV DX,0402H ;提示使用者用上、下键不连续控制电梯

GB

MOV DX,OFFSET ME8 ;显示ME8

MOV AH,9

INT 21H

MOV DX,0502H

GB

MOV DX,OFFSET ME9 ;显示ME9

MOV AH,9

INT 21H

MOV DX,0602H

GB

MOV DX,OFFSET ME10 ;显示ME10

MOV AH,9

INT 21H

SA1: MOV AL,IBUFF+1

MOV COUNT,AL ;记录输入的字符个数

MOV BP,2

MOV AL,IBUFF[BP]

CMP AL,30H ;将首字符与1BH(ESC ASCII码)比较,若相等则返回DOS,这里由于汇编软件的原因改为与0的ASCII码比较

JZ WA1A1

JMP WA1A2

WA1A1: JMP WA1

WA1A2: CMP AL,30H ;避免当使用者出入其它键是程序进入死循环

JB WA0A1

JMP WA0A2

WA0A1: JMP WA0

WA0A2: CMP AL,38H

JA WA0A1

AND AL,0FH

MOV NUM,AL

INIT NUM,DX1

MOV DX,072FH

GB

MOV DL,NUM ;显示电梯第一站楼层数

OR DL,30H ;将数字转换为字符

MOV AH,2

INT 21H

CALL DELAY1S

SA1a: ADD BP,2

MOV AL,IBUFF[BP]

AND AL,0FH ;将字符转换为数字

MOV NUM1,AL

MOV DX,0830H

GB

MOV DL,IBUFF[BP] ;显示电梯下一站要停的楼层数

MOV AH,2

INT 21H

CALL DELAY1S

SA1b: MOV AL,NUM1 ;下一站要去的楼层和当前所在楼层相比较

CMP AL,NUM ;若下一站楼层大于当前楼层,则小方块上升

JA SA1CA1 ;若下一站楼层小于当前楼层,则小方块下降 JMP SA1CA2

SA1CA1: JMP SA1C

SA1CA2: MOV AL,NUM1 ;若下一站楼层等于当前楼层,则小方块不动 CMP AL,NUM ;这里有2次比较

JZ SA1DA1 ;到达所在楼层后停止运动

JMP SA1DA2

SA1DA1: JMP SA1D

SA1DA2: DEC NUM

DOWN NUM,DX1 ;电梯下降

MOV DX,0829H

GB

MOV DL,19H ;显示下箭头

MOV AH,2

INT 21H

MOV DX,072FH

GB

MOV DL,NUM ;显示当前楼层数

OR DL,30H ;将数字转换为字符

MOV AH,2

INT 21H

CALL DELAY1S ;小方块在每一层停止1S可让人更直观地看清电梯运行状况 JMP SA1b

SA1c: INC NUM

UP NUM,DX1 ;电梯上升

MOV DX,0829H

GB

MOV DL,18H ;显示上箭头

MOV AH,2

INT 21H

MOV DX,072FH

GB

MOV DL,NUM ;显示当前楼层数

OR DL,30H ;将数字转换为字符

MOV AH,2

INT 21H

CALL DELAY1S

JMP SA1b

SA1d: HALF ;电梯在指定楼层停下,大门依次从闭合-半开门-全开门-半开门-全开门 CALL DELAY1S

FULL

CALL DELAY1S

HALF

CALL DELAY1S

CLOSE

CALL DELAY1S

MOV DX,0702H

GB

MOV DX,OFFSET ME11 ;显示ME11,表明现在可以进行不连续控制

MOV AH,9

INT 21H

XOR AX,AX

INT 1AH

MOV TIMES,DX

MOV TIMES[2],CX

read_time1:

CLC

MOV AH,1 ;输入上、下键

INT 16H

JNZ get

XOR AX,AX

INT 1AH

SUB DX,TIMES

SBB CX,TIMES[2]

CMP DX,DIDAS

JB read_time1

JMP show1

get: CMP AL,'w'

JZ ups1

CMP AL,'s'

JZ downs1

JMP SA1e

ups1: INC NUM

UP NUM,DX1 ;电梯上升一层

JMP show

downs1: DEC NUM

DOWN NUM,DX1 ;电梯下降

show: MOV DX,072FH

GB

MOV DL,NUM ;显示当前楼层数

OR DL,30H ;将数字转换为字符

MOV AH,2

INT 21H

MOV AH,0CH

INT 21H ;清空键盘缓冲区

show1: MOV DX,0702H

GB

MOV DX,OFFSET ME12 ;显示ME12,表明现在不可以进行不连续控制 MOV AH,9

INT 21H

SA1e: MOV AL,COUNT;电梯向下一站运行

CBW

CMP BP,AX

JB SA1AA1

JMP SA1AA2

SA1AA1: JMP SA1A

SA1AA2: JMP SA1S ;电梯重新进行新的一轮的运行

WA0: MOV DX,1834H ;显示ME1

GB

MOV DX,OFFSET ME1

MOV AH,9

INT 21H

MOV DL,0FFH

MOV AH,6

INT 21H

JZ WA0

MOV CX,0

MOV DX,2479H

CLSS

WA1: MOV AX,4C00H

INT 21H ; 返回DOS.

MOV AH,02H

INT 10H ; 恢复文本显示方式.

POP DI

POP SI

POP DX

POP CX

POP BX

POP AX

RET

START ENDP

CODE ENDS

END START

7.运行结果及界面

图1 初始界面

图2 电梯半开门状态下的界面

图3 电梯全开门状态下的界面

图4 返回DOS的界面

8、设计小结

这次课程设计对我来说难度的确很大,里面要对电梯界面的模拟就需要不断调用BIOS

写点子程序INT 10H,因此又得去书上了解学习相关的章节。后来再对书上的看了好多次以

后然后结合给的参考程序以及网上的一些相关的程序对其进行了改造。里面让我最烦的就是

对界面光标的显示2号功能以及12号功能,它们都需要你对行列的多少有所了解,因此为

了让要显示的信息能够在DOS界面显示出来就必须自己先不断地试试,看看行列所在的位置。

通过对程序的编译还加深了我们之前学过的有条件跳转命令jcond,他的跳转是有一定

的范围的,因为之前我们在课本上讲的程序都是比较的短根本不会涉及到超出范围的情况,但是因为这次的程序代码比较长也就暴露了这一问题。后来通过网上的查阅发现无条件跳转jmp的范围很大可以满足要求然后按照网上的方法解决这一个问题,先跳转到附近的jmp然

后再跳转到之前想要跳转的地方。例如:JZ SA1D | DEC NUM这两条命令,

可以改为JZSA1D1|SA1D1:JMPSA1D|DECNUM。但是后来

分析了一下如果按照这种方法那么当不满足JZ时它还是会跳转到SA1D而不是向之前

一样执行DECNUM这一条指令。后来思考了一下最后改为了 JZ SA1DA1 |JMP SA1DA2|SA1DA1: JMP SA1D| SA1DA2: DEC NUM。

当然这次的电梯模拟需要用到DOS全屏,然而Windows7并不支持DOS全屏,所以之前

利用过C++上机的时间把已经编辑好的程序拿过去运行过,可是发现电梯只能下而不能上,

后来才知道是因为跳转问题导致了无法执行上的过程。后来加以修改完成了这次的程序运行。

9.参考文献

[1] 朱定华,微机原理、汇编与接口技术,清华大学出版社,2005

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

基于FPGA的电梯控制系统的仿真图(附程序)

系统主体模块的设计与仿真 本设计是以9层的电梯控制系统为模型。主要实现电梯运行开关的控制,楼层的请求,电梯运行遵循的方向优先原则,提前、延时开关门等基本的功能。以下是对不同的状态进行仿真,以验证本设计的可行性。 电梯进入运行状态控制进程,通过判断上升、下降请求寄存器每一位的值,决定电梯运行状态,并通过状态指示信号输出该状态,本设计都是使用高电平触发。 (1)当电梯处于1楼时,上升请求: 图4.1 电梯处于第一层时仿真图 1

(2)提前/延时关门功能 没有提前/延时关门时的情况下: 图4.2 没有提前/延时关门时的仿真图 从图4.2知道,运行或停止输出信号“lamp”为高电平时电梯进入运行状态,低电平时停止。圈内显示电梯在75.36us后从停止状态转入运行状态。 当设置提前关门“close”为高电平时: 图4.3 有提前关门时的仿真图 图4.3与图4.2对比可知,由于设置了提前关门进程“close”,电梯提前到75.36us 以前从停止状态转入运行状态。 2

当设置了延时关门“delay”为高电平时: 图4.4 延时关门时的仿真图 图4.4与图4.2对比可知,由于设置了延时关门进程“delay”,电梯延时到80.48us 后才从停止状态转入运行状态。 (3)当电梯处于较高层数时 图4.5 电梯处于较高层数时的仿真图 3

(5)电梯轿厢内楼层选择开关功能仿真 图4.6 轿厢内楼层选择开关仿真图 4

(4)电梯的次态功能仿真 如图4.7所示,当运行或等待时间“run_wait”计数到0110时,电梯运行状态变量“ladd”给出电梯的下一个状态。如图 4.7圈内显示,“ladd”从0 5

微机原理课程设计电压报警器实验报告

南通大学电子信息学院 微机原理课程设计 报告书 课题名: 班级: 姓名: 学号: 指导老师: 日期: xxx

目录 1.设计目的 (2) 2.设计内容 (2) 3.设计要求 (2) 4.设计原理 (3) 5.硬件电路图 (3) 6.程序代码 (5) 7.程序及硬件系统调试情况 (19) 8.设计总结与体会 (19)

一、设计目的 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 二、设计内容 设计一个电压报警器,要求采集实验箱提供的0~5V的电压,当输入电压在3V以内,显示电压值,如2.42。当输入电压超过3V,显示ERR,并报警。电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。报警形式自行设计,

2014年微机原理课程设计题目-汇总 (1)

1.根据键盘输入的一个数字显示相应的数据螺旋方阵。如输入4,则显示。 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 共需要显示4^2=16个数字。 要求:①根据键盘输入的数字(3-20),显示相应的数据方阵。 ② 画出设计思路流程图,编写相应程序。 2.显示日期或时间。要求:有提示信息,输入字母“r”,可显示系统当前日期;输入字母“s”,可 显示系统当前时间;输入字母“q”,退出程序。 3.字符游戏 随机显示字符ch,等待用户输入 如果输入字符与ch一致,则随机显示下一个字符ch2;否则显示“输入错误”; 如此循环; 输入Enter结束 点击Enter程序退出; 4.从键盘上输入7名裁判的评分(0-10,整数),扣除一个最高分,扣除一个最低分,计算出其它五 个分数的平均值(保留一位小数),并在显示其上输出 “The final score is:”和最终结果。 5.为短跑比赛设计一个确定成绩次序的程序,要求能够输入8个队员编号,成绩;输出最终的排名 次序编号及成绩。(成绩时间格式--秒数:百分秒数,如12:15) 6.为评委设计一个显示选手通过的指示器,以电脑显示屏作为指示屏。当从键盘输入0时,显示屏 上呈现“×”图形,表示选手被淘汰;当从键盘输入1时,显示屏上呈现“√”图形,表示选手通过。 7.试设计一个道路收费系统,将车型分为大型车、中型车、小型车,每种车型分别有各自的单公里 收费标准,如下表所示,在收费时,将车型和公里数输入系统,就可自动生成收费额,(公里数取整。收费额以元为单位,保留一位小数)。 序号 车型 单公里收费(单位:0.1元) 1 大型车 5 2 中型车 3 3 小型车 1 8.通过实验箱TDN实现8个LED灯循环闪烁。 要求:首先是1、3、5、7号LED灯以此亮1秒钟,当第7号LED灯亮后,这四个灯同时闪烁5下; 然后,2、4、6、8号灯依次亮1秒钟,当第8号灯亮后,这四个灯同时闪烁5下。 9.为男子25米手枪速射决赛设计一个排名程序。决赛有6名运动员参加,每人每轮次打5枪,每枪 打中靶子的中心区就计一分,打不中就记0分。四轮比赛之后,先将成绩最低的选手淘汰(即为

微机原理课程设计报告

微机原理课程设计报告 课程设计是每一个大学生在大学生涯中都不可或缺的, 它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助! 微机原理课程设计报告(一)以前从没有学过关于 汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。 我们在这个过程中有很多自己的感受,我想很多同学都 会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。很有成就感。 我想微机原理课程设计和其他课程设计有共同的地方, 那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。 微机原理与接口技术是一门很有趣的课程,任何一个计 算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,

基于单片机的电梯仿真程序课程设计

目录 (一)前言 (1) (二)现代电梯概述 (3) (三)硬件部分设计 (6) (四)软件部分设计 (12) (五)电梯运行界面 (52) (六)设计总结与感悟 (56) (七)参考文献 (57)

电梯仿真程序 一、前言: 本电梯仿真程序采用的是一个基于单片机及其相关外设,编程语言采用汇编与C语言结合的方式,通过矩阵键盘线反选法输入楼层,上、下行等控制信号,经I\O口读入,进行相关实时控制,软硬件结合的仿真系统,输出设备包括由CD4511驱动显示楼层的7段数码管,显示实时信息的显示屏LCD12864,由PWM控制显示电梯门开关的舵机,以及由I\O口间接控制的驱动电机正反转双桥驱动电路等几个部分组成。可以实现真实电梯中,任意层呼叫,目的层到达按要求顺序到达,开关门,无输入自动回1层等一系列功能,并实时显示当前电梯运行状态,关于真实电梯门控光幕装置,电机自动抱闸平层等部分,由于知识不足,没有足一实现,但会在接下来的专业知识学习过程中不断完善,同时也希望得到程老师的指导。 二、现代电梯概述:

电梯是一种以电动机为动力的垂直升降机,装有箱状吊舱,用于多层建筑乘人或载运货物。也有台阶式,踏步板装在履带上连续运行,俗称自动电梯。服务于规定楼层的固定式升降设备。它具有一个轿厢,运行在至少两列垂直的或倾斜角小于15°的刚性导轨之间。轿厢尺寸与结构形式便于乘客出入或装卸货物,本次微机课程设计电梯仿真选用的是垂直升降梯。 2.1、电梯功能 现代电梯主要由曳引机(绞车)、导轨、对重装置、安全装置(如限速器、安全钳和缓冲器等)、信号操纵系统、轿厢与厅门等组成。这些部分分别安装在建筑物的井道和机房中。通常采用钢丝绳摩擦传动,钢丝绳绕过曳引轮,两端分别连接轿厢和平衡重,电动机驱动曳引轮使轿厢升降。电梯要求安全可靠、输送效率高、平层准确和乘坐舒适等。电梯的基本参数主要有额定载重量、可乘人数、额定速度、轿厢外廓尺寸和井道型式等。简单使用方法(紧急情况下面有解决方法)载人电梯都是微机控制的智能化、自动化设备,不需要专门的人员来操作电梯电梯结构图电梯内部结构图驾驶,普通乘客只要按下列程序乘坐和操作电梯即可。

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

毕业设计PLC四层电梯内含组态王仿真程序

这时我在网上看到的一个故事,无论是真的还是别人编出来,都值得大家一看!内容非常感人...用一点点的时间去体会人世间那份最真诚的爱! 睿是一个长的很帅气的男孩,在学校里人缘又很好...每个学生老师都很喜欢他. 但他却有一个长得丑陋无比的母亲,不但难看而且她只有一个眼睛(独眼)睿的朋友从来都没有看到过他的妈妈.自然也不会有人去问.生活仿佛过得还不错... 有一天,外面下着很大的雨...眼看同学们都撑着伞回家去,睿却只能站在屋沿底下,因为他没带伞.这是只见他那丑陋无比的妈妈撑着一把黑色的伞向他走来.嘴 里还说着"孩子,快来吧,小心淋到雨"顿时睿傻眼了,他的朋友们从没见过他的妈妈...别人会怎么想呢?大家一看到这种情景都开始大笑起来...!甚至有人对睿说"原来这就是你妈妈,这么丑,你天天跟她在一起不会害怕吗?哈哈哈哈..."哑口无言,他知道现在说什么都没有用了... 回到家,"我不想再见到你!为什么你长的这么丑?还少一只眼睛?你不是我妈妈,我不会有这么难看的妈妈!"睿的母亲并没有说什么,指示含着泪走进了房间. 转眼这么多年过去了...睿也长大了,依然是那么的英俊潇洒,有不少的女孩子追他.从那次以后她妈妈也从来没有再提过那件事情.一个月后睿的妈妈就生病死去了...她走得是那么的安详,什么也没留下除了一封信.睿拆开了她母亲临终前亲笔写的信,并读了起来: 亲爱的孩子,我是多么的爱你,为了你我什么都可以不在乎.我知道你一直认为我丑,还少一只眼睛,不配做你的妈妈.但我现在告诉你一件事情,20年前我在医院里生下了你,当时的心情不知有多高兴,仿佛上帝赐了我最珍贵的礼物.真当我要去看你的时候,医生走来,脸色还很苍白地说"对不起,你的孩子生下来就少一只眼睛..."虽然心里一下子很接受不了,像是从高空跌入了谷地,但我还是非常坚定的对医生说"把我的眼睛给他!"我从来都没有后悔过...就算那次你对我说这么残忍的话.我不后悔,也不难过.因为我爱你. 爱你的妈妈 无论睿此时此刻心中有多么的伤心和遗憾,他的妈妈都不可能再活过来了...他也只能拿这那封信痛哭而已...却什么也不能为最爱他的母亲做任何事情,也许他妈妈留给他的除了那封信以外就是那一只悲伤的眼睛了...永远地留在睿的身上,让睿在看到任何东西之前先看到他的妈妈... 1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究 2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器 7. 单片机控制的二级倒立摆系统的研究 8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究 11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发

微机原理课程设计

、 微机原理课程设计 —数据采集系统(查询法) # (

一、课设目的 进一步掌握微机原理只是,了解危机在实时采集过程中的应用,学习、掌握编程和程序调试方法。 , 二、课设内容 用查询法,将ADC 0809通道0外接0~5V电压,转换成数字量后,在七段LED数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809~道0的数字量以线性控制方式送DAC0832输出,当通道O的电压为5V时,0832的OUT为0v,当通道O的电压为0时,0832的OUT为2.5V;此模拟电压再送到ADC0809通道1,转换后的数字量在CRT上以十六进制显示;通道0的数字量经74LS574输出到八位LED上,且以一定的要求,点亮LED指示灯。调整电位器,用示波器或三用表观察0832的变化,观察七段LED数码管数值的变化,观察LED灯的变化, ADC 0809的CLK脉冲,由定时器8254的OUT0提供;ADC 0809的EOC信号,用8255的PC0检测;74LS574外接的LED灯变化如下:若电压值小于0.5V,则最低位(DO)’LED灯亮,若电压值大于4.5V,则最高位LED灯亮,若电压值在0.5V~4.5V,则八位LED灯由低向高变化亮,且高位LED灯亮时低位灯全亮。 要有较好的人机对话界面;控制程序的运行。 三、硬件设计 1、电原理框图 见附件1 2、电原理框图工作过程的简要说明 【 (1)、ADC 0809的INO采集电位器0—5V电压,INl采集0832输出的模拟量。(2)、DAC 0832将ADC 0809的INO数字量后重新转换成模拟量输出。 (3)、8255用于检测ADC 0809转换是否,为七段LED数码管显示提供显示驱动信息。 (4)、七段LED数码管显示ADC 0809的INO的值。 (5)、74LS574驱动八位发光二极管,使它们按要求点亮:来指示当前采样值的范围。 (6)、8254提供ADC 0809的采样时钟脉冲。 (7)、74LSl38译码器为各芯片提供地址信息。 四、软件设计 【 首先进行程序初始化显示提示信息,判断是否有键按下,按下1则继续往下执行,按下2则退出。首先对8254进行初始化选择工作方式及赋初值,然后启动0809的IN0,接着初始化8255,并检测PA7的状态检测转换是否,否继续检测

汇编与微机原理课程设计报告

微机接口课程设计报告 (题目:模拟自动门) 指导老师郭兰英 班级2015240204

目录 一概述 (1) 1.1 课程设计名称 (1) 1.2 课程设计要求 (1) 1.3 课程设计目的 (1) 二设计思想 (1) 三实施方案 (2) 3.1 获得传感器和“门”的状态 (2) 3.2 驱动步进电机和点阵模块 (2) 3.3 实现硬件延时 (3) 四硬件原理 (3) 4.1 中断控制器8259 (4) 4.2并行接口8255 (4) 4.3 定时/计数器8254 (5) 4.4 点阵LED显示屏 (5) 4.5 步进电机 (6) 4.6 红外距离传感器 (7) 五软件流程 (8) 六程序运行结果及分析 (11) 6.1 开门状态 (11) 6.2 关门状态 (12) 6.3 关门操作进行时中断到开门操作 (14)

6.4特殊状态 (15) 七个人感想 (16) 八附录 (18)

一、概述 1.1课程设计名称 模拟自动门 1.2课程设计要求 1)用汇编语言编程完成硬件接口功能设计。 2)硬件电路基于80x86微机接口。 3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。 4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。 1.3课程设计目的 通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。 二、设计思想 本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。 为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能: 1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。 2、当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。

VHDL电梯控制器程序设计与仿真

VHDL电梯控制器程序设计与仿真

电梯控制器VHDL程序与仿真。 -- --文件名:。 --功能:6层楼的电梯控制系统。 library ieee; use dianti is port ( clk : in std_logic; --时钟信号(频率为2Hz) full,deng,quick,clr : in std_logic; --超载、关门中断、提前关门清除报警信号

c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; --电梯外人的上升请求信号 c_d2,c_d3,c_d4,c_d5,c_d6 : in std_logic; --电梯外人的下降请求信号 d1,d2,d3,d4,d5,d6 : in std_logic; --电梯内人的请求信号 g1,g2,g3,g4,g5,g6 : in std_logic; --到达楼层信号 door : out std_logic_vector(1 downto 0); --电梯门控制信号 led : out std_logic_vector(6 downto 0); --电梯所在楼层显示 led_c_u:out std_logic_vector(5 downto 0); --电梯外人上升请求信号显示 led_c_d:out std_logic_vector(5 downto 0); --电梯外人下降请求信号显示 led_d : out std_logic_vector(5 downto 0); --电梯内请求信号显示 wahaha : out std_logic; --看门狗报警信号 ud,alarm : out std_logic; --电梯运动方向显示,超载警告信号

武科大微机原理课程设计

一、设计题目 键控数据采集及数值显示电路设计 二、设计任务 按不同的数字键(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设备之间传送

微机原理课程设计实验报告DOC

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 课程名称: 学年学期: 指导教师: 年月

课程设计成绩评定表 学生姓名学号成绩 专业班级起止时间2011.12.24—2012.11.28 设计题目字符串动画显示 指 导 教 师 评 语 指导教师: 年月日

目录 一、课程设计的目的 (1) 二、设计题目 (1) 三、设计内容要求 (2) 四、设计成员及分工 (2) 五、课程设计的主要步骤 (2) 六、课程设计原理及方案 (3) 七、实现方法 (3) 八、实施结果 (8) 九、总结 (8) 十、体会感受 (8)

一、课程设计的目的 课程设计是以自己动手动脑,亲手设计与调试的。它将基本技能训练、基本工艺知识和创新启蒙有机结合,培养我们的实践和创新能力。课程设计的意义,不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力。作为信息时代的大学生,基本的动手能力是一切工作和创造的基础和必要条件。 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。 《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。 通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。 通过设计过程,要求学生熟悉和掌握微机系统的软件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件调试、查阅资料、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练的熟练掌握微机系统的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的软件调试方法和步骤,熟悉微机系统的软件开发工具的使用方法。 二、设计题目

微机原理课程设计报告-数字时钟的实现(附代码)

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号: 姓名:

一、设计题目及要求: 【课题6】数字时钟 1.通过8253 定时器作产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。 3.按“C”可设置时钟的时间当前值(对准时间)。 二、设计思想: 总体思想: 1、功能概述: 实验箱连线: 本实验建立在Dais实验箱基础上完成的基本连线及程序如下: 138译码器: A,B,C,D,分别连接A2,A3,A4,GS; y0连接8253的CS片选信号; y1连接8259的CS片选信号; 8253连线: 分频信号T2接8253的CLK0; 8253的OUT0接8259的IR7; 8253的gate信号接+5V; 8259连线: 8259的数据线接入数据总线;

本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块, (1)程序运行后,LED显示000000初始值,并且开始计数 (2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值; (3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。 2、主程序设计 主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。详细流程图见图三-1。 3、LED显示子程序设计 本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。 4、键盘扫描子程序设计 本程序需要用键盘对时间的初始值进行设置,因此对键盘扫描的子程序需要满足的功能如下: 判断是否是C键,若不是就返回至主程序,若是C键就开始对时间初始值进行设置,同时因注意到第一个值不可以超过2,第一个数是2时第二数不能超过4,余下的同理要满足时间数值的取值范围呢,若不是合法输入不予反应继续等待输入。当遇到输入数值错误时可以按下D键进行删除一位重新设置;当6位初始值全部设置成功后,电子表将自动开始走表。 5、时间运算子程序设计 该子程序的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟

电梯运行程序设计 课程设计

学号: 课程设计 题目电梯运行程序设计 学院自动化 专业自动化 班级 姓名 指导教师 2012 年 1 月13 日

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:自动化 题目:电梯运行程序设计 初始条件: 用汇编语言设计一个电梯运行程序(至少5层),功能上实现现实生活中的电梯功能。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1. 在屏幕显示电梯运行界面,完成电梯运行的算法。 2.可以通过键盘按下任意楼层的按钮,测试电梯的正确运行; 3. 编制完整的程序并调试; 4.撰写符合学校要求的课程设计说明书,内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。 时间安排: 1. 1月4日----1月5日查阅资料及方案设计 2.1月6日----12月8日编程 3.1月9日----1月10日调试程序 4.1月11日 ----1月12日撰写课程设计报告 5.1月13日上午准备答辩,下午正式答辩 指导教师签名:年月日系主任(或责任教师)签名:年月日

目录 摘要 (3) 1方案设计 (5) 2软件设计 (5) 2.1软件思想 (5) 2.2流程图 (6) 2.3源程序设计及说明 (7) 3程序调试 (14) 3.1程序调试说明 (14) 3.2程序调试结果分析 (14) 参考文献 (18) 心得体会 (19) 附录源程序 (21)

摘要 此次课程设计的题目是“电梯运行程序设计”关于电梯结构以及如何工作在这里进行以下介绍。 简介:习惯上不论其驱动方式如何,将电梯作为建筑物内垂直交通运输工具的总称。近几年来,随着国际社会对环保认识的关注,各大电梯公司现在在其电梯表面基本都采用了粉末涂料喷涂,这是一种新型环保无溶剂的涂料,并且各种性能皆优于油漆。 历史:按速度可分低速电梯(1米/秒以下)、快速电梯(1~2米/秒)和高速电梯(2米/秒以上)。19世纪中期开始采用液压电梯,至今仍在低层建筑物上应用。1852年,美国的伊莱莎。格雷夫斯.奥的斯研制出带有安全制动装置的升降机。80年代,驱动装置有进一步改进,如电动机通过蜗杆传动带动缠绕卷筒、采用平衡重等。19世纪末,采用了摩擦轮传动,大大增加电梯的提升高度。世界速度最快且运行距离最长的电梯:迪拜哈利法塔电梯,速度最高达每秒17.4米。(1050米/分,63.0公里/39.1英里小时)(该电梯是由蒂森克虏伯电梯公司进行生产安装的,包括机场用的登机桥)中国速度最快且运行距离最长的电梯:台北101大楼,速度最高达每秒16.8米。(1010米/分,60.6公里/37.7英里小时)。 结构:电梯的结构包括:四大空间,八大系统四大空间机房部分、井道及地坑部分、轿厢部分、层站部分。八大系统曳引系统、导向系统、轿厢、门系统、重量平衡系统、电力拖动系统、电气控制系统、安全保护系统 功能:现代电梯主要由曳引机(绞车)、导轨、对重装置、安全装置(如限速器、安全钳和缓冲器等)、信号操纵系统、轿厢与厅门等组成。这些部分分别安装在建筑物的井道和机房中。通常采用钢丝绳摩擦传动,钢丝绳绕过曳引轮,两端分别连接轿厢和平衡重,电动机驱动曳引轮使轿厢升降。电梯要求安全可靠、输送效率高、平层准确和乘坐舒适等。电梯的基本参数主要有额定载重量、可乘人数、额定速度、轿厢外廓尺寸和井道型式等。简单使用方法(紧急情况

微机原理课程设计题目

计算机科学与技术04级 微机原理课程设计 一、课程设计的目的 课程设计是实验的提高和综合。通常,学习知识是由浅入深、由此及彼,一点点的学习和积累的,而应用知识则是综合运用所积累的知识来分析和解决实际问题、从知识的系统性来检验对各层次知识的掌握程度。 ?课程设计的目的是让学生把理论学习和实验教学阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。这次课程设计大家应当把它作为毕业设计的预演。 ?锻炼通过各种媒体和途径主动获取知识的能力。 二、课程设计的要求 ?课程设计要求独立完成、严禁抄袭; ?较大的题目可以多人合作完成,但每个人都应有自己所承担的任务,并在自己的报告中客观如实地反映; ?课程设计既是综合能力的锻炼,也是协作精神和科学诚信品质的锻炼。如果做相同的题目,要保证各自的独立性,实现方法的多样性。 ?微机原理是一门硬件技术为主、软硬件结合的课程,因此要求,所有的选题都要描述清楚硬件设计的原理和软件设计的逻辑思路。设计尽量在实验箱上完成。 ?在功能设计上尽量完善、贴近实用、有人机交互(人机交互可实用实验箱上的键盘重新定义) ?登录本系的网页,查阅毕业设计的相关文件和设计规范,学习设计报告撰写的各个环节,并在课程设计中认真实践。 ?要珍惜这次课程设计,这是一次总结复习、知识拓展、能力锻炼的大好机会。 ?课题完成后要有一分规范的设计报告。 三、课程设计的时间安排 课程设计的时间为2个完整的教学周。每天的上午一班,下午二班实验室开放,为大家提供调试、辅导的时间。 四、课程设计报告要求 ?为锻炼学生的论文写作能力,为今后的毕业设计(毕业论文)做准备,对设计报告的完成尝试做较高的要求。

8086.8088微机原理课程设计

8086/8088微机原理课程设计 1、课程设计说明 “微机原理与接口技术课程设计”主要是测试学生的8086/8088系统输入输出技术应用能力、数字电路应用能力和程序设计能力。 设计题目中综合了《数字逻辑》、《微机原理与接口技术》和《程序设计基础》等课程中的相关知识点。特别是电气工程系各专业学习了《模拟电子》、《传感器技术》、《单片机技术》等课程,给题目的扩展和实际应用提供了基础。本课程的课程设计实际上是一个综合性应用的设计和制作。 这里只给出了部分课程设计的题目,主要和接口电路有关,每个题目的实现方式和扩展空间都很大,指导教师可根据学生的具体情况决定设计题目的内容和设计量。纯汇编语言软件的设计未在这里列出。 欢迎学生自拟题目,经指导教师审核其难易程度和确定所用器材,优先选用。 2、课程设计计分办法 课程设计的计分由课设题目(60)、课设报告(20)、考勤(20)三部分组成。 一、题目的选择 设计题目分为星级制(★),根据选择题目的难易程度确定成绩,以百分制计算,按比例计入总成绩。要根据个人情况合理选择题目,不可多组选择同一题目。 1、无星为最简题目,做完多个题目仅记分为及格(69分及以下)。 2、1星(★)为简单题目,做完1个题目记分为良(70~89分)。 3、2星(★★)为较难题目,做完1个题目记分优(90~100分)。 4、星级题目多做可提高分值。 5、课设一般为分组实施,主要设计者记原星级分值,辅助者减1星。 6.、未完成设计者视设计程度减星计分。 7、无星题目可单人完成,但不选题目者记0分。 二、报告要求 课设报告应按规定格式书写,并按时上交。报告原则上要求手工书写,如要打印必须是独立版本,遇雷同课设报告均不计入总成绩。 三、考勤 考勤。点名一次未到扣5分,5次以上记0分。

基础课程设计 模拟电梯的设计与制作

电子课程设计报告设计课题:模拟电梯的设计与制作 专业班级:09级电子信息工程2班 设计时间: 2011年10月10日—12月31日

目录 一、结构设计方案选择 (3) 方案一:模拟洗衣机电机控制部分 (3) 方案二:模拟电梯 (4) 方案比较与选择 (7) 二、摘要 (6) 三、模拟电梯的设计思路与要求 (7) 四、单元电路设计、参数计算及元器件选择 (8) 4.1 ADC0809 (8) 4.2 显示部分 (10) 4.3 矩阵键盘模块 (11) 4.4 单片机最小系统............................................................................ .... .. (12) 4.5 步进电机控制电路 (12) 4.6 电梯实体的设计............................................................................ ... ................. . (15) 五、总原理图及元器件清单 (16) 5.1 电路总原理图 (16) 5.2 元件清单 (17) 5.3 实验器材与工具 (17) 5.4 程序部分 (18) 六、焊接电路及调试中遇到的问题 (22) 6.1 单片机最小系统的调试 (23) 6.2 显示部分的调式 (23) 6.3 矩阵键盘的调试 (23) 6.4 电梯实体的调试 (23) 6.5 整体的调试与电路与实题的耦合............................................................. . (23) 七、参考文献 (24) 八、心得与体会 (24)

微机原理课程设计

微机原理课程设计

《微机原理与接口技术》课程设计 院系: 班级: 姓名: 指导教师: 日期:

一设计任务: 编写一汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数和十进制数。(课例027、017、024) 二设计方案 将接收到的数转成16进制数,将这个数保存在一个通用寄存器中(如AX),然后对AX循环做16次SHL,由carry标志寄存器的状态来判断显示0/1。十六位二进制数保存在BX中,对BX中的二进制数循环左移,每次移一位,然后把BL中的二进制数送给AL,再对AL 的前7位进行屏蔽,只留一位原本是最高位的那位二进制数,它要么为1,要么为0。然而把AL中的这位二进制数转换为十进制数,并且输出,由于AL高7位都为0,所以转换位十进制后,然后要么为1,要么为0,并且与那位二进制数相对应。这样循环做16次,就把整个BX中的二进制数都显示出来。 软件VisulASMSetup汇编程序的上机过程是: 1)打开软件建立新文件并把程序粘贴在文件上点击汇编源程序2)下一步然后再点链接目标码 3)然后点调试程序 4)最后点运行程序

三流程图 N N 开始 初始化循环计数值 BX 循环逻辑左移一个数位 输入一个四位的 十六进制数 >9吗? 转换为十进制 显示二进制数 循环计数器 =0? 结束

1.程序运行结果截图

附录 STACK SEGMENT PARA STACK 'STACK' DW200DUP(0);初始化堆栈大小为 STACK ENDS DATE SEGMENT TRANB DB0DH,0AH,'The transformed binary is:',0DH,0AH,'$' TRAND DB0DH,0AH,'The transformed demical is:',0DH,0AH,'$' RESULT DB5DUP(?),'$' DATE ENDS CODE SEGMENT

相关文档
最新文档