当前位置:首页 > 波形发生器 - 本科毕业设计论文 - 图文
哈尔滨工程大学本科生毕业论文
单片机的PF2-PF7引脚与键盘相连,组成3*3的矩阵键盘。其中,PF5~PF7分别连接键盘的1、2、3行的行线,设置为输入方向,并设置为上拉电阻使能,把这三个引脚的电位拉高。PF4~PF2分别连接键盘的1、2、3列的列线,设置为输出方向。程序运行时,采用列扫描法对矩阵键盘进行判别。
3.6 本章小结
本章首先介绍了本系统的资源配置,再分模块介绍了主控电路、数模转换电路、运算放大电路、低通滤波电路以及按键电路各部分的基本原理及设计思路,完成了本课题硬件部分的设计。完成本课题的硬件部分设计之后,就可以开始进行软件部分的设计。
29
哈尔滨工程大学本科生毕业论文
第4章 系统软件方案设计
4.1 本课题软件开发系统
4.1.1 编程语言的选择
AVR单片机系列的常用编程语言有两种,一种是汇编语言,一种是C语言。
汇编语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:
(1)能够直接访问与硬件相关的存储器或I/O端口;
(2)能够不受编译器的限制,对生成的二进制代码进行完全的控制; (3)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;
(4)能够根据特定的应用对代码做最佳的优化,提高运行速度; (5)能够最大限度地发挥硬件的功能。
同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:
(1)编写的代码非常难懂,不好维护; (2)很容易产生bug,难于调试;
(3)只能针对特定的体系结构和处理器进行优化; (4)开发效率很低,时间长且单调。
C语言,是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。它具有如下优点:
(1)简洁紧凑、灵活方便;
30
哈尔滨工程大学本科生毕业论文
(2)运算符丰富; (3)数据结构丰富; (4)C语言是结构式语言;
(5)语法限制不太严格,程序设计自由度大;
(6)允许直接访问物理地址,可以直接对硬件进行操作; (7)生成目标代码质量高,程序执行效率高; (8)适用范围大,可移植性好[17]。
汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下的机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编语言很多。综合以上C语言的优点,本系统的软件部分由C语言设计编程实现。 4.1.2 软件开发环境WinAVR
1、软件开发环境的选择
应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。一个优秀的应用系统应具有下列特点:
(1)根据软件功能要求,将系统软件分成若干个独立的部分。设计出软件的总体结构,使其结构清晰、流程合理。
(2)要树立结构化程序设计风格,各功能程序模块化、子程序化。既便于调试、链接,又便于移植、修改。
(3)建立正确的数学模型。即根据功能要求,描述各个输入和输出变量之间的数学关系,这是关系到系统好坏的重要因素。
(4)为提高软件设计的总体效率,以简明、直观法对任务进行描述,在编写应用软件之前,应绘制出系统流程图。
(5)要合理分配系统资源,包括ROM、RAM、定时器、中断资源等。
31
哈尔滨工程大学本科生毕业论文
(6)注意在程序的有关位置处写上功能注释,提高程序的可读性。 (7)加强软件抗干扰设计,它是提高系统应用可靠性的有力措施[18]。 2.WinAVR软件概述
WinAVR是一套开源的开发工具的总称,用来在Windows平台开发Atmel AVR系列RISC微控制器。
(1)WinAVR的组成 WinAVR的工具包括:
avr-gcc,基于命令行的编译器。著名的开源编译器GUN C Compiler的AVR平台移植版。
avr-libc,编译器avr-gcc的库。 avr-as,汇编器。 avrdude,编程接口。 avr-gdb,调试器。
programmers notepad,代码编辑器。
此外,还有几个其他的配套小工具。这些工具都被编译成Microsoft Windows可执行文件格式并且被打包为一个界面友好的安装文件。
(2)WinAVR的特点和优势:
所有源代码都是向用户开放、完全免费的。因为其免费,所以可以减少项目资金开销。同时,在版权控制比较好的国外,WinAVR的使用者是很多的,因此交流、学习的平台更大。
优化效率高。其本身的编译效率和稳定性都很好,编译后代码执行效率高。
利于平台迁移。引擎GCC是Linux的唯一开发语言,学习GCC对于迁移到其他嵌入式平台是十分有利的。
配置灵活,可定制性强 (3)WinAVR的缺点:
使用较复杂,需要自己定制Makefile,Makefile的重要作用就是:指定
32
共分享92篇相关文档