微机实验报告一

2024-10-18 版权声明 我要投稿

微机实验报告一(推荐9篇)

微机实验报告一 篇1

微机原理与接口技术

实验报告一

姓名

匡越

学号

1715211016

时间

地点

实验题目

一、实验目的1.熟悉Keil软件使用

2.熟悉MCS-51指令

3.学习简单程序的调试方法

二、实验说明

通过实验了解单片机内部存储器的结构和分配及读写存储器的方法,熟悉MCS-51指令同时,学习单片机程序编程、调试方法。

三、实验内容及步骤

1.启动PC机,打开Keil软件,软件设置为模拟调试状态。在所建的项目文件中输入源程序1,进行编译,如有错误按提示找到该行并纠错,重新编译直到通过。

2.编译无误后,打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化并将观察到的结果记录到预习报告。

3.新建另一个项目输入源文件2,打开CPU窗口,选择单步或跟踪执行方式运行程序,观察存储块数据变化情况记录到预习报告。点击复位按钮,改变存储块数据,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,记录到预习报告。点击复位按钮,改变存储块数据,分别LOOP、LOOP1设置断点,点击全速执行快捷按钮,在断点处观察寄存器及存储块数据变化情况。

WAVE软件使用方法参考其帮助文件。

四、实验程序流程框图、实验程序

1、源程序1

ORG

0000H

AJMP

MAIN

ORG

0030H

MAIN:

MOV

R0,#30H;

(R0)=

(00H)=

MOV

A,#40H;

(A)=

MOV

R6,A;

(A)=,(R6)=

MOV

A,@R0;

(R0)=

(A)=

MOV

40H,A;

(A)=

(40H)=

MOV

30H,40H;

(30H)=

(40H)=

MOV

R1,#40H;

(R1)=

MOV

@R1,#0AAH;(R1)=

(40H)=

MOV

SP,#60H;

(SP)=

PUSH

ACC;

(SP)=

(61H)=

PUSH

30H;

(SP)=

(62H)=

MOV

A,#0FFH;

(SP)=

(A)=

MOV

30H,#30H;

(SP)=

(30H)=

POP

ACC;

(SP)=

(A)=

POP

30H;

(SP)=

(30H)=

ADD

A,30H;

(30H)=

(A)=

Cy=

SUBB

A,#10;

(A)=

Cy=

MOV

R4,#00100100B;

(R4)=

H

MOV

A,#39H;

(A)

=

ADD

A,R4;

(A)

=

(R4=)

DA

A;

(A)

=

Cy=

MOV

28H,#55H;(28H)

=

Cy=

MOV

C,40H;

(PSW)

=

Cy=

MOV

26H,#00H;(26H)

=

Cy=

MOV

30H,C;

(30H)

=

(26H.1)

=

SJMP

$

j点击project,选择下拉式菜单中的New

project;

k选择所要的单片机,这里我们选择常用的Ateml

公司的AT89C51;

l新建一个File,输入源程序;

m将新建文件保存为text.asm的格式;

n鼠标在屏幕左边的Source

Group1

文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。选“Add

File

to

Group

‘Source

Group

1’”弹出文件窗口,选择刚刚保存的文件;

o对程序进行编译运行;

使程序一得:

ORG

0000H

AJMP

MAIN

ORG

0030H

MAIN:

MOV

R0,#30H

;

(R0)=

0x30

(00H)=

0x0000

MOV

A,#40H

;

(A)=

0x40

MOV

R6,A

;

(A)=

0x40,(R6)=

0x40

MOV

A,@R0

;

(R0)=

0x30

(A)=

0x16

MOV

40H,A

;

(A)=0x16

(40H)=

0x0040

MOV

30H,40H

;

(30H)=

0x0030

(40H)=

0x0040

MOV

R1,#40H

;

(R1)=

0x40

MOV

@R1,#0AAH;(R1)=

0x40

(40H)=

0x0040

MOV

SP,#60H;

(SP)=

0x60

PUSH

ACC;

(SP)=

0x61

(61H)=

0x0061

PUSH

30H;

(SP)=

0x62

(62H)=

0x0062

MOV

A,#0FFH;

(SP)=

0x62

(A)=

0xff

MOV

30H,#30H;

(SP)=

0x62

(30H)=

0x0030

POP

ACC;

(SP)=

0x61

(A)=

0x16

POP

30H;

(SP)=

0x60

(30H)=

0x0030

ADD

A,30H;

(30H)=

0x0030

(A)=

0x2a

Cy=

0

SUBB

A,#10;

(A)=

0x20

Cy=

0

MOV

R4,#00100100B;

(R4)=

0x24

H

MOV

A,#39H;

(A)

=

0x39

ADD

A,R4;

(A)

=

0x5d

(R4=)

0x24

DA

A;

(A)

=

0x63

Cy=

0

MOV

28H,#55H;(28H)

=

0x0028

Cy=

0

MOV

C,40H;

(PSW)

=

0x80

Cy=

MOV

26H,#00H;(26H)

