ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:1.07MB ,
资源ID:10295253      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10295253.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于PIC单片机SPI接口的数据采集模块设计说明.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于PIC单片机SPI接口的数据采集模块设计说明.docx

1、基于PIC单片机SPI接口的数据采集模块设计说明基于PIC单片机SPI接口的数据采集模块设计摘 要 PIC单片机比MCS-51单片机功能更强大,因为其部集成了A/D转换模块、USART通讯模块及MSSP端口;本文介绍一种基于PIC16F877A单片机的数据采集模块的设计。首先主机的A/D端口接电位器,实现模拟电压向数字信号的转换,然后对转换后得数据通过SPI接口传输给从机,从机通过显示控制芯片HD7279A,最后通过四位数码管把采集的模拟电压显示出来。系统需要两片单片机完成,分为主机和从机,主机完成数据的采集、A/D转换,转换结果的输出,从机主要完成数据的接受,工程量变换功能。程序采用C语言编

2、写,在集成开发环境MPLAB-IDE下完成编译及程序下载,最终实现能通过调节电位器实现变化的电压显示。关键词 PIC单片机 数据采集 A/D转换 SPI接口 DESIGN OF DATA COLLECTION SYSTEM BASED ON THE SPI PORT of PIC MICROCONTROLLERABSTRACTThe function of PIC MCU is more powerful than MCS-51, because it integrate a large number of on-chip peripherals such as AD converter mo

3、dule. USART communication module and MSSP port, This article introduced the design of data collection system based on the SPI port of PIC MCU, first the ADC converter module is connected with the potentiometer, so the analog voltage can be converted to digital signal, and then send them to the maste

4、r microprocessor by the SPI port, The slave display the analog voltage through multi-point calibration which is controlled by the HD7279A.It needs two pieces of microcontroller to do the job, which is divided into the master and the slave, the former completes data collection, A / D conversion, the

5、conversion results of output, and the later accepts the data transmission as well as the quantity change. C language is used in programming, the MPLAB-IDE integrated development environment completes compiling and downloading. And finally the analog voltage is displayed.KEY WORDS PIC MCU Data Collec

6、tion AD Conversion SPI Port摘 要 IABSTRACT II1 绪论 11.1 课题背景及研究意义 11.2 本设计方案介绍 22 硬件部分设计 32.1 PIC单片机介绍 32.1.1 PIC单片机的优越之处 32.1.2 PIC16F877A最小系统图及主要性能 42.2 PIC单片机片ADC模块及接口实现 52.2.1 ADC模块结构和操作原理 52.2.2 ADC模块相关的寄存器介绍 62.2.3 A/D转换接口电路设计 72.3 主控同步串口MSSP介绍 92.3.1 I2C总线介绍 92.3.2 SPI 简介 102.3.3 SPI主模式接口设计 132.

7、3.4 SPI从模式接口设计 142.4 HD7279A芯片原理介绍及接口实现 152.4.1 HD7279A简介 152.4.2 HD7279指令介绍 162.4.3 HD7279A的接口实现 202.5 电源模块 233 软件设计程序流程图 253.1 C语言编程简介 253.2 MPLAB IDE编程环境简介 253.3 MPLAB ICD2介绍 263.3.1 MPLAB ICD2系统组成 263.3.2 MPLAB ICD2的安装和配置 273.4 系统程序流程图 294 结论 31致 32参考文献 33附 录1 34附 录2 35附 录3 361 绪论1.1 课题背景及研究意义在工

8、业生产和日常生活中,经常要对模拟信号进行测量与控制,例如在有些系统中经常要对模拟电压信号进行采集并显示出来,于是数据采集模块必不可少。数据采集涉及多学科,所研究的对象是物理或生物等各种非电或电信号,如温度、压力、流量、位移等模拟量,根据各种非电或电信号的特征,利用相应的归一化技术,将其转化为可真实反映事物特征的电信号后,经A/D转换器转换为计算机可识别的有限二进制数编码,即数字量,并进行存储、处理、显示或打印。以此二进制数字编码作为研究自然科学和实现工业实施控制的重要依据,实现对宏观和微观自然科学的量化认识3。在当今社会各个领域,包括科研和实验研究,数据采集系统有着不可替代的作用,数据采集和处

9、理进行的越及时,工作效率就越高,取得的经济效益就越大,数据采集系统性能的好坏主要取决于它的精度和速度,在保证精度的条件下,还要尽可能地提高采样速度,以满足实时采集、实时处理和实时控制的要求。数据分析是指用适当的方法对采集的数据进行分析,以求最大化的开发数据资料的功能,发挥数据的作用,并将分析结果显示出来,通过数据采集硬件采集到数据,然后将其传送到CPU中,应用不同的软件,将采集到的数据进行实时分析,并显示出分析结果。其典型的系统组成如图1-1所示1:图1-1 数据采集典型系统框图1.2 本设计方案介绍本设计主要由PIC单片机完成。模拟信号的采集离不开AD转换,通常我们都是采用AD转换器实现由模

