【摘要】本设计的硬件系统设计主要包括五个部分:分别是电源模块、测试电压输入模块、ADS1115模数转换部分、STC8A8K64S4A单片机最小系统部分、LCD1602液晶显示部分以及数模转换模块。首先由单片机初始化ADS1115模数转换芯片和LCD 1602液晶显示,当外接被测电压后,ADS1115将模拟电压信号转换为数字信号输入到单片机的I/O口,通过单片机处理后将电压的大小显示在LCD 1602液晶上面。数模转换模块的起到电压表自检功能,DAC电路通过控制时钟电路根据积分换算原理将其转换为模拟信号,传入ADC的AIN口,进行电压检测转换,再显示到液晶上。
### **1,需求分析**
\*\*(1) \*\***功能性需求:**
① 信号采集,要实现外部电压信号的实时采集
② ADC电路,实现从采集的模拟信号到数字信号的转换
③ 显示电路,将数字信号量化表示出来
④ 存储电路,利用记忆模块存储至少五组数据,可以回看
⑤ 按键: 一号(电源系统开关);二号(两种模式转换);三号(复位键 数据更新);四号(数据查看上翻键);五号(数据查看上翻键)
\*\* 非功能性需求:\*\*
① 电路原理图以及PCB布局规范美观整齐
② 设计外观小巧精致
③ 响应速度提升
④ 数据结果准确误差小
⑤ 测量精度高
\*\*(2) \*\***技术性能指标**
① 满量程范围FSR:0~5V
②测量精度:19.53mv
③基本误差:1~4 mv
④转换速度:32us
\*\*(3) \*\***所需知识及材料**
所需知识:
① C51单片机的基础知识,包括静动态数码管、按键、中断、串口通信、EEPROM-IIC、A/D及D/A转换、LCD1602液晶显示等
② 基础数电模电知识
③ 基础原理图和PCB设计知识与技巧
④ 立创EDA软件学习
⑤ 实用电子电路设计知识基础
⑥ C51编程语言
### **2\. 方案选择与论证**
**⑴\*\*\*\*硬件的方案选择与论证**
STC8A8K64S4A12芯片是由STC公司开发的,该款单片机不需要外部晶振和外部复位,在相同的工作频率下,STC8系列单片机比传统的8051越快12倍,而且内部有最大64K字节Flash空间的存储器,用于存储用户代码,支持用户配置EEPROM大小,512字节单页擦除,擦写次数可达10万次以上。
因为本次设计中我们需要编写的程序代码较多,为防止存储器空间不够,我们选STC8A8K64S4A12单片机芯片。同时在线编程可擦除的优点也方便我们对编写的代码随时进行修改。
因此我们选择STC8A8K64SA12芯片。
**(2)软件仿真方案选择与论证**
在软件仿真中,我们选择了较为熟悉的C51芯片,替代了硬件设计中的STC8A8K芯片,因为STC芯片仿真模型较少,不稳定等情况,使得我们选择利用一个外部EEPROM结合C51芯片替代了硬件电路中的STC8A8K芯片。除此之外,由于在验证ADS1115过程中遇到困难(后面有具体分析),也采用了ADC0832来验证其他模块。
### 3\. 系统架构及功能描述
⑴ 硬件设计
![图像 1.png](//image.lceda.cn/pullimage/QvhtxylaT4aUrjx1V7yG7hQmYc2wpxBSaDVMgHEs.png)
由上图可知,本设计的硬件系统设计主要包括五个部分:分别是电源模块、测试电压输入模块、ADS1115模数转换部分、STC8A8K64S4A单片机最小系统部分、LCD1602液晶显示部分以及数模转换模块。首先由单片机初始化ADS1115模数转换芯片和LCD 1602液晶显示,当外接被测电压后,ADS1115将模拟电压信号转换为数字信号输入到单片机的I/O口,通过单片机处理后将电压的大小显示在LCD 1602液晶上面。数模转换模块的起到电压表自检功能,DAC电路通过控制时钟电路根据积分换算原理将其转换为模拟信号,传入ADC的AIN口,进行电压检测转换,再显示到液晶上。
**① 电源模块设计**
系统电源使用直流5V,由电脑USB接口提供电源,通过CH340G转接芯片实现 USB 转串口。
CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口。
特点:(1)全速 USB 设备接口,兼容 USB V2.0。
(2)仿真标准串口,用于升级原串口外围设备,或者通过 USB 增加额外串口。
(3)计算机端 Windows 操作系统下的串口应用程序完全兼容,无需修改。
(4)支持 5V 电源电压和 3.3V 电源电压甚至 3V 电源电压。
(5) CH340C 和 CH340B 内置时钟,无需外部晶振,CH340B 还内置 EEPROM 用于配置序列号等。
**② 单片机最小系统设计**
STC8A8K64S4A12 系列特性:(1) 内核 :超快速 8051 内核(1T);指令代码完全兼容传统 8051;22 个中断源,4 级中断优先级;支持在线仿真 。
(2)工作电压 :2.0V~5.5V ;内建 LDO 。
(3) Flash 存储器 : 最大 64K 字节 FLASH 空间,用于存储用户代码 ;支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达 10 万次以上; 支持在系统编程方式(ISP)更新应用程序,无需专用编程器 ;支持单芯片仿真,无需专用仿真器,理论断点个数无限制 。
(4) SRAM:128 字节内部直接访问 RAM(DATA); 128 字节内部间接访问 RAM(IDATA) ;8192 字节内部扩展 RAM(内部 XDATA);外部最大可扩展 64K 字节 RAM(外部 XDATA)。
(5) 时钟控制: 内部 24MHz 高精度 IRC; 内部 32KHz 低速 IRC(误差较大); 有外部晶振(4MHz~33MHz)和外部时钟 ,用户可自由选择 3 个时钟源 。
(6) 复位: 有硬件复位 ;上电复位 ;复位脚复位(高电平复位) ;看门狗溢出复位 。
(7) 中断: 提供 22 个中断源:INT0、INT1、INT2、INT3、INT4、定时器 0、定时器 1、定时器 2、定时器 3、定时器 4、串口 1、串口 2、串口 3、串口 4、ADC 模数转换、LVD 低压检测、PCA/CCP、SPI、I2C、比较器、增强型 PWM、增强型 PWM 异常检测;提供 4 级中断优先级 。
(8) 数字外设: 5 个 16 位定时器:定时器 0、定时器 1、定时器 2、定时器 3、定时器 4,其中定时器 0 的 模式 3 具有 NMI(不可屏蔽中断)功能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式 ; 4 个高速串口:串口 1、串口 2、串口 3、串口 4,波特率时钟源最快可为 FOSC/4 ;4 组 PCA 模块:CCP0、CCP1、CCP2、CCP3,可用于捕获、高速脉冲输出和 6/7/8/10 位的 PWM 输出 ; 8 组 15 位增强型 PWM,可实现带死区的控制信号,并支持外部异常检测功能;SPI:支持主机模式和从机模式以及主机/从机自动切换 ; I2C:支持主机模式和从机模式 。
(9) 模拟外设: ADC支持 12 位精度 16 通道的模数转换 。
(10)GPIO :最多可达 59 个 GPIO:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7、P4.0~P4.4、P5.0~P5.5、 P6.0~P6.7、P7.0~P7.7 ,所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式 。
**③ 模数转换模块设计**
ADS1115是具有16位分辨率的高精度模数转换器(ADC),采用超小型的无引线QFN-10封装或MSOP-10封装。ADS1115具有一个板上基准和振荡器。数据通过一个I2C兼容型串行接口进行传输;可以选择4个I2从地址,采用2.0V至5.5V的单工作电源。ADS1115能够以高达每秒860个采样数据(SPS)的速率执行转换操作。ADS1115 具有一个板上可编程增益放大器(PGA),该PGA可提供从电源电压到低至±256mV的输入范围,因而使得能够以高分辨率来测量大信号和小信号。另外,ADS1115还具有一个输入多路复用器(MUX),可提供2个差分输入或4个单端输入。ADS1115可工作于连续转换模式或单触发模式,后者在一个转换完成之后将自动断电,从而极大地降低了空闲状态下的电流消耗。
Table2.ADS1115引脚说明
| | | | |
| --- | --- | --- | --- |
|
Pin# |
ADS1115 |
数字信号/模拟信号输入/输出 |
功能 |
|
1 |
ADDR |
数字信号输入 |
总线地址选择 |
|
2 |
ALERT/RDY |
数字信号输出 |
数字比较器输出或转换就绪 |
|
3 |
GND |
模拟信号 |
电源地 |
|
4 |
AIN0 |
模拟信号输入 |
输入通道1(正极输入或单端信号输入) |
|
5 |
AIN1 |
模拟信号输入 |
输入通道2(负极输入或单端信号输入) |
|
6 |
AIN2 |
模拟信号输入 |
输入通道3(正极输入或单端信号输入) |
|
7 |
AIN3 |
模拟信号输入 |
输入通道4(负极输入或单端信号输入) |
|
8 |
VDD |
模拟信号 |
电源正极(2V~5.5V) |
|
9 |
SDA |
数字 I/O口 |
串行数据:传输和接受信号 |
|
10 |
SCL |
数字信号输入 |
串行时钟输入:SDA上的时钟数据 |
所有数据通过I2C总线以8位传输。要在I2C总线上发送一个位,在SCL为低电平时将SDA线驱动到适当的电平(SDA上的低电平表示该位为零;高电平表示该位为1)。 SDA线稳定后,SCL线为高电平,然后为低电平。 SCL上的脉冲将SDA位时钟转换为接收器移位寄存器。因为I2C总线驱动器是开漏的,SDA和SCL线都需要上拉电阻。
**④ 液晶显示模块设计**
本系统显示部分采用的是LCD液晶显示,采用一个16\*2的字符型液晶显示模块LCD1602\.它具有重量轻,体积小,功耗低,可显示192种字符(5\*7点字符),32种字符(5\*10点字符),可自编八种字符,指令功能强,可组合成各种输入、显示、移位方式以满足不同要求,接口简单方便可靠性高等优点。
**a****.****LCD1602****的主要技术参数**:
(1)显示容量:16×2个字符
(2)芯片工作电压:4.5—5.5V
(3)工作电流:2.0mA(5.0V)
(4)模块最佳工作电压:5.0V
(5)字符尺寸:2.95×4.35(W×H)mmLCD1602采用标准的14脚(无背光)或16脚(带背光)接口,
**b**\*\*.\*\*\*\*Table3\.\*\***各引脚接口说明**
| | | | | | |
| --- | --- | --- | --- | --- | --- |
|
编号 |
符号 |
引脚说明 |
编号 |
符号 |
引脚说明 |
|
1 |
VSS |
电源地 |
9 |
D2 |
数据 |
|
2 |
VCC |
电源正极 |
10 |
D3 |
数据 |
|
3 |
VL |
液晶显示偏压 |
11 |
D4 |
数据 |
|
4 |
RS |
数据/命令选择 |
12 |
D5 |
数据 |
|
5 |
R/W |
读/写选择 |
13 |
D6 |
数据 |
|
6 |
E |
使能信号 |
14 |
D7 |
数据 |
|
7 |
D0 |
数据 |
15 |
BLA |
背光源正极 |
|
8 |
D1 |
数据 |
16 |
BLK |
背光源负极 |
软件设计流程图:
![1.png](//image.lceda.cn/pullimage/HZYY6QLrsx47N0rxOShHtgsH2MbKQj3g34uz0gYz.png)![2.png](//image.lceda.cn/pullimage/ns9Oi68wEt4JnhZgF9o6MZ8KLuYvq2GBLAnUeK12.png)\~\~\~\~
8
17
收藏到专辑