文档库 最新最全的文档下载
当前位置:文档库 › 杭电微机原理与接口实验报告

杭电微机原理与接口实验报告

杭电微机原理与接口实验报告
杭电微机原理与接口实验报告

微机原理与接口

实验报告

实验名称: INTRL88软件实验

班级: ***

学号: ***

姓名:*** 指导老师:***

2013年12月

实验一 INTEL88软件实验

(一)两个多位十进制数相减实验

1.实验要求

将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI 和DATA2为首的5个内存单元中(低位在前),并且先后在数码管上显示出来,相减的结果转化为ASCII码送回DATA。

2.实验目的

1.学习数据传送和算术运算指令的用法。

2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

3.程序说明:流程图

开始

调用子程序LEDSHOW显示被减数和减数

被减数和减数转换成十六进制数

设置计数值

清除最低进位位

带进位减

结果送RESULT

调整偏移量

N

计数值-1=0

Y

调用子程序LEDSHOW显示结果

结束

4.源程序清单及执行结果:

N EQU 5

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START: PUSH CS

POP DS

LEA SI,DATA1 ;显示子程序入口参数

MOV CX,N

CALL LEDSHOW ;显示被减数

CALL DELAY

LEA SI,DATA2

MOV CX,N

CALL LEDSHOW ;显示减数

CALL DELAY

LEA SI,DATA1

LEA DI,DA TA2

MOV CX,N

CLD

CLC

MOV AH,00H

MINUS: MOV AL,[SI]

AND AL,0FH

MOV DL,[DI]

AND DL, 0FH

SUB AL,DL

SUB AL,AH

AAS

MOV AH,00H

ADC AH,00H

OR AL,30H

MOV [SI],AL

INC SI

INC DI

LOOP MINUS

CMP AH,01H

JNE SHOW

SHOW_SIGN: LEA SI,NEGTIVE

MOV CX,1

CALL LEDSHOW

CALL DELAY

SHOW: LEA SI,DATA1

MOV CX,N

CALL LEDSHOW

CALL DELAY

JMP OVER

LEDSHOW PROC

PUSH AX

PUSH BX

PUSH DX

PUSHF

MOV DX, 239H ;初始化(8279芯片命令字端口)

MOV AL, 00 ;左边输入,八位显示外部译码八位显示

OUT DX, AL

MOV BX, CX

MOV CX, 08

MOV DX, 238H ; 8279芯片数据端口

MOV AL, 00

NEXT1: OUT DX, AL ;熄灭所有数码管

LOOP NEXT1

MOV CX, BX

NEXT: MOV AL, [SI] ;取被显示的数LEA BX, LED ;查表

XLAT ;查表的结果送AL

MOV DX, 238H

OUT DX, AL ;显示一个数

INC SI

LOOP NEXT

POPF

POP DX

POP BX

POP AX

RET

LED DB 45 DUP(00H)

DB 40H,80H,00H ;减号,点号字型码

DB 3FH,06H,5BH,4FH ;0-3字型码

DB 66H,6DH,7DH,07H ;4-7字型码

DB 7FH,6FH ;8-9字型码

DB 7 DUP(00H)

DB 77H,7CH,39H,5EH ;A-D字型码

DB 79H,71H,7DH,76H ;E-H字型码

DB 0FH ; I字型码

DB 7 DUP(00H)

DB 67H,50H,6DH ;Q-S字型码

DB 11 DUP(00H),08H ;"_"字型码LEDSHOW ENDP

DELAY PROC ;延时子程序

PUSH AX

PUSH CX

PUSHF

MOV AL, 0AH

DELAY1:MOV CX, 0FFFFH

DELAY2:NOP

LOOP DELAY2

DEC AL

JNZ DELAY1

POPF

POP CX

POP AX

RET

DELAY ENDP

OVER: NOP

HLT

DA TA1 DB 32H,33H,34H,35H,36H ;第一个数据(作为被减数)

DA TA2 DB 31H,32H,33H,34H,35H ;第二个数据(作为减数)

RESULT DB 6 DUP(00H)

NEGTIVE DB 2DH

CODE ENDS

END START

;执行结果:(按显示顺序)23456 12345 11111

(二)两个数相乘的实验

1.实验要求:

实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,并先后显示到数码管上,乘法结果在数码管上显示出来。

2.实验目的:

掌握乘法指令和循环指令的用法。

3.程序说明:流程图

开始

乘数→B L

B L的数转化为十六进制数

S I指向乘数

D I指向结果区(预清0)

设置计数值

被乘数[S I]单元与B L相乘

A A M调整

结果→[D I]

D I+1指向下一单元,进位→[D I]

N

计数值-1=0

Y

显示结果

结束

4.源程序清单及执行结果:

N EQU 4

CODE SEGMENT

ASSUME CS:CODE,DS:CODE START: PUSH CS