10、拟量到数字量的转换,然后将数字信号输入单片机进行数字处理;其特点是工作性能可靠、稳定,但灵活性差、成本也比较高。本文所介绍的技术是利用PIC单片机的特点结合AD转换的技术直接实现AD转换,该方法只需外接少量元件,而且分辨率可编程设置,且可实现多路AD转换,此技术主要用于控制精度要求不是很高、成本要求较低的电子产品中,意义尤为突出1。PIC单片机具有SPI总线,SPI是一种高速的、全双工、同步的通信总线,并且只占用四根线。为了系统功能的扩展,又是一个单片机不能完成整个系统的要求,这时就需要两个单片机,第一片完成数据的采集、AD转换、转换结果的输出,第二片主要完成数据的接受,工程量变换等功能,本设

11、计就是基于这种情况而设计的。数据采集模块构架框图如图1-1所示:图1-2 数据采集模块构架框图通过上图可知,要完成本系统设计,一下几个模块必不可少,按照数据流动的先后顺序,依次是:AD采集模块、SPI模块、HD7279显示控制模块,各模块联系紧密,在下面的论文当中,会按照这个顺序一一进行介绍。要想成功完成设计,硬件和软件两者缺一不可。2 硬件部分设计2.1 PIC单片机介绍2.1.1 PIC单片机的优越之处 PIC单片机采用了RISC结构,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。PIC16F877是Microchip公司于1998年底推出的

12、一款特色鲜明的新产品,片资源丰富,使用方便等诸多优点使其在应用领域中越来越受用户喜爱,这也是本设计为什么要采用它的原因,其主要特点如下所述13:(1)哈弗总线结构:MCS-51单片机的总线结构是-诺依曼型,计算机 在同一个存储空间取指令和数据,两者不能同时进行;而PIC单片机的总线结构是哈佛结构,指令和数据空间是完全分开的, 正因如此,PIC单片机程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分别位 12、14、16位。(2)流水线结构:MCS-51单片机的取指和执行采用单指令流水线结构,即取一条指令,执行完后再取下一条指令;而PIC的取指和执行采用双指令流水线结构,当一

13、条指令被执行时,允许下一条指令同时被取出,这样就实现了单周期指令。 (3)寄存器组:PIC单片机的所有寄存器,包括I/O口,定时器和程序计数器等都采用RAM结构形式,而且都只需要一个指令周期就可以完成访问和操作;而MCS-51单片机需要两个或两个以上的周期才能改变寄存器的容。(4)运行速度高、功耗低(5)驱动能力强、程序性强每个I/O引脚吸入和输出电流的最大值可分别达到25mA和20mA,能够直接驱动发光二极管LED、光电耦合器或者轻微继电器等;其部程序尚无法直接进行拷贝,可最大限度保护用户1。2.1.2 PIC16F877A最小系统图及主要性能 由于本系统对速度要求并不是很高,故没必要采用很

14、高的晶振,4M已经可以满足系统需求。由于上电复位不是很可靠,程序一旦跑飞就得重新上电,故本系统采用按键复位电路,上电复位电阻为10K,电容选电解电容10uF,该电路的优点在于降低复位引脚对地的阻抗,可以显著增强单片机复位电路的抗干扰能力,并且有利于程序的调试,PIC16F877A的最小系统如图2.21所示: 图2-1 PIC16F877A最小系统图与本设计相关主要性能参数如下所示6:具有高性能的CPU除程序分支指令为两个周期外,其余均为单周期指令8K * 14个 FLASH程序存储器368 * 8 个数据存储器(RAM)字节256 * 8 EEPRM 数据存储器字节提供14个中断源10位多通道

15、模数转换器部有主控同步串行通讯端口MSSP,可工作于SPI、I2C两种模式功耗低在5V,4MHZ 时钟运行时电流小于 2mA在3V,32KHZ 时钟运行时电流小于20uA支持在线串行编程(ICSP)运行电压围广,2.0V到5.5V输入及输出电流可达到25mA2.2 PIC单片机片ADC模块及接口实现2.2.1 ADC模块结构和操作原理 PIC16F87X部带有10位ADC,40脚封装的芯片有8通道ADC,其部结构包含四部分:8选1选择开关、双刀双掷开关、A/D转换电路和采样/保护电路。PIC16F87X的ADC部结构示意图如图3.1-1所示。图2-2 ADC模块部结构图ADC模块各部分功能和组

