基础光学实验实验报告

2024-08-13 版权声明 我要投稿

基础光学实验实验报告(精选8篇)

基础光学实验实验报告 篇1

一、报告内容

实验一:透镜基本性能测量

90分

1.实验目的 10分 2.透镜焦距测量原理(简述)10分 3.实验内容、结果及现象

70分 1)薄正透镜的成像

30分

按指导书上序号书写,要求画出实验光路并注明主要参数,如透镜焦距,以及相关距离等参数,并计算所求物理量,注明实验现象(正倒,虚实,放大缩小)。注意数据单位。图1-3,1-4,1-5及3个单透镜成像各5分,共30分。2)薄负透镜的成像

20分 要求同上。

图1-6,1-7,1-8,1-9各5分 3)透镜焦距的测量

20分

参照表1-1,选定一对玻罗板刻线,重复测量三次,注意数据单位(焦距小数点后保留一位,单位毫米)。15分

计算误差。

5分

实验二:干涉法测量空气折射率

90分

1.实验目的 10分 2.实验原理

10分

简述迈克尔逊干涉仪和马赫曾德干涉仪的工作原理(各5分)。3.实验内容

20分 根据实验室给定器件,基于迈尔孙干涉仪和马赫曾德干涉仪的工作原理进行测量空气折射率的光路设计,要求画出实际设计光路(各5分),并进行简要光路描述(各5分)。

4.实验结果

20分

按照实验指导书上的表1-1记录条纹变化数,并根据得到的实验数据计算不同条纹变化所对应的空气折射率值(10分);绘制出空气压强与干涉条纹变化的关系曲线(5分)及空气折射率与压强的关系曲线(5分)。

5.思考题

30分(每题各10分)

实验三:衍射法测量光波波长

90分

1.实验目的10分 2.实验原理

20分 3.实验内容

20分

根据实验室给定器件基于夫琅和费衍射原理进行测量钠光波长光路设计(10分),并进行光路描述(10分)。

4.实验结果及分析

20分

按照实验指导书上表2-1记录数据,计算出钠光波长(10分);计算误差并分析(10分)。5.思考题

20分(每题各10分)

二、报告要求

每份实验报告各10分

(1)必须有封皮,封皮上要注明课程名称,班级,姓名,学号;

(2)报告必须手写。

基础光学实验实验报告 篇2

但是, 在光学实验中, 实验的环境对实验效果影响巨大, 要想得到理想的实验效果, 必须具备良好的实验条件, 导致教学中很难将实验应用的理论教学中去, 所以借助于计算机将光学实验进行仿真成为一条有效的可行路线。

利用origin软件对光学实验进行仿真, 可以避免复杂的程序撰写, 非常适用于没有编程基础的初学者, 也能够得到效果明显的实验结果应用到实际的理论教学中。

一、Origin仿真结果

(一) 多缝夫琅禾费衍射

强度公式:根据惠更斯-菲涅尔原理, 多缝夫琅禾费衍射的光强公式[1]为:

实验仿真结果:

由式 (1) 可得接受屏上x (设OP=x) 处与该点相对光强的函数关系为:

设N=6, b=4×10-6m, d=6×10-6m, f=65×10-3m, I0=1, λ=650nm。矩阵维数设定 (500, 500) , x、y的取值范围为 (-0.03m, 0.03m) , 依据光强分布公式得出矩阵元的值如下: (sin ( (pi*4e-6/650e-9) *x/sqrt (x^2+6.5e-2^2) ) / ( (pi*4e-6/650e-9) *x/sqrt (x^2+6.5e-2^2) ) ) ^2* ( (sin ( (6*pi*6e-6/650e-9) *x/sqrt (x^2+6.5e-2^2) ) ) ^2/ (sin ( (pi*6e-6/650e-9) *x/sqrt (x^2+6.5e-2^2) ) ) ^2) 可得到图1所示的二维仿真图, 图2所示的三维仿真图。

(二) 夫琅禾费多缝干涉

强度公式:在多缝夫琅禾费衍射中, 如果不考虑单缝衍射效应, 多缝干涉的强度与相位差的关系为:

其中, δ= (2πdsinθ) /λ。

令v= (πdsinθ) /λ, 式 (3) 可表示为:

取N=4, I0=1, d=5×10-6m, f=65×10-3m, λ=589nm, 矩阵维数设定为 (500, 500) , x、y坐标范围设定为 (-0.02m, 0.02m) , 矩阵元的值设定为sin ( (4*pi*0.5e-5/589e-9) *x/sqrt (x^2+6.5e-2^2) ) ) ^2/ (sin ( (pi*0.5e-5/589e-9) *x/sqrt (x^2+6.5e-2^2) ) ) ^2, 可得到多缝干涉的二维及三维仿真图像如图3和图4。

(三) 夫琅禾费圆孔衍射

强度公式:夫琅禾费圆孔衍射中, R为圆孔半径, θ为衍射角, f为凸透镜焦距。

圆孔衍射在屏上任一点的光强为:

实验仿真:

令衍射图样中心P0处光强I0=1, 可知接受屏上P处相对光强与x的函数关系为:

设R=0.00003m, f=1m, λ=632.8nm, 调用一阶贝塞尔函数, 依据光强分布公式对矩阵元的值进行设定:

4* (j1 ( (2*pi*0.00003/632.8e-9) * (sqrt (x^2+y^2) /sqrt (x^2+y^2+1^2) ) ) / ( (2*pi*0.00003/632.8e-9) * (sqrt (x^2+y^2) /sqrt (x^2+y^2+1^2) ) ) ) ^2) , 可以分别得到图5所示的二维衍射仿真图和图6所示的三维衍射仿真图。

(四) 夫琅禾费矩形孔衍射

光强公式:夫琅禾费距孔衍射中, a、b分别表示x、y方向上距孔的边长, 矩形孔衍射公式[2]为:

实验仿真:

设λ=400nm, a=0.004nm, b=0.004mm, 焦距f=60mm, x、y坐标范围设定为 (-0.2m, 0.2m) , 矩阵维数设定为 (500, 500) , 在矩阵值窗口根据 (7) 式输入: ( (sin ( (pi*4e-6*x) / (4e-7*sqrt (x^2+0.6^2) ) ) ) ^2/ ( (pi*4e-6*x) / (4e-7*sqrt (x^2+0.6^2) ) ) ^2) * ( (sin ( (pi*4e-6*y) / (4e-7*sqrt (y^2+0.6^2) ) ) ) ^2/ ( (pi*4e-6*y) / (4e-7*sqrt (y^2+0.6^2) ) ) ^2) , 得到图7的二维衍射图, 图8的三维衍射图。

二、小结

通过上述图像可以得到, origin软件可以从容地得到相关的仿真结果, 并且其所得到的图像细致逼真, 界面也相当清晰, 对于实验的分析探究相当有利, 可以简单形象的看懂那些抽象难懂的光学理论。

摘要:以光的夫琅禾费多缝衍射、多缝干涉、夫琅禾费圆孔、矩形孔衍射、牛顿环实验以及迈克耳孙干涉实验为例, 利用origin软件实现光学实验三维仿真。找出实验的光强公式, 并进行参数设定, 从而得到origin软件所需要的矩阵元的值, 就可得一个光强的数据矩阵, 进一步可得到仿真图。得到的仿真图简单明了, 有利于观察, 为光学探究提供方便。

关键词:光学,实验仿真,origin

参考文献

[1]赵建林.光学[M].北京:高等教育出版社, 2006:P4.

辨识光学实验中倒立的像 篇3

在探究凸透镜成像规律时,小明用5个红色的发光二极管按“F”字样,镶嵌排列在白色方格板上,替代蜡烛作为光源,又用同样的白色方格板做成光屏。实验使用的凸透镜焦距为10 cm,实验装置如图1所示。

光源“F”放在15 cm处,其大小如图2所示,凸透镜固定在光具座零刻度线上。用遮光罩将凸透镜的上半部分罩住,则光屏上所成的像是图3中的

