首页 > 精品范文库 > 6号文库
系统设计总结报告
编辑:心旷神怡 识别码:15-34312 6号文库 发布时间: 2022-12-27 11:53:01 来源:网络

第一篇:系统设计总结报告

系统设计总结报告

汤彬 崔龙 陈云程 陈广旭

一、所遇问题及解决方案

问题1:不能正常打开ICCAVR软件。

解决方案:由于用ICCAVR软件要进行破解,需要用到破解软件,因此要想正常运行ICCAVR就要先正确使用其破解软件。

问题2:我们自己写了一个源程序,仅仅有一个主函数,函数体中是空语句。程序如下:

void main(){ ; } 用ICCAVR进行编译,结果出现了错误。

解决方案:原因是未将其添加到工程。将源程序添加到创建的工程中即可。问题3:在ICCAVR中进行编译后,未生成“.cof”文件。

解决方案:原因是未将源程序保存为“.c”格式。只要将其保存为“.c”格式即可。

问题4:向ICCAVR中输入AVR课本上的一些源程序时,发现不能正常编译。

解决方案:因为课本上的程序是针对CV的,而CV与ICCAVR的源程序不兼容。需要将CV中的程序移植到ICCAVR中才能正常编译。问题5:第一次使用delay函数,在编译时总是出现错误。

解决方法:经同学提醒才知道这是老师着重指出的一个问题,我们需要自己编写一个延时函数;在cv中使用延时函数是必须在头文件中指出包含此函数所

在的文件。

问题6:相邻焊点很容易短路。

解决方法:相邻焊点短路是由于焊点过大或形状不规则所致,焊接时应充分利用烙铁使焊锡融成球状,并使焊锡用量尽可能合适。

问题7:焊完后的焊锡表面发钨。

解决方法:经过几次焊接后,我们发现焊锡发钨的主要原因是焊完一点后,我们急于使它冷却,用嘴去吹。发现这个现象之后,我们采用使其自然冷却的方法解决了这个问题。

问题8:使用后发现电烙铁头有被氧化现象。

解决方法:合理的使用松香以及用焊锡保护都可以解决这个问题。问题9:PORTA接LED后,编程PORTA=0x00使LED全亮不成功。

解决方法:仔细学习后发现缺少了PA口工作方式的设定,应加上DDRA=0Xff。

问题10:单个按键程序不工作。

解决方法:仔细分析后我们认为可能出问题的地方有两个,一是按键输入电平的读取有问题,二是按键程序有未知错误。第一个错误我们很快就发现了,是因为我们未设置上拉电阻,这个很容易就解决了;第二个错误我们经过很长时间的仔细检查和多方面调试最终发现是因为调用按键接口程序if(!readkey())应写为if(readkey())。

问题11:八个按键程序调用有问题。

解决方法:在程序调用过程中,反复调用接口函数会出现错误,所以我们将此过程改为一次调用按键程序,并将结果赋值到一个变量中解决了这个问题。

问题12:用实验室为每个实验桌所配备的下载器与电脑的串口、单片机的JTAG接口连接后,下载器的左指示灯不亮,Avrstudio显示找不到串口,无法连接到单片机。

解决:把在其他实验桌上找到的一个新下载器接上后,发现左指示灯正常点亮,Avrstudio不再显示找不到串口,成功连接到电脑。

问题13:我们用ICC创建了一个名为model的工程并写好一个命名为model的用于试验的小程序编译无误,当我们准备使用Avrstudio的在线仿真功能进行试验时,在启动Avrstudio后打开了一个名为model的以.c结尾的文件,但打开后点击Build却得到了很多报错信息,无法下载。找不到这个model的文件。

解决:我们用ICC重新进行编译,仍然显示无错误,但在Avrstudio中打开后点击Build还是得到报错信息。查阅实验讲义后我们知道了应该在Avrstudio中打开以.cof结尾的文件才能去点击Build烧入程序。但我们在model工程所在的文件夹中找不到以.cof结尾的文件又查阅实验讲义后我们才意识到应该把以.c结尾的源文件“add to project”然后再进行编译、连接,才会得到以.cof结尾的文件。我们按照上述方法进行操作后,下载器的右指示灯正常闪亮了一段时间,程序得以成功烧入。

问题14:使用Avrstudio的在线仿真功能时,学生先写了一个关于输出低电平的简单程序,仅包含输出端口的初始化和电平的输出,然后把输出端口与LED连接。但仿真的过程中发现LED未被点亮。

解决:首先,断开单片机端口与LED的连接,把VCC直接逐一接到各LED上,发现的确有几个LED失灵。

但是在将输出端口改到各工作正常的LED上并reset之后,LED仍不能按照预定要求被点亮。

然后,我们又对单片机的I/O端口的操作进行了检查,发现我们对I/O端口的初始化有误,应该从DDRA=0x00改为DDRA=0xFF。修改程序并重新下载后,LED被正常点亮。

问题15:面包板上许多元件引脚需要接地或VCC,接线非常麻烦,且很易出错。

解决方案:在面包板上选择一排孔单独作为地或VCC,焊上插针,并将其引脚焊接起来,接地的引脚用插线直接连接即可。

问题16:两个焊点距离非常近,用导线接比较麻烦且容易出错。

解决方案:直接用焊锡将两点连起来即可,注意焊锡不要过多。

问题17:焊点之间需要用导线连接,但是把导线与焊点连接起来时容易焊不上,也很容易造成焊点过大,造成短路。

解决方案:将导线插到紧邻焊点的孔中焊上,然后用焊锡将两焊点连接起来。

问题18:有一排并列的焊点需要相接,用导线连接的话,容易导致相邻焊点接触,造成短路。

解决方案:尽量是需要连起来的点靠近一点,用焊锡直接相连。如果不允许靠的很近,就用焊锡焊成一导线连接。

问题19:在forward等四个运动函数中,我们原本通过中断,在相应执行时间到达后直接对PORT端口进行一次性电平操作,同时执行对全局变量v的修改以控制下一个中断到达的时间;然后到相应下一个执行时间后直接对PORT端口进行一次性电平操作而不考虑前一个操作,同时执行另一个对全局变量v的修改以控制再下一个中断到达的时间。另外还有一个小程序模块用来通过LED的亮与灭来标示v的当前数值(v在地图中只有两个可能值)但烧入程序后发现单个运动函数LED的亮与灭不符合原定设计。

解决:首先,我们直接用VCC与LED相连来测试LED是否有故障。LED经测无误后,我们使用Avrstudio对这一实验程序进行在线仿真,通过对该程序的单步运行,发现每次执行完一个运动函数后,程序未等到下一个中断到达的时间,随后就直接去执行下一个运动函数,从而直接在此改变了全局变量v的值,因而LED的亮与灭不可能符合原定的设计。于是我们开始设计这个关键的控制语句,最后想出了一个低技术但十分有效的办法——使用while(cx)(//x代表某个数字以区分各控制变量)。用一个cx来控制各个运动函数的执行时间,一个c3,每个运动函数先把总行驶函数对应的cx调为0,之后执行自身,到点执行完毕后会自动把该运动函数对应的cx调为0来停止执行并把总行驶函数对应的cx调为1。之后总行驶函数执行下一个运动函数。目前用暂用c来代表cx.完成的运动函数如下:void forward(int i){int c=1;v=(wlongth[i] /velocity);(wlongth[i]是路程信息)PORTB=0xF9;while(c){if(turningnode){turningnode=0;

PORTB=0x00;c=0;};}

