搜档网
当前位置:搜档网 › 南昌大学汇编语言程序设计实验5 子程序设计实验

南昌大学汇编语言程序设计实验5 子程序设计实验

南昌大学汇编语言程序设计实验5 子程序设计实验
南昌大学汇编语言程序设计实验5 子程序设计实验

南昌大学实验报告

学生姓名:学号:专业班级:

实验类型:□验证√综合□设计□创新实验日期:12.15 实验成绩:

实验5 子程序实验

一.实验目的

1.掌握主程序与子程序之间的调用关系及调用方法;

2.掌握子程序调用过程中近程调用与远程调用的区别;

3.掌握通过堆栈转送参数的方法。

4. 掌握多模块程序设计方法

二.实验内容

1.将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示。

程序代码:

public main

data segment

buf dw 12,68,56,57,34,1,46,7,45,54

count db 1,2,3,4,5,6,7,8,9,10

wait db ',$'

data ends

code segment

assume cs:code,ds:data

main:

mov ax,data

mov ds,ax

mov dx,0

mov cx,0

mov si,0

mov di,0

again:

mov bx,buf[si]

add si,2

call hexac

lea dx,wait

call disp

mov dl,count[di] ;将count首地址单元内容给dl来记数

inc di

cmp di,10 ;显示所有数后dx为10跳出je exit

jmp again

exit:

mov ah,4ch

int 21h

hexac proc near ;二进制转换为十六进制输出子程序mov ch,4

rotate:

mov cl,4

rol bx,cl

mov al,bl

and al,0fh

add al,30h

cmp al,3ah

jl printit

add al,7h

printit:

mov dl,al

call disp ;近调用disp

dec ch

jnz rotate

ret ;返回dos

hexac endp

disp proc near ;输出单个字符子程序

mov ah,02h

int 21h

ret

disp endp

code ends

end main

运行结果:

流程图:

2.编写一个主程序,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符’b’的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数)。

程序代码:

public main_1

dota segment

mess1 db 'please input your string,overed by press enter:$',0ah,0dh

mess2 db 0ah,0dh,' times of the "b" appeared is:$'

mess7 db 0ah,0dh, 'sorry,the counts of the "b" have more than 15,please try again$'

table db 50, ? ,100 dup(?),'$'

dota ends

code segment

assume cs: code, ds: data

main_2:

mov ax,data

mov ds,ax

lea dx,mess1 ;显示mess1,提醒输入字符

mov ah,09h

int 21h

lea dx,table

mov ah,0ah ;输入字符串

int 21h

lea si , table ;si指向串首址table

mov cl, [si+1]

mov ch, 0 ;cx中为字符串长度

inc si

inc si

mov al,'b'

mov ah,0

push si

push cx

push ax ; si,cx,ax依次入栈

call compare

pop ax ;ax出栈,统计个数在al中

mov cl,al

cmp cl,10h

jl error

lea dx,mess2 ;显示mess2,输出统计个数

mov ah,09h ;将个数转换为十六进制

int 21h

mov dl,cl

and dl,0fh

add dl,30h

cmp dl,39h

jle counts

add dl,07h

error:

lea dx,mess3

mov ah,09h

int 21h

counts:

mov ah,02h

int 21h ;显示统计个数

exit:

mov ah,4ch

int 21h

code ends

code_1 segment ;比较子程序

assume cs:code_1

compare proc far

push bp ;bp进栈

mov bp,sp ;栈顶地址给bp

mov si,[bp+10] ;字符串的第一个字符地址给si mov cx, [bp+8] ;将堆栈中字符串长度给cx

mov ax, [bp+6] ;将“b"给ax

xor ah, ah

again:

cmp al,[si]

jne next

inc ah ;统计b个数

next:

inc si

loop again

mov al, ah

mov [bp+10],ax

pop bp ;bp出栈

ret 4

compare endp

code_1 ends

end main_2

运行结果:

流程图:

3. 请编写一个程序来实现简单的程序菜单显示。(采用多模块程序设计方法)

显示一个菜单要求用户从下表中选择:

(1)HEXAC GAME (对应-->程序1)

(2)CHAR STATISTICS PROGRAM(对应-->程序2)

(3)PRESS “ESC”TO QUIT

用户作出选择1~3时,显示输出要执行操作的名字,如“Your selection is 1,the program will execute HEXAC NUMBER GAME!”然后转向相应的程序去执行,执行结束前进行退出的判断,显示一个提示信息“will you continue program really?(Y:N)”要求用户从键盘键入字符,若是“Y”键,则继续程序的执行,若是“N”键,则返回到菜单。若用户选择3,要求程序显示提示信息“Please press ESC key to exit!”,并能按要求正确退出。

程序代码:

dseg segment

buf dw 53,56,78,45,89,65,32,14,12,75

count db 1,2,3,4,5,6,7,8,9,10

space db ',$'

table db 50, ? ,50 dup(?),'$'

mess0 db 0dh,0ah,'error!please input again!',0dh,0ah,'$'

mess1 db 'please input your string,overed by press enter:$',$',0ah,0dh,'$'

mess2 db 0ah,0dh,' times of the "b" appeared is:$'

mess7 db 0ah,0dh, 'sorry,the counts of the "b" have more than 15,please try again$'

mess3 db 0dh,0ah,'your selection is 1,the program will execute hexac number. $',0dh,0ah,'$'

mess4 db 0dh,0ah,'your selection is 2,the program will execute char statistics program$',0dh,0ah,'$'

mess5 db 0dh,0ah,'please press esc key to exit!$',0dh,0ah

mess6 db 0dh,0ah,'will you continue program really:(y:n)$',0dh,0ah

menus db 0dh,0ah,'menus:',0dh,0ah

db ' (1) hexac games',0dh,0ah

db ' (2) char statistics program',0dh,0ah

db ' (3) press "esc" to quit',0dh,0ah

db 'please input 1~3 :','$'

dseg ends

cseg segment

assume cs:cseg,ds:dseg

start:

mov ax,dseg

mov ds,ax

lea dx,menus

call disp2

mov ax,0

mov bx,0

mov cx,0

mov dx,0

mov si,0

mov di,0

main:

sub ax,ax

mov ah,01h

int 21h

cmp al,33h

jz three

cmp al,32h

jz two

cmp al,31h

jz one

jmp err

one:

lea dx,mess3

call disp2

again:

mov bx,buf[si]

add si,2

call hexac

lea dx,space

call disp2

mov dl,count[di] ;将count首地址单元内容给dl来记数inc di

cmp dl,10 ;显示所有数后dx为10跳出

je sureexit

jmp again

two:

lea dx,mess4

call disp2

lea dx,mess1 ;显示mess1,提醒输入字符

lea dx,table

mov ah,0ah ;输入字符串

int 21h

lea si , table ;si指向串首址table

mov cl, [si+1]

mov ch, 0 ;cx中为字符串长度

inc si

inc si

mov al,'b'

mov ah,0

push si

push cx

push ax ; 参数送堆栈

call compare

pop ax ;统计个数在al中

mov cl,al

lea dx,mess2 ;显示mess2,输出统计个数

call disp2 ;将个数转换为十六进制

mov dl,cl

and dl,0fh

add dl,30h

cmp dl,39h

jle below

add dl,07h

below:

mov ah,02h

int 21h ;显示统计个数

jmp sureexit

sureexit:

lea dx,mess6

call disp2

mov ah,01h

int 21h

cmp al,'n'

je exit

cmp al,'y'

je start

jmp err

three:

lea dx,mess5

call disp2

mov ah,01h

int 21h

je exit

jmp err

err:

lea dx,mess0

call disp2

jmp start

exit:

mov ah,4ch

int 21h

cseg1 segment ;比较子程序

assume cs:cseg1

compare proc far

push bp

mov bp,sp