[TP5CW53。TIF,BP#]

听了学生的提问后,本人问了一些一线教师,大部分认为答案是C,也有一小部分教师对答案C有疑惑。但现在我认为在这道题目中光屏是不透明的,人眼只能在光屏的左侧观察像,看到光屏上所成的像应是图3中的D,因为对学生而言,光屏上所成的像,应该是学生在实验中眼睛看到的像。这个题目其实已经确定了观察物体和像的位置,在物体和光屏的中间看物体和像,眼睛看到的像只有上下发生了颠倒。学生做实验采用的装置如图4所示,光屏同样是不透明的,在物体和光屏的中间观察物体和像,看到的像相对于观察的物体只有上下颠倒了。

[TP5CW54。TIF,BP#]

在平时的教学中,我们都忽视了当观察位置不同时,观察的结果会存在差异。我想可能是因为在下面的几种情况中,倒立的像都是上下、左右均颠倒或无法观察到倒立的情况,我们[JP3]也就从来没思考过有没有特殊的情况。我们先来看看这几种情况:[JP]

(1)小孔成像的实验。

为了能让学生在课堂上清楚地观察到小孔成的像,我们可以用圆筒做成如图5所示的小孔成像装置,蜡烛放在小孔的左侧,人在最右侧观察半透明纸上烛焰的像,由于光在同一种均匀物质中是沿直线传播的,我们在半透明纸上看到的像相对于物体来说是上下、左右都颠倒的实像(如图6所示),观察时物体与像位于人眼的同一侧。

[TP5CW55。TIF,BP#]

(2)小孔成像的现象。

生活中最常遇到的小孔成像现象是树荫下形成的圆形光斑,当树叶间的空隙较小时,地面上就出现了太阳的像。按照小孔成像原理,成的也是倒立的实像,但是由于物体是圆形的,所以我们无法观察到像的颠倒情况。

(3)凸透镜成像的实验。

凸透镜成像的实验我们通常将蜡烛的火焰作为物体,光具座上从左向右依次是蜡烛、凸透镜、不透明的光屏。上课做演示实验时,为了让学生都能看到光屏上成的像,我将光具座竖放在讲台上(如图7所示),学生相当于在蜡烛的左端观察,看到了上下、左右都颠倒的实像。若光屏是半透明的,人在光屏的右侧看,也能看到上下、左右都颠倒的实像,观察时物体与像也都位于人眼的同一侧。

[TP5CW56。TIF,BP#]

(4)凸透镜成像的应用。

凸透镜成像应用中照相机和幻灯机成的倒立实像,拍照片时人相当于在光屏的右端观察(如图8),放幻灯片时人相当于在物体的左端观察(如图9),物体和像同样都在人眼的同侧,看到的是上下、左右都颠倒的实像。

[TP5CW57。TIF,BP#]

但是使用老式的投影仪时(如图10),人若在同一位置低头看投影片,抬头看天花板上成的像,看到了只有左右颠倒的实像。当遇到这类题目时,题目中一般不会规定如何观察物体和像,所以我们还按照凸透镜成像的规律,认为是上下、左右都颠倒的实像。例如,如图11中左边的实线框内是某一物体的形状,右边4个虚线框内是供选择的物体像的形状。以下填空时,只考虑像的形状,不考虑像的大小。把投影仪的反射平面镜卸[JP3]掉,让物体的像成在天花板上,这时看到该物体的像的形状为D。[JP]

[TP5CW58。TIF,BP#]

下面我们再来看一习题:

在“凸透镜成像规律”实验中,某同学进行了如下两个探究。

(1)为研究像距与焦距的关系,他选用焦距不同的三个凸

透镜进行实验,实验数据记录如表1所示。

表1

[BHDFG2,WK6,K6,K6,K6W]

物距u/cm[]实验序号[]焦距f/cm[]像距v/cm

[BHDG6,WK6,K18W]

10[][ZB(][BHDG2,WK6,K6,K6W]1[]2[]2。5[BH]2[]5[]10[BH]3[]8[]40[ZB)][BG)F]

分析表中数据可知,保持物距不变时,焦距越大,则所成实像的像距越[CD#3]。(选填:“大”或“小”)。

(2)该同学用若干个发光二极管组成形状如“E”的发光物体,如图13甲所示,将发光物体、凸透镜和光屏依次组装到光具座上并调整好,且物距调节为6 cm时,在光屏上成的像如图13乙所示,则他选用的是三个透镜中焦距为[CD#3]cm的凸

[TP5CW59。TIF,BP#][LL]

透镜;如果只将“E”,换成“R”,并在同一位置观察,光屏上成的像应是图13丙中的[CD#3](填数字序号)。

本题中,第(2)小题的最后一空答案是②。题目中该同学用若干个发光二极管组成形状如“E”的发光物体,如图13所示,在光屏上成的像如图13所示时,就确定了人观察物体和像的位置,当光屏不透明时,人相当于在物体的左侧观察,当光屏是半透明时,在光屏的右侧观察所成的像,看到的像上下颠倒,左右也会颠倒。所以这道题目最后一空应该是(2)。

基础会计实验报告 篇4

一、实验目的

本实验以模拟企业的实际会计工作为基础,按照企业会计制度和企业会计准则的要求,进行操作训练,通过手工操作掌握会计核算的基本操作程序,以及各种凭证、帐表的填制规定和方法,把枯燥、抽象的书本知识转化为实际、具体的操作。有目的地检验和复习学生所学的会计理论、方法、技能和技巧,通过实际的操作,使学生比较系统、全面地掌握工业企业会计核算的基本程序和具体方法,加强学生对会计基本理论的理解和对会计基本技能的掌握,形象地掌握各种业务的处理及记账凭证的填写方法,掌握账簿的处理及登记方法,掌握成本核算方法,掌握各种报表的编制方法,掌握会计资料的整理归档方法,同时,在不同岗位进行不同操作,使之在实验中,培养职业道德和职业判断能力,提高职业工作能力,为今后从事会计实务工作打下扎实的基础。

二、实验内容及过程

1、建立账簿:按照公司实际业务的需要开设帐簿,建立现金、银行存款日记帐簿、总分类帐簿、建立各项明细帐簿,根据资料录入各账簿的期初余额。在这过程中应注意:

(1)账页的正确选择;

(2)分清借贷方向,准确填写对应数字。

2、填制记账凭证:根据实验资料所给的原始凭证,填写相应的记账凭证。填写时要注意业务发生的日期,正确判断业务,准确的写出会计分录。过程中要求:(1)内容真实可靠、内容完整、填制及时、书写清楚、次序使用;(2)填写记账凭证的日期、编号、摘要;(3)正确填写账户名称并正确反映借贷方向;

3、登记明细帐,其中包括:

(1)三栏式明细账,适用于登记金额不反应数量的账户。

(2)数量金额式,适用于既需要核算金额又需要核算数量的明细科目;(3)多栏式,适用于费用、成本和收入等科目的明细核算。根据审核无误的记账凭证或原始凭证按经济业务发生的时间先后顺序逐日逐笔进行登记相应的明细账。编制科目汇总表:根据一定时期内的全部记账凭证,按科目进行归类编制的。

4、在科目汇总表中,分别计算出每一个总账科目的借方发生额合计数、贷方合计数。

5、登记总分类账:根据科目汇总表登记总帐总分类账户,并与其所属的明细分类账户应该进行平行登记。总分类账与明细分类账的平行登记要点,有依据相同、期间相同、金额相同、方向相同。

6、期末结转:在会计一个很重要的内容就是期末结转,要将各项费用,按照各明细账进行登记。

编制会计报表 :最后,根据总账和明细账及资料所给的期初余额编制编制“会

7、计报表”,包括资产负债表和利润表。资产负债表是反映企业某一特定日期财务状况的会计报表。利润表又称损益表,是反映企业在一定会计期间经营成果的报表。

三、实验中遇到的问题

1、刚开始时,在登帐过程中很容易出现书写错误,常常抄错数字或借贷写反、会计分录写错,导致核算结果出错,引起不必要的麻烦。这是就需要我们细心对待每一笔账,认真做好每一个步骤的工作、填写好相关会计档案。

2、会计分录是关键所在,在编制过程中不够熟练,有出错的情况,造成了后续工作的阻碍,浪费了时间、拖缓了完成时间。以后还需要加强练习。

3、错帐时,用错帐更正法,通常有划线更正法、补充登记法、红字更正法三种,严禁填补、挖改。

四、体会

会计是一个讲求严谨性和细密性的工作,它的本性决定了从业人员必须具备的一丝不苟的敬业精神。而这些,都以法律的形式写进了一些规章制度,虽然学习会计道德和相关会计法规法律的时候就知道了这些,而当时的自己却存在更多的不以为然。实践证明,没有实际操作就没有发言权,没有经历过就不了解这句话的深刻含义。过程中,我深刻体验到了这一点,在做账务时,一个小数点错了,可能导致你后面的全部错了,一个编号的错误,可能意味着你得从头再来。诚然,在学习的过程中,错误是难以避免的,但是如果每次我们可以从错误中吸取教训、总结经验、思索得失,那对于我们职业习惯的培养、优良品格的塑造,也会有着举足轻重的作用。而对于一名会计专业的学生,更多的我们以后走上社会从事相关工作,在实验中有些错误可以犯,但将来或许一次错误之后,你就失去了再次犯错的机会。无疑,认真细致、严谨耐心,是我们必须具备的。我们应当谨记:差之毫厘,谬以千里。

实验课程虽然要结束了,但是在这个过程中我深刻体会到的会计工作在企业的日常运转中的重要性,以及会计工作对我们会计从业人员的严格要求,培养的严谨细致精神,这些必然会对将来的学习和工作有一个很好的积淀作用。在实际操作过程中找出自身存在的不足,在今后的会计学习明确的方向和目标。“纸上得来终觉浅,绝知此事要躬行”,实验课程将会计专业理论知识和专业实践,有机的结合起来,开阔了我们的视野,增进了我们对企业实践运作情况的认识,也为我们得将来奠定了坚实的基础。在知识上,由朦朦胧胧变得比较明白;在能力上,由完全不敢动手,不会动手,到基本能动手;在情感上,由对学习会计兴趣不大甚至厌烦,到开始有了较大兴趣,有的还感到了相当的乐趣。在作风上,由以前普遍性的马虎、拖沓,变为大多数人能谨慎、主动。在相互关系上,由彼此很少交流,到能实现真正的互相帮助。在个人未来打算上,重新构思了自己的奋斗目标,普遍感到了压力,产生了动力。

计硬基础实验报告3 篇5

5、实验6)姓名: 学号: 实验目的

1.了解中断原理,包括对中断源、中断向量、中断类型号、中断程序以及中断响应过程的理解;

2.掌握单片机C语言中断程序设计方法;

3.了解 MSP430Gxxx 基本时钟模块的工作原理,掌握其控制方法; 4.掌握利用时钟信号和中断技术实现定时功能的方法; 5.掌握低功耗模式控制方法。实验基本任务 实验 5中断技术: 1.中断响应过程的理解

阅读下面 C 语言中断程序 L5_int.C,说明程序执行的流程和实现功能。上机实践,回答下面问题,掌握用 C 语言编写中断程序的方法。

程序L5_int如下:

#include “io430.h” #include “in430.h” void delay()

//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void Blink()

//LED闪 { P2OUT &=~BIT3;delay();P2OUT |= BIT3;delay();} void Buzz()

//蜂鸣响 { unsigned int i;for(i=0;i<3;i++){ P2OUT &=~BIT4;delay();P2OUT|= BIT4;delay();};} void main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置引脚P2.4、P2.3输出,P2.3连接LED,P2.4连接蜂鸣器 P2SEL &=~(BIT3+BIT4);P2SEL2 &=~(BIT3+BIT4);P2OUT|=(BIT3+BIT4);P2DIR|=(BIT3+BIT4);//设置端口P1.5允许中断 P1SEL &= BIT5;P1SEL2 &= BIT5;P1OUT |=BIT5;P1REN |=BIT5;P1DIR &=~BIT5;P1IES |= BIT5;P1IFG &=~BIT5;P1IE |= BIT5;_EINT();//总中断允许 for(;;)//主循环 { Blink();};} #pragma vector=PORT1_VECTOR __interrupt void port_ISR(){ Buzz();P1IFG &=~BIT5;}

1)从程序如何判断用的是哪个中断源?其中断类型号是多少?将实验板上某一按键与该中断源对应的引脚相连,运行程序,操作按键,观察现象。

答:程序是通过判断中断标志位来确定是哪个中断源,P1.5为中断源,中断类型号是2; 现象:运行程序时P2.3控制的LED4灯不断闪烁,当P1.5控制的开关发出中断申请时即按下按键后闪烁暂停,控制P2.4连接的蜂鸣器响3声,然后继续LED4灯闪烁。

2)main函数中无调用函数 Buzz的语句函数 Buzz 如何能被执行?何时会被执行? 据此描述中断响应过程。

答: 函数Buzz是在函数名为port_ISR的中断程序中,因此当P1.5发出中断申请时即当按下按键时,函数port_ISR就会被执行,执行完毕后再返回main函数中继续执行main函数。

中断响应的过程:P1.5处发出中断请求→判断是否满足响应条件→若满足,则CPU在执行完当前指令后,硬件自动完成保护现场的操作→从中断向量表中取中断向量至PC→转去执行中断服务子程序;

3)如果 port_int 函数中不清分中断标志P1IFG的后果是什么? 答: 如果不清分中断标志P1IFG的话就会一直响应中断,然后port_ISR函数就会一直被执行,蜂鸣器不断的响。

4)如果L5_int.c中的PORT1_VECTOR改为PORT2_VECTOR,其他不变,程序执行的后果是什么?为什么?(可在 main 函数入口处加一断点,运行程序,看现象,分析原因)

答: PORT1_VECTOR改为PORT2_VECTOR,其他不变,程序将会无法进入中断。因为程序中的中断属于P1引脚的中断,中断向量与P2引脚的中断向量不同,所进行的改动则是把中断程序写入到了P2引脚的中断向量对应的地址中,而P1引脚的中断向量对应的地址上没有程序,因此无法执行原先的中断子程。

当在主程序入口处加一断点时可以发现,由于已经设置了中断的端口,因此当有中断信号发出时,程序仍然会去执行中断子程,但由于中断向量没有正确设置,PC指针会跑飞,然后机器会自动复位,重新执行程序。

5)如果中断源采用的是P2.1,按键用 K7,请设计连线,修改 L5_int.c程序完成以中断方式响应 K7 的操作。

答:将P2.1引脚连线与K7相连,其他连线不变,连线图如下:

修改后的程序如下:

#include “io430.h” #include “in430.h” void delay()

//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void Blink()

//LED闪 { P2OUT &=~BIT3;delay();P2OUT |= BIT3;delay();} void Buzz()

//蜂鸣响 { unsigned int i;for(i=0;i<3;i++){ P2OUT &=~BIT4;delay();P2OUT|= BIT4;delay();};} void main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置引脚P2.4、P2.3输出,P2.3连接LED,P2.4连接蜂鸣器 P2SEL &=~(BIT3+BIT4);P2SEL2 &=~(BIT3+BIT4);P2OUT|=(BIT3+BIT4);P2DIR|=(BIT3+BIT4);//设置端口 P2.1 允许中断 P2SEL &=~ BIT1;P2SEL2 &=~ BIT1;P2OUT |=BIT1;P2REN |=BIT1;P2DIR &=~BIT1;P2IES |= BIT1;P2IFG &=~BIT1;P2IE |= BIT1;_EINT();//总中断允许 for(;;)//主循环 { Blink();};} #pragma vector=PORT2_VECTOR __interrupt void port_ISR(){ Buzz();P2IFG &=~BIT1;}

6)(选做)分析L5_int.c 程序 1)有主循环;2)无主无限循环两种情况有何不同? 注意: 1)查看io430G2553.h 文件末尾处有关中断向量偏址的符号定义。