POP DS

LEA SI,DATA1

MOV CX,N

CALL LEDSHOW

CALL DELAY

LEA SI,DATA2

MOV CX,N

CALL LEDSHOW

CALL DELAY

CLC

LEA SI,DATA1

LEA DI,DATA2

LEA BX,RESULT

MOV CX,N

MOV AH,00

MUL1: PUSH CX

MOV DL,[DI] ;取乘数

AND DL,0FH

MOV CX,N

LEA SI,DATA1

MUL2: MOV AL,[SI] ;取被乘数

AND AL,0FH

MUL DL

AAM

ADD AL,[BX]

AAA

MOV [BX],AL

INC BX

ADD [BX],AH

INC SI

LOOP MUL2

POP CX ;取回乘数循环控制量

SUB BX,N-1

INC DI

LOOP MUL1

LEA SI,RESULT

MOV CX,N+N

CALL LEDSHOW

CALL DELAY

JMP GAMEOVER

LEDSHOW PROC ;显示子程

PUSH AX

PUSH BX

PUSH DX

PUSHF

MOV DX,239H

MOV AL,00

OUT DX,AL

MOV BX,CX

MOV CX,08

MOV DX,238H

MOV AL,00

NEXT1: OUT DX,AL

LOOP NEXT1

MOV CX,BX

NEXT: MOV AL,[SI]

AND AL,0FH

LEA BX,LED

XLAT

MOV DX,238H

OUT DX,AL

INC SI

LOOP NEXT

POPF

POP DX

POP BX

POP AX

RET

LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H

DB 5EH,79H,71H

LEDSHOW ENDP ;显示子程结束

DELAY PROC ;延时子程

PUSH AX

PUSH CX

PUSHF

MOV AL,0AH

DELAY1:MOV CX,06FFFH

DELAY2: NOP

LOOP DELAY2

DEC AL

JNZ DELAY1

POPF

POP CX

POP AX

RET

DELAY ENDP ;延时子程结束

GAMEOVER: H LT

DA TA1 DB 32H,35H,36H,38H ;第一个数据(作为被乘数)

DA TA2 DB 39H,34H,37H,33H ;第二个数据(作为乘数)

RESULT DB 8 DUP(00)

CODE ENDS

END START

;执行结果:(按显示顺序)4321 1234 5 332 114

(三) BCD码相乘实验

1.实验要求:

实现BCD码的乘法,要求被乘数和乘数以组合的BCD码形式存放,各占一个内存单元,乘积存入在另外两个内存单元中,由于没有组合的BCD码乘法指令,程序中采用将乘数1

作为计数器,累加另一个乘数的方法得到计算结果。

2.实验目的:

掌握用组合的BCD码表示数据,并熟悉怎样实现组合BCD码乘法运算。

3.程序说明:流程图

4.源程序清单及执行结果:

N EQU 2

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START: PUSH CS

POP DS

LEA BX,DATA1

MOV AL,[BX]

AND AL,0FH

PUSH BX

LEA BX,TDA TA1

MOV [BX],AL

POP BX

MOV AL,[BX]

MOV CL,4 开始显示乘数1和乘数2乘数1→计数器BL 部分积DX 清0计数器=0乘数2与部分积地位相加显示结果进位位清0DAA 调整结果送DL 结果送DH DAA 调整部分积与进位位调整计数器减1DAS 调整,结果送BL N 结束

Y

SHR AL,CL

LEA BX,TDA TA1

MOV [BX+1],AL

OR [BX],3030H ;TDATA1中存被乘数的ASCII码

LEA SI,TDA TA1

MOV CX,N

CALL LEDSHOW

CALL DELAY

LEA BX,DATA2

MOV AL,[BX]

AND AL,0FH

PUSH BX

LEA BX,TDA TA2

MOV [BX],AL

POP BX

MOV AL,[BX]

MOV CL,4

SHR AL,CL

LEA BX,TDA TA2

MOV [BX+1],AL

OR [BX],3030H ;TDATA2中存乘数的ASCII码

LEA SI,TDA TA2

MOV CX,N

CALL LEDSHOW

CALL DELAY

CLC

LEA SI,TDA TA1

LEA DI,TDATA2

LEA BX,RESULT

MOV CX,N

MOV AH,00

MUL1: PUSH CX

MOV DL,[DI] ;取被乘数

AND DL,0FH

MOV CX,N

LEA SI,TDA TA1

MUL2: MOV AL,[SI]

AND AL,0FH

MUL DL

AAM

ADD AL,[BX]

AAA

MOV [BX],AL

INC BX

ADD [BX],AH

INC SI

LOOP MUL2

POP CX ;取回被乘数偏移量

LEA BX,RESULT

INC BX

INC DI

LOOP MUL1

LEA SI,RESULT

MOV CX,N+N

CALL LEDSHOW