16、成关系如下:(1)8选1选择开关由控制寄存器ADCON0中的CHS2-CHS0位控制,用于在引脚AN0-AN7中选择将要进行转换的输入模拟通道,选中者与部采样/保持电路接通。(2)双刀双掷切换开关由控制寄存器ADCON1中的PCFG3-PCFG0位控制用于选择A/D转换器所需要的参考电压源的获取途径。(3)A/D转换电路用于实现将模拟信号转换为数字量。(4)采样/保持电路用于对输入模拟信号电平进行抽样,并且为后续A/D转换电路保持一个平稳的电压样值。2.2.2 ADC模块相关的寄存器介绍1. ADC控制寄存器0-ADCON0 见表3-1。表2-1 ADCON0各位描述符号地址Bit7Bit6B

17、it5Bit4Bit3Bit2bit1Bit0ADCON01FHADCS1ADCS0CHS2CHS1CHS0GO-ADON功能:ADCS1-ADCS0:A/D转换时钟及频率选择位CHS2-CHS0:A/D模拟通道选择位GO/DONE:A/D转换启动控制位,兼作状态位,在ADON=1的前提下,1=启动A/D转换或转换正在进行中,0=A/D转换已完成。2. ADC控制寄存器1-ADCON1见表2-2。表2-2 ADCON1各位描述符号地址Bit7Bit6Bit5Bit4Bit3Bit2bit1Bit0ADCON19FHADFM-PCFG3PCFG2PCFG1PCFG0功能:ADFM:A/D转换结果

18、格式选择位。1=结果右对齐,ADRESH寄存器高6位读作0;0=结果左对齐,ADRESL寄存器低6位读作0。PCFG3-PCFG0:A/D模块引脚配置位。这三个决定了功能复用的引脚那些作为普通数字I/O口,哪些作为A/D转换时的电压信号输入。在8位分辨率的A/D转换模块中其组合控制模式见表3-3。表2-3 位分辨率的A/D模块引脚配置PCFG2-PCFG0AN7AN6AN5AN4AN3AN2AN1AN0000AAAAAAAA001AAAAVrefAAA010DDDAAAAA011DDAAVrefAAA100DDDDADAA101DDDDVrefDAA11xDDDDDDDD3. ADC结果高字节

19、寄存器ADRESH当ADMF=0时,用于存放A/D转换结果的高8位;当ADMF=1时,用于存放A/D转换结果的高2位,此时结存器的高6位读作0。4. ADC结果低字节寄存器ADRESL当ADMF=1时,用于存放A/D转换结果的低8位;当ADMF=0时,用于存放A/D转换结果的低2位,此时寄存器低6位读作0。2.2.3 A/D转换接口电路设计 A/D转换的外围器件是电位器,电位器与+5V电源相连,通过调节电位器R101即可向单片机ADC模块的AN0通道输入连续变化的模拟电压信号。其硬件电路图如图3.2所示: 图2-3 A/D转换接口电路图ADC模块程序流程图如图2-4所示:图2-4 ADC模块程

20、序流程图如图该部分主要子程序程序如下所示:/*函数功能:ADC端口初始化子程序*/void init_ad()PORTA=0XFF;TRISA=0X01; /设置RA0为输入ADCON0=0X41; /系统时钟f/8,选择RA0通道,允许ADC工作ADCON1=0X0E; /ADRESH用于存放A/D转换结果高八位,RA0做模拟输入口delay();/*函数功能:ADC模块接受子程序*/unsigned char read_ad()ADGO=1;while(ADGO);return(ADRESH); /只返回转换值的高八位/*函数功能:延时子程序*/void delay()int i;for(

21、i=200;i0;i-);2.3 主控同步串口MSSP介绍2.3.1 I2C总线介绍MSSP模块主要用来和带串行接口的外围器件或者带有同类接口的单片机进行通讯的一种串行接口。这些外围器件可以是串行的RAM、EEPROM、Flash、LCD驱动器等。MSSP模块可以工作于一下两种模式:芯片间总线(I2C)串行外围接口(SPI)I2C总线是Philips Semiconductors在20世纪80年代中期开发的,最初用于音频和视频目的,如今主要在服务器管理中使用,由于只需要微控制器的两个端口引脚就可以传输任意特性的数据,所以I2C总线协议得到了广泛的应用,并促进了大量的I2C外部芯片的开发。I2C

