基于stm32的简易数字电压表的设计与实现内容摘要:

~85176。 C7 = 工业级温度范围, 40176。 C~105176。 C内部代码 A 或者空 (详见产品数据手册 ) 选项 xxx = 已编程的器件代号 (3个数字 )TR = 卷带式包装 2) STM32 系列的最小系统设计和 独立的 A/D 转换器供电和参考电压 最小系统主要包括调试接口 .震荡电路 .引导设置 .复位电路和供电系统。 电路由稳定的电源 VDD供电。 值得注意的是,如果使用 ADC, VDD的范围必须在 ;如果没有使用 ADC, VDD的 范围为。 启动模式选项 :由开关 SW( BOOT0)和 SW(BOOT1)配置。 如图 2所示 图 2 复位电路 : 复位信号是低有效,复位源包括复位按钮 JP3和连在连接器上的调试工具。 如图 3 图 3 时钟源 : 两个时钟源被用于这个微控制器。 LSE X1用于嵌入式 RTC的 ; HSE X2用于 STM32F103微控制器的 8MHz晶振。 如图 4所示 图 4 去耦电容: 去耦电容就是起到一个电池的作用,满足 驱动电路 电流的变化,避免相互间的耦合干扰。 由 11 个 100nf 的陶瓷电容和一个钽电容组成。 如图 5 所示 图 5 独立的 A/D转换器供电和参考电压 : 为了提高转换的精确度, ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。 ● ADC 的电源引脚为 VDDA ● 独立的电源地 VSSA 如果有 VREF引脚 (根据封装而定 ),它必须连接到 VSSA。 100 脚和 144 脚封装: 为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压 ADC 到 VREF+和 VREF脚上。 在 VREF+的电压范围为 ~ VDDA。 如图 6 所示 图 6 3) STM32系列的内 ADC转换逻辑 12 位 ADC 是一种逐次逼近型模拟数字转换器。 它有多达 18 个通道,可测量 16个外部和 2个内部信号源。 各通道的 A/D 转换可以单次 、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高 /低阀值。 ADC 的输入时钟不得超过 14MHz,它是由 PCLK2经分频产生。 ADC 主要特征 ● 12位分辨率 ● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断 ● 单次和连续转换模式 ● 从通道 0 到通道 n的自动扫描模式 ● 自校准 ● 带内嵌数据一致性的数据对齐 ● 采样间隔可以按通道分别编程 ● 规则转换和注入转换均有外部触发选项 ● 间断模式 ● 双 重模式 (带 2个或以上 ADC 的器件 ) ● ADC 转换时间: ─ STM32F103xx增强型产品:时钟为 56MHz时为 1μs(时钟为 72MHz为 ) ─ STM32F101xx 基本型产品:时钟为 28MHz 时为 1μs(时钟为 36MHz 为 ) ─ STM32F102xxUSB 型产品:时钟为 48MHz时为 ─ STM32F105xx和 STM32F107xx产品:时钟为 56MHz时为 1μs(时钟为 72MHz为 ) ● ADC 供电要求: ● ADC 输入范围: VREF ≤ VIN ≤ VREF+ ● 规则通道转换期间有 DMA请求产生。 我们需要打开一个 ADC输入端口,使外部的模拟量被采集,这样才能通过内部的 ADC转换器和驱动电路来实现转换成数字量。 采集模拟量的电路如图 7所示 图 7 控制逻辑有三个作用:第一,识别积分器的工作状态,适时发出控制信号,使A/D 转换正常进行;第二,判定输入电压极性并控制 LCD 的负极性显示。 串口通信 由于微控制器的控制是通过编程语言来控制的,所以需要外 设的串口来实现编程语言的读写。 通用异步收发器 (UART)是一种串行接口,一般微处理器中都包含这种外设接口。 异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。 如果再加入一个合适的电平转换器 MAX232,串口就能能用在 RS232 和 RS485 等网络中实现通信,或者与计算机的 COM 端口连接。 串口只需两根信号线 (RX 和 TX)即可实现,而且只要两端器件都采用同样的位格式和波特率,那么它们无需其它任何对方的信息就可以成功传输数据。 电路图如图 8所示 图 8 LCD显示电路设计 由于 STM32是一种高集成芯片,所以在显示液晶屏电路上就少了很多附带的驱动电路,我们选用 采用自带驱动模块的液晶屏 ,这样就少了外围驱动电路。 LCD 的显示电路如图 9所示 图 9 第 三 章 电路原理图与 PCB 板设计 我们用电路板绘图软件 protel,绘制电路原理图并生成 PCB 板,在绘制完原理图生成PCB 板的布线与原件的排列方面有很多值得注意 的问题,如地线与电源线必须加粗,尽量避免出现绕线的现象,因为这样就增加了信号传输的时间,尽量减少线的使用,相同器件尽量布在一起,这样方便以后电路板的焊接等等规则。 根据要求和以上的分析得到的原理图与PCB 板图如图 10 所示 第四章 系统软件 程序 设计 我们采用的是 Kilc4编写与烧入软件,在 Kilc4中建立项目并建立 c语言文件,在文件中编写 c语言程序,编写完毕后在软件中的选项 flash中的 configure flash tools中设置参数,设置成适合 CortexM3嵌入式处理器 STM32合适的参数。 最后编译检查程序的正确与否,如果可以创建目标文件则可以烧入微控制器中,否则检查是否有错误或是警告,排除错误或是警告,最终实现创建目标,最后烧入火牛开发板,检验程序是否符合设计要求,看液晶显示屏上的检测电压是否随着模拟输入电位器的旋转改变而改变。 简易数字电压表的控制程序为: 显示程序 .c : include include include include include include include int main(void) { u16 adcx。 float temp。 float temperate。 Stm32_Clock_Init(9)。 //系统时钟设置 delay_init(72)。 //延时初始化 // uart_init(72,9600)。 //串口 1 初始化 LED_Init()。 LCD_Init()。 Adc_Init()。 POINT_COLOR=RED。 //设置字体为红色 LCD_ShowString(60,50,Fire Bull STM32)。 LCD_ShowString(60,70,1 )。 LCD_ShowString(60,110,2020/12/26)。 //显示时间 POINT_COLOR=BLUE。 //设置字体为蓝色 LCD_ShowString(60,130,TEMP_VAL:)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。