基于555多谐振荡器及STM32的简易智能阻值测量仪( 二 )

图65V转3.3V
1.5按键模块
该系统中的按键模块采用矩阵形式 , 4行4列16个键 , 其中有代表0~9数字的按键 , 1个输入确认按键 , 3个为阻值单位(Ω , kΩ , MΩ) , 1个为输入清除按键 。 按键电路通过8根线连接到单片机I/O口 , 让单片机对这些I/O口轮流检测 , 以确定行数和列数 , 最后通过软件求得输入值 , 如图7所示 。 
图7按键模块
1.6显示模块
该系统用LCD1602作为显示屏 , 显示屏为ASCII码字符 , 只能显示字符 , 一行可以显示16个字符 , 总共有2行[4] , 用来显示按键电路输入的值、测量值 。 其工作温度符合仪器要求且价格低廉 , 适合在该系统内使用 。 由于STM32的I/O口可以配置上拉电阻 , 在使用时无需外接上拉电阻 。
在第3引脚接上可调电阻器 , 以调节LCD1602显示屏的对比度 , 通过配置LCD1602的4、5、6引脚的电平状态可以读取和写入LCD1602显示屏的状态、数据和指令 。 第15、16引脚为LCD1602显示屏的背光电源正负极 , 而剩余的第7至第14引脚为数据口 , 如图8所示 。 
图8显示模块
2测量仪的软件设计
上电开始时 , 该系统首先最STM32初始化 , 接着进入键盘输入子函数 , 等待输入阈值;然后通过STM32控制给555多谐振荡器测试电路上电开始测试 , 通过输入捕获测量测试电路的频率 , 再通过软件计算得出测量阻值(如图9) 。 
图9软件流程图
2.1STM32初始化
该系统的初始化主要为系统时钟初始化、串口初始化和输入捕获初始化等 。
2.1.1系统时钟初始化
该系统中555多谐振荡器的频率较高 , 且需要进行多个快速测试 , 则需要STM32进行快速反应 , 故STM32选取外部高速时钟源 , 可进行PLL锁相环倍频 , 让工作频率达到72MHz[2] 。 其流程图如图10所示 。 
图10时钟初始化
2.1.2串口初始化
初始化主要是对传输数据速率等进行设置 , 需要设置相关的时钟、引脚的输入输出模式和传输数据格式 , 另外还需设置中断服务函数来读取数据 , 如图11所示 。 
图11USART串口初始化
2.1.3输入捕获初始化
当输入捕捉到跳变电平时 , 将当前定时器的值存放到对应的寄存器中 , 完成一次对脉冲宽度的计算 。 因此需要开始定时器和I/O口的时钟 , 初始化定时器 , 配置定时器的计时频率和计算周期;初始化输入捕获 , 定义其触发捕获的对象及其上升或下降沿;最后还要编写一个中断服务函数 , 用来计算脉冲宽度和开启其他通道的输入捕获 。 
图12输入捕获初始化
2.2键盘输入
- One|基于Android 13打造:三星Galaxy S22抢先用上One UI 5.0
- 英伟达|NVIDIA Triton 推理引擎公开课上新:基于多实例 GPU 和 K8s 的大规模 CV 模型部署实践
- 苹果|澳大利亚成功制造了可控光流组件,基于光的通信设施将迎来革新
- 致远互联|跨时空协作的利器——基于生命周期管理的基础设施BIM平台
- 基于深度学习的点云分割网络及点云分割数据集
- OPPO|杀后台问题有救了!OPPO新系统曝光:基于Android 13
- 基于Android 13定制 OPPO ColorOS 13曝光:彻底解决杀后台问题
- 三星计划在2025年开始大规模生产基于GAA的2nm芯片
- Java|基于java的格式转换word 转 pdf、word 转图片等
- 电子商务|基于java的格式转换word 转 pdf、word 转图片等