=

0x0026

Cy=

MOV

30H,C;

(30H)

=

0x0030

(26H.1)

=

0

SJMP

$

2、源程序2

设(30H)=4,(31H)=1,(32H)=3,(33H)=5,(34H)=2,(35H)=6

ORG

0000H

AJMP

MAIN

ORG

0030H

MAIN:

MOV

R0,#30H;30H→R0

MOV

R2,#6;6→R2

SORT:

MOV

A,R0;30H→A

MOV

R1,A;30H→R1

MOV

A,R2;6→A

MOV

R5,A;6→R5

CLR

F0;

状态标志位清零

DEC

R5;寄存器R5减一

MOV

A,@R1;R1→A

LOOP:

MOV

R3,A;A→R3

INC

R1

;寄存器R1增1

CLR

C

;进位标志位清零

MOV

A,@R1;31H→A

SUBB

A,R3;累加器内容减去寄存器内容

JNC

LOOP1;仅为标志位为1,则进行LOOP1

;以下代码完成数据交换

SETB

F0;状态标志位置1

MOV

A,@R1;31H→A

XCH

A,R3;将A于与R3的数据交换

MOV

@R1,A;将4赋值给寄存器R1(31H)

DEC

R1;寄存器减一

MOV

A,R3;1→A

MOV

@R1,A;将1赋值给寄存器R1(30H)

INC

R1;寄存器R1增一

LOOP1:

MOV

A,@R1;4→A

DJNZ

R5,LOOP;寄存器R5减一,不为零则回到LOOP

JB

F0,SORT;状态标志位为零,则回到SORT

SJMP

微机实验报告一 篇2

[关键词] 教学模式 实验教学 创新能力

《微机原理与接口技术》课程是大多数计算机及电子类专业学生的必修课程,同时也是一门动手性及实用性很强的计算机课程。在科学技术日益增长的今天,我国需要很多的既具备软件编程能力,又了解硬件知识的复合性人才。学好这门课程,将会为学生在后续的计算机开发应用中打下坚实的基础。这门课程是实践性很强的专业技术基础课程,学习过程中应充分重视实践环节,只有经过实践才能加深对理论课的学习和理解,提高分析问题和解决问题的能力。

在以往实验教学过程中,由于对实验课的重视程度不够及实验仪器的局限性,导致在实验课堂的组织及具体实施等方面都存在着某些问题。针对上述情况,我们在实验教学改革中做了如下尝试,取得了较好效果。

一、引导学生学习,提高学生学习积极性

很多学生在开始接触这门课程时会存在以下疑问,为什么学习这门课程?学了以后有什么用?汇编语言在编程过程中需要了解计算机底层的一些东西,加上繁琐的指令系统,因此很多学生在学习这门课的时候感觉很吃力,觉得无从下手,最后对该实验课程也引不起足够的重视。这就要求教师跟学生进行很好的沟通,消除学生的畏难情绪,化被动学习为主动求知。

本着由浅入深的教学思路,将实验内容分为验证性实验、设计性实验、综合性实验、创新性实验,其中又将这些实验分为必做和选作,因材施教,消除优秀生“吃不饱”,少数学生“吃不了”的现象,从而更好的满足不同学生的需求。

另外,教师在辅导实验过程中,也要注意营造交流沟通的氛围,在学生验证、修改实验的过程中,给予积极的引导,让学生真正成为“学习的主体”。当学生通过自己的努力完成了实验,他们不仅可以树立自信心,而且学会了主动接受知识、认真思考,学生的学习兴趣也得到很大的提高。

二、讨论性小组的开展

在某些实验中,教师可以组织同学讨论,从而提高学生的学习兴趣。例如,十字路口交通灯设计实验,交通灯是学生很熟悉的事物,这样可引起同学的讨论兴趣。教师可把学生分成3~5人的学习小组,充分发挥团队协作精神,从而更好更快地解决问题。在讨论过程中,教师可以发挥主导作用,提出问题让同学们来共同讨论解决。问题可以由易到难,逐层深入。如在交通灯实验中可以首先这样设置问题:东西、南北两方向各延时30秒,要求精确定时,如何来实现?

此时,同学们经过讨论,可以找到问题的突破口,确定选用前面实验中用到的8253、8259芯片,结合8255A控制发光二极管,来模拟十字路口交通灯。如此可以很好地巩固和加深对以前知识的消化和吸收。同学们经过反复实验,从中可以发现问题、共同解决。最终实现了对现实交通灯的模拟,相信对同学们自信心的加强会很有帮助。

此时教师可以进一步设置问题,如:如果使用七段数码管来显示交通灯时间的控制显示,如何实现?这样同学们可进一步学习到更多的知识。

最后教师可以指出:实际上不同时刻的车辆流通状况是复杂多变的,还经常受到人文因素的影响。采用定时控制会经常造成道路有效应用时间的浪费,如何更好的解决呢?这样的话会更大的激发学生的学习积极性,教师可以鼓励学生利用图书馆和网络资源,讨论小组可以分工合作,共同研究,相信同学们可以从中学到很多从理论课本上未曾接触的东西,并能从中享受学习的快乐,培养学生学习的积极性,增加同学们的沟通协调能力,使得同学们动手能力得到更好的锻炼。