2)为便于了解程序执行流程,可在中断子程入口处设置一断点,然后连续运行程序(F5),观察操作按键和不操作按键两种情况下程序执行的现象有何不同。

答:无主无限循环程序很快运行结束,无法响应中断,因此不可去掉无限循环语句。

2.中断程序编程练习

在实验板上用跳线将按键 K3、K7 分别与单片机的 P1.1 和 P1.6 相连,编程以中断方式 响应按键 K3 和 K7 的请求:当按下一次 K3 键,实验板上的蜂鸣器发出一警报声;当按下一次 K7 键,实验板上的发光二极管 L2 闪 3 次。主循环中控制 L5 循环闪亮。

答:用跳线将按键 K3、K7 分别与单片机的 P1.1 和 P1.6 相连,P2.1、P2.4分别连接 L2和L5,P2.3 连接蜂鸣器,接线图如下:

程序如下: #include “io430.h” #include “in430.h” void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void L2Blink()//L2闪3次 { unsigned int i;for(i=0;i<3;i++){ P2OUT &=~BIT1;delay();P2OUT|= BIT1;delay();};} void L5Blink()//L5闪 { P2OUT &=~BIT4;delay();P2OUT |= BIT4;delay();} void Buzz()//蜂鸣响 { P2OUT &=~BIT3;delay();P2OUT|= BIT3;delay();} void main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置引脚 P2.1、P2.3、P2.4输出,P2.1、P2.4分别连接 L2和L5,P2.3 连接蜂鸣器 P2SEL &=~(BIT1+BIT3+BIT4);P2SEL2 &=~(BIT1+BIT3+BIT4);P2OUT|=(BIT1+BIT3+BIT4);P2DIR|=(BIT1+BIT3+BIT4);//设置端口 P1.1、P1.6 允许中断K3、K7 分别与单P1.1 和 P1.6 相连 P1SEL &=~(BIT1+BIT6);P1SEL2 &=~(BIT1+BIT6);P1OUT |=(BIT1+BIT6);P1REN |=(BIT1+BIT6);P1DIR &=~(BIT1+BIT6);P1IES |=(BIT1+BIT6);P1IFG &=~(BIT1+BIT6);P1IE |=(BIT1+BIT6);_EINT();//总中断允许 for(;;)//主循环

{ L5Blink();};} #pragma vector=PORT1_VECTOR __interrupt void port_ISR(){ if((P1IFG&BIT1)!=0){Buzz();P1IFG &=~BIT1;};if((P1IFG&BIT6)!=0){ L2Blink();P1IFG&=~BIT6;};}

实验思考和研究:

1)如果按键K3、K7分别连接在P2.0和 P2.4上,如何修改程序以实现任务2功能? 答: P2.1、P2.5分别连接 L2和L5,P2.3 连接蜂鸣器,P2.0、P2.4分别连接按键K3、K7,接线图如下:

程序如下: #include “io430.h” #include “in430.h” void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void L2Blink()//L2闪3次 { unsigned int i;for(i=0;i<3;i++){ P2OUT &=~BIT1;delay();P2OUT|= BIT1;delay();};} void L5Blink()//L5闪 { P2OUT &=~BIT5;delay();P2OUT |= BIT5;delay();} void Buzz()//蜂鸣响 { P2OUT &=~BIT3;delay();P2OUT|= BIT3;delay();} void main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置引脚 P2.1、P2.3、P2.5输出,P2.1、P2.5分别连接 L2和L5,P2.3 连接蜂鸣器 P2SEL &=~(BIT1+BIT3+BIT5);P2SEL2 &=~(BIT1+BIT3+BIT5);P2OUT|=(BIT1+BIT3+BIT5);P2DIR|=(BIT1+BIT3+BIT5);//设置端口 P2.0、P2.4 允许中断,P2.0、P2.4分别连接按键K3、K7 P2SEL &=~(BIT0+BIT4);P2SEL2 &=~(BIT0+BIT4);P2OUT |=(BIT0+BIT4);P2REN |=(BIT0+BIT4);P2DIR &=~(BIT0+BIT4);P2IES |=(BIT0+BIT4);P2IFG &=~(BIT0+BIT4);P2IE |=(BIT0+BIT4);_EINT();//总中断允许 for(;;)//主循环

{ L5Blink();};} #pragma vector=PORT2_VECTOR __interrupt void port_ISR(){ if((P2IFG&BIT0)!=0){Buzz();P2IFG &=~BIT0;};if((P2IFG&BIT4)!=0){ L2Blink();P2IFG&=~BIT4;};} 2)如果按键 K3、K7 分别连接在 P1.3 和 P2.7 上,如何修改程序以实现任务 2 功能? 答: P2.1、P2.5分别连接 L2和L5,P2.3 连接蜂鸣器,P1.3、P2.7分别连接按键K3、K7,接线图如下:

程序如下: #include “io430.h” #include “in430.h” void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void L2Blink()//L2闪3次 { unsigned int i;for(i=0;i<3;i++){ P2OUT &=~BIT1;delay();P2OUT|= BIT1;delay();};} void L5Blink()//L5闪 { P2OUT &=~BIT4;delay();P2OUT |= BIT4;delay();} void Buzz()//蜂鸣响 { P2OUT &=~BIT3;delay();P2OUT|= BIT3;delay();} void main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置引脚 P2.1、P2.3、P2.4输出,P2.1、P2.4分别连接 L2和L5,P2.3 连接蜂鸣器 P2SEL &=~(BIT1+BIT3+BIT4);P2SEL2 &=~(BIT1+BIT3+BIT4);P2OUT|=(BIT1+BIT3+BIT4);P2DIR|=(BIT1+BIT3+BIT4);//设置端口 P1.3、P2.7 允许中断分别连接按键K3、K7 P1SEL &= BIT3;P1SEL2 &= BIT3;P1OUT |=BIT3;P1REN |=BIT3;P1DIR &=~BIT3;P1IES |= BIT3;P1IFG &=~BIT3;P1IE |= BIT3;P2SEL &=~ BIT7;P2SEL2 &=~ BIT7;P2OUT |=BIT7;P2REN |=BIT7;P2DIR &=~BIT7;P2IES |= BIT7;P2IFG &=~BIT7;P2IE |= BIT7;_EINT();//总中断允许 for(;;)//主循环