mov si,[bp+10] ;字符串的第一个字符地址给si mov cx, [bp+8] ;将堆栈中字符串长度给cx

mov ax, [bp+6] ;将“b"给ax

xor ah, ah

loop1:

cmp al,[si]

jne next

inc ah ;统计b个数

next:

inc si

loop loop1

mov al, ah

mov [bp+10],ax

pop bp

ret 4

compare endp

cseg1 ends

hexac proc near ;二进制转换为十六进制输出子程序mov ch,4

rotate:

mov cl,4

rol bx,cl

mov al,bl

and al,0fh

add al,30h

cmp al,3ah

jl printit

add al,7h

printit:

call disp1 ;近调用disp1

dec ch

jnz rotate

ret ;返回dos

hexac endp

disp1 proc near ;输出单个字符子程序mov ah,02h

int 21h

ret

disp1 endp

disp2 proc near

mov ah,09h

int 21h

ret

disp2 endp

cseg ends

end start

运行结果:

流程图:

三.实验要求

1.第一个实验程序用子程序的近程调用实现。由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容看到两个子程序的返回地址值。由于是近调用,地址值只包括返回地址的段内偏移量。在每个子程序的执行中,检查CS值是不变的。

2.第二个程序是利用远调用的方法调用子程序的。在远调用情况下,主程序与子程序处在不同的逻辑代码段中,可在子程序执行中查看CS值,它与主程序中的CS值是不同的。子程序调用后,堆栈中保留了返回地址的段地址及段内偏移量。

3.第二个程序中,主程序与子程序之间参数的传送是由堆栈实现的。一段是将参数(此处是串首址TABLE,串的长度N及待统计的字符“b”)顺序压如堆栈,在子程序调用后,通过BP指针对堆栈中的参数访问,并将统计的结果通过堆栈返回。有关该方法的原理此处不再介绍。

4.第三个程序,请采用分文件多模块程序设计方法实现,需注意和实验4中的习题4中采用的地址跳跃表实现方法区分开来,需注意外部符号的定义及其使用方法。

5.预习子程序设计的基本方法,根据实验内容要求,画出子程序及主程序的流程图;熟悉键盘键入字符串及用堆栈传送参数的程序段编制方法。

四.实验环境

PC微机

DOS操作系统或Windows 操作系统

MASM.EXE,LINK.EXE,https://www.sodocs.net/doc/959172708.html,或宏汇编集成环境

五.实验步骤

1.编辑、汇编三个源程序,生成相应的可执行文件(.EXE)

2.用DEBUG的R命令,T命令或G命令和D命令检查远程调用及近程调用时堆栈的变化。特别是通过堆栈传送的参数和子程序取出的参数是返回参数的详细过程。

3.检查程序执行的结果是否正确。

六.实验报告要求

1.说明用堆栈传送参数的过程及其具体方法。

2.分析实验结果及所遇到问题,并说明解决的方法。

3、列出各实验题目的程序实现清单,写清楚程序设计思路、各程序模块调用关系及参

数传递方式,源程序中对子程序的入口参数和出口参数及功能应进行适当的注释。七.思考题

分析远程调用与近程调用的区别,在用DEBUG有关命令观察时,执行过程有何不同。

答:远调用时要改变cs和ip的值,而近调用只改变ip的值。

八、实验小结

通过本次试验我深入了解了汇编语言程序设计的原理,使我能更加得心应手地编写一些简单的汇编程序。使我对以后计算机专业课程的学习和本次期末考试充满了信心。同时加强了与同学沟通协作能力,加深了同学间的友谊。

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

南昌大学网页设计综合网站实验报告