三、增加实验室开放时间

实验室是学生锻炼和提高动手能力的良好场所,保证实验室开放时间,可以充分利用实验室资源,增加学生自主学习时间。如果没有实验环境,学生做预习一般采取预习下次要做的实验内容,写出实验程序,但是程序可不可以运行,学生只有等到上机调试后才知道,达不到预习的良好效果;如果实验室增加了开放时间,学生可对下一次的实验内容做更好的预习,有了实验调试环境,学生可对自己的程序先做初步的调试,遇到不能解决的问题可以做好记录,在课堂上可以与教师进行很好的沟通,学生的学习效果会更高,并可提升整个课堂学习效率。

一些能力强的同学可利用开放的实验室,做一些创新性实验的开发、研究。学生可增加对理论知识更加深刻的理解,学生的动手能力和创新能力会得到很好的培养。同时,在实验室开放时间内,学生之间可以进行很好的交流,达到互帮互学的目的,最终学生的整体科学素质会得到很好的提高。

四、结束语

《微机原理与接口技术》实验改革之路任重道远,还需要教师在今后的教学中探索新思路和新方法。接口技术与设备在不断的发展,教师应该密切关注当前最新技术,适时补充一部分当前微机接口技术中较新的内容,实验设备也应适当更新,从而培养出紧跟时代步伐的优秀学生。

参考文献:

[1]朱莹等.发现法在“汇编语言与接口技术”课程教学中的应用[J].计算机教育,2009,(8):134-135.

[2]陈静等.“微机原理及应用”实验教学改革[J].重庆工学院学报,2006,11(20):177-178.

[3]黄海萍.汇编语言与微机接口技术实验教程[M].国防工业出版社,2007.

实验一 实验报告 篇3

实验名称:Winsock编程接口实验 实验类型: 验 证 型

一、实验目的

 掌握Winsock的启动和初始化;

 掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。

二、实验设计

实验内容:

1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip 对应的IP地址列表。

2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC地址。

根据实验内容编写程序:

1、对相关域名进行解析,利用gethostbyname()完成解析,用到的结构体为:

struct hostent{ char FAR*

h_name;char FAR* FAR* h_aliases;short

h_addrtype;short

h_length;char FAR* FAR* h_addr_list;}

得到的IP地址列表由h_addr_list存储;

2、利用GetAdaptersInfo()函数获得本地主机的相关信息,通过IP_ADAPTER_INFO结构体返回所需信息。

IP_ADAPTER_INFO的定义如下: typedef struct _IP_ADAPTER_INFO {

struct _IP_ADAPTER_INFO* Next;

DWORD ComboIndex;

char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];

char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];

UINT AddressLength;

BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];

DWORD Index;

UINT Type;

UINT DhcpEnabled;

PIP_ADDR_STRING CurrentIpAddress;

IP_ADDR_STRING IpAddressList;

IP_ADDR_STRING GatewayList;

IP_ADDR_STRING DhcpServer;

BOOL HaveWins;

IP_ADDR_STRING PrimaryWinsServer;

IP_ADDR_STRING SecondaryWinsServer;

time_t LeaseObtained;

time_t LeaseExpires;

} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;

三、实验过程(包含实验结果)

1、分析题目,编写程序;

2、将编写的程序进行编译、运行,输入题目给定的内容,完成题目要求; 结果如下:

第1题:

第2题:

四、讨论与分析

思考题:

1、Winsock初始化的作用:只有调用了WSAStartup()进行初始化之后,应用程 序才能调用其他Windows Sockets API函数,实现网络通信;

2、函数原型为:

DWORD GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo,//接受数据的缓冲区

PULONG pOutBufLen

// 数据的长度大小);

3、域名解析时出现域名对应多个IP,原因:该域名存在于多个服务器。

五、实验者自评

通过本次实验,我掌握了Winsock的启动和初始化以及gethostname(),gethostbyname(),GetAdaptersInfo()等函数查询的使用,加深了以前对课本知识的认识程度。

六、附录:关键代码(给出适当注释,可读性高)

第1题代码:

////////////////////////////////////////////////// // GetAllIps.cpp文件

//#include “../common/InitSock.h” #include #include #include

using namespace std;

#pragma comment(lib, “WS2_32”)// 链接到WS2_32.lib //CInitSock initSock;// 初始化Winsock库

void main(){

char szMessage[256];// 取得本地主机名称

// 初始化

WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2), &wsaData)!= 0){

exit(0);}

// 通过主机名得到地址信息

printf(“ Get IP::”);gets(szMessage);

// 获取主机信息

hostent *pHost = ::gethostbyname(szMessage);

// 打印出所有IP地址