22、总线可用于控制IC卡、数据转换、LCD控制、时钟控制、存贮器控制、多机通信等。其主要的优点是其简单性和有效性,由于接口在组件上,因此I2C总线占用的空间非常小,其另外一优点是,它支持多主控,其中任何能够进行发送和接受的设备都可以成为主总线,一个主控可以控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控6。I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接受数据,最高传送速率100kbps,各种被控制电路均并联在这条总线上,且每个电路和模块都有唯一的地址,在信息传输过程中,I2C总线上并接的每一模块电路既是主控器,又是发送器,这取决与它所要完成的功能。CPU发出的控制信号

23、分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为低电平时,SDA由低电平想高电平跳变,结束传送数据。应答信号:接受数据的IC在接受到8bit数据后,向发送数据的IC发送特定的低电平脉冲,表示已收到数据。CPU向受控单元发送一个信号后,等待受控单元发送一个应答信号,CPU接收到应答信号后,根据实际

24、情况作出是否继续传递信号的判断。若未收到应答信号,则判断受控单元出现故障。2.3.2 SPI 简介串行外围设备接口SPI(Serial Peripheral Interface)总线技术是Motrola公司推出的一种同步串行接口。SPI总线是一种三线同步总线,因其硬件能力很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其它事务,因此得到广泛应用。SPI模式允许8位数据同步发送和接收,支持SPI的所有四种方式。SPI模式传输数据需要四根信号线:串行数据输出(SDO)线、串行数据输入(SDI)线、串行时钟(SCK)和从选择(SS)。其中,从选择线只用于从属模式。当主控同步串口工作于SP

25、I接口模式时,其电路结构如图3.3所示7:图2-5 SPI接口电路结构图SPI的核心部分是数据缓冲器SSPBUF和由SSPBUF实现装载与卸载的数据移位寄存器SSPSR,寄存器SSPSR数据移入端与引脚SDI连接,其输出端与SDO连接,移位时钟取自引脚SCK。要让SPI串行端口工作,必须把MSSP模块的使能位SSPEN置1。这样就可以把引脚SDI、SDO、SCK和SS作为SPI接口的专用引脚,并且还得对其方向位进行相应定义:SDI引脚的I/O方向由SPI接口自动控制,应设TRISC4=1;SDO引脚定义为输出,即TRISC5=0;在主控方式下,SCK引脚为输出,即TRISC3=0;在从动方式下

26、,SCK引脚为输入,即TRISC3=1;在从动方式下如果用到SS引脚,则定义为输入,即TRISA5=1;针对本设计,主机和从机的SPI模块的初始化程序分别如下所示:/*函数功能:主机SPI端口初始化程序*/void init_spi()TRISC5=0; /SDO引脚定义为输出TRISC3=0; /SCK引脚定义为输出TRISB1=0; /RB1引脚定义为输出SSPCON=0X30; /允许串行口工作,时钟=f/4SSPSTAT=0X80; /在输出数据末端采样输入数据/*函数功能:SPI方式初始化程序如下:*/void init_spi()TRISA5=1; /RA5(片选)引脚定义为输入T

27、RISB=0X00; /B口定义为输出TRISC3=1; /SCK引脚定义为输入TRISC4=1; /SDI引脚定义为输入SSPCON=0X34; /SPI从动工作方式SSPSTAT=0X00;两片PIC单片机直接进行SPI通讯,其典型电路连接如图4.2所示,SPI主要使用4个信号:MOSI、MISO、SCK(串行时钟)和CS(片选)。其中,SCK由主机产生,在双机SPI通讯中,这四个信号线的连接如图4-2所示:主机的SDO与从机的SDI相连,主机的SDI与从机的SDO相连,主机的SCK与从机的SCK相连作为传输的同步时钟,控制所有数据传输;另外在双机SPI通讯中,还必须用到从机的RA5/SS

28、引脚,主机通过控制从机RA5/SS引脚是高电平还是低电平来决定SPI传输是否能够进行,当RA5/SS引脚为低电平时,从机可以进行发送和接受,当RA5/SS引脚为高电平时,即使在发送数据过程中,从机的SDO输出也会变为高阻浮空状态。主机和从机都要用到串行输入缓冲器(SSPBUF);主机通过向自己的SPI串行寄存器写入1个字节来发起1次传输,然后通过SDO信号线将数据传给从机,同时从机也可将将自己移位寄存器中的容通过SDO信号线返回给主机,如图4.2所示。这样,两个移位寄存器中的容就交换了。在实际应用中,如果只进行写操作,则主机只需忽略收到的字节即可;如果主机要读外设的数据,必须发送1个字节来引发从机的传输,发送的这个字节可以是任意数据8。图2-6 双机SPI通讯连接框图2.3.3 SPI主模式接口设计由于控制时钟SCK的输出,主模式可以在任何时候开始

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1