南昌大学实验报告 学生姓名:杨欣学号:专业班级:管科122 实验类型:□验证□综合■设计□创新实验日期:2013-12 实验成绩:(以下主要内容由学生完成) 一、实验项目名称 实验二Dreamweaver 网页制作实验 二、实验目的 利用Dreamweaver制作一个综合性网站 三、实验基本原理 Dreamweaver是一款所见即所得的网页编辑工具,它采用Mac机浮动面板的设计风格,具有很强的直观性和便携性。 利用Dreamweaver、Fireworks和Flash设计、制作一个关于失物招领的网站,其主要用到了表格、透明框架、层、补间动画等 四、主要仪器设备及耗材 Dreamweaver、Flash、Fireworks计算机及相关网页设计软件软件。 五、实验步骤 1、确立网站主题,为失物招领。设计有关栏目的名称、简要内容,书写规划报告。 2、具体设计每个栏目的内容、布局。 3、下载相关软件:Dreamweaver、Flash、Fireworks。 4、利用这些工具制作网站。 5、不断修改完善网站。 6、书写综合网站实验报告。 六、实验数据及处理结果

(具体情况详见网站作品)

七、思考讨论题或体会或对改进实验的建议 体会:这是我第一次真正的做网站,期间经历了很多的挫折,自己也学到了很多东西,尤其是自己解决问题的能力,当然也得到很多朋友的支持和帮助。等自己把网站做好了之后,看着自己的作品,真的有一种说不出来的感觉。不管怎样,为之奋斗了一个月的反战网终于完成了!但更让我觉得开心的是整个过程,通过这次经历,我喜欢上了做网站。 不足:有些栏目的设置还是过于粗糙,简单。比如反战之家这个栏目。 八、参考资料 《网页设计与制作教程》清华大学出版社杨选辉编著 《网页设计与制作实验指导》清华大学出版社杨选辉编著 《Flash经典案例完美表现200例》清华大学出版社杨格、曾双名、王洁、王占宁等编著

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

南昌大学WEB实验报告

实验报告 实验课程:《 WEB编程》 学生姓名: 学号: 专业班级: 2010年 12 月 20 日

目录 ●实验一 .............................................. ●实验二 ............................................. ●实验三 ............................................. ●实验四 ............................................. ●实验五 ............................................. ●实验六 ............................................. ●实验七 ..............................................

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合■设计□创新实验日期:2010年9月15 日实验成绩:实验一 Web编程环境 一、实验目的 1.搭建Web编程环境,能正确安装配置java运行环境、WEB服务器和数据库服务器 2.熟悉WEB编程集成环境MYEclipse. 3.熟练掌握WEB工程的创建、发布、运行流程。 二、实验内容 1.安装并配置java运行环境JDK和JRE 2.安装Web服务器tomcat, 配置Tomcat服务器 3.安装并配置数据库MySQL. 4.安装MyEclispe,熟悉各项菜单项 5.为MyEclispe集成配置JDK和Tomcat 6.创建、发布、运行一个WEB工程。 三、实验仪器及耗材 计算机,JDK,TOMCAT, MySQL, MyEclipse等软件。 四、实验步骤 1、安装并配置JDK和JRE 2、设置好classpath和path路径 3、安装Tomcat5.5 4、设置Tomcat的配置属性 5、安装并配置MySQL数据库 6、安装MySqL Administrator工具 7、安装MyEclipse 8、新建并配置一个工程,运行发布一个新的工程。 五、实验结果 1、JDK、JRE安装结果:

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

WEB编程实验报告---南昌大学

实验报告 实验课程:JA V A WEB编程技术 学生姓名: 学号: 专业班级:物流101班 2013年 06 月 12 日 目录

实验一WEB编程环境......................... 错误!未定义书签。实验二HTML和CSS编程技术 (7) 实验三JA V ASCRIPT编程技术 (10) 实验四SERVLET编程技术 (13) 实验五JSP编程技术 (16) 实验六JA V ABEAN编程技术 (21) 实验七基于MVC模式构建系统 (25) 南昌大学实验报告 学生姓名:学号:专业班级:物流101班