{ L5Blink();};} #pragma vector=PORT1_VECTOR #pragma vector=PORT2_VECTOR __interrupt void port_ISR(){ if((P1IFG&BIT3)!=0){Buzz();P2IFG &=~BIT3;};if((P2IFG&BIT7)!=0){ L2Blink();P2IFG&=~BIT1;};}

3.采用事件标志处理中断

阅读程序 L5_intA.c 和 L5_intB.c(见后页),描述其实现功能。在实验板上将 P1.0 与 一个按键的控制端相连,P1.7 与蜂鸣器的控制端相连。比较 L5_intA.c 和 L5_intB.c 二者在编程实现上有何不同。注意各自中断子程执行时间的长短。用 L5_intB.c 的方法,改写任务2的编程。

答: 程序A和程序B实现的功能相同:用P1.0作为中断源,当P1.0接收到中断信号时,控制蜂鸣器响一声。不同的是程序A把控制蜂鸣器鸣叫的过程放在中断程序中,而程序B仅仅在中断程序中设置了一个事件标志,而把控制蜂鸣器鸣叫放在了while循环中,这样每当事件标志被响应时,蜂鸣器就会鸣一声。因此程序A的中断子程执行时间长于程序B。

接线图如下: P2.1、P2.4分别连接 L2和L5,P2.3 连接蜂鸣器,P1.1连K3、P1.6连K7。

修改的程序如下: #include “io430.h” #include “in430.h” int flag=0;void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void L2Blink()//L2闪3次 { unsigned int i;for(i=0;i<3;i++){ P2OUT &=~BIT1;delay();P2OUT|= BIT1;delay();};} void L5Blink()//L5闪 { P2OUT &=~BIT4;delay();P2OUT |= BIT4;delay();} void Buzz()//蜂鸣响连P2.3 { P2OUT &=~BIT3;delay();P2OUT|= BIT3;delay();} void main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置引脚 P2.1、P2.3、P2.4输出,P2.1、P2.4分别连接 L2和L5,P2.3 连接蜂鸣器 P2SEL &=~(BIT1+BIT3+BIT4);P2SEL2 &=~(BIT1+BIT3+BIT4);P2OUT|=(BIT1+BIT3+BIT4);P2DIR|=(BIT1+BIT3+BIT4);//设置端口 P1.1连K3、P1.6连K7 允许中断 P1SEL &=~(BIT1+BIT6);P1SEL2 &=~(BIT1+BIT6);P1OUT |=(BIT1+BIT6);P1REN |=(BIT1+BIT6);P1DIR &=~(BIT1+BIT6);P1IES |=(BIT1+BIT6);P1IFG &=~(BIT1+BIT6);P1IE |=(BIT1+BIT6);_EINT();//总中断允许 for(;;)//主循环 { L5Blink();if(flag==1){ Buzz();flag=0;} if(flag==2){ L2Blink();flag=0;} } } #pragma vector=PORT1_VECTOR __interrupt void port_ISR(){ if((P1IFG&BIT1)!=0){flag=1;P1IFG &=~BIT1;};if((P1IFG&BIT6)!=0){ flag=2;P1IFG&=~BIT6;};}

4.(选做)按键抖动处理

程序 L5_Key.C 见后页,其功能是用中断方式相应与 P1.2 连接的按键,计数按键的次数,并将所计的次数用8 个发光二极管显示出来。运行该程序,并操作按键,观察实际操作的次数与显示值之间的关系。编程改进L5_Key.C 程序,用软件方式去除按键抖动的影响。

说明:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

答:根据分析,需要在响应了第一次下降沿后,加入一定的延时,躲过其它电压毛刺的产生时间。通过实验观察可以发现,改进之前,二进制显示的数值明显大于实际按键数,而改进之后,两者数值大致相等。

具体程序如下:

#include “io430.h” #include “in430.h”

unsigned int number=0;

//记录响应按键次数

void delay()

//延时函数

{

unsigned int j;

for(j=0;j<0xffff;j++);

}

int main(void)

{

WDTCTL = WDTPW + WDTHOLD;

//关闭看门狗

__disable_interrupt();//_DINT();禁止总中断

P2SEL=0;

//置P2为基本I/O功能

P2SEL2=0;

P2OUT=0xFF;

//置P2输出的初值

P2DIR=0xFF;

//置P2为输出方向

P1SEL &= BIT2;//置P1.2允许中断连K3

P1SEL2 &= BIT2;

P1OUT |=BIT2;;

P1REN |=BIT2;

P1DIR &=~BIT2;

P1IES |= BIT2;

P1IFG &=~BIT2;

P1IE |= BIT2;

__enable_interrupt();//_EINT();总中断运行

while(1){ };}

#pragma vector=PORT1_VECTOR

__interrupt void port_int(void){

if((P1IFG&BIT2)!=0){ delay();//增加延时函数,避开毛刺

if((P1IFG&BIT2)!=0)

{

number++;

P2OUT=~number;

}

P1IFG &=~BIT2;} }

实验6 基本时钟和低功耗模式: 1.数字示波器的使用

1)将信号源的波形在示波器上显示出来,掌握测量周期、频率、峰峰值的方法;

答:用示波器测得信号源的周期T=20us、频率f=1.000KHZ、峰峰值V=3.18V。2)用孔孔导线将实验板的地信号与示波器的地信号相连,测量实验板上的 Vcc 电源信号是否正常。

答: 测得实验板上Vcc信号正常,Vccmax=3.76V,Vccmin=3.52V,Vccavg=3.66V。2.测试上电复位系统的 ACLK、和 SMCLK 时钟频率

编程输出单片机上电复位后的 ACLK、和 SMCLK 时钟,用示波器测量其频率,并记录下来。

答:本程序需要置引脚P1.0、P1.4分别输出ACLK、SMCLK,需要确认外部晶振连上,输出的ACLK频率为F(ACLK)=32.7KHZ,SMCLK的频率为F(SMCLK)=1.031MHZ。

程序如下:

#include “io430.h” int main(void){ //关闭看门狗

WDTCTL = WDTPW + WDTHOLD;//设置P2.6、P2.7连接外部晶振 P2SEL|=(BIT6+BIT7);P2SEL2&=~(BIT6+BIT7);P2DIR&=~BIT6;P2DIR|=BIT7;//设置P1.0、P1.4输出ACLK、SMCLK P1SEL|=BIT0;P1SEL2&=~BIT0;P1DIR|=BIT0;P1SEL|=BIT4;P1SEL2&=~BIT4;P1DIR|=BIT4;while(1);}

实验思考和研究

思考:1)上电复位后,CPU 工作的时钟信号 MCLK 频率值是多少?

答:上电复位后,通过查看基本时钟模块相关寄存器,发现BCSCTL2寄存器上SELM位为00,SELS位为则0,可知MCLK的时钟源为DCO,SMCLK的时钟源也为DCO,因此通过测量上面复位后的SMCLK频率可知MCLK的频率,由上述可知F(MCLK)=1.031MHZ。

2)实验板上 JP8 中间的两个插针接到 32.768KHz 侧和接到 P2.6/P2.7 侧结果有何不同? 为什么?

答:是由32.768KHZ低频振荡器控制的,因此比较精确,示波器测量的精确值和理论值相差不大,接到 P2.6/P2.7 侧是由片内低功耗低频振荡器控制的,受环境温度和工作电压影响较大,因此测量值和理论值相差较大。3.掌握基本时钟模块的编程控制

参看附录 A 实验板原理图,用跳线将 JP8 中的插针信号接到晶振 32.768Khz 侧,使晶振 与单片机的 P2.6 和 P2.7 相连。编程控制基本时钟模块,设置 ACLK 分别为下面时钟频率,并通过 P1.0 输出 ACLK,用示波器观察:

1)ACLK=8192Hz;(时钟源外部晶振四分频,即 32768Hz/4)

答:P2.6、P2.7连接外部晶振引脚,通过 P1.0 输出 ACLK,观察的F(ACLK)=8.1kHZ。

具体程序代码如下:

#include “io430.h” int main(void){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;P1SEL|=BIT0;//设置P1.0输出ACLK P1SEL2&=~BIT0;P1DIR|=BIT0;P2SEL|=BIT6;//设置P2.6、P2.7连接外部晶振引脚 P2SEL2&=~BIT6;P2DIR&=~BIT6;//P2.6 XIN输入 P2SEL|=BIT7;P2SEL2&=~BIT7;P2DIR|=BIT7;//P2.7 XOU输出

BCSCTL1|=DIVA_2;//设置ACLK为4分频 while(1);}

2)ACLK=1.5KHz;(时钟源 VLOCLK 八分频,即 12KHz/8)答:通过 P1.0 输出 ACLK,观察的F(ACLK)=1.2KHZ。

具体程序代码如下:

#include “io430.h” int main(void){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;P1SEL|=BIT0;//设置P1.0输出ACLK P1SEL2&=~BIT0;P1DIR|=BIT0;BCSCTL1|=DIVA_3;//设置ACLK时钟源为VLOCLK,并为8分频 BCSCTL3|=LFXT1S_2;while(1);}

实验思考和研究

思考:可否编程在引脚 P2.4 上输出 ACLK? 为什么?

答:不可以,因为根据说明指导书MSP430G2553的辅助时钟ACLK是由P1.0输出的,内部硬件电路设计结构决定了不能用P2.4输出ACLK。