c3=1;} 再次下载该程序,发现单个运动函数LED的亮与灭已经符合原定设计,可见使用while(cx)方法成功,该问题解决。

问题20:命令小车按预置地图{3,5,3,5,3,6,3}行驶的过程中,发现右转运动函数void turnright(int i)

{int c=1;

PORTB=0xF5;

v=wangle[i];while(c){ if(turningnode){turningnode=0;

PORTB=0x00;c=0;};} c3=1;} 不能运行。该运动函数被执行期间没有LED点亮。

解决:我们先是怀疑右转运动函数本身有误,但该程序经反复检查证明无误。随后对整个程序进行检查,发现各个行进标识符与各个运动函数的对应关系错位了:本应是3,4,5,6依次对应前后左右运动函数,实际写为4,5,6,7依次对应前后左右运动函数,而预置地图中根本没有7!自然该行进标识符对应的运动函数被执行期间也就不会有LED点亮。当然其他运动函数执行期间也有错误,只是我们数错了LED数,没有发现。于是我们把对应关系改回到3,4,5,6依次对应前后左右运动函数,LED的亮与灭立即符合地图设计。

问题21:在对按键输入部分调试的过程中,因为使用了基于中断的状态机法消抖,有10ms的延时,无法直接对后面的输入模块进行调试。

