基于MSP430G2553的电压表设计.docxVIP

  • 44
  • 0
  • 约7.91千字
  • 约 11页
  • 2021-01-16 发布于山东
  • 举报
基于 MSP430G2553 的电压表设计 数字式直流电压表 一、整体说明 在电子技术中,往往离不开对电压的测量,作为一种测量电压的仪器——电压表是近 代电子技术领域的常用工具之一, 在许多领域得到广泛应用。 本设计是基于 TI 单片机设计 的数字式直流电压表,它主要由 MSP430G2553、LCD12864 和分压电路三部分组成。分压 电路先将输入的电压信号衰减一定的倍数,后通过控制双路选择开关设定测量的量程,分 别有 0~3V 和 0~15V 两个档,以便实现精确读数; 分压处理后的电压信号由 MSP430G2553 内部的 ADC10 模块转换成数字信号;再通过 LCD12864 液晶屏进行串行显示。经多次测量实验得出误差范围在 2%以内。 二、原理图 基于 MSP430G2553 单片机设计的数字式直流电压表的电路图如图 1 所示。由于 MSP430 开发板已具备单片机最小系统结构,只需添加显示电路和分压电路。 LCD12864 通过串口方式显示,只需占用单片机 2 个 I/O 口;分压电路可以通过开关 S1 选择量程档位, 只占用 1 个 I/O 口。 图 1 直流电压表电路图 三、接口定义 MSP430G2553 的接口说明如表 1 所示。图 1 中的复位和晶振部分是 MSP430 开发板固有的部分,故不再说明。 P1.0 接液晶屏的 SID 脚,作为串行的数据口用; P1.1 则接液晶 屏的 SCLK 脚,控制串行的同步时钟; P1.4 接分压电路的输出端。 LCD12864 的接口说明 如表 2 所示。当 PSB 脚接低电平时,串口模式被选择。在该模式下,只用 2 根线( SID 与 SCLK )来完成数据传输。 RS 接高电平,不使用片选功能。注意:信号源与单片机之间要 共地。 1 基于 MSP430G2553 的电压表设计 表 1 MSP430G2553 的接口说明 引脚号 引脚名 接口说明 备注 2 P1.0 接 12864 的 5 脚( R/W ) 3 P1.1 接 12864 的 6 脚( E) 6 P1.4 接分压电路的输出端 表 2 LCD12864 的接口说明 引脚号 引脚名 接口说明 备注 1 VSS 电源地 2 VDD 电源正端 4 RS(CS) 电源正端 5 R/W(SID) P1.0 6 E(CLK) P1.1 15 PSB 电源地 19 LED_A 电源正端 20 LED_K 电源地 四、程序流程图 (一)主函数 开始 主函数的流程框图如图 1 所示。主函数主要是调用系统初始化函 系统初始化 数和循环开启 ADC 转换,这是由于 ADC10 采用单通道单次转换模式, 每次采样后需要重新开启 ADC ,才会进行下一次信号采样转换。 另外, 信号的采样与处理以及电压值的显示都是通过中断来完成。 (二)系统初始化函数  开启 ADC 转换 图 1 主函数流程图 系统初始化的流程框图如图 2 所示。该函数对看门狗的工作模式、所需的 I/O 口以及 ADC10 和 12864 进行定义或初始化配置。 (三) ADC 初始化函数 ADC 初始化的流程框图如图 3 所示。该函数的任务是对转换控制寄存器 ADC10CTL0 和 ADC10CTL1 的初始化配置。其中, ADC10CTL0 需要配置的是 ADC10 的开关、采样周期、参考电压、 ADC10 中断使能;而 ADC10CTL1 则只需要对外部采样通道和 ADC 的工作模式进行选择。 (四)液晶屏初始化 液晶屏初始化的流程框图如图 4 所示。该函数需要写指令控制:清屏指令、功能设定为基本指令集操作、地址归 0、开显示且关闭光标及其反白显示。 2 基于 MSP430G2553 的电压表设计 系统初始化开始 设看门狗为定时器模式 ADC 初始化开始 使能看门狗中断 ADC10CTL0=~ENC 设 P1.0~P1.1 口为输出 ADC10CTL0|=ADC10ON 液晶屏初始化开始 设 P1.4 作 A4 通道 ADC10CTL0|=SREF_0 写指令 0x01 选择电压量程 ADC10CTL0|=ADC10IE 写指令 0x30 ADC 初始化 ADC10CTL1|=INCH_4+CONSEQ_0 写指令 0x02 液晶屏初始化 _EINT( ) 写指令 0x0c 结束 结束 结束 图 2 系统初始化流程图 图 3 ADC 初始化流程图 图 4 液晶屏初始化流程 (五)中断函数 中断函数用到了 ADC 中断函数和看门狗中断函数。 ADC 中断函数的流程框图如图 5 所示,每 4 个 ADC10CLKS 周期会产生一次中断, ADC10 会将采集到的电压值自动保存在转换存储寄存器 ADC10MEM 中,直接读取该寄存器就可以取出数

文档评论(0)

1亿VIP精品文档

相关文档