4.DCO 出厂校验值的频率检测

1)利用出厂校验值,编程使DCO 分别为1MHz、8MHz、12MHz、16MHz,通过P1.4输出,用示波器测量实际值。

答: 出厂校验值为1MHZ时,F实际=0.991MHZ。出厂校验值为8MHZ时,F实际=8.157MHZ。出厂校验值为12MHZ时,F实际=12.03MHZ。出厂校验值为16MHZ时,F实际=16.17MHZ。

以上测试数据说明:DCOCLK是由片内数字可控RC振荡器控制的,受环境温度和工作电压的影响较大,因此出厂校验值和实际测量值也存在不小的误差。

具体程序代码如下:

#include “io430.h” int main(void){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

P1SEL|=BIT4;//设置P1.4输出SMCLK P1SEL2&=~BIT4;P1DIR|=BIT4;BCSCTL1=CALBC1_1MHZ;//利用出厂校验值设置DCO的振荡频率为1MHZ,//其他情况改变1MHz就可以了 DCOCTL=CALDCO_1MHZ;while(1);}

2)(选做)控制发光二级管通过延时闪亮,分别编程使主系统时钟工作在(1)MCLK=复位频率/8 约100KHz;(2)MCLK=DCO=16MHz 两种不同MCLK 频率下,观察灯的亮灭速度有何不同,掌握主系统时钟的变化对程序执行速度的影响。

答: 经实验观察可知,MCLK设置为100KHZ时LED1灯的闪烁频率比设置为16MHZ慢了非常多,由此可知主系统时钟是主要提供给CPU工作的时钟,MCLK频率越高,CPU工作速度越快。

MCLK=复位频率/8具体程序代码如下:

#include “io430.h” void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} int main(void){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;P2SEL&=~BIT0;//设置P2.0连接L1控制LED1闪烁 P2SEL2&=~BIT0;P2DIR|=BIT0;BCSCTL2|=DIVM_3;//设置MCLK=复位频率/8约100KHz; unsigned int i;while(1){ for(i=0;i<5;i++){P2OUT &=~BIT0;delay();P2OUT|=BIT0;delay();} } }

MCLK=DCO=16MHz具体程序代码如下:

#include “io430.h” void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} int main(void){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;P2SEL&=~BIT0;//设置P2.0连接L1控制LED1闪烁 P2SEL2&=~BIT0;P2DIR|=BIT0;BCSCTL1=CALBC1_16MHZ;//利用出厂校验值设置DCO的振荡频率为16MHZ DCOCTL=CALDCO_16MHZ;unsigned int i;while(1){ for(i=0;i<5;i++){P2OUT &= ~BIT0;delay();P2OUT |=BIT0;delay();} } }

5.低功耗模式学习

程序 L6_LPM.c 见下,用跳线将P2.3 与L4 短接,将P2.4 用长杜邦线与buzz 短接,P1.1与K2 短接,并用示波器分别观察P1.0、P1.4 输出的ACLK 和SMCLK,了解低功耗模式的进入和退出。

程序L6_LPM.c 清单(提供电子版): #include “io430.h” #include “in430.h” void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} void Blink()//LED闪 { unsigned int i;for(i=0;i<5;i++){ P2OUT &= ~BIT3;delay();P2OUT |=BIT3;delay();};} void Buzz()//蜂鸣响 { unsigned int i;for(i=0;i<3;i++){ P2OUT &= ~BIT4;delay();P2OUT |=BIT4;delay();};} int main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置端口P2.3输出,连接L4,控制LED,P2.4输出,控制蜂鸣器 P2SEL &=~(BIT3+BIT4);P2SEL2&=~(BIT3+BIT4);P2OUT |= BIT3+BIT4;P2DIR |= BIT3+BIT4;//设置端口P1.1允许中断 P1.1连接K2 P1SEL &=~BIT1;P1SEL2 &=~BIT1;P1REN |=BIT1;P1OUT |=BIT1;P1DIR &=~BIT1;P1IES |=BIT1;P1IFG &=~BIT1;P1IE |=BIT1;_EINT();//P1.0输出时钟ACLK, P1.4输出时钟SMCLK P1SEL |=BIT0+BIT4;P1SEL2 &=~(BIT0+BIT4);P1DIR |=BIT0+BIT4;Blink();Buzz();for(;;)//主循环 { LPM4;//进入低功耗模式 Blink();} } #pragma vector=PORT1_VECTOR __interrupt void port_ISR(){ Buzz();P1IFG&=~(BIT1);//清中断标志 LPM4_EXIT;}

1)运行程序,观察现象,并记录进入低功耗前、进入低功耗后、响应中断后、退出中断后的时钟、发光二极管和蜂鸣器状态,并做分析。

答:程序开始运行时,P2.3控制的LED4先闪烁,然后蜂鸣器鸣叫,接着进入低功耗模式,实验板无现象产生,若此时按下K2键向P1.1发出中断信号后蜂鸣器开始鸣叫,接着LED4又开始闪烁,然后进入低功耗模式,实验板无现象产生。

进入低功耗LPM4前F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ,进入后F(ACLK)=0,F(SMCLK)=0,响应中断后F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ,退出中断后刚开始F(ACLK)= 32.89KHZ,F(SMCLK)=1.033MHZ,退出中断LED灯闪烁后F(ACLK)=0,F(SMCLK)=0。

分析:程序顺着流程执行,先是LED闪烁,然后蜂鸣器响,接着进入循环,然后进入低功耗模式LPM4,此时PC指针停止不动,程序停止执行。若此时按下K2键发出中断,则程序会立刻停止低功耗模式,将当前状态储存入堆栈中,然后跳转执行中断子程,蜂鸣器响,退出低功耗模式,然后程序返回断点,返回到主函数中执行Blink()后再次进入低功耗模式。2)如果程序中没有 LPM4_EXIT 语句,运行的结果会有什么不同?请分析。

答:如果程序中没有LPM4_EXIT,则不同之处在于按下K2发出中断信号后只有蜂鸣器鸣叫然后进入低功耗模式,而LED4不会闪烁。

分析:程序在主函数中进入低功耗模式后停止执行,若此时按下K2键发出中断,则程序会立刻停止低功耗模式,将当前状态储存入堆栈中,然后跳转执行中断子程,蜂鸣器响,与1不同的是,中断子程中没有退出LPM4语句,因此程序在执行完中断后立刻返回中断之前的低功耗状态,而不会跳转返回到主函数中执行Blink(),因此LED灯不会闪烁。3)(选做)将 LPM4 改为LPM0,LPM4_EXIT 改为LPM0_EXIT,重新完成任务1。

答:程序开始运行时,P2.3控制的LED4先闪烁,然后蜂鸣器鸣叫,接着进入低功耗模式,实验板无现象产生,若此时按下K2键向P1.1发出中断信号后蜂鸣器开始鸣叫,接着LED4又开始闪烁,然后进入低功耗模式,实验板无现象产生。

进入低功耗LPM0前F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ,进入后F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ,响应中断后F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ,退出中断后刚开始F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ,退出中断LED灯闪烁后F(ACLK)=32.89KHZ,F(SMCLK)=1.033MHZ。

分析:程序顺着流程执行,先是LED闪烁,然后蜂鸣器响,接着进入循环,然后进入低功耗模式LPM4,此时PC指针停止不动,程序停止执行。若此时按下K2键发出中断,则程序会立刻停止低功耗模式,将当前状态储存入堆栈中,然后跳转执行中断子程,蜂鸣器响,退出低功耗模式,然后程序返回断点,返回到主函数中执行Blink()后再次进入低功耗模式。

原因分析:在低功耗LPM4模式下,CPU、MCLK、SMCLK、ACLK均被禁止,因此进入低功耗LPM4模式后P1.0和P1.4均不输出信号;而在低功耗LPM0模式下,CPU、MCLK被禁止,而SMCLK和ACLK均在活动,因此进入低功耗模式前后P1.0和P1.4输出的信号不变。虽然表面实验现象和LPM4一样,但是用示波器测得的引脚输出信号不一样。6.利用输出的时钟信号做中断源,实现定时功能

将任务 3 中P1.0 输出的1.5KHz ACLK 时钟信号,作为P1.6 的中断申请信号,用导线将P1.6 与P1.0 相连即可,在中断子程中设置一个计数变量,计数中断子程被执行的次数,中断子程每被执行1500 次表示一秒时间到。利用该定时功能,将8个发光二级管设计成一个秒表,显示秒值,每秒改变一次8 个发光二级管的显示。

答:将P2.0~P2.7与LED1~LED8连接起来,通过设置基本时钟控制寄存器将ACLK的时钟源选为12KHz的VLOCK,然后再设置ACLK为8分频,这样就可以使P1.0输出1.5KHz的ACLK信号。将P1.6与P1.0再连接起来,将P1.6设置为允许中断,在中断程序中加入计数因子,每隔1500次计数则可以视为1s,这时令8个LED灯变化一次。即可实现要求功能。

具体程序代码1如下: #include “io430.h” #include “in430.h” unsigned char time=0;unsigned int i=0;int main(void){ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗 //设置端口P1.0输出1.5KHzACLK时钟信号 P1SEL|=BIT0;P1SEL2&=~BIT0;P1DIR|=BIT0;BCSCTL3&=~LFXT1S0;BCSCTL3 |= LFXT1S_2;// LFXT1 = VLO 低频时钟选择为VLO ACLK选为VLO __bis_SR_register(SCG1 + SCG0);//Stop DCO SCG1禁止SMCLK SCG0禁止DCO BCSCTL2 |= SELM_3 + DIVM_3;//MCLK = LFXT1/8 //因为前面已经选择了LFXT1 = VLO所以MCLK选为VLO 8分频 //所以CPU的MCLK大约为1.5KHz //设置P2.0~P2.7为输出状态 与LED连接分别接L1~L7 P2SEL&=0;P2SEL2&=0;P2DIR|=0Xff;P2OUT|=0Xff;//设置端口P1.6允许中断 将P1.6与P1.0连接 P1SEL&=~BIT6;P1SEL2&=~BIT6;P1REN|=BIT6;P1OUT&=~BIT6;P1DIR&=~BIT6;P1IES&=~BIT6;P1IFG&=~BIT6;P1IE|=BIT6;_EINT();while(1){ if(i>=1500){ time+=1;i=0;} P2OUT=~time;//LED灯显示输出秒表的值 } } #pragma vector=PORT1_VECTOR __interrupt void port_ISR(){ i++;P1IFG&=~(BIT6);//清中断标志 }