CALL DELAY

JMP GAMEOVER

LEDSHOW PROC ;显示子程

PUSH AX

PUSH BX

PUSH DX

PUSHF

MOV DX,239H

MOV AL,00

OUT DX,AL

MOV BX,CX

MOV CX,08

MOV DX,238H

MOV AL,00

NEXT1: O UT DX,AL

LOOP NEXT1

MOV CX,BX

NEXT: MOV AL,[SI]

AND AL,0FH

LEA BX,LED

XLAT

MOV DX,238H

OUT DX,AL

INC SI

LOOP NEXT

POPF

POP DX

POP BX

POP AX

RET

LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71H

LEDSHOW ENDP ;显示子程结束

DELAY PROC ;延时子程

PUSH AX

PUSH CX

PUSHF

MOV AL,0AH

DELAY1:MOV CX,06FFFH

DELAY2: NOP

LOOP DELAY2

DEC AL

JNZ DELAY1

POPF

POP CX

POP AX

RET

DELAY ENDP ;延时子程结束

GAMEOVER: N OP

DATA1 DB 22H ;第一个数据(作为被乘数)

DATA2 DB 33H ;第二个数据(作为乘数)

TDATA1 DB 2 DUP(00) ;存放DATA1的ASCII码,方便调用

TDATA2 DB 2 DUP(00) ;存放DATA2的ASCII码,方便调用

RESULT DB 4 DUP(00)

CODE ENDS

END START

;执行结果:(按显示顺序)22 33 726

心得体会:

第一次做微机实验,对试验台的操作不是很了解,所以实验过程中走了很多弯路。

通过本次的上机实验,让我初步认识了实验台,了解其基本的操作和上面元器件的使用和连接方法。熟悉了INTEL88实验软件LCA88ET的基本操作,熟悉了程序的编写,编译和调试等功能,学会了实验机/仿真机的基本设置方法。

通过实验中的编程,让我进一步加深了对微机编程的认识,加深了BCD码和ASCII码的理解,学会了数码管显示子程序和延时子程序的编写。以前只是在书本上学习堆栈、循环、调用子程序等,学习过程中有些还是不明白,通过本次实验加深了理解。

实验中也遇到了一些问题,如数码管显示不正确,仿真机和实验机不能连接正常,通过自己仔细查找原因和向同学请教,都一一解决,锻炼了我独立思考,主动解决问题的能力。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

杭电《过程控制系统》实验报告

实验时间:5月25号 序号: 杭州电子科技大学 自动化学院实验报告 课程名称:自动化仪表与过程控制 实验名称:一阶单容上水箱对象特性测试实验 实验名称:上水箱液位PID整定实验 实验名称:上水箱下水箱液位串级控制实验 指导教师:尚群立 学生姓名:俞超栋 学生学号:09061821

实验一、一阶单容上水箱对象特性测试实验一.实验目的 (1)熟悉单容水箱的数学模型及其阶跃响应曲线。 (2)根据由实际测得的单容水箱液位的阶跃响应曲线,用相关的方法分别确定它们的参数。二.实验设备 AE2000型过程控制实验装置,PC机,DCS控制系统与监控软件。 三、系统结构框图 单容水箱如图1-1所示: Q2 图1-1、单容水箱系统结构图 四、实验原理 阶跃响应测试法是系统在开环运行条件下,待系统稳定后,通过调节器或其他操作器,手动改变对象的输入信号(阶跃信号),同时记录对象的输出数据或阶跃响应曲线。然后根据已给定对象模型的结构形式,对实验数据进行处理,确定模型中各参数。 图解法是确定模型参数的一种实用方法。不同的模型结构,有不同的图解方法。单容水箱对象模型用一阶加时滞环节来近似描述时,常可用两点法直接求取对象参数。 如图1-1所示,设水箱的进水量为Q1,出水量为Q2,水箱的液面高度为h,出水阀

h1( t ) h1(∞ ) 0.63h1(∞) 0 T V 2固定于某一开度值。根据物料动态平衡的关系,求得: 在零初始条件下,对上式求拉氏变换,得: 式中,T 为水箱的时间常数(注意:阀V 2的开度大小会影响到水箱的时间常数),T=R 2*C ,K=R 2为单容对象的放大倍数,R 1、R 2分别为V 1、V 2阀的液阻,C 为水箱的容量系数。令输入流量Q 1 的阶跃变化量为R 0,其拉氏变换式为Q 1(S )=R O /S ,R O 为常量,则输出液位高度的拉氏变换式为: 当t=T 时,则有: h(T)=KR 0(1-e -1)=0.632KR 0=0.632h(∞) 即 h(t)=KR 0(1-e -t/T ) 当t —>∞时,h (∞)=KR 0,因而有 K=h (∞)/R0=输出稳态值/阶跃输入 式(1-2)表示一阶惯性环节的响应曲线是一单调上升的指数函数,如图1-2所示。当由实验求得图1-2所示的 阶跃响应曲线后,该曲线上升到稳态值的63%所对应时间,就是水箱的时间常数T ,该时间常数T 也可以通过坐标原点对响应曲线 图 1-2、 阶跃响应曲线