in_addr addr;for(int i = 0;;i++){

char *p = pHost->h_addr_list[i];

if(p == NULL)

break;

memcpy(&addr.S_un.S_addr, p, pHost->h_length);

char *szIp = ::inet_ntoa(addr);

printf(“ 服务器 %s IP地址:%s n ”,szMessage, szIp);

printf(“服务器名字: %s n”,pHost->h_name);}

/////////////////////////// ::WSACleanup();

}

第2题代码:

// 获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC地址

#include #include using namespace std;#include #pragma comment(lib, “IPHLPAPI.lib”)

void main(){ // 定义变量

IP_ADAPTER_INFO *pAdapterInfo;ULONG ulOutBufLen;DWORD dwRetVal;PIP_ADAPTER_INFO pAdapter;

pAdapterInfo =(IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));ulOutBufLen = sizeof(IP_ADAPTER_INFO);// 第一次获取适配器信息,得到ulOutBufLen的实际大小

if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)!= ERROR_SUCCESS){

free(pAdapterInfo);

pAdapterInfo =(IP_ADAPTER_INFO *)malloc(ulOutBufLen);} // 第二次获取适配器信息,获得了pAdapterInfo信息

if(dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)!= ERROR_SUCCESS){

cout<<“GetAdapterInfo Error!”<

// 打印MAC地址信息、子网掩码以及网关

pAdapter = pAdapterInfo;while(pAdapter){

cout<<“MAC Address:

”;

for(int i=0;i

AddressLength;i++)

{

if(i ==(pAdapter->AddressLength-1))

{

cout<Address[i];

}

else

{

cout<Address[i]<<“-”;

}

}

cout<

cout<<“IP 地址:”<

IpAddressList.IpAddress.String<

cout<<“子网掩码 :”<

IpAddressList.IpMask.String<

cout<<“网关 :”<

IpAddressList.IpAddress.String<

cout<<“****************************************”<

pAdapter = pAdapter->Next;}

// 释放资源

if(pAdapterInfo){

free(pAdapterInfo);} cout<

类与对象基础实验(一)实验报告 篇4

课程名称

面向对象程序设计

实验项目名称

类与对象基础实验

(一)学生姓名

专业班级

学号

一.实验目的和要求

1.掌握对象与类的关系 2.掌握类的域、方法、构造器的概念

3.掌握对象的创建与初始化 4.掌握方法和域(静态和非静态)的使用方式 5.掌握Math类,掌握静态成员的使用方式 6.理解方法和构造器重载现象

二.实验内容

1.程序阅读并回答问题 2.类的使用

3.编程实验:猜数字

4.编程实验:素数判断与统计

三.实验结果与分析(可将程序运行结果截屏,也可分析运行结果)

1..程序阅读并回答问题:阅读实验讲义的对应代码,回答以下问题。

(1)将上述代码编译运行,将运行结果截图。

答:

(2)上述源码中共定义了几个类?分别刻画了哪些数学图形?Triangle类有哪些域和方法?Triangle的这些域和方法是静态的还是非静态的?

答:

上述程序共定义四个类

分别刻画了三角形,梯形,圆形 域有:sideA,sideB,sideC,area,length, boo 方法有: Triangle//判断是否为三角形

getLength//给出三角形的周长 getArea//给出三角形的面积 setABC//判断是否为三角形

其中所有的域都为非静态的,所有方法都为非静态方法

(3)类和对象是什么关系?请从上述AreaAndLength.java中举例说明如何创建对象。

答:

类是对象的模板,也是对象的类型,描述一组具有相同属性和行为的对象

定义一个类。例如class Triangle。然后在main方法中定义域,然后给定义好的域调相应的类方法,赋予对象数据并构造。

(4)Triangle类中出现的Math.sqrt是什么?请举例说明Math类中还有哪些常用域和方法?

答:

Math.sqrt是math类中的求开根号的方法 Math.exp

(5)静态域和方法与非静态域和方法在使用时有什么区别?请从上述AreaAndLength.java中举例说明。

答:

静态域可被所有对象共享,并且在没有任何对象之前,就可以访问静态域,调用静态方法,并不需要创建这个类的对象;同一非静态域在不同对象之间相互独立,非静态方法的执行必须通过对象,所以需要事先创建该类的某个对象。

例如:public static void main(String args[])不需要创建对象,当程序运行时自动运行。而其他的类,例如class Triangle就需要main中创建好对象才能够调用

(6)什么是构造器?构造器与一般方法的区别是什么?构造器可以重载吗?请从上述AreaAndLength.java中举例说明。

答:

构造器用于创建对象,并初始化对象的状态 构造器与一般方法的区别:    构造器的名称必须和类名相同,而方法名不受限制。构造器没有返回类型,而方法名则不受限制。

一般通过new调用构造器来创建对象,而方法则没有这种调用格式。

构造器可以重载

非静态class Triangle public 和 Triangle(double a,double b,double c)静态Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC))