解决:经老师点拨指导,用设置断点的方法(后来这一方法多次发挥了关键作用)成功跳过这一大关,我们开始对后面的输入模块进行调试。问题22:在下载整个完整的程序之后,我们先直接按下enter键,然后是run键,以命令小车按预置地图行驶。(试验阶段先用LED代替)但使用Avrstudio进行在线仿真发现,单步执行函数void mapinput(){ int j;

int m=0;while(d)……

该程序几乎被直接跳过,while(d)以后的程序根本不执行。

解决:根据while(d)以后的程序不执行,不难想到是d的问题。果然,在全局变量d的定义处: int v=12;/*计量行进*/

int d=0;/*用于全局使能mapinput */ int c2=1;

int c3=1;

/*用于全局使能shift长度确定 */ int c4=1;显然d的初值有误,改为int d=1;再重新下载,仿真,mapinput()函数得以正常执行。

问题23:使用按键输入地图的过程中,连续出现最后按下run键后小车不动的现象,有几次又按了几下run键后小车突然走了,不过所行驶的地图不是“输入的地图。

解决:我们反复对程序进行徒劳的检查后突然是按键工作不稳定的缘故。写入一个直接读按键然后点亮LED的程序后发现果然是按键工作不稳定。于是又加了一个读到按键然后响一下喇叭的程序后,我们在喇叭不响的情况下就再按一下,问题解决。

二、团队管理的心得体会

关于团队管理,我们最初阶段简直是一窍不通,认为只要大家都肯下功夫,都努力做,就可以了。所以一开始时我们整天凑在一起,商量怎么做,然后大家一起做,其实等大家商量好后,就成了一个人在那做,但是其他人在旁边看,这样极大的降低了团队的工作效率,而且也会降低其他同学的兴趣和积极性。大家就这样一起做了一个月后发现我们其实完成的任务很有限,而且原来有很大积极性做项目的同学也没有了兴趣和积极性。

我们意识到这个问题后,仔细的分析了出现这个问题的原因,我们认为原因是团队的分工不够明确。之后我们项目系统分成了几个模块,每个同学负责其中的一个或多个模块,提前完成自己任务的同学还可以去帮助其他同学。这样分工之后我们的工作效率有了明显的提升,而且因为有了自己明确的任务,组员的积极性也得到了极大的提高。

还有在团队一起工作讨论时,一定要保持轻松自由的气氛,这样大家的观点可以毫无保留的说出来,轻松幽默的讨论也会激发我们相处很多特别好的想法。

我们的团队工作到现在已经基本结束了,我们为此付出了很多,但也有了很大的收获,知道了团队应如何提高效率,如何讨论效果更好等等,更重要的是在这一段时间中,我们一起努力,一起面对困难,学会了团队合作,更获得了最珍贵的友谊。

三、课程设计的心得体会

总的说来,我们的课程设计可以总结为一句话:“山重水复疑无路,柳暗花明又一村。”其过程真可谓一波三折。

从开课选题热情高涨跃跃欲试,到中期困难重重迷茫无助,再到后期迎难而上锲而不舍,最后功夫不有心人最终成功,真是经历的太多太多,但是却从中也收获了很多。

有一段时间,我们遇到了前所未有的困难,几乎没有了继续下去的勇气,但是通过团队的努力,相互帮助,密切配合,终于挺过了难关。我们体会到只有艰苦奋斗,团结一致才能克服困难。这段时间,确实很辛苦,其间不知挥洒了多少汗水,但却很充实。

我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。只有一个团队的成员紧密地团结在一起,才能更快更好的完成任务。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,书本知识固然重要,但我们更要学会将书本知识应用到实际的工作中。实践中才会发现错误,也才能改进,才能达到学习的最终目的。

另外,我们也体会到了创新与可行性要并重。有时一个看似非常有创新非常好的创意,但却并不一定能应用到实践中。一切都要以实际情况量力而行。

任何时候都要相信自己,都要全力以赴去做,不要轻言放弃。

四、成员贡献排序

汤彬:30%;崔龙:25%; 陈云程:25%; 陈广旭:20%;

五、课程改革的建议

这门课程采取“course project”的形式,培养了同学们的创新意识、团队意识以及动手能力。另外也极大地激发了同学们的学习热情,培养了对电子设计的兴趣。

在这里提几点建议:

1、开课比较突然,之前没有任何相应的单片机基础,直接在规定的时间内完成一件作品有点挑战。建议先开一些有关单片机理论的课程,下学期开实验课做东西

2、项目报告等文档过于繁多,建议精简一些。

3、实验课的报告过于频繁,一定程度上牵扯了做课程设计的精力。

4、尽早发实验电路板

5、尽量多一些实验指导

第二篇:系统设计总结报告

系统设计总结报告

一、团队分工合作及管理心得体会

单片机课程是分小组进行的,这要求每个组员都要有明确的分工和积极的团队精神。我们小组由三个人组成,在单片机课程的学习和开发过程中我们深有体会。

1、小组成员分工要明确细致,这有利于提高学习效率,加快产品开发的进度。相反,假若没有明确分工,将课程设计、软件编译、元件购买、硬件焊接、演示ppt制作和论文书写等混杂在一起,不但做不出产品,反而会无形中增加课程的难度。同时各小组成员的分工也不能是完全独立的,要相互联系,应该坚决杜绝写软件只管软件,组装硬件的只管硬件的做法,因为最终的产品是一个有机结合体,而不是一个软硬件拼凑体,只有大家分工加合作,才能取得最终的成功。

2、在产品的开发过程中,我们切实体会到一个团队一定要有一个敢于承担义务、勇于承担责任的领导者。组长的乐观精神、坚韧不拔的毅力和明确清晰的产品开发思路,不但可以在遇到困难时鼓励督促大家继续工作,同时能够保障整个产品的开发高效高质量的进行。

3、每个组员都要有高度的责任感。产品的开发不是某一个人或某几个人的事情,而是大家共同的任务。特别是在产品开发遇到困难时,每个人都应该大胆承担责任,互相鼓励,三个人协同谈合作共同想办法解决问题,而不是互相推诿,互相抱怨。

二、项目进行过程中所遇到的困难和解决办法

在整个单片机学期项目中,我们遇到了大量的问题。在困难和失败面前,我们曾考虑过放弃或者更改项目方案,但是我们坚信只要努力就一定会成功。最后,在周围同学和师兄的帮助下,我们完成了方案。项目进行过程中遇到的问题如下:

1、无法更改单片机熔丝位。我们所做的项目对时钟有严格的要求,根据事先设计好的软件程序,系统时钟应为8MHz。然而单片机默认的时钟并不是8MHz。我们起初想使用AVRstudio更改单片机熔丝位,但不知什么原因,始终无法使用JTAG和单片机相连。我们曾连续两天被这个问题困扰,无法找到解决问题的最佳办法。后来,我们得知周围同学有一款很好使用的软件,可以使用ISP来更改熔丝位。于是,在这位热心同学的帮助下,我们很快解决了这个问题。

2、电源问题。我们的学期项目主要使用的硬件有ATmega16,DS18B20和NRF24L01。其中ATmega16和DS18B20的工作电压大约在5V左右,而NRF24L01得工作电压却为3.3V。如何进行电压转换,如何将它们集成在一起成为摆在我们面前的问题。经过老师和周围同学的帮助,我们决定使用AS1117芯片,成功解决了这个问题。

3、无法进行信号传输。我们学期项目的一大亮点就是无线传输,主要使用的芯片是NRF24L01。NRF24L01无线传输芯片是目前广泛使用的无线传输芯片,具有低速传入,高速发射、接收的特性,易于与各种单片机组合。虽然我们事先阅读了大量有关该芯片的使用说明及应用实例,但将程序写入单片机后仍然无法传输信号。经过连续几昼夜的努力,没有任何效果。我们得知有一位研究生师兄曾使用过该芯片。于是我们主动请教了这位师兄,师兄非常热心的给我们分析问题产生的原因,并给我们提供了解决问题的方案,同时为我们的项目提出了很多建议。正是由于师兄的帮助,我们才实现了信号的传输。

4、无法正常测温。我们起初的测温程序主要参考实验讲义上的,但是一开始没有成功。我们简单地认为问题出在软件上经过大量的修改,任然失败。后来,我们仔细阅读了DS18B20的使用说明书,发现问题很可能出在时钟上。后来经过更改熔丝位成功解决了这个问题。

三、课程设计的心得体会

在对单片机课程的学习和产品的开发过程中,我们深刻体会到了理论和实践的巨大差别,同时也明白了理论联系实际的重要性。

在课程设计的选择过程中,一定要立足于现有的实验开发环境和各组员的能力,选择有把握实现或有实现前景的项目,切忌眼高手低。很多想法和创意具有非常好的创新性,但其中很多都无法实现,甚至可行性都不存在,所以在课程设计题目的选择上要理性。

还有一点令我们印象深刻,那就是跟硬件配套的技术资料。项目刚开始时,我们始终找不到头目,任凭大家怎样改进方法都无济于事。但回过头来研究技术资料时,我们发现,很多做法纯属自己的想法,根本不符合硬件的要求。重新按照技术资料的理论和规则,很多问题都迎刃而解。

四、课程改革的建议

单片机不同于我们以往的课程,不仅仅对理论要求高,对动手能力也有很高的要求,这门课重在锻炼我们的创新能力和团队合作精神。因此,我们认为该课应在以下几方面做出改革:

1、实验课时间的安排和实验室硬件的改善。对于一个产品的开发,每周两节课的试验时间实在太短,至少要加长到每周四节,同时延长实验室的开放时间。再有实验室的硬件明显需要更新换代,特别是针对单片机升级速度快,实验室有必要随之更新实验设备。

2、理论课授课时需要加强课本电子器件和实物展示的结合,着重加强元器件的实物讲解。

3、应该加强物理学院实验室和南校区工程训练中心课程合作,充分利用双方的优势和资源。

4、尽可能加强经费支持,完全有学生出资做产品的做法因改为学院和学生共同分担产品的开发经费。

五、项目成员贡献

在整个单片机学期项目中,我们曾经遇到了大量的问题,有时需要耗费几昼夜的时间才能解决。但是集体的力量是强大的,在困难面前,我们三个人统一思想,明确目标,最终解决了问题,完成了项目。李林洋:方案设计 硬件设计 电路焊接 程序编写 刘晓斐:程序编写 电路焊接 程序调试 论文

刘树聪:硬件设计 硬件购买 电路焊接 网页制作、论文及资料整理等 各个成员都竭尽全力,密切配合,实现了既定目标。

第三篇:嵌入式系统设计基础总结报告

嵌入式系统设计基础

嵌入式系统设计基础

结题报告

生1: 学

生2: 学

生3: 组

长: 组长电话: 指导老师: 完成时间:

嵌入式系统设计基础

目录

目录....................................................................2 摘 要...................................................................3

一、课题概述...........................................................4

二、课题实施方案.......................................................4

2.1 方案说明........................................................4

2.1.1 LCD图像显示模块设计方案..................................4 2.1.2 触摸屏模块设计方案........................................5 2.1.3 音乐播放模块设计方案......................................5 2.1.4 键盘模块设计方案..........................................6 2.2 工程规范........................................................6

三、课题实施过程详述...................................................6

四、系统测试方法.......................................................8

五、结果分析...........................................................8

六、总结................................................................9 参考文献................................................................9 附录....................................................................9

嵌入式系统设计基础

摘 要

随着智能手机和平板电脑等便携式设备的兴起,ARM已经成为全球领先的半导体知识产权提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。ARM技术具有性能高、成本低和能耗省的特点。本文旨在初步接触嵌入式ARM技术。我们使用了天嵌TQ2440开发板以及ADS1.2来进行相关实验,主要制作了一个带背景音乐、可以使用触摸屏和键盘进行前后照片切换的数码相框。通过这次实验,我们对ARM技术有了一个初步的认识和了解,同时也掌握了一些编程和调试技术。

关键词:嵌入式,LCD图像显示,触摸屏

Abstract With the development of the smartphone and tablet computer, ARM has already become a leading semiconductor intellectual property provider in global market.More than 95% of the smartphone and tablet computer use the ARM framework.ARM has the advantages in performance, cost and efficiency.This paper aim at having a rough contact with embedded ARM and we use TQ2440 and ADS1.2 to conduct relevant experiments.Generally, we have made a digital album which can be controlled by touch panel.Through this experiment, we have grown a general acknowledge of ARM technology and master some coding and debugging technology.Keywords:embedded system, LCD display, touchpanel 3

嵌入式系统设计基础

一、课题概述

本文展示了一个使用ARM技术制作而成的带有背景音乐并且可以通过触摸屏和键盘控制的数码相框。数码相框在当今市面上也有销售,其功能主要是放映照片,绝大部分能够通过无线或蓝牙与移动设备进行连接,以达到实时放映的效果。我们所制作的数码相框总体而言功能并不是很强大,但也符合数码相框的基本原理并且实现了基本功能。本课题的核心问题是如何实现触摸屏精确地点击、图像切换显示还有音乐播放功能。

二、课题实施方案

本课题的基本设计方案分为四个模块,LCD图像显示模块、触摸屏模块、音乐播放模块以及键盘模块。整体的设计流程为首先完成在TQ2440开发板液晶显示屏上显示出六张自定义图像;然后实现按键控制图像的切换;再加入对触摸屏的操作,使得能够使用触摸屏切换图像;最后加上PWM蜂鸣器播放音乐的功能。

2.1 方案说明

2.1.1 LCD图像显示模块设计方案

为了实现带有背景音乐并且能够使用触摸屏控制的数码相框,我们首先要能够在开发板的显示屏上显示用户自定义的照片。由于我们所使用的开发板配备的是4.3寸的显示屏,所以图片尺寸要设定为480*272才能完美适应屏幕大小。在程序代码中,显示图片的功能由Paing_Bmp定义,具体为Paint_Bmp(0, 0, 480, 272, TQ_LOGO),其中,480、272对应的是要显示的照片的尺寸,因为我们用的是4.3寸屏,所以设定为480、272;而TQ_LOGO是图片的名称,名称由用户自己定义,这里的TQ_LOGO对应的是开发板开机显示的第一张LOGO照片。照片的显示本质上是对屏幕上每一个像素点赋值的过程,不断赋值的一个过程其实就是实现了对LCD的每个像素点进行逐行扫描写入不同像素点对应图片的不同位置的颜色值的过程。

图 1.像素扫描原理

因此,只要将图片的每一个像素点的值写入程序,就能够实现照片显示的功能。这里我们使用了天嵌科技光盘附带的bmp2h程序,将一个BMP图片文件转换为带有每行像素值的C文件,然后将C文件中的代码复制到LCD显示程序代码下,即可实现照片显示功能。

另外,由于480*272照片文件容量较大,缺省的内存设置无法满足显示6张照片的功能,会导致显示花屏。针对这个问题,我们是在nand.c文件中修改RdNF2SDRAM()函数中的U32 size = 0x100000,我们改成U32 size = 0x800000,这样就满足了照片显示的内存需求。

嵌入式系统设计基础

2.1.2 触摸屏模块设计方案

四线电阻式触摸屏硬件工作原理按照工作原理和传输信息的介质不同,触摸屏分为电阻式、电容感应式、红外线式以及表面声波式。由于电阻式触摸屏具有工作面与外界完全隔离,受环境影响较小,具有不怕灰尘和水汽、稳定性高、不漂移等优点,特别适合工业现场使用。因此我们选择了四线电阻式触摸屏。

我们使用触摸屏进行相册的前进和后退,具体来说,就是触摸屏幕上半部分,就跳转到前一张照片;反之,触摸下半部分,就跳转到下一张照片。实现该功能的关键在于设置一个标志位来判断当前放映的是6张照片中的哪一张,当xdata>500时,判断为下半部分;xdata<500时,判断为上半部分,然后一旦触摸屏幕,在判断触摸的是哪一个部分后就会进行加一或减一,以此循环。具体实现就是在LCD代码的while(1)中,加入一段判断选择程序,其中xdata对应的是屏幕的竖轴,ydata对应横轴。

另外,由于触控比较灵敏,会出现轻轻按一下却切换了好几张照片的情况,为了解决这个问题,就需要加入一段中断以及判断按下和松开状态。

图 2.状态转换图

2.1.3 音乐播放模块设计方案

S3C2440A 有五个十六位计时器。计时器 0, 1, 2, 和3有 Pulse Width Modulation(PWM)功能.计时器4 只有一个内部计时器,没有外部输出管脚。定时器0 有一个死区发生器,这可以给大电流设备使用。

定时器0和1共用一个8位预分频器,而定时器2、3和4共用其他一个8位预分频器。每个定时器有一个时钟分频器,可以生成5种不同的信号(1 / 2,1 / 4,1/ 8,1 / 16,和TCLK)。每个定时器模块,接收从其自己的时钟分频器发出的信号,收到相应的8位预分频器的时钟的时钟信号的时候。8位预分频器是可编程的,并且可以根据存储在TCFG0和TCFG1寄存器中的装载值细分(确定)像素时钟PCLK。

当计时器时使能的时候,该计时器的计数缓冲寄存器(TCNTBn)初始化,同时装载初始值到向下计数器当中。计时器的比较缓冲寄存器(TCMPBn)初始化的时候,自动装载一个初始值,用来和向下计数器的值进行比较。这种双重缓冲寄存器的机构,TCNTBn和TCMPBn,使计时器可以在PWM频率和占空比改变的时候保持稳定的PWM输出。

每一个定时器都有自己的有机器时钟驱动的十六位向下计数器。当向下计数器到达零的时候,定时器中断请求产生并通知CPU,定时器操作已经完成。当定时器向下计数器达 5

嵌入式系统设计基础

零的时候,相应的TCNTBn将会自动为下一次操作装载相应的计数值。然而,当计时器被停止的时候,例如,当定时器控制寄存器TCONn的使能位被清零的时候,TCNBn的值就不会被重新装载进计数器。TCMPBn的值是用于控制脉宽调制(PWM)的。定时器控制当向下计数器的值等于compare的值时,输出电平逻辑改变。因此,compare寄存器的值决定了PWM的占空比。

我们要调整PWM 的占空比进行电机控制或者电源控制的时候,只需要在程序中不断修改rTCNTB0 的值就可以了;而如果我们要改变PWM 的频率,我们只要通过不断的修改rTCNTB0 的值就可以了(当然也可以通过修改rTCNTB0 =(PCLK>>7)/freq 中的freq 的值来间接实现修改rTCNTB0 的值)。

2.1.4 键盘模块设计方案

我们知道有时触摸屏会不太好用,比如手湿了或者戴手套的时候,这时有了按键功能,就能起到很好的替换效果。我们主要用按键功能实现照片的前后切换,其原理和之前触摸屏切换类似,这里不多撰述。

2.2 工程规范

在本次课题实施中我们就TQ2440开发板实际开发操作方面总结出规范如下:(1)不要着急写代码,首先要将设计思路、功能模块等规划完成,然后才能进行下一步的工作。这样做有助于实际操作过程中的条理性,并且可以使项目处于可控、可实现的状态。

(2)在编写代码的时候一定要添加上相应的注释,增加代码的可读性,方便自己以后的修改和别人的理解。

(3)硬件上,接线时一定要仔细。注意串口线连接的位置,因为这涉及到烧录程序时端口的选择。

(4)从直观上看问题。每次修改程序之后先录入开发板,从显示屏实际显示效果上看是否实现功能而不是纠结于程序是否修改正确。

三、课题实施过程详述

1、实现六张图像的键盘控制切换;

在keyscan.c的static void __irq Key_ISR(void)中加入以下代码:

if(key == 0xff){flag3=0;Uart_Printf(“Interrupt occur...Key is released!n”);} else{ flag3++;if(flag3 == 8)flag3 = 2;if(flag3 == 1){

if(key == 2 && flag4<=6)

{flag4++;if(flag4==7)flag4=1;}

嵌入式系统设计基础

else if(key == 1 && flag4<=6){flag4--;if(flag4==-1)flag4=6;} else if(key == 3){flag5=1;Main();}}

Uart_Printf(“Interrupt occur...K%d is pressed!n”, key);ExitCritical(&r);}

switch(flag4){

case 1:Paint_Bmp(0, 0, 480, 272, tu1_320240);break;

case 2:Paint_Bmp(0, 0, 480, 272, tu2_320240);break;

case 3:Paint_Bmp(0, 0, 480, 272, tu3_320240);break;

case 4:Paint_Bmp(0, 0, 480, 272, tu4_320240);break;

case 5:Paint_Bmp(0, 0, 480, 272, tu5_320240);break;

case 6:Paint_Bmp(0, 0, 480, 272, tu6_320240);break;

}

2、实现触摸屏控制图片切换功能;

(1)在while(1)中来实现:通过使用对触摸屏进行触摸操作时返回的xdata 和ydata 的数值对我们要显示的图片进行控制选择,如下:

while(1)//to check Pen-up state { if(rSUBSRCPND &(BIT_SUB_TC))//check if ADC is finished with interrupt bit {

flag = 0;break;//if Stylus is up(1)state} flag++;if(flag == 8)

flag = 2;if(flag == 1){

if(xdata>500 && flag1<=6)

{flag1++;if(flag1==7)flag1=1;}

else if(xdata<500 && flag1<=6)

{flag1--;if(flag1==-1)flag1=6;}

else

flag1=0;

switch(flag1){

case 1:Paint_Bmp(0, 0, 480, 272, tu1_320240);break;

case 2:Paint_Bmp(0, 0, 480, 272, tu2_320240);break;

case 3:Paint_Bmp(0, 0, 480, 272, tu3_320240);break;

case 4:Paint_Bmp(0, 0, 480, 272, tu4_320240);break;

case 5:Paint_Bmp(0, 0, 480, 272, tu5_320240);break;

case 6:Paint_Bmp(0, 0, 480, 272, tu6_320240);break;

}} }