或者具体程序代码2如下:

#include “io430.h” #include “in430.h” unsigned char time=0;unsigned int i=0;int main(void){ //关闭看门狗

WDTCTL = WDTPW + WDTHOLD;//设置端口P1.0输出1.5KHzACLK时钟信号 P1SEL|=BIT0;P1SEL2&=~BIT0;P1DIR|=BIT0;BCSCTL3&=~LFXT1S0;BCSCTL3|=LFXT1S1;BCSCTL1&=~DIVA1;BCSCTL1|=DIVA0;//设置P2.0~P2.7为输出状态 P2SEL&=0;P2SEL2&=0;P2DIR|=0Xff;P2OUT|=0Xff;//设置端口P1.6允许中断 P1SEL&=~BIT6;P1SEL2&=~BIT6;P1REN|=BIT6;P1OUT&=~BIT6;P1DIR&=~BIT6;P1IES&=~BIT6;P1IFG&=~BIT6;P1IE|=BIT6;_EINT();while(1){ if(i>=1500){ time+=1;i=0;} P2OUT=~time;//LED灯显示输出秒表的值 } } #pragma vector=PORT1_VECTOR __interrupt void port_ISR(){ i++;P1IFG&=~(BIT6);//清中断标志 }

(选做)如果要每隔5 秒蜂鸣器响一声,如何在任务6 的基础上编程实现? 答:将P1.7与蜂鸣器相连,然后在中断程序在加入一个计时因子来控制蜂鸣器。

具体代码如下: #include “io430.h” #include “in430.h” unsigned char time=0;unsigned int i=0;void delay();int main(void){

WDTCTL = WDTPW + WDTHOLD;//关闭看门狗

//设置端口P1.0输出1.5KHzACLK时钟信号 P1SEL|=BIT0;P1SEL2&=~BIT0;P1DIR|=BIT0;BCSCTL3&=~LFXT1S0;// LFXT1 = VLO 低频时钟选择为VLO ACLK选为VLO BCSCTL3 |= LFXT1S_2;BCSCTL1&=~DIVA1;BCSCTL1|=DIVA0;//设置P2.0~P2.7为输出状态 P2SEL&=~0;P2SEL2&=~0;P2DIR|=0Xff;P2OUT|=0Xff;

//设置P1.7为输出状态

P1SEL&=~BIT7;P1SEL2&=~BIT7;P1OUT|=BIT7;P1DIR|=BIT7;

//设置端口P1.6允许中断

P1SEL&=~BIT6;

P1SEL2&=~BIT6;

P1REN|=BIT6;

P1OUT&=~BIT6;

P1DIR&=~BIT6;

P1IES&=~BIT6;

P1IFG&=~BIT6;

P1IE|=BIT6;_EINT();

while(1){

if(i>=1500){

time+=1;

if((time%5)==0)

P1OUT&=~BIT7;

delay();

P1OUT|=BIT7;

i=0;}

P2OUT=~time;//LED灯显示输出秒表的值

} }

void delay()//延时函数

{

unsigned int j;

for(j=0;j<0xffff;j++);

}

#pragma vector=PORT1_VECTOR

__interrupt void port_ISR(){

i++;P1IFG&=~(BIT6);//清中断标志

}

7.(选做)改用4 个数码管显示秒值,重新完成任务6。

(选做)改用4 个数码管显示秒值无蜂鸣器

答:将P2.0~P2.7依次与Sa ~Sh相连,P1.1~P1.4与S1~S4相连,P1.6与P1.0连接,P1.6设置允许中断,P2.6.0连P2.6,P2.7.0连P2.7。

具体代码如下: #include “io430.h” #include “in430.h” void delay();unsigned char time=0;unsigned int i=0;const char LEDtab[10]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};unsigned char a=0,b=0,c=0,d=0;unsigned char flag=0;int main(void){ //关闭看门狗

WDTCTL = WDTPW + WDTHOLD;//设置端口P1.0输出1.5KHzACLK时钟信号 P1SEL|=BIT0;P1SEL2&=~BIT0;P1DIR|=BIT0;BCSCTL3&=~LFXT1S1;BCSCTL3|=LFXT1S1;BCSCTL1&=~DIVA1;BCSCTL1|=DIVA0;

//设置P2.0~P2.7为输出状态 P2SEL=0;P2SEL2=0;P2DIR=0XFF;P2OUT=0XFF;

//设置P1.1~P1.4为输出状态; P1SEL&=~(BIT1+BIT2+BIT3+BIT4);P1SEL2&=~(BIT1+BIT2+BIT3+BIT4);P1DIR|=BIT1+BIT2+BIT3+BIT4;P1OUT&=~(BIT1+BIT2+BIT3+BIT4);//设置端口P1.6允许中断 P1SEL&=~BIT6;P1SEL2&=~BIT6;P1REN|=BIT6;P1OUT&=~BIT6;P1DIR&=~BIT6;P1IES&=~BIT6;P1IFG&=~BIT6;P1IE|=BIT6;_EINT();while(1){ if(i>1500){ time+=1;i=0;} time=time%5000;d=time/500;c=(time%500)/50;b=(time%50)/5;a=time%5;if(a==0){ delay();} } } void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} #pragma vector=PORT1_VECTOR

__interrupt void port_ISR(){ i++;

//显示输出数码管 if(flag==0)

{P2OUT=LEDtab[a];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT1;flag=1;} else if(flag==1)

{P2OUT=LEDtab[b];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT2;flag=2;} else if(flag==2)

{P2OUT=LEDtab[c];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT3;flag=3;} else if(flag==3)

{P2OUT=LEDtab[d];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT4;flag=0;} P1IFG&=~(BIT6);

//清中断标志 }

(选做)改用4 个数码管显示秒值蜂鸣器响一声

答:将P2.0~P2.7依次与Sa ~Sh相连,P1.1~P1.4与S1~S4相连,P1.6与P1.0连接,P1.6设置允许中断,P2.6.0连P2.6,P2.7.0连P2.7,P1.7与BUZZ相连增加蜂鸣器延时程序。

具体代码如下: #include “io430.h” #include “in430.h” void delay();unsigned char time=0;unsigned int i=0;const char LEDtab[10]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};unsigned char a=0,b=0,c=0,d=0;unsigned char flag=0;int main(void){ //关闭看门狗

WDTCTL = WDTPW + WDTHOLD;//设置端口P1.0输出1.5KHzACLK时钟信号 P1SEL|=BIT0;P1SEL2&=~BIT0;P1DIR|=BIT0;BCSCTL3&=~LFXT1S1;BCSCTL3|=LFXT1S1;BCSCTL1&=~DIVA1;BCSCTL1|=DIVA0;

//设置P2.0~P2.7为输出状态 P2SEL=0;P2SEL2=0;P2DIR=0XFF;P2OUT=0XFF;

//设置P1.1~P1.4、P1.7为输出状态; P1SEL&=~(BIT1+BIT2+BIT3+BIT4+BIT7);P1SEL2&=~(BIT1+BIT2+BIT3+BIT4+BIT7);P1DIR|=BIT1+BIT2+BIT3+BIT4+BIT7;P1OUT|=BIT7;P1OUT&=~(BIT1+BIT2+BIT3+BIT4);//设置端口P1.6允许中断 P1SEL&=~BIT6;P1SEL2&=~BIT6;P1REN|=BIT6;P1OUT&=~BIT6;P1DIR&=~BIT6;P1IES&=~BIT6;P1IFG&=~BIT6;P1IE|=BIT6;_EINT();

while(1){ if(i>1500){ time+=1;i=0;} time=time%5000;d=time/500;c=(time%500)/50;b=(time%50)/5;a=time%5;if(a==0){ P1OUT&=~BIT7;//蜂鸣器响 delay();

P1OUT|=BIT7;} } } void delay()//延时函数 { unsigned int j;for(j=0;j<0xffff;j++);} #pragma vector=PORT1_VECTOR