2.已有Rectangle类(矩形类),它有两个浮点型属性length(长)和width(宽)。该类具有两个构造函数(无参和有参),perimeter()和area()方法分别返回矩形的周长和面积, 请编写相应的包含main方法的类和main方法来测试Rectangle类。(程序结构参考讲义)

(1)请将源码编写完整如下:

public class Test3 { public static void main(String args[]){

}

Rectangle r= new Rectangle();System.out.println(“无参周长是:” +r.perimeter());System.out.println(“

面积是:”+r.area());

r= new Rectangle(1,1);

System.out.println(“有参周长是:” +r.perimeter());

System.out.println(“

面积是:”+r.area());

}

class Rectangle{

double length,width;

Rectangle(){

double alength;

}

double awidth;alength = 1;awidth = 1;length=alength;width=awidth;Rectangle(double alength,double awidth){ length=alength;width=awidth;} public double perimeter(){ }

return(length+width)*2;

public double area(){ return length*width;} }(2)程序运行结果截图如下:

3.编程实验:猜数字。程序运行的界面截屏如下: 源程序: import java.util.*;import java.math.*;public class guessnum{ public static void main(String args[]){

}

} Scanner scanner = new Scanner(System.in);int num =(int)(Math.random()*100 + 1);System.out.println(“有一个1-100之间的随机整数,请您猜猜看”);System.out.println(“请输入您的猜测:”);int choice = 0;do{ if(scanner.hasNextInt())

choice = scanner.nextInt();if(num > choice)System.out.println(“您猜小了,请继续猜:”);if(num < choice)System.out.println(“您猜大了,请继续猜:”);if(num == choice)System.out.println(“恭喜您,答对了”);}while(choice!= num);