(2)编译修改好的程序生成所需要的bin文件,录入开发板并观测图像显示。

3、PWM蜂鸣器音乐播放功能。

这部分功能就是在原先功能基础上加入了蜂鸣器的播放功能。

嵌入式系统设计基础

四、系统测试方法

本文所使用的硬件环境为天嵌TQ2440,是由广州天嵌计算机科技有限公司所制造。软件环境为WINDOWS 10,带有2.40 GHz Core™ i5 处理器以及4GB RAM。编译环境为ARM Developer Suite(ADS)1.2版。

五、结果分析

由于无法体现触控功能和音乐播放功能,这里只展示了照片显示功能。数码相框显示的照片如下,从图片中可以看到照片显示功能十分完好:

嵌入式系统设计基础

六、总结

本文展现了我们制作的数码相框,虽然总的来讲功能比较简陋,但也是我们的一片心血。通过这次实验,我们对于ARM嵌入式开发有了一个初步的认识,也熟悉了整个开发过程。最为重要的是,这次的实验为我们未来的学习与工作打下了一个良好的基础,我们不仅体验了当今最为流行的嵌入式技术,更是懂得了嵌入式开发的思想核心。在这里,我们要感谢负责嵌入式实验相关工作的王建敏老师,以及教授嵌入式课程的韩军老师、薛雷老师以及陆小峰老师,他们为这门课付出了自己的心血,传授给我们无价的知识。总的来说,这次实验难度并不大,但学到的东西并不少,相信未来我们也许也将走上嵌入式开发的道路,为嵌入式领域贡献自己的一份力量。

