嵌入式设计]基于单片机的磁场测量仪设计-毕业论文内容摘要:

转换器也有很多,多用于更高精度的场合,比如 AD976A 就是美国模拟器件公司的一款 16 位的 A/D 转换器,其主要用于导航系统的信号转换。 对于乙醇传感器的检测只要有 10 位的转换结果就已经足够,所以直接采用PIC 单片机内部集成的转换器,不但方便而且不会浪费资源。 显示方案 方案一 :采用点阵式数码管显示。 点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合 ,而在本课题设计中只显示数字,不需要显示字符。 显示数字不需要那么多的数码管,所以这种方案是很浪费能源的,不符合现代的节能理念,所以不用此种作为显示 方案二 :采用多位七段 LED 数码管显示,七段 LED 数码管只需要 4 位数码管就 能很好的显示转换后的 10 位数字量,使用单片机的端口少,编程控制方便,当需要更换更高精度的传感器的时候只要添加相应的数码管即可,易于电路的扩展。 数码管用于显示数字量是很直观和方便的,硬件也易于实现。 本科毕业论文 6 通过比较,选择多位七段 LED 数码管作为显示元器件。 编程语言选择方案 方案一:采用汇编语言。 汇编语言 (Assembly Language)是一种面向机器的程序设计语言。 汇编语言又被称为符号语言。 在汇编语中,用助记符 (Memoni)代替操作码,用地址符号 (Symbol)或标号 (Label)代替地址码。 这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。 汇编语言需要翻译成机器语言后,才能被机器识别。 它的优点是能够直接访问与硬件相关的存储器或 I/O端口,对生成的二进制代码进行完全的控制,不会因为受到编译器的限制而出现问题,能够对关键代码进行十分准确的控制,避免因线程共同访问或者硬件设备共享从而引起死锁,能够根据特定的应用对代码做最佳的优化,提高运行速度,能够最大限度地发挥硬件的功能。 缺点是编写的代码非常难懂,维护困难,十分容易产生 bug,不方便调试,并且只能针对特定的体系结构和处理器进行优化,开发 效率很低。 方案二:采用 C语言。 C语言是 Combined Language(组合语言)的中英混合简称。 它既具有高级语言的特点,又具有汇编语言的特点。 它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,最大的特点是编写不依赖计算机硬件的应用程序。 因此,它的应用范围非常广泛,不仅仅是在软件开发这一方向,也用在机器开发的方向上,而且各类科研都需要用到 C语言,具体应用比如单片机以及嵌入式系统开发。 与汇编语言相比,它更容易让人理解,编写速度快,兼容性好,应用方便。 通过以上比较,最终本设 计采用了单片机自带的 CCP捕捉模块,四位七段数码管显示, C语言编程的方案。 通过以上介绍和比较,本设计采用单片机内部集成的 A/D转换器的功能,并用霍儿传感器, 4位七段 LED数码管作为显示元器件, C语言编程的方案。 本科毕业论文 7 总体设计 本设计根据霍尔效应原理, 以单片机作为主控核心,霍尔传感器作为检测器件,数码管等硬件电路,利用软件实现磁场强度的采集和浓度的显示,具有将检测到的磁场强度进行 A/D 转换,最后通过四位七段数 码管进行输出显示。 重点:搭建单片机及外围电路,用 C 语言程序实现 A/D 转换设计要求: MPLAB 软件编程、 PROTEL 99 SE 绘制原理图和 PCB 板的设计、制作。 主要分为三个模块:霍尔传感器模块、主控模块、显示模块。 图 系统的模块图 芯片选择设计 本论文主要采用 PIC16F877 单片机, PIC16F877 是一款低电压,高性能 CMOS 8 位单片机,采用精简指令集、哈佛总线结构、流水线 取指的方式,抗干扰能力强,性价比很高,内部集成 8k 字节可反复擦写的 Flash、 只读存储器容量 8k字, 2K 为一页( Page),共有 4 页;文件寄存器 RAM 总共有 512 个字节( 00fh~1FFh),分4 个 bank,每个 bank 128 字节。 每个 bank 的前半段都有特殊用途,即前半部分是特殊寄存器,后半部分是通用寄存器。 器件采用高密度、非易失性存储的技术,能与其他兄弟芯片很好的兼容。 他的功能强大,能用于许多复杂的控制系统中。 PIC16F877 单片机采用 40 引脚 双列直插 DPIP 封装形式,其中有 5 个 I/O 端口,分别为 RA、 RB、 RC、 RD、 RE,每个 I/O 都有第二甚至第三功能复用,这大大提高了单片机的功能集成。 PIC16F877 的 PDIP 管脚封装如图 所示: 霍尔感器模块 主控模块 数码管显示模块 本科毕业论文 8 图 PIC16F877 的 PDIP 管脚封装 PIC16F877 的核心区域是唯一而不可缺少,其核心模块中最经常用到的是工作寄存器 W, W 寄存器是一个很重要的工作寄存器,许多指令都把它作为操作过程的中转站。 状态寄存器 STATUS 能及时的反映运算结果的一些算术状 态,比如是否产生进位、借位、全零等; PIC 的 RAM 寄存器是比其他的单片机更要强大许多的数据存储器,除了具备普通的存储功能外,还能实现移位、置位、清零、位测试等一系列(只有“寄存器”才能实现的)复杂的操作。 PIC16F877 除了CPU、 POM、 RAM、 I/O 等基本构造外 , 还 包括以下各种功能模块 ( 内部功能结构图如图 所示),各个简介如下: (1)A/D 转换器:具有 8 输入通道和 10 位分辨率的模数转换器,用来将外部的模你物理量变换为单片机内部处理的数字量; (2)捕捉 /比较 /脉冲调制 CCP1 和 CCP2:内部包含两个几乎完全相同的 CCP 模块,与 TMR1 和 TMR2 配合可以实现输入捕捉、输出比较 /脉宽调制输出功能。 输入捕捉功能可以用于测量信号的周期、频率、脉宽等;输出比较可用于产生脉宽不同的正、负方波脉冲信号,以驱动可控硅、继电器等;脉宽调制输出功能用来产生周期和脉宽可调的周期性方波信号,以驱动可控硅、步进电机等; (3)定时器 TMR0, TMR1, TMR2 都是可编程的定时器:其中 TMR0 和 TMR2 是8 位宽、 TMR1 是 16 位宽的。 同时 TMR0 和 TMR1 可作为计数器, TMR2 不能作为计数器但和 TMR1 一样,可与 CCP 模块配合实现捕捉和比较功能; 本科毕业论文 9 (4)通用同步 /异步收发器 UASRT 模块:用于实现二线式串行通信,可以定义为两种方式,即全双工异步方式和半双工同步方式; 图 PIC16F877 内部功能结构图 (5)主同步串行端口 MSSP:具有 SPI 和 2I C 两种工作模式,用来与具有 SPI 和 2I C串行端口的外接器件或者其他单片机进行通信; (6)EEPROM 数据存储器模块: 是 2568 的电可擦写的存储器,存储的内容掉电也不会丢失; (7)并行从动端口 PSP 模块:可用来与其他具有开放总线的单片机、数字信号处理器或者和微处理器的并行数据总线连接,进行高速的数据传输和交换。 并行数据总线的控制权由与 PIC 单片机通信的另一方掌控,因此,称其为并行从动端口。 主控电路模块设计 本科毕业论文 10 主控模块可采用数字电路实现,也可采用单片机来完成。 采用数字电路的方案,则设计出来的电路十分复杂,需要十几片数字集成块,功能主要依赖数字电路的各功能模块的相互组合来实现。 而采用单片机的方案,由于单片机的功能主要通过软件编程来实现,这样就降低了硬件电路的复杂性,有利于更多功能的升级与增加。 本课题设计的是一个基础的 A/D 程序,额外的功能是 A/D 转换结果的十进制数值显示,通过分析研究,只要用一般的单片机就可以满足,因此我选用了性价比相对较高、编程控制简单、可重复擦写的 PIC16F877 单片机。 单片机的最小系统是指能让单片机正常运行的最基本的硬件电路,主要由电源电路、单片机、时钟电路、复位电路、输入测量电路、输出控制电路 6 个部分组成。 单片机最小系统所需的外围元器件主要有电源、单片机、时钟电路和复位电路构成。 而输入 /输出部分对不同的应用有不同的要求,比如本设计就是使用的是模拟量输入端口 RA 口 和数码管输出控制端口 RC 和 RD。 下面分别介绍各个组成部分: (1)电源引脚 (VDD, 32 号引脚,电源端; VSS, 31 号引脚,接地端 ), PIC16F877 单片机的输入电源要求的是 +5V的直流电源; (2)时钟电路,单片机要工作就必须供给一个时钟,单片机按照时钟的节拍一步一步的执行程序。 外接晶振引脚( XTAL1,引脚 13 号( OSC1/CLKIN)和 XTAL2,引脚 14 号( OSC2/CLKOUT) )。 图 晶振连接的内,外部方式图 对于这样的系统时钟,在 PIC 的单片机上有多种不同的配置方式,如表 1 所示, 表 1 PIC 单片机晶振配置方式 振荡模式 增益量 适用器件 参考晶振频率范围 LP 低功耗设计用 低频晶体( ) 200KHz XT 适中 晶体 /陶瓷谐振器 100KHz~ 4MHz HS 最高 高速晶体 /陶瓷谐振器 2MHz 本科毕业论文 11 RC — RC 振荡电路 4MHz 对于本设计我们采用的是 XT 4MHz 晶振模式,即在单片机引脚 OSC1/CLKIN 和OSC2/CLKOUT 的两端接入一个 4MHz 的晶体振荡器。 (3)复位电路(引脚 P PM C L R / V (1 号引脚 )), PIC16F87X 单片机的复位功能设计的很完善,实现复位或者说是引起复位的条件和原因可以总结为 4 类:人工复位、上电复 位、看门狗复位和欠压复位。 片内包含了完整的上电复位电路,但为了保证工作过程中有稳定的 +5V电压源、晶振起振等参数,我们需要在单片机的主复位引脚 P PM C L R / V 上增加电容,但单独增加电容会影响 P PM C L R / V 在作为编程电压时的变化率,所以加入隔离电阻 R2,防止电容 C6 影响 VPP的上升速率,同时也隔断了在线编程时 VPP 对电路其他部分的影响。 为了便于调试,还可以加入手动复位按钮。 图 复位电路 (4)输入 /输出 I/O 引脚, I/O 引脚是单片机内部电路与外部世界交换信息的通道。 表 2 RA端口的功能以及复用功能简介 引脚名称 引脚序号 引脚类型 功能说明 RA0/AN0 2 I/O RA0 还是第 0 路模拟信号输入端 RA1/AN1 3 I/O RA1 还是第 1 路模拟信号输入端 RA2/AN2/ VREFˉ 4 I/O RA2 还是第 2 路模拟信号输入端和负参考电压端 RA3/AN3/ VREF+ 5 I/O RA3 还是第 3 路模拟信号输入端和正参考电压端 RA4/T0CKI 6 I/O RA4 还是定时器 0 的时钟输入端 RA5/AN4/SSˉ 7 I/O RA5 还是第 4 路模拟信号输入端以本科毕业论文 12 及同步串口选择端 输入端负责从外界接收检测信号、键盘信号等各种开关量信号。 输出端口负责向外输送由内部电路产生的处理结果、显示信息、控制命令、驱动信号等。 PIC16F877单片机是 8 位 CPU单片机,所以每个端口有不超过 8 根的端口引脚构成,每个端口均支持单独编程控制。 端口不仅仅是作为一般的 I/O 数据端口,在 PIC16F877单片机中这些端口还有第二功能,甚至是第三功能的复用。 比如端口 RA,不仅可用作普通 的 I/O 端口,还可以作为检测外部电路的模拟信号的输入端口;具有第三功能的端口如:端口引脚 RC4 既可用作普通的 I/O 端口,又可以作为 SPI 串行通信模式的数据输入端口,还可以作为 2I C 串行通信模式的数据双向传送端。 及三种功能于一脚,这样可以给用户开发不同的具体项目带来极大的灵活性和便利。 RA 和 RC 功能复用如表 2 和表 3: 表 3 RC 端口的功能以及复用功能简介 引脚名称 引脚序号 引脚类型 功能说明 RC0/T1OS0/T1CKI 15 I/O RC0 还可作为定 时器 1 的振荡器输入端和时钟输出端 RC1/TIOS1/CCP2 16 I/O RC1 还可作为定时器 1 的振荡器输出端或捕捉器 2 输入端或比较器 2 输 出 端 或脉 宽 调 制 器PWM2 的输出端 RC2/CCP1 17 I/O RC2 还用于捕捉器 1 输入端或比较器 1 输出端或脉宽调制器PWM1 的输出端 RC3/SCK/SCL 18 I/O RC3 还可作为 SPI 和 2I C 串口的同步时钟输入 /输出端 RC4/SDI/SDA 23 I/O RC4 还可作为 SPI串口的数据输入 端和 2I C 串口的数据输入 /输出端 RC5/SDO 24 I/O RC5 还可作为 SPI 串口的数据输出端 RC6/TX/CK 25 I/O RC6 还可作为通用同步 /异步收发器 USART 的全双工异步发送脚或半双工同步。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。