4.编程实验:素数判断与统计。程序运行的界面截屏如下: 源代码: import java.util.*;public class Hello{

static boolean isPrime(int n){

//如果参数n是素数,那么返回true;否则返回false

for(int i=2;i<=Math.sqrt(n)+1;i++){ if(n == 2)

return false;

if(n % 2!= 0)return true;else return false;} return true;

} public static void main(String args[]){ Scanner scanner =new Scanner(System.in);System.out.println(“请输入一个区间:(如:1 100)”);

int a = 0,b = 0;do{ if(scanner.hasNextInt()){ a = scanner.nextInt();

} if(scanner.hasNextInt()){ b = scanner.nextInt();} if(a<0 || b<0)System.out.println(“请输入两个正整数”);}while(a<=0 || b <=0);if(a > b){ int item = a;

} a = b;b = item;int count=0;for(int i=a;i <= b;i++){ if(isPrime(i)== true)count++;} System.out.println(a+“到”+b+“有”+count+“个素数”);}

微机实验报告一 篇5

微型计算机原理课程是计算机类及大多数电类专业学生的必修课程,是一门实用性和实践性都很强的计算机硬件类课程。掌握这门课程的内容将会使学生在深刻理解计算机软、硬件关系及以后的计算机应用开发中打下必要的计算机硬件基础。微机原理课程的内容包括微型机硬件系统的组成、汇编语言的设计方法及接口技术三大部分,涵盖的知识点较多。微机原理课程的学习需要一定的电子电路基础和较强的逻辑思维能力,仅依靠课堂上的理论教学学生很难理解。

微机原理设计性试验教学模式实施思路

微机原理设计性试验教学模式与老旧的理论教学体系不同,在微机原理课程教学中,我们强调了设计性实验的重要性,并以设计性试验为中心开展教学工作。首先普及能够使学生完成实验的知识,然后以设计性实验本身作为目标,由学生自主进行探索,最后在对实验结果的分析、验证的过程中提升自我处理问题的能力,并完善理论知识,为接下来的课堂教学打下基础,确保学生成为课堂的主人并且将老师从传统的教授者的角色中解放出来,从不同的角度引导学生思考,使学生的自主学习能力大大提升。

设计性实验为牵引的微机原理课程教学法分析

(一)新教学模式与传统教学模式的区别所在

在传统的教学模式当中,通常在理论教学之后再进行实验,而在以设计性实验为牵引的新教学模式中则充分凸显了实验的重要性,转而在理论教学之前就安排实验课程。由于传统的理论教学过于强调了理论知识的重要性,为了避免学生走弯路,所以将实验安排在理论教学之后,因此实验的本质也由设计性试验变成了验证性试验。虽然这样的教学方法能够最大限度的达到原有的教学目标,但是在不知不觉中使学生习惯于被动接受知识,降低了其自我思考的能力,并且很难普及工程方面的知识。

(二)新教学模式的特点

使用设计性试验来引导教学,能够在最大限度保留传统理论知识教学优点的前提下,最大限度的发挥学生的主观能动性,将验证性试验转化为设计性试验来普及理论知识,在实验过程中充分暴露学生的不足之处,在理论教学的过程中进行补充。这种方法能引导学生临场对问题进行分析,在不断的探索之中完善原有的知识体系。

设计性实验为牵引的微机原理课程教学模式的进一步思考

(一)设计性试验与常规模式的区别

以设计性试验为主的教学模式能更好地与实践相结合,通过生动的实验来增强实际的教学效果,學生与老师都能乐在其中。而设计性试验教学模式却无法适用于知识体系较复杂的科目。而常规的授课模式教学周期较长,能够给与学生充分时间进行思考,适用于需要一定时间来贯彻落实的理论性课程教学之中。

(二)尚待修改的不足之处

目前,微机原理实验课所用的实验箱硬件电路一般是固定不能更改的,缺乏灵活性,不利于开展创新设计性实验。通过使用EDA仿真软件,就可以让学生脱离实验箱硬件,在EDA仿真软件上进行创新设计性实验项目的电子线路设计。教师在实验的过程中即使仔细讲解了实验的内容,但是缺少配套的硬件设备来对实验的成效进行考核,让学生重视实验的硬件选取。教师要要抛弃成品开发实验板这样的老旧设备,转而使用更先进的面包板,同时训练学生对软件和硬件的操控能力。

总结

本文通过系统的分析发现,设计性实验为牵引的微机原理要由学生自己来完成,由学生自由去发现,对项目研究的一系列问题要做到真正的研究透彻,解决彻底。教师在教学的过程中,要使学生成为主体去创造,去发现知识,突出学生的实践主体,使学生获得巨大的成就感,进而使学生对该方面的知识具有浓厚的兴趣。

(作者单位:长沙理工大学电气与信息工程学院)

C++ 实验一总结报告 篇6

实验一 VC++ 6.0开发环境应用入门 1.实验结果:

2.实验结果分析:

该程序是利用C++输出两句话,练习输出格式。实验二 C++简单程序设计

1.实验结果:

2.实验结果分析:

求一个图形的面积要先判断是哪一种图形,用switch语句就可以解决,再利用公式即可。如输入1为圆形,再输入边长3,利用面积公式,它的面积就是28.2744。

3.实验结果:

4.实验结果分析:

复习i++与++i的运用。i++在当前语句时,此时i的值是没有变化的,直到此句执行结束,i的值才会+1;++i在当前语句执行之前时,i的值就已经+1。实验三 函数的应用

1.实验结果:

2.实验结果分析:

函数的递归作用,先声明定义一个函数,输入形参n的值,然后进行比较,小于3的直接返回1;大于3的就继续递归,直到得到的形参值小于3,返回1为止。从程序结果得知,返回n个1就最终递归返回n。

3.编写一个函数把华氏温度转换为摄氏温度,转换公式为:C =(F-32)* 5/9。

4.使用系统函数pow(x,y)计算x的值,注意包含头文件math.h

程序:

y

实验总结:

1.基本掌握如何操作C++的界面,包括运行,编译,调试等过程;

2.学会编写简单的C++程序,掌握基本数据类型变量和常量的应用,运算符与表达式的应用;

3.学会使用VC++6.0开发环境中的debug调试功能:单步执行、设置断点、观察变量值;熟练使用F10,F11,shift+F11,ctrl+F10等快捷键的使用。

4.基本掌握函数的运用,并对C语言的复习与运用,认识了C++与C语言的异同。

实验报告

实验四 C++程序的结构

一、实验目的

1.观察程序运行中变量的作用域、生存期和可见性;

2.学习类的静态成员的使用;

3.学习多文件结构在C++程序中的使用;

二、实验任务

1.运行下面的程序,观察变量x、y的值。

#include

cout << “Step into fn1()...” << endl;

using namespace std;

fn1();

void fn1();

cout << “Back in main” << endl;

int x = 1, y = 2;

cout << “x = ” << x << endl;

int main()

cout << “y = ” << y << endl;

{

return 0;

cout << “Begin...” << endl;

}

cout << “x = ” << x << endl;

void fn1()

cout << “y = ” << y << endl;

{

cout << “Evaluate x and y in int y = 200;main()...” << endl;

cout << “x = ” << x << endl;

int x = 10, y = 20;

cout << “y = ” << y << endl;

cout << “x = ” << x << endl;

}

cout << “y = ” << y << endl;

2.实现客户机(CLIENT)类。声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中声明类和实现类,在文件client.cpp中测试这个类,观察相应的成员变量取值的变化情况。

程序:

//实现客户机(CLIENT)类。

#include using namespace std;class Client { private: static char SeverName[10];static int Clientnum;public: Client(){

cout<<“Client构造函数被调用”<

Clientnum++;}

~Client(){

cout<<“Client析构函数被调用”<

Clientnum--;} static void ChangeServername(){

cout<<“请输入服务器的名字:”<

cin>>SeverName;

} void show();};int Client::Clientnum=0;char Client::SeverName[10]=“abcd”;//Client.cpp void Client::show(){

实验五 数组、指针与字符串

一、实验目的 cout<<“该用户机的服务器端名字是:”<

//Client.exe void main(){ Client::ChangeServername();Client a;a.show();Client::ChangeServername();Client b;b.show();Client::ChangeServername();Client c;c.show();} 1.学习使用数组数据对象;