参考文献

[1] 裸奔三部曲.广州天嵌计算机科技有限公司.2012:1-59 [2] TQ2440开发板使用手册.广州天嵌计算机科技有限公司.2012:271-298 附录

(1)触摸屏ADC 中断初始化的程序段

rADCDLY=50000;

//Normal conversion mode delay about(1/3.6864M)*50000=13.56ms rADCCON=(1<<14)+(ADCPRS<<6);//ADCPRS En, ADCPRS Value Uart_Printf(“nTouch Screen testn”);rADCTSC=0xd3;//Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En pISR_ADC =(int)AdcTsAuto;rINTMSK=~BIT_ADC;//ADC Touch Screen Mask bit clear rINTSUBMSK=~(BIT_SUB_TC);(2)触摸屏中断程序断

void __irq AdcTsAuto(void){ U32 saveAdcdly;if(rADCDAT0&0x8000){ //Uart_Printf(“nStylus Up!n”);rADCTSC&=0xff;// Set stylus down interrupt bit

嵌入式系统设计基础

} //else //Uart_Printf(“nStylus Down!n”);rADCTSC=(1<<3)|(1<<2);//Pull-up disable, Seq.X,Y postion measure.saveAdcdly=rADCDLY;rADCDLY=40000;

//Normal conversion mode delay about(1/50M)*40000=0.8ms rADCCON|=0x1;

//start ADC while(rADCCON & 0x1);

//check if Enable_start is low while(!(rADCCON & 0x8000));

//check if EC(End of Conversion)flag is high, This line is necessary!while(!(rSRCPND &(BIT_ADC)));//check if ADC is finished with interrupt bit xdata=(rADCDAT0&0x3ff);ydata=(rADCDAT1&0x3ff);//check Stylus Up Interrupt.rSUBSRCPND|=BIT_SUB_TC;ClearPending(BIT_ADC);rINTSUBMSK=~(BIT_SUB_TC);rINTMSK=~(BIT_ADC);rADCTSC =0xd3;

//Waiting for interrupt rADCTSC=rADCTSC|(1<<8);

// Detect stylus up interrupt signal.while(1)

//to check Pen-up state { if(rSUBSRCPND &(BIT_SUB_TC))//check if ADC is finished with interrupt bit { //Uart_Printf(“Stylus Up Interrupt~!n”);break;//if Stylus is up(1)state } } Uart_Printf(“count=%03d XP=%04d, YP=%04dn”, count++, xdata, ydata);//X-position Conversion data rADCDLY=saveAdcdly;rADCTSC=rADCTSC&~(1<<8);// Detect stylus Down interrupt signal.rSUBSRCPND|=BIT_SUB_TC;rINTSUBMSK=~(BIT_SUB_TC);// Unmask sub interrupt(TC)ClearPending(BIT_ADC);}(3)PWM蜂鸣器音阶发生功能

while(1){

U16 freq =800;

if((xdata>719 && ydata>800)){ Paint_Bmp(0,0,480,272,tu3_480272);freq=220;Buzzer_Freq_Set(freq);}

嵌入式系统设计基础

else if(xdata>526 && ydata>800){ Paint_Bmp(0,0,480,272,tu2_480272);freq=247;Buzzer_Freq_Set(freq);} else if(xdata>332 && ydata>800){ Paint_Bmp(0,0,480,272,tu1_480272);freq=262;Buzzer_Freq_Set(freq);} else if(xdata>719 && ydata<225){Paint_Bmp(0,0,480,272,tu6_480272);freq=294;Buzzer_Freq_Set(freq);} else if(xdata>526 && ydata<225){Paint_Bmp(0,0,480,272,tu5_480272);freq=330;Buzzer_Freq_Set(freq);} else if(xdata>332 && ydata<225){Paint_Bmp(0,0,480,272,tu4_480272);freq=349;Buzzer_Freq_Set(freq);} else if(xdata>719 && ydata>225&& ydata<800){freq=392;Buzzer_Freq_Set(freq);} else {freq=392;Buzzer_Freq_Set(freq);Buzzer_Stop();} Paint_Bmp1(-40, 70, 480, 272,4, tu1_480272);Paint_Bmp1(-40, 140, 480, 272,4, tu2_480272);Paint_Bmp1(-40, 210, 480, 272,4, tu3_480272);Paint_Bmp1(400, 70, 480, 272,4, tu4_480272);Paint_Bmp1(400, 140, 480, 272,4, tu5_480272);Paint_Bmp1(400, 210, 480, 272,4, tu6_480272);Delay(500);} }

