硬件课程设计总结报告《可编程频率计》设计.doc
《硬件课程设计总结报告《可编程频率计》设计.doc》由会员分享,可在线阅读,更多相关《硬件课程设计总结报告《可编程频率计》设计.doc(26页珍藏版)》请在三一办公上搜索。
1、中国矿业大学计算机科学与技术学院硬件课程设计总结报告题目: 可编程频率计设计 学号: 姓名: LXZ-2008 专业班级: 计08-1 指导老师: 实践日期: 2010年8月31号10月12号目录1引言31.1编写目的31.2背景31.3定义31.4参考资料42实际开发结果42.1产品42.2主要功能和性能42.3基本流程52.4进度72.5费用83开发工作评价93.1对产品质量的评价93.3对技术方法的评价93.4出错原因的分析94经验与教训105附录程序清单及结构图145.1逻辑结构图及流程图145.2程序清单16项目设计总结报告-可编程频率计的设计1引言1.1编写目的经过一段时间的努力,
2、我们终于完成了对可编程频率计的设计。为了让读者更加了解我们设计的这个可编程频率计的原理、工作方式、运行环境、功能和我们设计的流程等等,我们写了这个项目设计的总结报告。对于学生的我们,这份报告的主要目的是提高我们规范化的工程实验方法,进行系统的、高效地开发项目,同时也作为指导。在编写报告与实验同步能提高我们做项目和实战的能力。1.2背景硬件课程设计的课题是:可编程频率计的设计。这次可编程频率计的设计是由刘晓泽提出来的,由刘晓泽和刘春一起讨论、共同编程、实践,最后成功完成的。该可编程频率计能够快速准确的捕捉到被测信号频率的变化,所以该频率计适用于需要精确测量信号频率变化的设备。本频率计是方波频率计
3、,由于实验箱资源的有限性,我们只能设计这个方波频率计。该设计的频率计需要在16/32位微机接口技术实验系统的实验箱上完成,连接电脑,用到了8279芯片和键盘,8253计数器和I/O输入输出设备,用汇编语言完成编程驱动可编程频率计的实现。1.3定义中文名称:频率计英文名称:frequency meter 定义:测量周期量频率值的仪表。I/O:输出/输入(Input/Output)汇编语言:(Assembly Language)是面向机器的程序设计语言。用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。中文名称:计数器 英文名称:counter 定义:通
4、过传动机构驱动计数元件,指示被测量累计值的器件。计时器即计数器。中文名称:脉冲 英文名称:pulse 定义:一个物理量在短持续时间内突变后迅速回到其初始状态的过程。LED:(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。中文名称:流程图 英文名称:flow diagram 定义:表示生产过程中事物各个环节进行顺序的简图。1.4参考资料1. 微型计算机原理与接口技术第四版 周荷琴 吴秀清/著 中国科学技术出版社2. HK88TE说明书3. 8279芯片使用说明文档2实际开发结果2.1产品程序: Is_Start ;检测是否按下开始脉冲键程
5、序: InitClock2 ;初始化计数器2,并产生可编程的方波频率程序: InitClock0 ;初始化计数器0程序: InitClock1 ;初始化计数器1程序: CheckClock0Over ;检测计数器0是否工作结束,并将读取的结果存入变量a中程序:Display ;显示变量a的值到LED上主程序:Main ;整个程序的主程序运行部分本项目的程序结构是扁平式的,即在一个主程序的作用下,分别调用各个小的程序来完成整个项目的功能。而各个小程序又是不可划分的最小程序模块。本项目总共200行代码。数据段与代码段共用,均用CS作为段寄存器。数据部分21行,其中19行是宏定义,在编译时用,在生成
6、2进制可执行文件时不用。只有2行是真正的数据,占用程序空间。主程序20行代码。Display程序70行代码,InitClock0、InitClock1、InitClock2程序均为10行代码,CheckClock0Over程序20行代码。本项目有两个版本。但实质为一个版本。由于一开始没有频率发生设备,我们利用8253产生频率,其中用到8个开关作为产生频率的种类。但由于我们的模块是高内聚、低耦合的。独立性比较强。这个产生频率的模块可以随时替换。后来老师找来了频率发生器做检验,检验通过。而之前的代码并未用到。因此实质为一个版本。2.2主要功能和性能在这次可编程频率计的设计中,我们的项目的计划的主要
7、功能是:完成方波频率的测试。主要原理:对一个脉冲进行频率计数,通过测量它在单位时间内的脉冲数,然后用,其中为测出的方波频率,N为单位时间内的频率数,T为单位时间(这里为0.5S)。首先对8253赋初始值,让0通道在外界输入1/8MHZ的情况下,通过赋值62500计数,在方式0下产生0.5秒的定时。而计时器0的输出接输入芯片,通过一个循环不断检测计时器0是否定时完毕。而计时器1的CLK1端口接带检测的方波频率,这个计时器是在方式2下工作的,每次频率计工作都赋初始值0给它,让它在单位时间内对产生的脉冲计数。通过,其中N为最终的计数值,为计数的最大值,这里是65536,即,是计时器1上读出的计数值,
8、N为测出的频率数。然后将N转换成8279能显示的数码,最后用8279显示出来。在这当中用一个开关负责开启检测和重置。即第一次使用拨动开关,不到1秒及出来结果,以后每拨动2次,即可看到结果。性能:本产品为方波频率发生器,只能检测方波,我们用标准的实验频率发生器产生方波进行检测。由于我们的8279附近的数码管只有6个,而8253上的寄存器是16位的,我们就设计出一个0到65535HZ范围的可编程方波频率计,即用到5个数码管来显示。如果数码管增加,本产品的程序只需改动少量代码变可迅速做到扩展。通过标准的实验频率发生器检测,本产品的精确度为千分之一。这部分误差是由于在定时结束后,在读取计数值的这部分时
9、间内,CPU执行时间占用所导致的误差。还有另一个原因就是芯片的硬件误差引起的。前者通过缩短代码,基本达到极限。因此若想再提高误差,只有用更好的运算芯片或硬件中断来处理。2.3基本流程用图给出本程序系统的实际的基本的处理流程。 (1)频率计程序流程图 (2)可编程频率计使用流程图(3)硬件框架图2.4进度原定进度:8个学时的时间选定硬件课程设计的课题,提出本项目的任务;16个学时的时间进行课程设计的分析、编程、硬件连接,最后实现频率计的功能。8个学时的时间编写硬件课程设计报告。实际进度:我们课上用了4个学时的时间就选择好了我们的硬件设计课题可编程频率计的设计。课下花了大量的时间编程。然后是设计阶
10、段,我们开始对可编程频率计的设计进行分析,讨论该如何设计、编程。我们从网上找了一些有用的资料,编程过程中,连接硬件运行过程中也都遇到过一些问题,不过我们还是通过查找资料,相互讨论,与老师交流等方式成功地解决了。设计阶段课上我们花了12个学时调试完成了。写设计报告我们用了大概8个学时的时间。分析:通过原定计划的进度和实际使用的进度我们可以很容易的看出,我们设计的实际进度提前了。主要原因是:我们迅速地选定课题,之后我们就尽快地投入到了设计当中去。在课题选择这个阶段我们就节约了很大一部分时间。在实际设计阶段,我们不仅仅在实验室里积极认真的调试硬件,改进方式。同时我们在其它时间还查阅了很多关于我们这个
11、课题的相关资料,包括频率计的原理,实现方式,相关的8253和8279的使用等等。这些充分的课余准备使我们在实验室里比较容易地就设计出了我们满意的结果,并且也用了更少的时间。而且有部分实验箱的问题得到了老师的指点。最重要的是我们对实验原理的深刻理解,然后设计好方案思路之后在课下花大量时间编程,而在实验室里主要是调试。2.5费用费用预算:在设计之前,我们预算实际设计操作并完成可编程频率计需要16个学时,合计为800分钟,大概13.3个小时的时间。预计我们用到的物料主要是实验室里的电脑和实验箱里的仪器,不会有出差的情况,所以也没有出差费的预算。实际支出:我们的设计的时间是我们使用了12个学时的,合计
12、为600分钟,10个小时的时间。这段时间我们都在实验室里,在电脑上连通实验仪器试验,改进。在可编程频率计的设计中,我们主要用到的是实验室里的电脑和实验箱里的仪器,并没有什么物料消耗,也没有出差,所以也没有费等支出。分析:按照以上预算与实际支出情况,我们的设计经费是有节余的。实际物料消耗与费用支出与预算基本上一致,而主要有节余的地方是我们比预计花费了更少的时间,预计要16个学时的设计而我们只用了12个学时的时间就完成了。3开发工作评价3.1对产品质量的评价频率计在质量上满足我们预先的需求。而且稳定性好,精确度达到千分之一,多次检测一直达到这个精确值,没出现什么误差。所不足的是仅能检测方波。而且在
13、无法连续检测不断变化的频率,只能检测出稳定的方波,当要检测另一频率时必须拨动开关重新检测。而且检测速度不是很快,大概0.5S。但是,总体上满足产品预先的要求。3.3对技术方法的评价本项目用的是HK88TE实验箱里的8088CPU、8253芯片、IO输入芯片、8279芯片、LED数码管、8个开关、连线若干、HK88TE实验平台。检测工具是:频率发生器编程工具及语言:用汇编语言,编程平台是HK88TE实验箱配备的软件。在开发中用到了模块化的思想,将一个一个的实现功能代码做成高内聚低耦合的独立性强的模块,模块可以单独处理,加快了编程效率,增强了扩展功能。由于硬件平台缺少硬件中断功能的缺陷,我们采用软
14、件中断来实现开关、定时的检测。通过循环条件的设定来跳出循环。3.4出错原因的分析出错情况:1. 无法取出数据段的数据。2. 编译通过,运行无法通过。3. 单步调试通过,全速运行无法进行。4. 无法显示频率。5. 启动开关无法检测。出错原因分析及解决方法:1. 我一开始定义一个数据段即data segment.data ends,然后取里面的数据,无论如何都不行,我看了一下实验箱手册里的例子,他们全没用到data段,而是数据段和代码段共用,用ds :code 及push cs,pop ds来解决。因此我分析的结果是实验箱不支持的问题,我在PC机上用汇编均支持。2. 经老师指点,是因为代码长了,实
15、验箱的监控程序不支持,通过滑动下载软件上的延迟到高的部分解决了。3. 我是用一个循环来检测计时器0的输出情况,由于我在循环里忘了加一条IN指令,而陷入死循环,加了后解决了。4. 主要是不了解8279的原理及使用方法,还有数码管的编码方式,通过查看文档资料及摸索解决了。5. 这个问题跟第3点类似,也是在循环里忘了先用IN指令读取数据,再用AND截取数据检测。发现后加了IN指令解决了。4经验与教训小组成员:刘晓泽体会:这是一个小的项目开发,我试着用规范的方法去做,我在项目开始时先想着确定一个题目,老师推荐了几个题目,又要求一个小组只能有一个且不能重复。因此我们选了频率计作为我们的项目。一开始时我并
16、不知道什么是频率计,然后询问了老师。大概明白了,后来在课上我在百度里打频率计,然后在百度百科里看了一下什么叫频率计以及频率计的主要原理是什么,这个比较重要。我觉得做一个陌生的项目,首先搞明白这个项目的概念及原理,这样才能下手。我看了一下我们那个HK88TE这个实验箱,以及实验箱可用的部分,感觉只能完成方波的测试,因此进行了方波的频率计设计。我进行了需求分析,搞明白了我们到底要干什么,以及是否在规定的时间内可行,以及取得所做项目所需的技术知识及资料,这些统统在第一次课后进行了准备。我把老师给的资料全打印下来了。由于我们做的是频率计,那么必然有显示的输出部分,以及频率的输入部分,还有处理转换这样3
17、个主要模块。这三个模块中所需的知识只有显示部分之前没遇到过。剩下的在上学期的微机原理用过,而且第一次课的时间又熟悉了一下,还是比较熟悉的,忘了的命令字翻翻书也就能解决了,欠缺的是8279这个芯片的使用方法和原理。第一次课后,我便把8279的资料全看了,由于我只用到显示部分,因此主要看显示部分的原理和操作。第一次课时我并不清楚6个数码管的显示方法,后来仔细看了实验台上的数码管,通过看例子以及自己的推测,发现一个数码管是用1个字节里的数据来显示的,按照数码管上的标号,从a到h,按照顺时针方式旋转,0表示灭,1表示亮,这样的信息用8位数据里的低字节到高字节表示。我是这样认为的,实验课的时间是十分宝贵
18、的,主要是用来搞硬件的,即主要是用来验证自己对硬件的理解以及调试自己的电路和代码的,不是主要用来编程和看资料的。而实验箱比较贵,听说几千块,而且实验结束或者十分了解实验箱后,实验箱对自己的作用也不大,实验箱主要是教学用,不必一人买一个。不像学习单片机,买个51芯片,自己焊电路那样,可以长期持有,使用。而且用51单片机芯片自己搞一个电子产品,价格也很低,很实用。因此,我在课下尽量地花时间编程和看资料,在课上尽可能地调试程序,以及检验自己的电路。我在假期时,有自己买过一些单片机芯片自己玩。但是,我跟别人学单片机不太一样。由于自己是计科的,专业方向不同,很难花大量的时间在电子方面。但由于有些兴趣,也
19、自己在假期有空时学学。发现单片机的核心还是编程,当把电路搭好后,原理也明白后,剩下的大量时间是在编程。因此,总的来说对自己的专业方向偏差不大。我是在网上听说有人用面包板来学习单片机的。就是买上一块面包板和线,由于面包板上有一个个小孔,用线插拔十分方便,不用焊东西,对自己的学习十分有利。然后我就照着别人的推荐买了51单片机,不过这个是国产的STC系列的芯片,因为它是国产,自然网上的官方文档是中文版的,对于英语不好的我来说比较方便。买了一些晶振什么的就在面包板上接起来,然后照着例子看着原理图学习。用的是C语言编程。后来在实验课上想用C语言,发现实验平台的软件不支持,而我用的芯片是8088CPU。所
20、以最终就用汇编来编程了,尽管过程中有一段痛苦的过程,但是随着我把自己的实验完成,又自己玩了一下其它人做的什么时钟、计算器、电子琴和交通灯,这样我间接在硬件课程的这段时期编了几千行的汇编代码。尽管我自己的实验是只有200行代码,但是我在这几千行的代码编程中中对汇编比较自信,也不再恐惧它了。我在使用汇编中没用到多少种指令,也就是常用的那20几种。什么MOV、JMP、LEA、RET、CALL、ADD、SUB、MUL、ADD、DIV、IN、OUT、JL、JZ、JA、JNZ、LOOP、INC、DEC、AND、NOT、SLL、SLR、PUSH、POP。我也就熟悉这么些指令。我在网上看到的频率计的原理是:通
21、过在单位时间内检测出的频率数,用,其中为测出的方波频率,N为单位时间内的频率数,T为单位时间(项目里为0.5S)。这样求出的即为频率,单位是HZ。我就用这条几句话的原理进行方波频率计的设计。开始时想自己买芯片来焊(尽管我不是很自信,但是知道一点原理,我觉得可行),但是我们大三上学期的课程太多了,一天8节课,不光有硬件的课程设计,还有软件工程的课程设计,觉得在时间上可能安排不过来。而且这学期的专业课程比较重要,很多都是原理,而且有些课程的老师不错,不花时间的话,可能过了这村就没这店了。我认为本科生与专科生的差别在于理论原理的研究。本科生普遍比职业学校的学生缺少动手时间和经历,而职业学校的学生由于
22、一开始的生源不同,他们在理论学习上的时间要少,学习能力稍差。而缺乏理论原理的学习,在技术上很快会到达瓶颈。而他们再学习能力有限,再自我学习理论原理时就会遇到困难,自学能力也有限。因此,就必须找到一个平衡点。因此,我在不落下平常的课程的学习下,尽可能多地动手做实验,编程。我把我们的项目分析了一下,发现必须用中断。而实验箱有缺陷,上学期马海波老师教我们微机原理,当时他说我们实验箱缺少中断的连接口,所以我们上学期的实验也就没有中断的实验。中断有两种方法实现,即软中断和硬中断。而硬件中断方式,实验箱无法实现,那么只能采取软件中断。软中断就是用循环来实现,尽管很浪费CPU资源,但是也算是一种响应不错的方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程频率计 硬件 课程设计 总结报告 可编程 频率计 设计

链接地址:https://www.31ppt.com/p-2883646.html