3硬件设计
3.1 总体规划
该系统采用应变片式传感器进行测量,得出模拟信号;再进行放大,然后送入单片机进行模数转换处理和数据处理。由传感器模块、主机接口模块、按键与显示模块组成。
3.2 主控制器电路
主控制器是STC12C5A60S2单片机,其外围电路简单,只需要加上晶振电路和电源就可以工作。主控制器电路如图5所示。
图5 主控制系统
10
3.3 传感器放大电路
传感器放大电路由两级组成,前级由两个同相比例运算电路组成,后级是一个差动比例运算电路。传感器信号首先进过前级进行初步放大,接着进入后级。由于前级的对称性直接影响后级的共模抑制比,考虑到元件阻值的误差,R2,R4选用多圈精密可调电阻。为了提高后级对共模信号的抑制,反馈电阻R3也采用精密多圈可调电阻。传感器放大电路如图6所示。
图6 传感器放大电路
3.4 显示电路
1602液晶模块的引脚连线如图7。其中,第1、2脚为液晶的驱动电源;第三脚VL为液晶的对比度调节,通过在VCC和GND之间接一个10K多圈可调电阻,中间抽头接VL,可实现液晶对比度的调节;液晶的控制线RS、R/W、E分别接单片机的P0.5、P0.6、P0.7;数据口接在单片机的P2口;BL+、BL-为液晶背光电源。
11
图7 1602液晶模块的接线图
1602液晶模块的初始化过程: 延迟15ms
写指令38H(不检测忙信号) 延迟5ms
写指令38H(不检测忙信号) 延迟5ms
写指令38H(不检测忙信号)
(以后每次写指令、读/写数据操作之前均需检测忙信号) 写指令38H:显示模式设置 写指令08H:显示关闭 写指令01H:显示清屏 写指令06H:显示光标移动设置 写指令0CH:显示开及光标设置
12
1602液晶模块的读操作时序如图8所示。
图8 1602液晶模块的读操作时序
1602液晶模块的写操作时序如图9所示。
图9 1602液晶模块的写操作时序
13
4 软件设计
4.1 系统应用程序组成
本设计采用C语言编程,编译环境为keil UV3。
keil c51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。
软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。程序结构如图10所示。
图10 程序结构
14