第四篇:系统总结报告

系统总结报告

智能感知机械花——陈仲乾,曹乘榕,黄晨,胡腾

硬件设计问题及解决方案:

在项目经多方面考虑后,确定做仿生智能感知机械花。因为在自然状况下花多在光强较 强时开放最盛,而且其颜色润泽方面多会受外界温湿度影响,所以我们决定让机械花能对环境的光强变化及温湿度状况感知,并作出相应仿生模拟。

花的外形构造原本计划利用市场上类似的饰品——摇摇叶的外形与传动设计,花瓣用亚克力板制作以增强RBGLED产生的效果。但在购买拆卸后发现,摇摇叶内部传动是用太阳能电池产生微弱电流,使一组线圈产生不稳定感应磁场,通过磁场使下端带有磁钢的摆动的叶子偏离平衡位置,以实现不停的摇摆。我们所需要的传动装置是能带动一根中轴上下移动,从而达到花瓣张合的机械装置。最后因为以上一些设想难以实现,所以花瓣改用普通纸质,传动装置用手工制作。

在光强的感知方面:我们一开始决定用光敏电阻输入光强信号,经单片机处理输出一定信号控制外部动力源,从而通过动力的传输系统来控制机械花的开合状态,但动力源取材及动力传输一直是硬件设计方面的问题之一,电磁铁,电动机是我们一开始计划的动力源,但是对于电磁铁做动力源时所需的机械设计较电机复杂,而且功耗较大,所以决定使用转角可控的电机。于是通过对电机了解便购买了微型步进电机(电机尺寸:直径大约1.2CM,高大约1CM),但是经过实际使用演试,发现微型步进电机抽头焊点焊接十分困难,而且在许多参数不清楚情况下需要制作电机驱动板,所以重新购买了一个39mm二相六线步进电机,步进量1.8,电压5V,附带相应驱动板(驱动芯片UNL2003)。动力传输机械装置也经过多次设想和实践,并解决大大小小一系列问题后制作出类似于伞开合控制的动力传输装置。如此,对光控制机械花开合方面的硬件设计基本完成。

在温湿度分别控制花的颜色和明暗态方面:开始温度传感器先打算用PT100(计算公式: PT100的电阻值=实际温度值×0.385+100Ω),湿敏电阻暂用HR202,通过测量与参数查阅得温度传感器PT100电阻变化较小,对电路抗干扰性要求大,如果采用便需要对其进行信号放大,这样会进一步增加成本与电路复杂程度。湿度传感器HR202需用正弦交流电,而单片机输入信号为直流,所以这样还需要将交流信号变为直流信号,势必会大大增加成本及电路的复杂程度。以上两项成本会在10元以上,所以决定更换传感器,最后通过搜索比较决定用数字式温湿传感器DHT11,这样温湿度数据可在一个电路中完成采集输入,大大简化了电路复杂程度,而且成本也降低3元以上,PT100售价为7元,HR202售价为2.5元,DHT11售价为7元左右。对于花的颜色、明暗变化我们首先设计用RGB(三基色)LED灯实现,但是因为RBGLED北方市场上极少,且只能向南方少数市场订购。所以决定先用普通单色LED代替,最后通过测试后发现普通单色LED几乎无法进行颜色合成,所以必须使用RBGLED,经过搜索与查询联系到淘宝卖家,买到了两种型号的RBGLED(5MM圆头RGB四脚全彩,2*5*5RGB四脚全彩)。

软件方面: 关于驱动步进电机正常工作的程序是全部程序的一个主要组成部分,之前写的程序主要有逻辑混乱和时序混乱两大方面的错误,另外还有一些语法上的小错误.关于逻辑方面,我们的思路是利用光敏电阻感知光强强弱并且改变其电阻,经过电路部分将电阻的变化变为电压的变化,使每个特定的光强对应一定的电压值,电压信号经ad转换变为数字信号,表示电压大小。Ad转换由计时器2ms中断触发,根据电压值大小确定步进电机应该处于的状态,然后将该状态与接收信号之前的状态比较,然后确定步进电机的工作方式(转向及步进量的大小),然后用步进电机驱动机械花的开合,使其达到特定的状态.关于时序方面,最主要的一点是步进电机八个节拍顺序的排列,我们查阅了多处参考资料,发现多有出入,后来仔细研究了步进电机硬件的接线与结构,逐步确定了节拍顺序,并且为了保证其正常工作,将驱动部分的程序写在在ad转换中断里,防止在执行过程中被中断。

最后我们还发现一个能导致大问题的小错误,就是在定义步进电机状态时用的是字符型数据,但是最后它们相加减赋给整形数据i,这样导致了i只能为正数而不能为负数,使电机只能向一个方向转,最后在多次仿真后发现此问题并改正。

关于led灯的程序的大框架也已经完成,只是有一些小的逻辑错误和严重的时序上的问题。

小的逻辑问题包括一些无意中造成的死循环等,经过几次检查就已经全部排除。逻辑思路:

利用温湿度传感器测得外界温度与湿度,并且实现通信后由主机读取,由温度高低来驱动led的颜色显示,由湿度高低来确定led灯所亮的盏数。

但是,这个程序依然不能如愿运行,其根本原因是dht11型号的温湿度传感器属于串口通信,输出的数字信号(通过高低电平表示),如图所示:

其中的高低电平的时间都是几十us而已(也就几十个时钟周期),我们在这么短的时间内测得并且运用,一定得非常注意延时的长短,并且由于时序上的偏差容易累积,单纯的使用延时总会使测得前几位准确后几位就不准确了。幸好cvavr自带的延时函数延时非常准确,外加经过查阅大量参考资料和请教学长,我们终于摸到了检测的诀窍,写出了运行比较稳定的程序。

硬件设计总结及心得体会:

从设计思路角度,需要更多的考虑设计的独创性,节约性,安全性,实用性。设计时更应考虑为后期调试提供最大的便利,以节省时间精力。设计前需要详细了解各部件情况,并设计好具体方案,以免在制作时造成许多不必要的浪费。随着项目的完成我们也逐渐明白课本知识只有用到了实处才能检验自己是否真正掌握,同时我们也懂得如何运用以往的经验在最短的时间条件中获取最多的知识。

软件设计总结与心得:

每次在初次使用某种元件时,都会有一种未知的不确定感,总是感觉它很神秘,不能轻易用好它,但是经过这部分软件的编写与调试,我感觉自己学习使用手册,认真考虑如何使用一件未接触过的东西很重要,我们不能对之心存畏惧,而是冷静地学习分析,才能够取得成功。

关于步进电机部分,我总结到了关于ad 转换,步进电机使用方面程序编写的思路,了解到了这方面容易犯的错误,对于分析程序能力,编程能力,使用avrstdio仿真能力都有了很大的提高。

经过led灯部分程序的编写,我掌握了一般串口通信传感器程序编写的方法,能够熟练地编写与应用led灯驱动函数与延时函数,并且我还掌握了一些很经典的检测语句的写法,例如:while(DHT11_DATA_READ);//等待高电平结束等,而且我还掌握了经典的检错语句的写法,例如:u8flag=2;while(DHT11_DATA_READ&&u8flag++);if(u8flag==1)break;最终,我们的单片机软件部分圆满完成,我们遇到了很多困难,也吃了不少苦,熬了不少夜,但是最终在我们的努力下完成了。通过这次做的单片机项目,我对单片机和电子设计产生了浓厚的兴趣,也学到了很多东西,收获很大。

团队管理心得体会:

这次单片机课程项目,可以说是我大学以来第一次进行和本专业有关的团队合作,在对具体情况不甚了解的情况下开始的分组,彼此也并不了解对方潜在实力。困难是必然需应对的问题,在项目开始前我们必须做好进行到底的准备,项目的实际设计和具体制作时,常常会在难以预计的情况下遇上几乎让人想放弃的困难,当然此时才是真正考验一个团队协作能力的关键。首先,作为一个团队成员应先做好本职工作,正如中学所了解的整体与部分的辩证关系,每个成员都有义务来承担工作。其次,一个队伍的领队必须起到带头模范和整体监制作用,领队是一个团队的核心,领队的工作态度与处事准则会在一定程度上影响整个团队工作水平和合作气氛,这在克服众多问题时都起了至关重要的作用。最后,成员之间需要默契,相互理解协作,每个成员应看到自己的不足,承担更多的责任,这样不仅能增强自己个人能力,更有利于团队协作成效。

成员分工与贡献度

曹乘榕

主要硬件设计,整体调试,及相关部件采购(占整体30%); 黄晨

主要整体软件设计调试(占整体30%);

胡腾

部分软件的设计,及其主体思路分析(占整体20%); 陈仲乾

主要论文负责,部分软件思路设计(占整体20%)。

课程改革建议:

首先,通过这一学期的学习,我们最大的感受就是自学能力、动手能力、团队协作能力得到了极大的提升,我想这些是开放性的设计课程给我们带来的书本上学不到的东西。

但是开放性的课程也会有很多问题,因为它的开放性,学生可以自由选择设计题目,这就使每个组对知识的要求是差异的。老师可能会鼓励同学们自己查阅资料,但是这样一来一是给同学们的学习带来了很大的压力,二是很多同学觉得从课上学不到什么东西,或者只专注于自己项目所需要的知识,这使得这门课程对于知识的推广效果受到影响。本科生学一门课还是应该全面的学习,毕竟将来用到的很有可能就是你项目中没有涉及的。所以我认为老师在以后的教学中可以加大上课时知识的容量,一晚上的课可以分为两部分,一部分以较大的容量总体介绍单片机的功能,并将重要的函数、功能提前讲(如步进电机、中断、AD转换等),第二部分可以从一些具体项目的角度,讲述设计思路和同学们容易遇到的问题。在最终考核时在考察项目的同时也应考察学生对于这门课程总体知识的了解,督促同学对于整个课程知识的认识。

另外我觉得我们的课程设计和美国康奈尔大学ECE 4760项目的差距还很大。我们虽然好想法少一些,但是并不代表我们就没有好想法。在我们的项目中觉得比较创新的仍是一些已在市面上出现的,或前人做过的,只是项目本身应用了一些较人工智能的东西。产生这种现象的原因我认为一是我们的硬件支持不够,很多功能模块我们购买不到,一些独特的机械设备或传感器没有人能够制作和提供。二是学科交叉较小,因为我们做的单片机项目很多是关于生产或生活的,这需要一些机械、生物、医学、材料知识的支持,而以我们的专业背景是很难获得的,所以如果能够给我们搭建一个与其他学院沟通交流的平台那是再好不过了。

当然更多的同学选单片机但是将来不会以这个为生,而是希望学习这门课程能够给自己对物理的学习产生积极影响。而在课程设计时并不是很多同学会选择与物理相关的课题。原因在于很多物理知识我们并不是很了解,而且真正在科研时需要的信号发生器材、控制器材、分析器材我们没有机会接触,也没有办法针对一个具体问题来设计。所以我希望老师以后能够加强这方面的引导,给出一些具体的在我们了解范围内而又比较有趣的物理项目,我想同学们肯定会有很大的热情。

另外很多同学在做项目时发现遇到不会的问题时很难找到帮助,互联网信息太繁杂,认识的为数不多的学长可能没有这方面的经验。而看往年的课程设计时虽然常常能看到相似的项目却获得不了具体问题的解决。所以我提议建立一个网络论坛,大家能够实时的交流沟通,并能将问题的解决以此方式一届一届传递下去。

第五篇:热偶真空计系统设计总结报告

热偶真空计系统设计总结报告

(王永昌 , 张斌鑫, 王海程, 张谢祥;褚向前;机械设计制造及其自动化10-11班

机械与汽车工程学院)

摘要:在真空度测量方面,目前,已有从105Pa到 10-11 Pa的各种真空计。当今,根据真空应用中对真空计使用要求,热导真空计在工业的真空测量中占有重要地位,主要用于冶金、机械、化工、电子等科研和生产领域中的粗、低真空的测量。而其中数字式热偶真空计应用广泛,产品种类也比较多,但在宽量程、可靠性、抗氧化性等方面还有一定的提升空间。因此,数字式热偶真空计的研究设计有着重要的实际意义。关键词:热电偶;真空计;真空度;

一.项目背景及研究内容

真空科学与技术主要包括真空的获得和真空度的测量两个方面。真空的获得,即真空的产生和保持,它一般由机械设备实现,如利用机械真空泵等。真空度的测量,主要由传感器及其相应部件组成的真空测量设备完成。准确测量真空度、控制真空度对生产、生活、科学研究有着重要影响,对实验的成败和真空产品的质量都起到关键的作用。所以真空测量是真空技术的一个重要环节,真空测量具有重要的意义。