__interrupt void port_ISR(){ i++;//显示输出数码管 if(flag==0)

{P2OUT=LEDtab[a];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT1;flag=1;} else if(flag==1)

{P2OUT=LEDtab[b];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT2;flag=2;} else if(flag==2)

{P2OUT=LEDtab[c];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT3;flag=3;} else if(flag==3)

{P2OUT=LEDtab[d];P1OUT&=~(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT4;flag=0;} P1IFG&=~(BIT6);

//清中断标志 }

实验思考和研究

工程材料与成形技术基础实验报告 篇6

一、金属材料的硬度实验

一、实验类型

验证性

二、实验目的

1、了解硬度测定的基本原理及应用范围。

2、了解布氏、洛氏硬度试验机的主要结构及操作方法。

三、实验仪器与设备

1、HB-3000型布氏硬度试验机;

2、H-100型洛低硬度试验机;

3、读数放大鏡;

四、实验内容:

金属的硬度可以认为是金属材料表面在接触应力作用下抵抗塑性变形的一种能力。硬度测量能够给出金属材料软硬程度的数量概念。由于在金属表面以下不同深处材料所承受的应力和所发生的变形程度不同,因而硬度值可以综合地反映压痕附近局部体积内金属的弹性、微量塑变抗力、塑变强化能力以及大量形变抗力。硬度值越高,表明金属抵抗塑性变形能力越大,材料产生塑性变形就越困难。另外,硬度与其它机械性能(如强调指标b及塑性指标和)之间有着一定的内在联系,所以从某种意义上说硬度的大小对于机械零件或工具的使用性能及寿命具有决定性意义。

硬度的试验方法很多,在机械工业中广泛采用压入法来测定硬度,压入法又可分为布氏硬度、洛氏硬度、维氏硬度等。

压入法硬度试验的主要特点是:

(1)试验时应力状态最软(即最大切应力远远大于最大正应力),因而不论是塑性材料还是脆性材料均能发生塑性变形。

(2)金属的硬度与强调指标之间存在如下近似关系。

bKHB

(3)硬度值对材料的耐磨性、疲劳强度等性能也有定性的参考价值,通常硬度值高,这些性能也就好。在机械零件设计图纸上对机械性能的技术要求,往往只标注硬度值,其原因就在于此。

(4)硬度测定后由于仅在金属表面局部体系内产生很小压痕,并不损坏零件,因而适合于成品检验。(5)设备简单,操作迅速方便。

布氏硬度(HB):

(一)布氏硬度试验的基本原理

布氏硬度试验是施加一定大小的载荷P,将直径为D的钢球压入被测金属表面(如图1-1所示)保持一定时间,然后卸除载荷,根据钢球在金属表面上所压出的凹痕面积F凹求出平均应力值,以此作为硬度值的计量指标,并用符号HB表示。

其计算公式如下:

HBP/F凹

根据压痕面积和球面之比等于压痕深度h和钢球直径之比的几何关系,可知压痕部分的球面积为:

F凹Dh

(1-2)

由于测量压痕直径d要比测定压痕深度h容易,故可将(1-2)式中h改换为d来表示,这可根据图1-1(b)中Oab的关系求出:

12Dh12(D2)(2d2)2

h(DDd)2

2(1-3)

将式(1-2)和(1-3)代入式(1-1)即得:

HBPDh2PD(DDd)22

(1-4)

式中只有d是变数,故只需测出压痕直径d,根据已知D和P值就可计算出HB值。在实际测量时,可由测出之压痕直径d直接查表得到HB值。

(三)布氏硬度试验机的结构和操作

1、HB-3000型布氏硬度试验机的外形结构如图1-2所示。其主要部件及作用如下。

(1)机体与工作台:硬度机有铸铁机体,在机体前台面上安装了丝杠座,其中装有丝杠,丝杠上装立柱和工作台,可上下移动。

(2)杠杆机构:杠杆系统通过电动机可将载荷自动加在试样上。(3)压轴部分:用以保证工作时试样与压头中心对准。

(4)减速器部分:带动曲柄及曲柄连杆,在电机转动及反转时,将载荷加到压轴上或从压轴上卸除。(5)换向开关系统:是控制电机回转方向的装置,使加、卸载荷自动进行。

2、操作程序:

(1)将试样放在工作台上,顺时针转动手轮,使压头压向试样表面直至手轮对下面螺母产生相对运动为止。

(2)按动加载按钮,启动电动机,即开始加载荷。此时因紧压螺钉已拧松,圆盘并不转动,当红色指示灯闪亮时,迅速拧紧紧压螺钉,使圆盘转动。达到所要求的持续时间后,转动即自动停止。

(3)逆时针转动手轮降下工作台,取下试样用读数显微镜测出压痕直径d值,以此值查表即得HB值。洛氏硬度(HR):

(一)洛氏硬度试验的基本原理

洛氏硬度同布氏硬度一样也属于压入硬度法,但它不是测定压痕面积,而是根据压痕深度来确定硬度值指标。

洛氏硬度测定时,需要先后两次施加载荷(预载荷和主载荷),预加载荷的目的是使压头与试样表面接触良好,以保证测量结果准确。0-0位置为未加载荷时的压头位置,此时压入深度为h1,2-2位置为加上主载荷后的位置,此时压入深度为h2,h2包括由加载所引起的弹性变形和塑性变形,此时压头的实际压入深度为h3。洛氏硬度就是以主载荷所引起的残余压入深度(h=h3-h1)来表示。洛氏硬度的试验规范:

洛氏硬度值的计算公式如下: HRK(h3h1)0.002

(三)洛氏硬度试验机的结构和操作

1、H-100型杠杆式洛氏硬度试验机的结构如图1-4所示,其主要部分及作用如下:

(1)机体及工作台:试验机有坚固的铸铁机体,在机体前面安装有不同形状的工作台,通过手轮的转动,借助螺杆的上下移动而使工作台上升或下降。

(2)加载机构:由加载杠杆(横杆)及挂重架(纵杆)等组成,通过杠杆系统将载荷传至压头而压入试样,借扇形齿轮的转动可完成加载和卸载任务。

(3)千分表指示盘:通过刻度盘指示各种不同的硬度值(如图1-5所示)。

2、操作规程如下:

(1)根据试样预期硬度按表1-2确定压头和载荷,并装入试验机。

(2)将符合要求的试样放置在试样台上,顺时针转动手轮,使试样与压头缓慢接触,直至表盘小指针指到“0”为止,此时即已预加载荷10kgf。然后将表盘大指针调整至零点(HRA、HRC零点为0,HRB零点为30)。此时压头位置即为图1-3中的1-1位置。

(3)按动按钮,平稳地加上主载荷。当表盘中大指针反向旋转若干格并停止时,持续8~4秒(此时压头位置为图1-3中的2-2位置),再顺时针旋转摇柄,直至自锁为止,即卸除主载荷。此时大指针退回若干格,这说明弹性变形得到恢复,指针所指位置反映了压痕的实际深度(此时压头位置相当于图1-3中的3-3位置)。由表盘上可直接读出洛氏硬度值,HRA、HRC读外圈黑刻度,HRB读内圈红刻度。

(4)逆时针旋转手轮,取出试样,测试完毕。

五、实验方法与步骤

1、分成两大组,分别进行布氏和洛氏硬度试验,并相互轮换。

2、在进行试验操作前必须事先阅读并弄清布氏和洛低硬度试验机的结构及注意事项。

3、按照规定的操作顺序测定试样的硬度值(HB和HRC)。

4、注意事项

1)试样两端要平行,表面应平整,若有油污或氧化皮,可用砂纸打磨,以免影响测试。2)圆柱形试样应放在带有“V”型槽的工作台上操作,以防试样滚动。3)加载时应细心操作,以免损坏压头。

4)加预载荷(10kgf)时若发现阻力太大,应停止加载,立即报告,检查原因。5)测完硬度值,卸掉载荷后,必须使压头完全离开试样后再取下试样。

6)金刚钻压头系贵重物件,质硬而脆,使用时要小心谨慎,严禁与试样或其它物件碰撞。

7)应根据硬度试验机使用范围,按规定合理选用不同的载荷和压头,超过使用范围将不能获得准确的硬度值。

实验二 金属相图的观察

一.实验类型

验证性

二.实验目的

了解金属相图在显微镜下的图形

三.实验内容 1.试样制备

要在金相显微镜下对金属的组织进行观察和摄影,必须制备平整、光亮、清洁、无划痕、并用适当的方法显示出真实组织的试样

(1)手工磨样

试样在金相砂纸上由粗到细磨制。磨样时用力均匀,待磨面上旧磨痕消失,新磨痕均匀一致时就更换细一号的砂纸,并且试样转90o再磨。一般磨制到4号(粒度800)砂纸即可。

(2)抛光

本实验采用机械抛光的方法。PG-2金相制样抛光机

在专用的抛光机上进行,抛光织物(如呢料、金丝绒等)固定在抛光盘上,洒以抛光粉悬浮液,试样轻压于旋转的抛光盘上。靠嵌于抛光织物中的抛光粉的磨削作用和滚压作用,得到平整、光亮无划痕的磨面。

(3)化学浸蚀

试样在浸蚀剂作用下,组织中电位低的部分为阳极,电位高的部分为阴极,低电位处于溶解较快而呈现凹陷从而显示出组织特征。碳钢常用3~4%硝酸酒精溶液浸蚀。

2.观察金相显微组织

制好的试样放在显微镜下观察。使用显微镜时,动作轻、速度慢,由低倍到高倍进行观察,结合试样热处理工艺,观察与分析组织。

几何光学综合实验仪的设计 篇7

一、基本思路

本实验仪设计基本思路如下:把光学元件放在特定的介质中(如烟气等),利用激光光源产生高亮度光线,当光线经过光学元件时可以看到清晰的光路,这样可以更直观、形象地演示光的折射、反射以及模拟光学装置,利用实验装置上的测量装置可以测出光学元件的焦距、反射角等,这样可以更准确、便捷地测量光学元件的焦距、折射率.

二、设计方案

本实验仪由发光装置、光路显示装置和测量装置三部分组成.

1.发光装置

所用光源为激光发射器,因为激光能够产生比白炽灯亮度更高,光路更清晰的光线,其可见性强,所以我们能清楚的看见光路走向,便于测量.发射装置由几个激光发射器组成,可调节光线的方向和角度,既可以让几束光线平行也可以使其成一定的角度.激光发射器装在可遥感平台上,即可调节装置高度又可转动装置方向,如图1所示.

2.光路显示装置

从第一装置出来的激光进入第二个装置,即光路显示装置(图2).该装置是一个可以密封而且黑暗的装置,里面可以充入一定的胶体,我们的特殊胶体材料采用烟气.因为烟气比较轻而均匀,浓度适合时能见度大,并且光在烟气中传播时能量损失小,所以运用烟气作为胶体能清晰地看见光线,可以观察到明显的光路现象.事先我们把光学元件固定在此光路显示装置中,当光经过光学元件时光路就能清晰的展现在我们面前.

3.测量装置

实验仪的测量装置如图3所示,在装置壁上安装测量长度的装置,而在此底部安装测量光路角度的另一装置,通过读出光路在此装置中的光线长度和角度,我们就能计算出光学的各种参数了.