实验类型:□验证□综合■设计□创新实验日期:实验成绩: 一、实验项目一Web编程环境 二、实验目的 第1章搭建Web编程环境,能正确安装配置java运行环境、WEB服务器和数据库服务器 第2章熟悉WEB编程集成环境MYEclipse. 第3章熟练掌握WEB工程的创建、发布、运行流程。 三、实验内容 1.安装并配置java运行环境JDK和JRE 2.安装Web服务器tomcat, 配置Tomcat服务器 3.安装并配置数据库MySQL. 4.安装MyEclispe,熟悉各项菜单项 5.为MyEclispe集成配置JDK和Tomcat 6.创建、发布、运行一个WEB工程。 四、实验仪器及耗材 计算机,JDK,TOMCA T, MySQL, MyEclipse等软件。 五、实验步骤 1.先安装jdk1.6,选择自定义安装,安装到C:\JDK 2.配置环境变量,class:.;C:\JDK\bin , classpath:.;C:\JDK\lib ,java_home: C:\JDK 安装tomcat,安装在C:\ Tomcat 下,配置tomcat_home环境变量,CATALINA_HOME: C: \Tomcat,CATALINA_BASE: C: \Tomcat,TOMCAT_HOME: C:\Tomcat 然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar 追加到classpath中去,修改后的classpath如下: classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\c ommon\lib\servlet.jar;

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 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 + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

南昌大学JavaWeb实验报告

实验一Java Web开发环境配置 学生姓名:学号:专业班级: 实验类型:□验证□综合□设计□创新实验日期: 2018.04.11 实验成绩:一、实验目的 1.掌握设置JDK环境。 2.掌握设置Tomcat环境。 3.安装、掌握Eclipse,MyEclipse 或IntellijIDEA软件,为学习 JSP和进行 JSP的实验做好准备工作。 4.编写JSP 程序并运行JSP页面。 二、实验要求 1.安装并设置 Java SDK 软件包。 2.安装并设置Tomcat软件包。 3.安装并设置 Eclipse软件、MyEclipse或IntellijIDEA软件。 4.编写一个简单的JSP,并在浏览器中浏览。 5.创建一个Web项目,并进行部署运行。 三、实验步骤 (一) JDK安装与配置 (二) Tomcat安装与配置 (三) IDE(Eclipse、MyEclipse、或IntelliJ IDEA)的安装与配置 (四)在IDE中建立一个jsp (五)部署JSP工程文件 (六)启动Tomcat服务器 (七)浏览JSP 四、实验数据 (一)JDK安装与配置 首先去oracle官方网站下载jdk的压缩包,根据自己的系统类型选择合适的版本即可.我的系统是Linux,于是选择Linux x64版本的下载即可.

下载后,将压缩包解压,下面是我解压的路径,以及压缩包中的内容 然后就是进行环境变量的配置,将jdk关键组件添加到环境变量.我使用的是zsh,在/home/.zshrc配置文件中添加下面三行即可: 验证是否安装成功: (二)Tomcat安装与配置 首先去apache的官网下载适合自己系统的tomcat版本,进行解压即可. 在bin目录下有一些可执行脚本,运行startup.sh,就可以成功开启tomcat服务器.

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.sodocs.net/doc/959172708.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

web程序设计实验二

实验二HTML表单实验 学号:092715206 姓名:崔兆文 1.1 实验目的 通过实验掌握HTML的table标签使用方法;利用table进行页面布局。掌握html表单的基本制作方法。 1.2 实验要求 请完成实验并将实验过程写在下面的实验内容部分,每题要求给出题目、源代码(带必要的注释)以及程序运行效果截图。 1.3 实验内容 题1:利用表格实现如下登陆界面的布局(整体居中),并利用文本框控件制作用户名和密码输入框,利用按钮控件实现登陆按钮: 备注: (1)整个网页有灰色背景 (2)表格宽度由第二行图片宽度决定,第一和第三行高度35,第二行放置一个蒲公英的图片作为该行背景,行的高度由图片高度决定 (3)第三行放置相应的控件实现类似效果即可。 源代码:

    用户名:    密码:     