我们结合真空测量技术的发展历史,通过对国内外近几年真空测量设备新产品的分析可知,真空计的设计并没有在新原理、新方法方面取得较多的突破性进展,更多的是在原有基本原理基础上的改进和补充。真空测量技术的发展进入了一个相对稳定的时期。近些年来,由于电子技术和计算机技术的迅速发展,真空计又迎来新的发展,出现以单片机为核心的电子式真空计。电子真空计与传统真空计相比,测量上更精确、更稳定、更方便,还可以根据实际应用将仪器的功能进行扩展,具有较强的实用性。

热偶真空计以其性能稳定、抗沾污、抗氧化、价格适中等优点被广泛应用于低真空测量领域,但由于热偶规这种传感器存在着较强的非线性,致使在数据处理上存在一系列的问题。为了提高测量精度,必须对其非线性进行处理。用传统数值计算方法处理,计算量繁重、过程冗杂。对热偶规真空计的基本结构和工作原理加以研究分析,然后根据其特点提出具体的设计方案。本项目采用 Mathematica 数学软件中高次函数拟合功能,来拟合热偶规传感器的非线性特性,最后以热偶规管作为传感器,将被测环境的压强信号转换为微弱的电信号,经过信号放大和 A/D 转换,送入单片机数据处理、显示。本热偶规真空计以单片机为核心,可应用于低真空领域的真空度测量,其测量精度和稳定性满足实际需要,还可以根据实际应用将仪器的功能进行扩展,具有较强的实用性。设计的热偶规管真空计采用单片微机制作,充分利用其微机提供的硬件及软件资源,集成度高,可靠性强,功能适用,操作简便。

二.热偶真空计工作原理

热电偶真空计是利用气体分子的热传导现象,热电偶接在白金或钨的细线上。这段细线通过电流后会发热。发出的热量通过周围气体分子的热传导,或细线本身的固体热传导,或热辐射放出。利用气体分子承担的热传导量与压力成正比的特点是此真空计的原理。

一根在真空中被加热的金属丝,达到热平衡状态时,它所消耗的总功率 满足下列关系

QQrQsQcdQcv

其中:

(1)Qr:热丝表面因辐射的热损耗;Qs:热丝引线的热损耗;Qcv:气体对流引起的热损耗;他们分别为: Qcd:气体分子热传导造成的热损耗;

QI2RQrKr(T40T04)QsKs(TT0)QcdKm(TT0)PQcvKd(TT0)f(P)其中,I是热丝的加热电流,R 是热丝电阻,Kr 为与热丝表面尺寸有关的常数,和

0分别为热丝和管壁的热辐射系数,T为热丝平衡温度,T0为管壁和热丝支杆的温度,Ks为与热丝材质和尺寸有关的常数;Km 二为与气体种类和热丝表面积有关的系数, 为适应系数,Kd为与热丝表面、规管几何形状、气体种类和热丝方位有关的常数,P为气体压强。

由此不难看出,对于给定的规管,若保持加热丝温度T不变时,则(1)式可变为: I2CkmPkdf(P)

其中:

(2)Kr(T40T04)T0CRkr(T40T04)T0 KmRk(TT0)KddR当环境温度T0 一定时,C, Km和Kd 均为常数。

式(2)为定温式热导真空计的基本关系式。它表明,对于特定气体,在定温工作状态下,加热丝的加热电流是容器气体压强的单值函数。热偶真空计是通过与热丝接触的热电偶来测量热丝温度的(图1-1所示)[2]。因此,只要改变加热电流,使在任何压强下,始终保持热电偶输出电势不变,即可达到定温的目的。此时,P2(I2I0);

其中, I0为高真空时加热丝的加热电流。这种定温过程可以通过手动,也可以通过自动动调节来实现。本设计是自动定温式热偶真空计。如前所述,定温式热偶真空计就是通过对规管加热电流的调节,使在任何压强下,热电偶输出电势始终保持不变,从而根据输入电流的大小来测定压强值,即真空度。图2-1是真空计测温简图

图2-1 热偶规测温原理

三.热偶真空计系统设计

系统整体结构如下图所示,本系统主要由热偶规传感器、信号放大电路、A/D转换电路、显示模块、单片机控制系统、按键和电源系统组成。电源系统给热偶规传感器提供一恒定电流,热偶规传感器将被测真空环境的压强信号转换为微弱的电压信号,将电压信号放大处理,经过A/D转换后送入单片机系统,在经过单片机系统的数据处理计算出测量环境的压强值,最后通过显示模块显示输出。

图3-1 热偶真空计系统框图

1.电源系统

本系统的电源由220V转5V 的AC/DC电源适配器提供,该电源模块参数如下: 输出电压精度Vo:1%;负载调整率:0.5%;输出电流调整率:0.5%;源效应:+0.2%;负载效应:+0.5%;波纹与噪声:Vpp1%;温度系数:+0.02%/oC;过载、过热保护(短暂)。

2.信号放大与处理

1)真空规管的选择

本设计采用ZJ-53B型玻璃热偶真空规管,该规管热容量很小的镍铬-康铜作为加热丝和热偶丝,经过稳定化处理具备环境温度自动补偿和粉尘防护功能。该型规管具有结构简单、量程较宽、响应较快、抗污染、耐氧化、漂移小、寿命长、性能稳定、价格适中等特点,是一种广泛应用的热传导式低真空测控传感器。主要技术 参数如下:

410测量范围:21101;

0加热电流:281.5mA;热丝冷阻:9.51(233C);热丝温度:401500C;

零散性为环境温度时,示值偏差不超过20%。2)真空规管的连接与加热 真空规管管脚的电气连接如图所示

图3-2 规管管脚电气连接 2、7 加热丝 4、5 热偶丝ZJ-53B 加热2、7管脚之间的热偶丝采用恒流源电路,电路图如下:

图3-3 恒流源加热电路 3)信号放大与A/D转换电路

信号放大电路的主要功能是将传感器测得的微弱电压信号进行适当的放大,便于信号处理,本设计信号放大部分采用斩波稳零运算放大器ICL7650。本系统 A/D转换电路选用ADS1286芯片。

4)信号处理和控制

本部分由主控单片机、LCM显示器、按键组成。主控单片机负责把从A/D转换器读取的电压值转换成压强值,并输出到LCM显示器上。

图3-4 信号放大与A/D转换电路

3.软件设计

本设计程序的编写主要在KeilC编译环境下进行,KeilC编译环境功能强大、支持C语言和汇编语言,内部更有强大的调试系统。1.初始化

初始化主要完成对单片机的初始化,初始化过程结束后进入等待状态,初始化过程如图

图3-5 初始化程序流程图 2.主程序

主程序通过循环调用各个功能模块完成相应的功能。

四.硬件连接及调试

1.恒流源电路调试实验 2.液晶显示模块实验 3.信号放大实验 4.整体调试

系统设计总结报告
TOP