微机原理实验报告软件实验1-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

浙工大过程控制实验报告

实验一:系统认识及对象特性测试 一 实验目的 1了解实验装置结构和组成及组态软件的组成使用。 2 熟悉智能仪表的使用及实验装置和软件的操作。 3熟悉单容液位过程的数学模型及阶跃响应曲线的实验方法。 4学会有实际测的得单容液位过程的阶跃响应曲线,用相关的方法分别确定它们的参数,辨识过程的数学模型。 二 实验内容 1 熟悉用MCGS 组态的智能仪表过程控制系统。 2 用阶跃响应曲线测定单容液位过程的数学模型。 三 实验设备 1 AE2000B 型过程控制实验装置。 2 计算机,万用表各一台。 3 RS232-485转换器1只,串口线1根,实验连接线若干。 四 实验原理 如图1-1所示,设水箱的进水量为Q1,出水量为Q2,水箱的液面高度为h ,出水阀V2固定于某一开度值。根据物料动态平衡的关系,求得: 在零初始条件下,对上式求拉氏变换,得: 式中,T 为水箱的时间常数(注意:阀V2的开度大小会影响到水箱的时间常数),T=R2*C ,K=R2为单容对象的放大倍数,R1、R2分别为V1、V2阀的液阻,C 为水箱的容量系数。 阶跃响应曲线法是指通过调节过程的调节阀,使过程的控制输入产生一个阶跃变化,将被控量随时间变化的阶跃响应曲线记录下来,再根据测试记录的响应曲线求取输入输出之间的数学模型。本实验中输入为电动调节阀的开度给定值OP ,通过改变电动调节阀的开度给定单容过程以阶跃变化的信号,输出为上水箱的液位高度h 。电动调节阀的开度op 通过组态软件界面有计算机传给智能仪表,有智能仪表输出范围为:0~100%。水箱液位高度有由传感变送器检测转换为4~20mA 的标准信号,在经过智能仪表将该信号上传到计算机的组态中,由组态直接换算成高度值,在计算机窗口中显示。因此,单容液位被控对象的传递函数,是包含了由执行结构到检测装置的所有液位单回路物理关系模型 有上述机理建模可知,单容液位过程是带有时滞性的一阶惯性环节,电动调节阀的开度op ,近似看成与流量Q1成正比,当电动调节阀的开度op 为一常量作为阶跃信号时,该单容液位过程的阶跃响应为 需要说明的是表达式(2-3)是初始量为零的情况,如果是在一个稳定的过程下进行的阶跃响应,即输入量是在原来的基础上叠加上op 的变化,则输出表达式是对应原来输出值得基础上的增量表达的是,用输出测量值数据做阶跃响应曲线,应减去原来的正常输出值。 五、实验步骤 A 、熟悉用MCGS 组态的智能仪表过程控制系统 1、设备的连接和检查

操作系统实验心得(精选多篇)

操作系统实验心得 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。

大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域 3)其他 例如: <1>定义了指针后记得初始化,在使用的时候记得判断是否为 null <2>在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等 <3>在变量处理的时候变量的格式控制是否合理等

微机原理实验四实验报告

实验报告

实验四 8251可编程串行口与PC机通信实验一、实验要求 利用实验箱内的8251A芯片,实现与PC机的通信。 二、实验目的 1.掌握8251A芯片结构和编程方法; 2.了解实现串行通信的硬件环境,数据格式和数据交换协议; 3.了解PC机通信的基本要求。 三、实验原理 (一)8251A芯片工作方式配置: 1. 8个数据位; 2.无奇偶校验位; 3.1个停止位; 4.波特率因子设为16; 5. 波特率设为9600。 (二)8251A主要寄存器说明 图4-1 模式字 图4-2 命令字

CO MMAN D I NSTR UCT ION FO RMA T 图4-3 状态字 (三)8251编程 对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。(1)方式控制字 方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4-4所示。 图4-4 方式控制字说明 (2)命令控制字 命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图4-5 所示的是8251 命令控制字各位的定义。 图4-5命令控制字说明 (3)状态字 CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如 图4-6所示。 图4-6 状态字说明 四、实验电路连接: 1.CS8251接228H,CS8279已固定接至238H; 2.扩展通信口18中的232RXD连8251RXD ,232TXD连8251TXD;

