
简介这是一份面向全国大学生电子设计竞赛的《电赛报告书模板.doc》以2017年电赛P题“简易水情检测系统”为实例适合嵌入式、传感器应用、单片机开发方向的参赛学生和指导教师参考。模板完整呈现了摘要、系统方案论证、理论分析与计算、硬件设计等报告章节重点围绕STC15F2K60S2单片机、超声波测距模块、PH值传感器、智能串口HMI触摸屏及电源管理模块展开既展示了完整设计流程也包含了C51与STC15F2K60S2、激光/红外/超声波测距等方案对比以及系统理论分析的细节。资源包共一个文件doc格式体积357KB为可直接编辑的规范模板。该模板在CSDN已有9081人浏览学习热度较高。借助这份模板参赛者可以快速理顺报告结构、补齐必要章节同时借鉴其中的选型论证、参数计算和模块电路分析写法节省大量排版与构思时间更专注于系统搭建与调试。对于初次参赛或希望提升报告规范度的团队是一份实用且高效的备赛工具。1. 一份电赛报告书模板凭什么值得下载研究每年电赛季最让人头疼的不是调电路而是写那份规定在 6 页内的设计报告。很多参赛队硬件做完了程序跑通了卡在方案论证和理论计算上写不出东西。这份电赛报告书模板正好是 2017 年高职高专组 P 题「简易水情检测系统」的完整参赛报告从摘要、方案论证、理论计算到测试记录全部齐全核心是 STC15F2K60S2 单片机配合超声波测距模块与 PH 值传感器实现水位高度和水质酸碱度的实时监测再通过智能串口 HMI 触摸屏显示。对准备嵌入式方向的电赛报告、课程设计报告或者想掌握一套完整数据采集系统设计流程的人来说这是一份能照着改、不会写了就抄结构的落地素材而不是那种只有封面和目录的空壳模板。它真正值钱的是方案对比的写法、公式的计算过程以及测试数据的呈现方式。2. 方案论证的写法为什么是 STC 而不是 C51为什么是超声波而不是激光2.1 主控芯片对比从 C51 到 STC15F2K60S2 的取舍逻辑报告里第一个硬核部分就是主控芯片的论证。很多新手写方案论证喜欢堆参数但这份模板给出了一个教科书级的对比框架老 C51 运行速度慢、存取量小只能跑单项任务中断处理能力弱遇到复杂程序直接卡死而 STC15F2K60S2 属于 1T 增强型 8051 内核单片机指令执行速度比传统 12T 的 C51 快得多程序空间达到 60KB 级别内部还有 2KB 左右的 SRAM能支撑起多传感器数据采集、运算和 HMI 通信这种组合任务。实际做电赛项目时我一般会补充一句STC 单片机的 ISP 下载非常方便用 USB 转 TTL 串口就能烧录竞赛现场临时改程序不用依赖仿真器这在高强度调试时特别关键。选型不是越贵越好而是看任务规模是否匹配。这个水情检测系统同时要处理超声波回波时间计算、PH 值模拟量采集、HMI 串口通信三个并行任务C51 的资源确实扛不住。如果项目换成更复杂的 PID 控制加多路传感器STC15 系列也可以但要留意它没有硬件乘除法器浮点运算靠软件模拟会拖慢主循环这时候就需要把计算拆到中断里做。2.2 测距方案三选一激光传感器、红外传感器与超声波传感器传感器选型这部分模板用了「排除法」来论证这个思路很值得学。激光传感器测距精度和灵敏度确实高但主要面向远程、无障碍测量场景成本高用在几十厘米的水槽测量纯属杀鸡用牛刀。红外传感器的思路是发光管发出红外光、光敏管接收反射光根据光线强弱判断距离缺点是精度低、方向性差而且红外光在液面上的反射受水质和光照影响很大环境光一强读数就飘。超声波测距属于非接触检测通过发射高频声波并计算回波时间差来定位水面位置在一定距离内不受光线影响结构简单、成本低精度也够用。关键点在于超声波不受水质影响。这一点在水情检测场景里是决定性优势因为水的浊度、颜色不影响声波反射而红外和激光在浑浊水体上表现都不稳定。所以超声波胜出不是因为它参数最强而是它在「1 米内短距离、非接触、低成本、抗水质干扰」这几个维度的综合评分最高。这里要注意边界条件——超声波模块普遍存在近距离盲区问题传感器离水面太近时回波会和发射波重叠导致读数乱跳后面测试章节我会详细讲这个坑。2.3 最小系统板的选择面包板、自制 PCB 还是现成最小系统第三个方案论证是系统控制方案的搭建方式。面包板搭建最方便改硬件但连线多、相互干扰电路杂乱可靠性低自制印刷电路板效果好但制作周期长需要腐蚀、钻孔、焊接对竞赛节奏来说太冒险。综合权衡后选单片机最小系统包含显示接口、矩阵键盘、A/D、D/A 等常用外设能明显减少外围电路设计降低整体难度。这里要补充一个赛前准备习惯不管选最小系统板还是自制核心板务必提前烧录一个「跑马灯测试程序」检查每一个 GPIO 引脚、每一个电源引脚能否正常输出。电赛现场因为核心板某个引脚虚焊导致传感器读不到数据的翻车案例太多了这个预检动作能帮你排除一半的硬件故障。最小系统方案在竞赛场景里确实是容错率最高的选择因为它把风险集中在一块验证过的板子上而不是分散在你自己焊接的电路里。3. 理论计算与公式实现PH 标定和超声波测距的数学内核3.1 超声波液位测量从回波时间到水位高度的换算链路超声波测距的核心等式在模板里写得很清楚已知容器总高度为 H超声波传感器测量到水面的距离为 S则被测液体的高度 h H - S。这个公式看起来简单实际工程化处理时有两个细节必须注意。第一个是声速的温度修正声波在空气中的传播速度约为 340m/s但温度每升高 1℃声速大约增加 0.6m/s如果环境温度从 20℃ 变到 35℃声速变化带来的误差在 1 米量程上可能达到毫米级以上。第二个是回波时间测量的起点超声波模块发射脉冲到收到回波的时间 T实际是声波走完「去程 回程」的总时间所以 S 声速 × T / 2这个除以 2 的系数很容易漏掉。如果用 STC15F2K60S2 做主控常见做法是用定时器捕获回波引脚的电平宽度。HC-SR04 这类模块的 Trig 引脚给一个 10us 高电平触发Echo 引脚会输出一个与距离成正比的高电平脉冲用单片机定时器测量这个高电平持续的时间再套进公式就能算出距离。如果项目要求更高精度还可以在传感器附近加一个 DS18B20 温度传感器实时测量温度并代入声速修正公式这也是很多电赛队伍在超声波测距基础上做的加分项。3.2 PH 值传感器的线性化标定公式参数与代码实现PH 值检测部分模板给出了一个具体的标定公式pH 7.0 (Vout - pHoffset) / (pHslope * K * 1.98416E-4)其中 pHslope 4.6534pHoffset 2.5013Vout 是 PH 传感器模块的输出电压K 为放大增益1.98416E-4 是标定时使用的灵敏度系数常数。这里真正值钱的是 pHslope 和 pHoffset 这两个参数——每支 PH 电极的零点电位和斜率都会有差异出厂给出的标称值只能作为初值实际使用时必须用标准缓冲液重新标定。模板里这两个参数直接写在公式里恰好说明了这套公式不是抄来的是实测标定过的。标定流程其实不复杂用 pH4.00 和 pH6.86 两种标准缓冲液分别测得传感器的输出电压然后做一次线性拟合。我一般会把这组数据丢进 Python 里跑一下把斜率换成 4.00 和 6.86 两个点之间计算出来的实际值而不是直接信任初始参数。下面的脚本演示了这个过程import numpy as np # 输入: 标准缓冲液标称 pH 值与传感器输出电压 ph_values np.array([4.00, 6.86]) # 标准液标称值 voltages np.array([2.060, 2.515]) # 实测输出电压, 单位 V, 示例数据 # 线性拟合: ph k * Vout b k, b np.polyfit(voltages, ph_values, 1) # 换算成模板公式中的参数形式 kslope 4.6534 * 1.98416e-4 # 出厂标称斜率 # 由拟合结果反推 offset 与增益 offset (7.0 - b) / (k * 1.98416e-4) K k / (4.6534 * 1.98416e-4) print(f线性拟合: pH {k:.4f} * Vout {b:.4f}) print(f等效参数: K {K:.3f}, pHoffset {offset:.4f})这段代码的作用是把两点标定的原始数据转换成模板公式里的 K 和 pHoffset 参数替换掉出厂标称值后PH 测量的绝对误差能从 ±0.3 缩到 ±0.1 左右。参数说明ph_values 是标准液的标称 pH 值voltages 是传感器在两种标准液里的实测输出电压polyfit 做一阶线性拟合输出的 k 和 b 再反解出公式中需要的 K 和 offset。注意缓冲液温度最好和被测水温一致因为 PH 电极的响应有温度系数温差过大会把标定后的精度又拉回去。这才是所谓「PH 值测距模块」背后真正要处理的工程细节。3.3 电源与 A/D 转换的分辨率约束电压显示值的背后逻辑电源部分模板没有展开太多只说明由变压、滤波、稳压组成为系统提供 5V 或 12V 电压采用三端稳压管实现。这里有一个隐性的技术点STC15F2K60S2 内部集成 A/D 转换器输入范围 0~5V用于采集 PH 传感器输出电压和电源电压。10 位 ADC 在 0~5V 量程下的理论分辨率是 5V / 1024 ≈ 4.88mV换算到 PH 值大概是 0.02 到 0.05 的步进这决定了系统最终显示的 PH 值不可能无限精确。超声波测得的水位高度显示到 0.2mm也是类似情况——这个数值是软件计算后的显示分辨率不是物理测量精度实际精度还要看超声波模块本身的回波时间分辨能力。考虑到单片机 ADC 的参考电压稳定性会直接影响 PH 值的读数漂移我习惯在电源输出端加一个 100uF 电解电容和 100nF 陶瓷电容做去耦同时在 PH 传感器模块的供电脚再加一组 LC 滤波。这笔小成本投入对数据稳定性的提升非常直观PH 显示值在静止水槽里从每秒钟跳 0.1 变成完全稳定少掉很多后期调软件的痛苦。4. 电路与程序架构从系统框图到 HMI 交互的完整实现链路4.1 系统总体框图与模块化电路设计模板给出的系统总体框图按功能划分为五个部分STC15F2K60S2 单片机控制模块、超声波测距模块、PH 值传感器模块、电源模块和水槽被测对象。这个划分本身就是嵌入式系统设计的标准做法——每个模块独立成块、独立供电、独立调试最后再统一集成。超声波测距子系统框图和 PH 值检测子系统框图在报告里分别给出各自包含传感器探头、信号调理电路和与单片机的接口。实际电路设计时PH 值传感器的输出信号是毫伏级电压要进入 STC15F2K60S2 的 ADC 前通常需要经过一级运放做阻抗变换和电压放大。常见的做法是用单运放搭建同相放大电路增益 K 就对应公式里那个 K 值。超声波模块则是标准的 Trig/Echo 四线接口直接连接单片机的两个 GPIO不需要额外外围电路。两张电路图上最值得抄的是标注方式每一路信号都要标清楚电压范围和连接引脚这样写报告时画原理图不会漏线评审老师看原理图时也能一眼看出整体数据流。4.2 单片机主程序与传感器子程序的流程设计程序设计部分模板没有给出完整源码但流程图结构很完整主程序负责初始化各个外设模块、进入主循环轮询传感器数据、处理 HMI 通信超声波子程序负责发送触发信号、捕获回波时间、计算距离PH 值子程序负责 ADC 采样、多次平均滤波、查表或公式换算HMI 液晶屏子程序负责串口数据帧的组装与发送。这个多任务协作的流程值得仔细琢磨——超声波测距不能阻塞主循环否则 PH 采样和 HMI 刷新都会卡顿。// 主循环示例: 非阻塞传感器轮询 void main(void) { System_Init(); // 初始化时钟、GPIO、定时器、ADC、串口 while (1) { if (ultrasonic_ready_flag) // 超声波回波捕获完成标志 { distance_cm calc_distance(); // 用定时器计数值换算距离 water_level TANK_HEIGHT - distance_cm; // h H - S ultrasonic_ready_flag 0; } if (ph_sample_flag) // 定时采样标志, 每 200ms 置位一次 { ph_voltage read_ph_adc(); // 读取 PH 传感器输出电压 ph_value calc_ph(ph_voltage); // 代入标定公式计算 pH ph_sample_flag 0; } hmi_send_data(water_level, ph_value, ph_voltage); } }这段伪代码展示了主循环的骨架结构ultrasonic_ready_flag 和 ph_sample_flag 是两个关键的状态标志分别由定时器中断和外部中断置位主循环只是轮询标志位并处理数据这样传感器采样不会阻塞 HMI 的串口发送。calc_distance() 的计算核心是 S 声速 × 时间 / 2calc_ph() 则对应上一章的标定公式。参数说明TANK_HEIGHT 是水槽深度常量需要根据实际容器修改ph_sample_flag 置位周期建议 200ms 左右太频繁则 ADC 采样噪声来不及平均太慢则 HMI 显示刷新有肉眼可见的滞后。4.3 智能串口 HMI 触摸屏与单片机的指令交互人机交互部分模板选了智能串口 HMI 触摸屏这是电赛和实际产品中都很常见的方案。数据显示的本质是单片机通过串口向触摸屏发送指令帧触摸屏解析后更新控件属性。以 USART HMI 为例常用的指令格式是 page 切换页面、n0.val123 更新数值控件、t0.txt... 更新文本每条指令以 0xFF 0xFF 0xFF 结尾。单片机端的串口波特率要和触摸屏配置一致通常选 9600 或 115200上电后触摸屏需要 1~2 秒初始化单片机最好延时后再发送第一条指令。这套通信方式的价值在于把显示逻辑完全交给触摸屏处理单片机只需要维护一个数据发送状态机代码量大幅减少也更容易复用。5. 测试方案与常见问题排查从仿真到联调的真实记录5.1 三步走测试流程硬件测试、软件仿真与软硬联调模板的测试部分分了三个层次这是一个完整的嵌入式测试方法论。第一步硬件测试把 STC15F2K60S2 单片机与 PH 值传感器、超声波传感器和液晶屏连好PH 金属探头放入水槽超声波探头固定在水槽上方的支架接上电源后观察液晶屏读数。原文提到从液晶屏中可以读取到水位高度 0.2mm、PH 值和电压值。第二步软件仿真测试在 USART HMI 软件上建立模拟页面计算 PH 值、电压值和水位高度验证显示逻辑正确。第三步软硬件联调把仿真通过的软件逻辑烧录进单片机实机运行确认各个数据通路全部打通。这三步的价值在于把「硬件问题」和「软件问题」隔离开。如果一上来就软硬联调数据不对的时候根本不知道是传感器坏了、单片机程序错了、还是触摸屏指令格式错了。先单独验证硬件能出数据再单独验证软件逻辑能出正确结果最后合在一起故障定位范围会小很多。测试仪器方面模板列出数字万用表、模拟示波器、数字示波器、高精度数字毫伏表——毫伏表主要用来校准 PH 传感器输出电压示波器用来观察超声波回波脉冲的宽度这些仪器在电赛实验室里基本都是标配。5.2 测试数据记录格式以 2V 档信号测试为参照模板给出了一组 2V 档信号测试结果数据表信号值与显示值逐项对比这是报告里非常专业的呈现方式。评审老师最反感的就是只有结论没有数据的测试报告而这张表展示了标准做法给出信号源输入的理论值、系统显示的实测值两者对比直接反映测量误差。表格格式如下信号值V显示值V0.20500.20510.21000.21000.20450.20440.40260.40261.0071.0061.5421.5421.6691.6691.9991.999这个数据表的精妙之处在于覆盖了低电压到接近满量程的多个点位电压值稳到小数点后三位。如果你要复现测试我建议除了照搬这个格式还应该补一列「误差」和一列「相对误差」然后对每组数据重复采集三次取平均值这是让测试报告更有可信度的基本操作。测试条件说明里模板提到「仿真电路和硬件电路必须与系统原理图完全相同并且检查无误硬件电路保证无虚焊」这句话可以直接当作你的测试前提来写——但前提是你真的逐脚核对过网络标号而不是照抄空话。5.3 常见问题排查超声波盲区、PH 漂移与 HMI 乱码这条排查记录是我从多个水情检测项目里整理出来的高频坑模板本身没有明说但按它的电路结构几乎必然会踩到。现象一超声波测距读数在近处乱跳超声波模块和标准液面距离小于模块盲区时Echo 引脚输出的回波脉冲无法被正确解析显示值在 0 和真实值之间来回跳。原因收发一体式超声波探头在发射期间接收电路被钳位近距回波和发射波重叠无法分辨时间起点。解决将传感器安装高度留出至少 5cm 以上的余量保证探头到液面的距离大于模块标称盲区同时在程序里对水位高度做软件限幅超出量程范围直接丢弃本次采样。常见做法是在主循环里连续采样 3 次取中位数能有效滤掉偶发跳数。现象二PH 读数开机后持续漂移刚开始上电时 PH 显示值缓慢变化十几分钟后才趋于稳定。原因PH 玻璃电极存在极化效应刚上电时电极表面电位未完全平衡而且传感器探头从干燥状态进入水中需要一定浸润时间。解决程序上做上电延时系统启动 60 秒后再开始采集 PH 数据采样时连续读 10 次取算术平均值而不是单次采样直接送显示。这个处理属于软件上的「后悔药」治标但很有效。现象三HMI 触摸屏显示乱码或收不到数据单片机向触摸屏发送指令后屏幕无反应或显示乱码。原因最常见的两个——波特率不匹配单片机串口配 9600 而触摸屏工程配置成 115200或者发送指令时没有在帧尾追加正确的结束符。解决先用串口调试助手单机验证触摸屏工程能正常响应再检查单片机端波特率寄存器的配置值。强制在每条指令末尾发送 0xFF 0xFF 0xFF 三个字节作为帧结束标志这个细节在 USART HMI 协议里是必须的漏掉任何一个字节都会导致屏端解析失败。现象四PH 显示值随电机或水泵启动而跳变水槽里接入水泵后PH 值瞬间跳了 0.5 以上。原因水泵启动瞬间拉低电源电压PH 传感器的模拟输出随供电波动发生偏移而 ADC 的参考电压也同步波动双重干扰叠加。解决给 PH 传感器模块单独加 LC 去耦电路并在程序里对 ADC 采用过采样技术把单次采样扩展为 32 次累加再右移 5 位的均值。硬件上隔离强电和弱电共地走线这是真正解决根因的做法。6. 从模板到参赛报告格式规范与答辩前的最终检查这份模板的最后一部分是技术性的格式要求它其实是比正文内容更容易被忽略的得分点。设计报告要求 A4 纸张、6 页以内首页为 300 字内中文摘要正文小四号宋体行距固定为 22 磅不得加页眉页脚每页右下端注明页码单页打印。这些规定直接决定报告是否合规去年就有队伍因为摘要超出 300 字被扣分内容再好也白搭。6 页硬约束下排版策略要比内容策略更重要。我的做法是摘要页单独成页必须控制在 300 字内关键词写 4 到 5 个即可正文部分把章节压成「系统方案选型 → 理论分析计算 → 电路程序设计 → 测试与结论」四个大块每块对应一页到一页半。框图、电路原理图、实物照片属于半页版面的大块素材尽量放在每页的下半部分留出上半部分写文字。源程序不全文贴只截取关键代码段并加上注释完整代码放在附录里附录不计入 6 页。参考文献列 2 到 3 条就够不要为了凑数堆十几条。答辩前我习惯做一次自发自答的检查第一个问题「为什么选这个方案」对照方案论证章节的三组对比来回答第二个问题「测量精度能做到多少」直接引用测试数据表和精度分析第三个问题「成本是多少」把模块采购单价和总成本做一个一览表把电赛评委喜欢问的成本控制问题提前准备好。这套准备做完基本就不会出现被问倒的尴尬。回顾我自己之前带队伍的经验每次提交报告前我都强制走一遍格式 check先检查页数有没有超 6 页再检查首页摘要字数然后逐页看行距和页码是否有误最后统一导出 PDF 预览一次。格式检查放最后是因为内容调整必然导致页数变化先定内容再定格式才不会做无用功。从那以后报告被打回重改的次数少了很多希望这份拆解也能帮你在电赛路上少踩几个格式和硬件上的暗坑。本文还有配套的精品资源点击获取