2.学习字符串数据的组织和处理;

3.学习标准C++库的使用;

4.掌握指针的使用方法;

5.练习通过debug观察指针的内容及其所指的对象的内容;

6.练习通过动态内存分配实现动态数组,并体会指针在其中的作用;

7.分别使用字符数组和标准C++库练习处理字符串的方法。

二、实验任务

1.编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。

程序:

#include cout<<“该矩阵的转置为:#include ”<

for(i=0;i<3;i++)cout<<“请输入一个3*3的矩

cout<

cout<

for(j=0;j<3;j++)}

cin>>a[i][j];2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。

程序:

#include #include #include void main(){

int i,j,t;

cout<<“请输入一个矩阵元素个数n*n=”;

cin>>t;

int *p=new int[t];

cout<

for(i=0;i

cin>>p[i];

cout<<“该矩阵的转置为:”<

for(j=0;j

{

for(i=0;i

{

cout<

i=i+sqrt(t);

}

cout<

} } 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

#include #include void main(){

int i,j;

char a[20],b[10];

cout<<“请输入一个不大于10个字符的字符串:”<

cin>>a;

cout<<“请再输入一个不大于10个字符的字符串:”<

cin>>b;

for(i=0;i<10;i++)

if(a[i]==')

{

j=i;

break;

}

for(i=0;i<10;i++)

{

a[i+j]=b[i];

if(b[i]==')

break;

}

cout<<“两字符串的连接得:”<

cout<

#include #include #include void main(){ char a[20],b[10];cout<<“请输入一个不大于10个字符的字符串:”<

cin>>a;cout<<“请再输入一个不大于10个字符的字符串:”<

cin>>b;cout<<“两字符串的连接得:”<

5.声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。

程序:

#include #include #include class employee { protected: char name[10];// 姓名

char street[20];// 街道地址

char city[10];// 市

char prov[10];// 省

char post[7];// 邮政编码

int no;// 记录序号 public: employee(char [],char [],char [],char [],char [],int);void change_name();void display();};employee::employee(char n[],char s[],char c[],char p1[],char p2[],int num){ strcpy(name,n);strcpy(street,s);strcpy(city,c);strcpy(prov,p1);strcpy(post,p2);no=num;} void employee::change_name(){ char n[20];cout<<“记录”<>n;cout<obj2.display();obj2.change_name();obj2.display();}

6.声明包含5个元素的对象数组,每个元素都是Employee类型的对象。

//声明包含5个元素的对象数组,每个元素都是Employee类型的对象。#include #include class Employee { protected: int Math;// 数学

int Chinese;// 语文

int English;// 英语

int Sport;// 体育

int Num;// 序号 public: void N(int n){Num=n;} void M(int m){Math=m;} void C(int c){Chinese=c;} void E(int e){English=e;} void S(int s){Sport=s;} void display(){cout<<“输出序号”<>j;for(i=0;i

cout<<“请依次输入序号、数学、语文、英语和体育成绩:”<

cin>>n>>m>>c>>e>>s;

date[i].N(n);

date[i].M(m);

date[i].C(c);

date[i].E(e);

date[i].S(s);} for(i=0;i

date[i].display();}

实验六 类与对象

一、实验目的 1.掌握类的声明和使用。

2.掌握类的声明和对象的声明。

3.复习具有不同访问属性的成员的访问方式。

4.观察构造函数和析构函数的执行过程。

5.学习类的组合使用方法。

二、实验任务 1.声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,其中,rank为字符型,其值可以为P1、P2等;frequency为单位是MHz的整型数;voltage为浮点型的电压值。

公有成员函数包括:GetRank()、GetFrequency()、GetVoltage()用来获取等级、频率、电压的值;SetRank、SetFrequency、SetVoltage用来设置等级、频率、电压的值;run、stop中run里面要求输出“CPU开始运行!”;stop里面要求输出“CPU停止运行!”。

构造函数里面需要输出“构造一个CPU”,析构函数里面需要输出“析构一个CPU”。观察构造函数和析构函数的调用顺序。

程序://声明一个CPU类

#include using namespace std;enum CPU_Rank {p1=1,p2,p3,p4,p5,p6,p7};class CPU { private: CPU_Rank rank;int freauency;float voltage;public: CPU(CPU_Rank r, int f,float v){ rank=r;

freauency=f;

voltage=v;

cout<<“构造一个CPU!”<

国贸实验报告一(英文邮件) 篇7

ZJSL

Dear Sales Manager,Thank you for your email and your catalogue.We have concluded several successful transactions of similar products with other traders in your region.Our wc_11(woolen carpet)price is CIFC3 USD 75/pieces RIO DE JANEIRO , we can offer 3,000 pieces and cr-12(cotton rugs)price is CIFC3 USD 90/pieces RIO DE JANEIRO ,we can offer 5,000 pieces.They are all white.Woolen carpet is 2m×2m, cotton rug is 4m×4m.They are all good hygroscopic, less lint, feel comfortable.We offer packing in cardboard boxes, one cardboard box contains 10 pieces woolen carpets or 20 pieces cotton rugs, 200 cardboard boxes made up of a 20 feet FCL.We provided shipment end of May.We have insured woolen carpets and cotton rugs against all risks and war risks.Our usual term of payment is by L/C at sight.It is only valid for three days.We are awaiting your early reply.Yours sincerely

ZJSL

Add:11F,JinjiangMansion,NO.111 Hushu South Road,Hangzhou,China

Tel: 86-571-88389551

Fax: 86-571-88391277

Post Code: 310001 South American Light Industry ltd 1860 cHURCH ROAD brasilia PA 195576 brazil FAX: 332-456-345 Date: March 15,2001

Dear Sir or Madam,If we give you a special discount ,we hope you can buy more woolen carpets and cotton rugs.To set up the trade , we change the content as follow :

woolen carpets: CIF3 USD 72 /pieces 4000pieces

cotton rugs: CIF3 USD 80 /pieces 6000pieces

CIF Rio de Janeiro on 20^ FCL basis

This offer remains valid for 3 days.Appreciating your prompt reply.Best regards

工程测量实验报告一(模版) 篇8

学院:测绘地理信息学院 班级:11-2 学号: 3111808283 姓名: 曾丹丹

一、实验名称:全站仪坐标放样

二、实验目的

1.掌握全站仪定向及坐标放样的方法 2.上交实验报告,全站仪坐标放样

三、实验仪器

每小组实验设备为全站仪1台,反光镜(包括基座和三脚架)1副,一枚小铁钉。

四、实验内容 1.坐标数据采集 2.后视点坐标检校 3.坐标点放样 4.检校各放样点坐标

五、实验步骤

1、仪器调水平同经纬仪(忽略),开机后目镜转360度使垂直过“0”。

2、按MENU菜单进入模式

3、按F2:测量程序。

4、按S•O、5、按F3坐标放样,选择一个文件(按F4跳过)。

6、按F1输入测站点,按F4(坐标提示)依次输入:N(X)、E(Y)、Z(忽略),全部输完按ENT(回车)。

7、按F2后依次输入后视点:按F4(坐标)后桌面显示:输入N(X)、E(Y)坐标值后照准棱镜后(仪器中发出声响)然后按F3(是)确定后进入坐标放样模式。

8、按F3放样点:显示放样点名按F3(坐标)桌面显示:N(X)、E(Y)、Z(忽略)依次输入N、E的坐标值,按ENT(回车)。

9、照准棱镜,按F4继续,当d HR(显示数值归零后)表明放样方向正确。

10、按F2(距离)键 HD:实测的水平距离dHD:对准放样点尚差的水平距离。

11、按F1进行精测。d HR、dHD、dZ均为0时,则放样点的测设已经完成。

12、按F4继续下一个点的放样

六、实验总结

微机实验报告一 篇9

一、实验室注意事项

保持实验室清洁,不能随意乱扔垃圾,不能喧哗

爱护设备,不能随意乱动设备上的各种开关,否则会有危险 实验结束要求:

1、整理好各种配线并放入实验台的柜子里。

2、关闭电脑。

3、切断实验台左上角电源。(与步骤2不能颠倒)

二、连线

1、连接串口线。

2、用IDE线将JFZ与J88相连。

3、88TX拨到RS232;;K88拨到ON。

88电源部分K88置ON。

4、CPU系统接口区的51与88片选用短路片将靠近88的两个引角短接。将SDF与WF片选用短路片将靠近WF端短接。

三、软件操作

双击桌面dv88.exe.然后按DVCC实验系统右边红色复位键,上面的七段数码管显示dvcc-86H。

四、再点击DVCC实验系统上的联接图标,会自动打开数据窗口、寄存器窗口等,表示联机成功,如果出现联接失败,则需要重新DVCC实验系统右边红色复位键。

五、DVCC实验系统---〉选项---〉实验指南工具栏,选择要做的实验项目,查看目的、内容、原理、位置等(本部分内容相当于装载进电脑的实验指导书)。了解实验的所有知识,并按内容和原理图连线。

六、DVCC实验系统---〉新建,编程序,文件名保存为英文名字或数字(注意:不能包含中文字符,文件保存路径:C:/DVCC)

七、点击编译(改正出错的地方,直到程序完全正确);点击调试(等待数秒钟调试完毕,直到没有出错标志,并且反汇编窗口装载程序正确);点击运行,查看结果。

八、退出运行:PC上长按键盘ESC键3秒钟;实验箱上按红色复位键,直到上面的七段数码管显示dvcc-86H.九、存储器读写实验查看实验结果的方法:

在程序正常运行后,按照注意事项第八条,完成实验箱和PC机的退出运行。

再次复位,因为存储器读写实验是对实验箱内置的存储器进行读写操作,所以需要先复位断开串口的程序传输状态和存储器写数据状态,再次联机通过串口实现内部存储器读操作。

上一篇:二年级书法下一篇:我经历过的求职故事