3.计算机的两个RS232通信口,一个连至仿真机通信口,一个连至扩展通信口18(所有通信口均为DB9)。注意:RS232通信口必须在设备断电状态下插拔! 图4-7 连线图 五、实验内容及要求 1. 将例程从PDF文档中导入到WMD86软件编辑环境中,调试通过。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 2.剔除例程中冗余部分,实现对例程的精简和优化。将精简内容与相应理由写入实验报告。 3.将自己学号的后三位数字通过RS232端口的Txd管脚输出。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 4.通过读状态寄存器的方法,获得发送移位寄存器是否为空的信息,实现学号后三位数字的循环发送。将结果截图保存,贴入实验报告。 5.给每帧数据间添加固定的时间间隔,时间间隔为10000个指令周期。将结果截图保存,

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

过程控制系统实验报告

实验一过程控制系统的组成认识实验 过程控制及检测装置硬件结构组成认识,控制方案的组成及控制系统连接 一、过程控制实验装置简介 过程控制是指自动控制系统中被控量为温度、压力、流量、液位等变量在工业生产过程中的自动化控制。本系统设计本着培养工程化、参数化、现代化、开放性、综合性人才为出发点。实验对象采用当今工业现场常用的对象,如水箱、锅炉等。仪表采用具有人工智能算法及通讯接口的智能调节仪,上位机监控软件采用MCGS工控组态软件。对象系统还留有扩展连接口,扩展信号接口便于控制系统二次开发,如PLC控制、DCS控制开发等。学生通过对该系统的了解和使用,进入企业后能很快地适应环境并进入角色。同时该系统也为教师和研究生提供一个高水平的学习和研究开发的平台。 二、过程控制实验装置组成 本实验装置由过程控制实验对象、智能仪表控制台及上位机PC三部分组成。 1、被控对象 由上、下二个有机玻璃水箱和不锈钢储水箱串接,4.5千瓦电加热锅炉(由不锈钢锅炉内胆加温筒和封闭外循环不锈钢锅炉夹套构成),压力容器组成。 水箱:包括上、下水箱和储水箱。上、下水箱采用透明长方体有机玻璃,坚实耐用,透明度高,有利于学生直接观察液位的变化和记录结果。水箱结构新颖,内有三个槽,分别是缓冲槽、工作槽、出水槽,还设有溢流口。二个水箱可以组成一阶、二阶单回路液位控制实验和双闭环液位定值控制等实验。 模拟锅炉:锅炉采用不锈钢精致而成,由两层组成:加热层(内胆)和冷却层(夹套)。做温度定值实验时,可用冷却循环水帮助散热。加热层和冷却层都有温度传感器检测其温度,可做温度串级控制、前馈-反馈控制、比值控制、解耦控制等实验。 压力容器:采用不锈钢做成,一大一小两个连通的容器,可以组成一阶、二阶单回路压力控制实验和双闭环串级定值控制等实验。 管道:整个系统管道采用不锈钢管连接而成,彻底避免了管道生锈的可能性。为了提高实验装置的使用年限,储水箱换水可用箱底的出水阀进行。 2、检测装置 (液位)差压变送器:检测上、下二个水箱的液位。其型号:FB0803BAEIR,测量范围:0~1.6KPa,精度:0.5。输出信号:4~20mA DC。 涡轮流量传感器:测量电动调节阀支路的水流量。其型号:LWGY-6A,公称压力:6.3MPa,精度:1.0%,输出信号:4~20mA DC 温度传感器:本装置采用了两个铜电阻温度传感器,分别测量锅炉内胆、锅炉夹套的温度。经过温度传感器,可将温度信号转换为4~20mA DC电流信号。 (气体)扩散硅压力变送器:用来检测压力容器内气体的压力大小。其型号:DBYG-4000A/ST2X1,测量范围:0.6~3.5Mpa连续可调,精度:0.2,输出信号为4~20mA DC。 3、执行机构 电气转换器:型号为QZD-1000,输入信号为4~20mA DC,输出信号:20~100Ka气压信号,输出用来驱动气动调节阀。 气动薄膜小流量调节阀:用来控制压力回路流量的调节。型号为ZMAP-100,输入信号为4~20mA DC或0~5V DC,反馈信号为4~20mA DC。气源信号 压力:20~100Kpa,流通能力:0.0032。阀门控制精度:0.1%~0.3%,环境温度:-4~+200℃。 SCR移相调压模块:采用可控硅移相触发装置,输入控制信号0~5V DC或4~20mA DC 或10K电位器,输出电压变化范围:0~220V AC,用来控制电加热管加热。 水泵:型号为UPA90,流量为30升/分,扬程为8米,功率为180W。

杭电操作系统实验报告模板

操作系统课程设计报告 基于DOS的多任务系统的实现 专业:信息工程学院(软件工程) 班级: 姓名: 学号: 指导老师: 20101223