用户名和密码与作业提交系统一致
copyringht ~hyy@https://www.sodocs.net/doc/959172708.html,
运行效果截图:

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

南昌大学PLC实验报告

实验一三相异步电动机接触器点动控制线路 (2) 实验二三相异步电动机的可逆运转控制 (4) 实验三通电延时型控制线路 (6) 实验四可编程控制器的基本指令编程练习 (8) 实验五喷泉的模拟控制 (10) 实验六交通灯的模拟控制 (13) 实验七液体混合的模拟控制 (16)

实验一 三相异步电动机接触器点动控制线路 一、概述 三相笼式异步电机由于结构简单、性价比高、维修方便等优点获得了广泛的应用。在工农业生产中,经常采用继电器接触控制系统对中小功率笼式异步电机进行点动控制,其控制线路大部分由继电器、接触器、按钮等有触头电器组成。 图2是三相鼠笼异步电动机接触器点动控制线路(电机为Y 接法) 起动时,合上漏电保护断路器及空气开关QF ,引入三相电源。按下起动按钮SB2时,交流接触器KM1的线圈通电,主触头KM1闭合,电动机接通电源起动。当手松开按钮时,接触器KM1断电释放,主触头KM1断开,电动机电源被切断而停止运转。 FR1 FU1KM1 QF L1 L2 L3 L KM1 M 3~ FR1 N FU2 FU2 L SB1 SB2 二、实验目的 1、 了解时间继电器的结构,掌握其工作原理及使用方法。 2、 掌握Y-Δ起动的工作原理。 3、 熟悉实验线路的故障分析及排除故障的方法。 三、实验设备 序号 设备名称 使用仪器名称 数量 1 DL-CX-001 三相交流电源 1 2 WD01G 空开、熔断器模块 1 3 WD04G 热继电器模块 1 4 WD09G 按钮模块 1 5 WD02G 接触器模块 1 6 M04 三相鼠笼式异步电动机 1 四、实验内容及步骤 1、检查各实验设备外观及质量是否良好。 2、按图2三相鼠笼式异步电动机接触器点动控制线路进行正确的接线。先接主回路,再接控制回路。自己检查无误并经指导老师检认可后方可合闸通电实验。 (1)、热继电器值调到1.0A 。 (2)、合上漏电保护断路器及空气开关QF ,调节三相电源输出220V 。 (3)、按下起动按钮SB2时,观察电机工作情况,体会点动操作。(注意,操作次数不宜频

南昌大学电力电子技术实验报告(打印上交)汇总

电力电子技术实验报告 学生姓名: 学号: 学院名称: 专业班级:

目录 实验一锯齿波同步移相触发电路实验 (1) 实验二正弦波同步移相触发电路实验 (4) 实验三单相桥式全控整流电路实验 (7) 实验四单相桥式半控整流电路实验 (11) 实验五三相桥式全控整流及有源逆变电路实验 (16) 实验六直流斩波电路实验 (19) 实验七三相半波可控整流电路的研究 (21)

实验一锯齿波同步移相触发电路实验 一.实验目的 1.加深理解锯齿波同步移相触发电路的工作原理及各元件的作用。 2.掌握锯齿波同步触发电路的调试方法。 二.实验内容 1.锯齿波同步触发电路的调试。 2.锯齿波同步触发电路各点波形观察,分析。 三.实验线路及原理 锯齿波同步移相触发电路主要由脉冲形成和放大,锯齿波形成,同步移相等环节组成,其工作原理可参见“电力电子技术”教材。 四.实验设备及仪器 1.NMCL系列教学实验台主控制屏 2.NMCL-32组件和SMCL-组件 3.NMCL-05组件 4.双踪示波器 5.万用表 五.实验方法 图1-1 锯齿波同步移相触发电路 1.将NMCL-05面板左上角的同步电压输入接到主控电源的U、V端,“触发电路选择”拨向“锯齿波”。

2. 将锯齿波触发电路上的Uct接着至SMCL-01上的Ug端,‘7’端地。 3.合上主电路电源开关,并打开NMCL-05面板右下角的电源开关。用示波器观察各观察孔的电压波形,示波器的地线接于“7”端。 同时观察“1”、“2”孔的波形,了解锯齿波宽度和“1”点波形的关系。 观察“3”~“5”孔波形及输出电压U G1K1的波形,调整电位器RP1,使“3”的锯齿波刚出现平顶,记下各波形的幅值与宽度,比较“3”孔电压U3与U5的对应关系。 4.调节脉冲移相范围 将SMCL-01的“Ug”输出电压调至0V,即将控制电压Uct调至零,用示波器观察U1电压(即“1”孔)及U5的波形,调节偏移电压Ub(即调RP2),使α=180?。 调节NMCL-01的给定电位器RP1,增加Uct,观察脉冲的移动情况,要求Uct=0时,α=180?,Uct=Umax时,α=30?,以满足移相范围α=30?~180?的要求。 5.调节Uct,使α=60?,观察并记录U1~U5及输出脉冲电压U G1K1,U G2K2的波形,并标出其幅值与宽度。 用双踪示波器观察U G1K1和U G3K3的波形,调节电位器RP3,使U G1K1和U G3K3间隔1800。六.实验报告 1.整理,描绘实验中记录的各点波形。 答:示波器波形见附录。 2.总结锯齿波同步触发电路移相范围的调试方法,移相范围的大小与哪些参数有关? 答:调节电位器Rp2,改变偏移电压Ub,从而改变移相范围;移相与电位器Rp1、Vct的大小等参数有关。 3.如果要求Uct=0时,α=90?,应如何调整? 答:将SMCL-01的Ug输出电压调至0V,即将控制电压Uct调至0。用示波器观察1孔电压及U5的波形。调节偏移电压Ub,即调节Rp2,使α=90°。 4.讨论分析其它实验现象。 答:实验中一时无法观察到Ug1k1和Ug3k3的波形,后来发现由于脉冲Ug1k1和Ug3k3输出端有电容影响。所以观察输出脉冲电压波形时,需要将输出端Ug1k1和Ug3k3分别接到晶闸管的门极和阴极,才能观察到正确的脉冲波形。 5. 写出实验心得体会。 第一次做电力电子实验时我对实验设备还不太熟悉,有些手忙脚乱,而这次实验让我对电力电子技术实验设备有了初步的认识。在实验中,我发现通过实验观测到的波形并不像课本中画的那样完美,总是会有一些干扰信号,特别是观察负脉冲时,发现别的组都能观测到清晰的倒的三角形尖峰,而我们组怎样调都是很模糊的负尖峰。本次试验让我对触发电路的原理有了进一步的了解。移相范围的大小不仅可以通过调节Rp1,还可以通过调节Rp2来控制。

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

南昌大学FreeRTOS实验5-8知识点

实验5-8知识点 实验5:时间片调度/任务信息状态查询与统计 实验6:信号量 实验7:软件定时器/事件标志组 实验8:任务通知 回答下列问题时,尽量通过读代码得到答案,这有助于你理解和记住代码。 1.《11-1 FreeRTOS任务状态或信息查询实验》 本实验同时用到了TIM3和TIM5。TIM5可以换成TIM4。但是,如果我们想把这一实验和以前的实验合并成一个工程时,TIM3/TIM4和实验6-1中断测试实验冲突,这个该如何解决?给出思路即可。 ?? uxTaskGetNumberOfTasks函数的作用和用法? P156获取当前系统中存在的任务的个数 uxTaskGetSystemState函数的作用和用法? P151获取系统中任务状态 uxTaskGetSystemState中的TaskStatus_t结构体的成员变量有哪些? 作业20180521/1: typedef struct xTASK_STATUS { TaskHandle_t xHandle; //任务句柄 const char *pcTaskName; //任务名字 UBaseType_t xTaskNumber; //任务编号 eTaskState eCurrentState; //当前任务状态 UBaseType_tuxCurrentPriority; //任务当前优先级 UBaseType_t uxBasePriority; //任务基础优先级 uint32_t ulRunTimeCounter; //任务运行的总时间 StackType_t *pxStackBase; //堆栈基地址 uint16_tusStackHighWaterMark; //从任务创建以来任务堆栈剩余的最小大小

南昌大学数据库实验4

南昌大学实验报告 学生姓名:王维学号:6100212202 专业班级:网工121班 实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验名称 实验5 创建和使用视图 二、实验目的 (1)掌握视图的创建、修改和删除。 (2)掌握使用视图来查询数据。 三、实验内容 (1)创建一个仅包含北京客户信息的视图customer_beijing。 (2)通过查询customer_beijing 视图获得北京客户的信息。 (3)修改customer_beijing 视图为仅包含北京客户的信誉等级为1的视图。 (4)删除customer_beijing 视图。 (5)创建一个视图ordersum_goods,其中的内容是每种商品的名称和每种商品的订单金额的总和。 (6)通过查询ordersum_goods 视图,获得每种商品的名称和每种商品的订单金额的总和。 四、实验环境 (1)个人计算机。 (2)Windows 7操作系统。 (3)SQL Server 2012数据库管理系统。 五、实验步骤 (1)启动企业管理器,在视图设计窗口中建立customer_beijing 视图。 (2)执行customer_beijing 视图并观察结果。 (3)在视图设计窗口中修改customer_beijing 视图。 (4)删除customer_beijing 视图。 (5)创建ordersum_goods 视图。 (6)执行ordersum_goods 视图并观察结果 六、实验结果 (1)创建一个仅包含北京客户信息的视图customer_beijing。 CREATE VIEW customer_beijing AS SELECT* FROM customer

南昌大学实验报告

南昌大学实验报告 学生姓名:学号:专业班级:_____________ 实验类型:■验证□综合□设计□创新实验日期: 2012-12 实验成绩:______ 实验三三容水箱的专家控制实验 一、实验目的 ①掌握三容水箱的基本构成,能够熟练地运用专家PID控制原理,来实现 对三容水箱的液位控制。 ②进一步掌握专家控制原理,清楚了解PID控制的过程和相应的matlab程 序实现方法。 ③了解matlab中关于的相关绘图函数的使用方法,懂得有关向量的定义及 循环操作,熟练掌握MATLAB的编程语句。 二、实验设备及条件 微型计算机,且此计算机必须装有matlab软件。 三、实验原理 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某领域专 家水平的知识和经验,具有解决专门问题的能力。 直接型专家控制器用于取代常规控制器,直接控制生产过程或被控对象。 具有模拟(或延伸、拓展)操作工人智能的功能。该控制器的任务和功能相对 比较简单,但需要在线、实时控制。因此,其知识表达和知识库也比较简单, 通常由几十条产生式规则构成,以便于增删和修改。直接型专家控制器的结构 如a图中的虚线所示。 专家PID控制的实质是:基于受控对象和控制规律的各种知识,无需知道 被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直 接型专家控制器。 本实验的专家控制器输入为h3的设定值,而输出为阀门开度kk,根据实 验的要求设计专家PID控制器的基本原理框图如下图所示Array 图(a)

三容水箱结构框图如下 四、实验要求 通过专家PID 控制,随着下水箱流量q4的正弦变化,要求能够通过调节阀门开度kk 来使第三个水箱中的下水箱液位h3稳定在设定值,并且其他两水箱水不会流尽和溢出。 五、 实验设计过程及结果 1、 三容水箱数学模型 可应用实验一建立的三容水箱数学模型 3 33433| 0.45)+i *pi *(2.58sin |*343222 321112kk *1q 21h h h s q q h y q s q q h h y q s q q h h y q a ?+=-=?=-=?=-=?==

相关主题