三、应用说明

本实验仪器可以更直观、形象地演示光的直线传播、折射、反射以及模拟光学装置,利用实验装置上的测量装置可以测出光学元件的焦距、反射角等,这样可以更准确、便捷地测量光学元件的焦距、折射率.

反射定律的演示如图4所示,该装置由刻度圆盘与一位于圆盘中心的平面镜组成.把平面镜固定在0°-180°直径方向,则面的法线位于90°位置,当激光器发出的光线以一定角度照射到平面镜上的时候,刻度盘会清楚的显示入射光线、出射光线的位置,由刻度盘读出入射光线、出射光线对应的角度,然后它们与90°的差值分别为入射角、反射角的大小,反射定律就可以演示了.将平面镜换成棱镜或其他的透明介质,折射定律、全反射等就可以一目了然,而且角度读取更直观.

利用该装置还可对透镜焦距进行测量,测量原理如图5所示,让平行光垂直入射到凸透镜上,出射光束的会聚点就是凸透镜的焦点,透镜到会聚点的距离即透镜焦距,焦距可通过测距装置的刻度尺直接读出.如果在第一个透镜的后面再加入一透镜,让第一个透镜的像方焦点与第二个透镜的物方焦点重合即可演示望远镜的工作原理.在第一个透镜的后面再加入一凸透镜,适当调节两透镜间距可实现对显微镜的工作原理的演示.实验仪中的光学元件可以根据需要添加、更换以达到对不同几何光学实验的演示.

光学实验教学改革的探索与实践 篇8

关键词:实验教学改革?开放式 综合性设计性?考核方式

中图分类号:G642 文献标识码:A 文章编号:1674-098X(2012)09(c)-0202-02

实验是学生从实践中验证理论及加强动手能力的一个重要过程。光学是以实验为基础的自然科学。光学教学中的实验,不仅能帮助学生理解和掌握光学知识,学习实验操作技能,还具有激发学习光学的兴趣、培养实事求是的科学态度、塑造坚韧不拔的科学品质、增长勇于探究的科学精神和思维能力、学习分析问题解决问题的科学方法、启迪创新意识和创新精神的作用。因此,光学实验是培养创造型人才不可或缺的重要手段,是光学教学的重要组成部分。

1 原有的实验教学模式中存在的问题

我院光信息科学与技术专业由于成立时间不长,在光学实验课程的教学上存在不少问题。主要体现在以下几个方面:原有实验的内容受实验课时的限制,学生只能在有限的时间内熟悉实验设备及掌握一些实验基本操作,实验过程中,学生被动接受老师的建议或指导,通常在学生听老师讲解完实验目的,原理后就不假思索地按实验指导书的步骤,数据一步步照做下去,从来不思考为什么,遇到问题也不能独立思考,独立解决,导致实验只是为了学分而应付了事,起不到锻炼动手能力的目的;原有的综合性设计性实验不管是在实验指导书上,还是在实验的教学过程中,其模式与普通的验证性实验基本一致,起不到锻炼学生综合动手能力的作用;实验考核评价方式存在一定的局限性,学生实验数据往往出现多人雷同的情况,体现不出学生的思考能力和创新能力的情况。

2 光学实验教学的改进措施

2.1 结合光学课程的具体情况,增设开放式的实验项目

开放式实验教学模式是课堂教学的一种有效的补充和延伸,他包含三方面的含义,即时间的开放、内容的开放、实验仪器设备和资源的开放。通过建立开放式实验教学能促进实验教学水平和质量的提高,全面培养学生的实际动手能力和创新精神,提高学生的综合素质。在开放式实验中学生主导了整个实验过程,并始终充当探索者的角色。开放式实验融合了综合性、设计性及探索性实验的优点,有利于增强学生动手动脑的机会,激发独立思考和创新意识。实行开放式实验教学,就能实现从教师为中心向学生为中心的教学观念的转化,从单纯的知识传授向培养学生创新能力的方向转化,从根本上提高实验教学质量。本专业的光学基础与专业课程有《近代光学》,《激光原理》,《光电测量技术》,《光纤通信技术》,《光电子物理基础》等等,各个课程都有相应的光學实验。但是由于实验课时及条件的限制,每一次实验都是学生集中在很短的时间内完成,学生很难很好地消化和吸收,更谈不上独立思考和锻炼自己的动手能力。基于以上原因,我们在现有实验的基础上,创建一批与各专业课内容密切相关的开放式实验项目,由学生根据自己学习的需求自由选择。

根据各门专业课的教学及实验室设备的具体情况,我们初步开设了10个开放式实验,其内容包括:1.F-P照相法测量激光的谱线宽度;2.光信号外调制实验;3.全光纤多功能实验仪用于光纤长度测量实验;4.保密音频传输系统(光纤电话);5.全光纤音频信号传输实验;6.光的波分复用实验;7.用双棱镜测定光波长;8.牛顿环实验;9.薄透镜焦距的测定;10.衍射光栅测定光波长。

这些实验既包含对现有实验课程的补充的内容,如用双棱镜测光波长,薄透镜焦距的测定,衍射光栅测定光波长等实验是针对《近代光学实验》课程的,光的波分复用实验是针对《光纤通信技术》课程的;也包含了一些对光学新技术了解的内容,如几个全光纤通信及测量的实验。其所使用的实验设备基本涵盖了实验室的所有现有设备。

开放式实验开放的具体方法是通过建立开放式实验网页与学生进行互动交流,网页上提供的内容包括:开放式实验内容简介,实验室设备及光学元器件的详细资料,开放式实验指导书的下载,实验时间预约等。学生不但能通过网络预约做开放式实验,还可以在老师的指导及实验设备允许的情况下自主选择并设计其所感兴趣的其他光学实验,这样不但锻炼了学生的动手能力,还提高了他们的独立思考和创新的能力。

2.2 修改现有的综合性和设计性实验教材,改进光学设计性综合性实验考核方式

实验教学是提高教学质量、实现培养目标的重要途径。综合性实验和设计性实验是按照课程体系要求,将几个相关实验按一定方式进行组合,能有效促进学生对基本知识的理解,提高分析问题、解决问题能力,培养学生的创新意识,提高学生实际操作技能。《激光原理与器件实验》《光电测量技术实验》《近代光学实验》《光纤通信原理与技术实验》等实验课程中包含着一些综合性和设计性实验,但原有的实验教材编写存在着很多不足,如实验内容步骤过于详细,考核方式不合理,导致学生在做综合性和设计性实验时等同于在做一个大的验证性实验,达不到综合性实验和设计性实验所应起的锻炼学生综合实践能力的目的。因此,我们对现有的综合性和设计性实验教材进行修改和完善,减少了实验指导书中的实验步骤的内容,加强了实验原理的简介及详细的实验设备的功能介绍等方面内容。

综合性设计性实验的考核成绩由三部分组成:预习报告,动手能力,实验报告。占最终实验成绩的比重为3:4:3。

2.2.1 预习报告(30%)

要求学生根据实验指导书中的原理及设备的简介自己查资料设计实验的方案(可以有多个可行方案),并将方案的原理光路及可行性分析报告作为预习报告的内容。避免了以前预习报告只是单纯地抄实验指导书的现象,达到锻炼学生收集整理资料及设计方案能力的目的。

2.2.2 动手能力(40%)

在综合实验开设前,要求实验老师进行周密设计和预实验,以达到综合实验的规范操作要求,保证实验结果的严谨和科学。由于光学实验的特殊性,每次做实验的人数不多(4~6人),实验中的动手能力成为考核的重点。老师引导学生对预习报告所设计的方案进行实施,在实施的过程中主要考核学生的基本操作、基本技能、基本实验方法的掌握情况以及修正并执行实验方案的能力。

2.2.3 实验报告(30%)

实验报告主要考核学生实验报告中的数据整理、分析、实验结果的正确性,以及思考能力和创新能力等情况。同时要对整个实验过程进行总结。

3 教学改革的反馈效果

通过增设开放式实验及对现有综合性设计性实验的改革,使学生的实践能力得到了提高。由于开放式及综合实验一改过去的验证性实验的执行方式,给很多学生留下了很深的记忆,做实验不仅是学习,更是能力培养。各个实验部分紧密相连,并直接影响到最后的实验结果,学生始终抱着好奇心认真学习相关的光学理论知识,在老师的指导下确定实验的基本方案及步骤,确保结果的准确和可靠。

这些实验巩固了学生以前所学的光学理论,使他们对光学课程产生浓厚兴趣,更重要的是增强了学生的基本技能和科研思路的启发。开放式实验为学生提供了很好的锻炼技能的平台,为今后能独立从事科研工作奠定了很好的基础。

4 结语

为学生服务、为教学服务是实行此次光学实验教学改革的出发点和最终目的,对学生来说,相应地增加了学习时间,强化了对学生动手能力、独立思考能力、创新能力的培养,而对教师来说,意味着教学时间的延长、工作量的增大,也给传统的实验室管理带来了许多新问题。在实验教学改革的过程中我们不断总结经验,认真思考,认识到光学实验课程的教学改革是多方面的,也是系统性的,我们将在不断探索、研究的基础上,完善这些想法,保证实验教学改革能持续深入地进行。

参考文献

[1] 张巧芬.光学实验教学改革[J].中国现代教育装备,2008,12.

[2] 张明霞.高等院校光学实验教学模式改革与实践研究[J].天水师范学院学报,2007,27(5).

[3] 任占梅,王德秋.光学实验课程的教学改革与实践[J].赣南师范学院学报,2005,26(3).

[4] 胡章芳,罗元.信息光学实验的改革与实践[J].实验科学与技术,2006,5.

[5] 马世红.研究性物理实验的实践情况[J].物理实验,2004.11.

[6] 沈元华,马秀芳.光学基础实验课程的改革[J].物理实验,2005.4.

上一篇:创业教育心得下一篇:在线摄影大赛