一、课程设计的目的 1. 加深多线程和进程概念的理解,明确进程和程序的区别。 2. 加深对CPU调度过程(现场保护、CPU的分派和现场恢复)的理解。 3. 进一步认识并发执行的概念,明确顺序执行和并发执行的区别。 4. 加深对临界资源,临界区,信号量以及同步机制的理解。 5. 加深对消息缓冲通信的理解。 二、课程设计要求 1. 用C语言完成线程的创建和撤消,并按优先权加时间片轮转算法对多个线程进行调度; 2. 改变时间片的大小,观察结果的变化。思考:为什么时间片不能太小或太大; 3. 假设两个线程共用同一软件资源(如某一变量,或某一数据结构),请用记录型信号量来实现对它的互 斥访问; 4. 假设有两个线程共享一个可存放5个整数的缓冲,一线程不停的计算1到50的平方,并将结果放入缓冲 中,另一个线程不断的从缓冲中取出结果,并将他们打印出来,请用记录型信号量实现这一生产者和消费者的同步问题; 5. 实现消息缓冲通信,并于3,4中的简单通信进行比较; 6. 思考:在线程间进行消息缓冲通信时,若对消息队列的访问没有满足互斥要求,情况会怎么样? 三、程序的设计细想和框图[根据自己的代码写] 1.调度算法:用TCB数组下标音隐含把所有线程排成一个循环队列,当时间片到时,有线程正在执行,则停止它,将其变为就绪,把现场信息压入私有栈堆。 2.调度原因:时间片到时,线程执行完毕,正在执行的线程等待某种事件而不能继续执行。 3.时钟中断的截取

微机原理与接口技术 实验报告

微机原理与接口技术 实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名:

实验一8259中断控制器应用实验 一、实验目的 1.掌握PC机中断处理系统的基本原理。 2. 掌握可编程中断控制器8259的应用编程方法。 二、实验内容 1.PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。 2.PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。 3.扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。 三、实验步骤 1.实验1-1:PC机内中断应用实验 (1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下: (2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下: DA TA SEGMENT MESS DB 'IRQ10 ',0DH,0AH, '$' DA TA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;设置IRQ10对应的中断向量 INT 21H IN AL,21H ;读取中断屏蔽寄存器 AND AL,0F3H ;开放IRQ3中断和从片 OUT 21H,AL IN AL,0A1H ;从片的中断屏蔽寄存器 AND AL,0FBH ;开放IRQ10中断 OUT 0A1H,AL MOV CX,10 STI WAIT: JMP W AIT INT10: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START 调用程序代码,观察实验现象,屏幕显示截图如下:

《过程控制系统》实验报告

《过程控制系统》实验报告 学院:电气学院 专业:自动化 班级:1505 姓名及学号:任杰311508070822 日期:2018.6.3

实验一、单容水箱特性测试 一、 实验目的 1. 掌握单容水箱阶跃响应测试方法,并记录相应液位的响应曲线。 2. 根据实验得到的液位阶跃响应曲线,用相关的方法确定被测对象的特征参数T 和传递函数。 二、 实验设备 1. THJ-FCS 型高级过程控制系统实验装置。 2. 计算机及相关软件。 3. 万用电表一只。 三、 实验原理 图1 单容水箱特性测试结构图 由图 2-1 可知,对象的被控制量为水箱的液位 h ,控制量(输入量)是流入水箱中的流量 Q 1,手动阀 V 1 和 V 2 的开度都为定值,Q 2 为水箱中流出的流量。根据物料平衡关系,在平衡状态时02010=-Q Q (式2-1),动态时,则有dt dV Q Q = -21,(式2-2)式中 V 为水箱的贮水容积,dt dV 为水贮存量的变化率,它与 h 的关

系为Adh dV =,即dt dh A dt dV =(式2-3),A 为水箱的底面积。把式(2-3)代入式(2-2)得dt dh A Q Q =-21(式2-4)基于S R h Q =2,S R 为阀2V 的液阻,(式2-4)可改写为dt dh A R h Q S =-1,1KQ h dt dh AR S =+或()()1s 1+=Ts K s Q H (式2-5)式中s AR T =它与水箱的底面积A 和2V 的S R 有关,(式2-5)为单容水箱的传递函数。若令()S R S Q 01=,常数=0R ,则式2-5可表示为()T S KR S R K S R T S T K S H 11/000+-=?+= 对上式取拉氏反变换得()()T t e KR t h /01--=(式2-6),当∞→t 时()0KR h =∞,因而有()0/R h K ∞==输出稳态值/阶跃输入,当T t =时,()() ()∞==-=-h KR e KR T h 632.0632.01010,式2-6表示一阶惯性响应曲线是一单调上升的指数函数如下图2-2所示 当由实验求得图 2-2 所示的阶跃响应曲线后,该曲线上升到稳态值的 63%所对应的时间,就是水箱的时间常数 T 。该时间常数 T 也可以通过 坐标原点对响应曲线作切线,切线与稳态值交点所对应的时间就是 时间常数 T ,由响应曲线求得 K 和 T 后,就能求得单容水箱的传递函 数如式(2-5)所示。 如果对象的阶跃响应曲线为图 2-3,则在此曲线的拐点 D 处作一切线,它与时间轴交于 B 点,与响应稳态值的渐近线交于 A 点。图中OB 即为对象的滞后时间

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理与单片机实验报告

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 2012 年 6 月 9 日

目录 实验1 EMU8086模拟器的使用 (3) 实验2 数据传送指令的使用 (5) 实验3 多位十六进制加法运算实验 (9) 实验5 循环程序实验 (11) 实验6 由1 到100 求和实验 (13) 实验7 求表中正数_负数_0 的个数实验 (14) 实验8 数据排列实验(冒泡排序) (16) 实验9 系统功能调用(大小写转换) (18) 实验10 阶乘(递归运算) (20) 实验11 ProteusIO工程文件的建立 (21) 实验12 IO口读写实验(245、373) (22) 实验13 8255 接口实验 (24) 实验14 声光报警 (25) 实验总结 (28)

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的: 熟悉EMU8086实验环境 三EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。 4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

过程控制实验报告

东南大学自动化学院 实验报告 课程名称:过程控制实验 实验名称:水箱液位控制系统 院(系):自动化专业:自动化姓名:学号: 实验室:实验组别: 同组人员: 实验时间: 评定成绩:审阅教师:

目录 一、系统概论 (3) 二、对象的认识..................................... 错误!未定义书签。 三、执行机构 ....................................... 错误!未定义书签。 四、单回路调节系统................................ 错误!未定义书签。 五、串级调节系统Ⅰ................................ 错误!未定义书签。 六、串级调节系统Ⅱ................................ 错误!未定义书签。 七、前馈控制 ....................................... 错误!未定义书签。 八、软件平台的开发................................ 错误!未定义书签。

一、系统概论 实验设备 组成器件 图实验设备正面图图实验设备背面图 本实验设备包含水箱、加热器、变频器、泵、电动阀、电磁阀、进水阀、出水阀、增压器、流量计、压力传感器、温度传感器、操作面板等。 铭牌 ·加热控制器: 功率1500w,电源220V(单相输入) ·泵: Q40-150L/min,,,380V,VL450V, IP44,50Hz,2550rpm,,,,ICL B ·全自动微型家用增压器: 型号15WZ-10,单相电容运转马达 最高扬程10m,最大流量20L/min,级数2,转速2800rmp,电压220V, 电流,频率50Hz,电容μF,功率80w,绝缘等级 E ·LWY-C型涡轮流量计: 口径4-200mm,介质温度-20—+100℃,环境温度-20—+45℃,供电电源+24V, 标准信号输出4-20mA,负载0-750Ω,精确度±%Fs ±%Fs,外壳防护等级 IP65 ·压力传感器 YMC303P-1-A-3 RANGE 0-6kPa,OUT 4-20mADC,SUPPLY 24VDC,IP67,RED SUP+,BLUE OUT+/V-·SBWZ温度传感器 PT100 量程0-100℃,精度%Fs,输出4-20mADC,电源24VDC

微机原理与接口技术实验报告

微机原理与接口技术》 上机报告 学院:机电学院指导教师:胡勇学号:631424210229 姓名:鞠其林

实验一初级程序的编写与调试实验 、实验目的 1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序. 2、深入了解数据在存储器中的存取方法, 及堆栈中数据的压入与弹出 3、掌握各种寻址方法以及简单指令的执行过程. 二、实验内容 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H请, 编一程序段将AX的内容和BX 的内容进行交换. 请用堆栈作为两寄存器交换内容的中间存储单元, 用DEBUG调试程序进行汇编与调试. 程序: MOV AX,3000 MOV BX,5000 MOV SP,2000 PUSH AX PUSH BX POP AX POP BX HLT

2、设AX=0002H,编一个程序段将AX的内容乘10, 要求用移位的方法完成程序: MOV AX,0002 MOV BX,AX MOV CL,2 SHL AX,CL ADD AX,BX MOV CL,1 SHL AX,CL HLT

三、心得体会 从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程 序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了一点错误, 修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的 少,还很生疏,我以后一定多加练习,把汇编学好 实验二 加法及判断程序的编写与调试 、实验目的 1、熟练掌握编写汇编语言源程序的基本方法和基本框架 2、学会编写顺序结构 , 分支结构和循环结构的汇编程序

3、掌握程序中数据的产生与输入输出的方法. 二、实验内容 1、用汇编语言编写一个加法程序: 1325+9839 请用ASCII 码的形式将加数与被加数存放在数据区DATA1和DATA2中, 并将相加结果显示输出. 程序: DATA SEGMENT DATA1 DB '5','2','3','1' DATA2 DB '9','3','8','9' DATA ENDS STACK SEGMENT PARA STACK 'STACK' DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA SI,DATA1 LEA DI,DATA2 MOV CX,4 MOV AH,0 NEXT: MOV AL,[SI] ADC AL,[DI] ADC AL,AH MOV AH,0 AAA ADD AL,30H MOV [DI],AL INC DI INC SI LOOP NEXT MOV CX,5 ADD AH,30H MOV [DI],AH NEXT1:MOV DL,[DI] MOV AH,02 INT 21H DEC DI

四川大学微机原理实验报告..

微机原理实验报告 学院: 专业班级: 姓名 学号

实验一汇编语言编程基础 1.3汇编语言程序上机操作和调试训练 一.功能说明 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下: DATA SEGMENT A D B 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是64位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用DEBUG调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

杭电自动化短学期实验报告-控制系统仿真-2013

控制系统仿真课程设计 (2010级) 题目控制系统仿真课程设计学院自动化 专业自动化 班级10062813 学号10061314 学生姓名陆维俊 指导教师王永忠/刘伟峰 完成日期2013年7月6日

控制系统仿真课程设计(一) ——锅炉汽包水位三冲量控制系统仿真 1.1 设计目的 本课程设计的目的是通过对锅炉水位控制系统的Matlab仿真,掌握过程控制系统设计及仿真的一般方法,深入了解反馈控制、前馈-反馈控制、前馈-串级控制系统的性能及优缺点,实验分析控制系统参数与系统调节性能之间的关系,掌握过程控制系统参数整定的方法。 1.2 设计原理 锅炉汽包水位控制的操作变量是给水流量,目的是使汽包水位维持在给定的范围内。汽包液位过高会影响汽水分离效果,使蒸汽带水过多,若用此蒸汽推动汽轮机,会使汽轮机的喷嘴、叶片结垢,严重时可能使汽轮机发生水冲击而损坏叶片。汽包液位过低,水循环就会被破坏,引起水冷壁管的破裂,严重时会造成干锅,甚至爆炸。 常见的锅炉汽水系统如图1所示,锅炉汽包水位受汽包中储水量及水位下汽包容积的影响,而水位下汽包容积与蒸汽负荷、蒸汽压力、炉膛热负荷等有关。影响水位变化的因素主要是锅炉蒸发量(蒸汽流量)和给水流量,锅炉汽包水位控制就是通过调节给水量,使得汽包水位在蒸汽负荷及给水流量变化的情况下能够达到稳定状态。 锅炉汽水系统图 在给水流量及蒸汽负荷发生变化时,锅炉汽包水位会发生相应的变化,其分

别对应的传递函数如下所示: (1)汽包水位在给水流量作用下的动态特性 汽包和给水可以看做单容无自衡对象,当给水增加时,一方面会使得汽包水位升高,另一方面由于给水温度比汽包内饱和水的温度低,又会使得汽包中气泡减少,导致水位降低,两方面的因素结合,在加上给水系统中省煤器等设备带来延迟,使得汽包水位的变化具有一定的滞后。因此,汽包水位在给水流量作用下,近似于一个积分环节和惯性环节相串联的无自衡系统,系统特性可以表示为 ()111()()(1) K H S G S W S s T s ==+ (2)汽包水位在蒸汽流量扰动下的动态特性 在给水流量及炉膛热负荷不变的情况下,当蒸汽流量突然增加时,瞬间会导致汽包压力的降低,使得汽包内水的沸腾突然加剧,水中气泡迅速增加,将整个水位抬高;而当蒸汽流量突然减小时,汽包内压力会瞬间增加,使得水面下汽包的容积变小,出现水位先下降后上升的现象,上述现象称为“虚假水位”。虚假水位在大中型中高压锅炉中比较显著,会严重影响锅炉的安全运行。“虚假水位”现象属于反向特性,变化速度很快,变化幅值与蒸汽量扰动大小成正比,也与压力变化速度成正比,系统特性可以表示为 222()()()1f K K H s G s D s T s s ==-+ 常用的锅炉水位控制方法有:单冲量控制、双冲量控制及三冲量控制。单冲量方法仅是根据汽包水位来控制进水量,显然无法克服“虚假水位”的影响。而双冲量是将蒸汽流量作为前馈量用于汽包水位的调节,构成前馈-反馈符合控制系统,可以克服“虚假水位”影响。但双冲量控制系统要求调节阀具有好的线性特性,并且不能迅速消除给水压力等扰动的影响。为此,可将给水流量信号引入,构成三冲量调节系统,如图2所示。图中LC 表示水位控制器(主回路),FC 表示给水流量控制器(副回路),二者构成一个串级调节系统,在实现锅炉水位控制的同时,可以快速消除给水系统扰动影响;而蒸汽流量作为前馈量用于消除“虚假水位”的影响。

相关文档