// typst 0.10.0
#import "../template.typ": *
#import "@preview/mitex:0.2.2": *
#import "@preview/tablem:0.1.0": tablem

#let project(
  title: "电子认识实习",
  authors: ("absolutex"),
  body,
) = {
  set document(author: authors, title: title)

  set text(font: 字体.宋体, size: 字号.小四, lang: "zh", region: "cn")

  set page(
    numbering: (..nums) => {
      "第" + str(nums.pos().at(0)) + "页，共" + str(nums.pos().at(-1)) + "页"
    },
    number-align: center,
    margin: (top: 2.5cm, bottom: 2.5cm, left: 2.5cm, right: 1.5cm),
    header: [
      #set align(center)
      #set text(font: 字体.宋体, size: 字号.小五)
      《电子认识实习》报告
    ],
  )

  set par(first-line-indent: 2em)
  show heading: it => {
    it
    fake_par
  }

  // heading，一级标题换页且不显示数字，首行居中
  set heading(numbering: (..nums) => if nums.pos().len() == 1 {
    中文数字(nums.pos().first()) + "、"
  } else {
    nums.pos().slice(1).map(str).join(".") + "."
  })
  show heading: it => {
    if it.level == 1 {
      text(size: 字号.小三, font: 字体.黑体, it)
    } else if it.level == 2 {
      text(size: 字号.小四, font: 字体.黑体, it)
    } else if it.level == 3 {
      text(size: 字号.小四, it)
    } else {
      text(size: 字号.五号, it)
    }
  }

  // figure(image)
  show figure.where(kind: image): it => {
    set align(center)
    it.body
    {
      set text(font: 字体.宋体, size: 字号.五号, weight: "extrabold")
      h(1em)
      it.caption
    }
  }

  // raw with frame
  show raw: set text(font: 字体.代码)
  show raw.where(block: true): it => frame()[#it]

  set enum(numbering: "1.")

  show outline: ol => {
    show heading: it => {
      align(center)[#text(size: 字号.小三, font: 字体.黑体, it)]
    }
    set par(first-line-indent: 0pt)
    ol
  }
  show outline.entry: it => {
    set text(font: 字体.宋体, size: 字号.小四)
    it
  }
  set outline(indent: auto)

  outline()
  pagebreak()

  align(center)[#text(size: 字号.三号, font: 字体.黑体, "数字式交流电压表设计")]

  body
}

#let answer(body) = {
  text(font: 手写字体, body)
}

#show: project.with(
  title: "电子认识实习",
  authors: ("absolutex",),
)

= 设计要求

+ 输入交流电压范围：0～200mV（有效值）
+ 要求用三位 LED 数显测得的电压值，分辨率为 1 mV
+ 可用的主要元器件：高阻抗双运放 LF353N、通用运放 LM741、MC14433
+ 实验器材：示波器、万用表、函数信号发生器、交流毫伏表、直流电源
+ 电源电压：±5V

= 设计过程

== 系统功能

本实验要求设计一个数字式交流电压表，其功能是：测量输入交流电压，并在数字显示管上显示测量结果。

== 设计流程

#figure(
  image("static/1.png", width: 80%),
  caption: [设计流程],
)

== 整流滤波、放大电路

#figure(
  image("static/2.png", width: 80%),
  caption: [整流滤波、放大电路原理图],
)

由于输入量是交流信号，因此首先必需将交流信号变为直流信号，图 2 电路可以实现上述要求。

设：R1=R3=R4=R7=R8=10K，R2=R5=5.1K，R6=20K，R9=100K。
当 $V_i>0$ 时，$D_2$ 导通，$D_1$反向偏置，$A 1$ 为同向放大器。

此时，$V_(o 1)=(R_1+R_3)/(R_1)V_i=2V_i$，A2 则将反向输入端的 $V_(o 1)$ 及同向输入端的 $V_i$信号同时放大，#mi[`V_{o2}=-\frac{R_6}{R_4}V_{o1}+\frac{R_4+R_6}{R_4}V_i=-V_i`]。

当 $V_i <0$ 时，$D_1$导通，$D_2$反向偏置，A1 为增益等于 1 的跟随器，$V_(o 1)=V_i$。

A2则将反向输入端的$V_(o 1)$及同向输入端的$V_i$信号同时放大，#mi[`\mathrm{V}_{\mathrm{o}2}=-\frac{\mathrm{R}_6}{\mathrm{R}_4+\mathrm{R}_3}\mathrm{V}_{\mathrm{o}1}+\frac{\mathrm{R}_3+\mathrm{R}_4+\mathrm{R}_6}{\mathrm{R}_3+\mathrm{R}_4}\mathrm{V}_i=\mathrm{V}_i`]，因此，$V_(o 2) = −V_i$ ，$V_(o 2)$的线性度不受二极管非线性的影响。

A3 作反相放大，将输入信号放大至 0～2V 标准信号。$R_9$、$W_1$、$C_2$ 组成滤波。

== A/D 转换、译码驱动、数字显示

#figure(
  image("static/3.png", width: 80%),
  caption: [由 MC14433 集成电路组成的 3 位半数字电压表原理图],
)

A/D 转换、译码驱动、数字显示采用 MC14433 组成的 3 位半数字电压表电路，如图 3 所示。

用数字方法处理模拟信号时，必须先将模拟量转换成数字量，这是由模拟—数字转换器（A/D）完成的。

A/D 转换的方法很多，本实验用到的 MC14433是双积分式 A/D 转换器。双积分式 A/D 转换器的特点是线路结构简单，外接元件少，抗共模干扰能力强，但转换速度较慢（3～10次/秒），使用时只要外接两个电阻和两个电容就能执行$3 1/2$位的 A/D 转换。由于它的二—十进制转换码采用数据轮流扫描输出方式，因而只需一块七段译码显示 $3 1/2$位十进制数，大大节省了外部电路的数量和显示电路的功耗，这对 LED 显示的数字表特别有利。

== 设计结果

本次实验分为两个模块，一个是模拟信号处理电路，另一个是A/D转换与数字显示电路。图 4 是模拟信号处理电路的原件排列图：

#figure(
  image("static/circuit.png", width: 80%),
  caption: [元件排列图],
)

其中，电阻 R1,R3,R4,R7,R8 为 $10K Omega$，电阻 R6 为 $20K Omega$，W1 为 $33K Omega$ 可调电位器，W2 为 $10K Omega$ 可调电位器。

此设计图使用了尽可能少的飞线（共计 4 根），具有较好的物理稳定性。但是这也导致了其余焊点连接较多，锡的使用量较大，并且提高了焊点连接的难度。

= 制作过程

下图为最终焊接的成果：

#figure(
  image("static/12.jpg", width: 60%),
  caption: [左图为正面，右图为背面],
)

下图为 LM353 1 脚的二倍正弦波波形与 7 脚的全波整流波形：

#figure(
  image("static/wave1.jpg", width: 50%),
  caption: [1 脚波形],
)
#figure(
  image("static/wave2.jpg", width: 50%),
  caption: [7 脚波形],
)

调试时，先尝试调零。将电位器 W1 与 W2 均调至极限档位，在交流信号输入幅值为0时有 4.2 mV 的示数。将输入幅值调为200 mV，调整 W1 使数字管显示 199.1 mV，此时调零示数为 4.7 mV。

#figure(
  image("static/3.jpg", width: 40%),
  caption: [调零示数：4.7 mV],
)

#figure(
  image("static/4.jpg", width: 40%),
  caption: [最大幅值示数：199.1 mV],
)

= 数据处理

#tablem[
  |输入信号有效值(mV)|显示电压有效值(mV)|误差(mV)|输入信号有效值(mV)|显示电压有效值(mV)|误差(mV)|
  |---|---|---|---|---|---|
  |0|4.7|4.7|110| 108.5|1.5|
  |10| 12.9|2.9|120| 118.4|1.6|
  |20| 23.0|3.0|130| 127.9|2.1|
  |30| 31.6|1.6|140| 137.7|2.3|
  |40| 41.2|1.2|150| 147.1|2.9|
  |50| 52.5|2.5|160| 157.5|2.5|
  |60| 61.9|1.9|170| 170.6|0.6|
  |70| 71.7|1.7|180| 180.0|0.0|
  |80| 81.2|1.2|190| 190.4|0.4|
  |90| 90.5|0.5|200| 199.9|0.1|
  |100| 98.9|1.1| | | |
]

输入信号为 0 时，

#figure(
  image("static/data1.png", width: 60%),
  caption: [输入信号与输出信号的关系],
)

可以看出输入信号与输出信号大致呈线性关系，并且数值基本相同。

#figure(
  image("static/data2.png", width: 60%),
  caption: [输入信号与误差的关系],
)

误差总体呈下降趋势，但相关性不明显。

= 问题解决

我们组选择自己设计电路，在最初的一个多小时里都在设计。电路的设计目标是尽可能减少飞线的数量。在设计过程中我发现，想要减少飞线数量，核心之处在于巧妙使用电子元件本身跨越电路板里预留的线。

设计完后，开始焊接，刚焊了两个元件，就发现一个设计上的失误：电路板的孔很小，无法穿过两个元件的引脚，也就是说元件贴合处无法重合。于是重新修改设计图，所幸改动并不麻烦。

又焊了几个元件，此时队友需要二极管元件找不到来问我，我才发现我焊错了二极管。本次实验有两种二极管，不同的电路用的是不同的二极管，我用成了队友的二极管。于是只好拆掉重焊。

我这里焊接是先焊所有小元件，包括电阻，贴片电容，然后再焊针座，最后焊电位器和电解电容，这样的好处是电路板可以放平，无需额外操作。我的队友先焊接更高的针座，然后再焊接小元件，这样元件会下坠，需要人手帮忙将元件提高，使其贴合电路板。

元件焊好以后只是个开始，接下来就是连接焊点。指导中说直接用锡连接焊点，但是实际操作时并不容易。锡很容易粘在烙铁上，并且锡中的助焊剂总是倾向于分离焊点，因此需要极大量的锡使其强制粘连。然后过多的锡在高温下成为流体，又会从电路板中的小洞里流下去，上面加得越多，下面漏下去的也越多，造成了不小的困扰。这里我采用了不同的解决办法：对长的焊点连接，使用元件上剪下的铁丝辅助；而短的焊点如果从孔里漏下去了太多的锡，可以从电路板正面继续连接。

使用铁丝辅助也不是简单的事。实验室的镊子太大，铁丝比较小，无法固定，铁丝很容易到处跑。并且实验室中没有夹具夹电路板，需要两个人共同才能完成电路板固定与焊点连接。

后来飞线倒是比较简单，本来这个方案飞线就少，而且飞线比连接焊点简单多了，只要对准，然后跟普通的元件焊接一样即可。

好不容易焊接完成，然后使用万用表测试连通性又发现了几个错连的焊点。由于电路板正反对照比较麻烦，不容易看出连接错误，必须用万用表测试。然后重新清理这些焊点并连接。又发现了电位器用错了，W1 与 W2 的阻值是不同的，不能够混用，于是又重新焊接。

重新焊接时，难免会遇到焊孔被堵住的情况。此时可以将电路板竖直放置，我用烙铁融化，队友使用吸锡器将锡吸出。吸锡器的数量很少，并且很多同学不会将其还回来。遇到焊错后需要尽快处理，否则随着时间的推移，吸锡器会越来越抢手，更难拿到。

在后续调试时，发现芯片的 1 脚是正常的正弦波，而 7 脚理应是全波整流的波形却变成了半波整流。跟着实验指导自查，然后用万用表自查也都无法找到问题。跟其他同学交流后得知应该是漏了线，然而自己检查却检查不出。于是只好找老师，老师的丰富经验很快就定位出了问题所在，LM353 芯片 6 脚和 7 脚的电阻是断路而不是理应的 20K。继续排查发现是被飞线覆盖的一个点漏焊了。在补焊后，电路正常工作，出现了漂亮的全波整流波形。

后来调试也没有遇到太多问题。主要是调零过程并不能使示数真正调到 0，我们原以为是电路问题，后来发现其他的小组也会有这个问题，应该是电子元件本身的误差导致的。

= 实验体会

经历了一天的痛苦并快乐的课程设计实践，我的收获颇丰。

+ 课程设计对我的实践能力和动手能力提出了较高的要求。我们之前只在工程训练中接触了非常基础的焊接技术，而本次实验要求较高，通过设计电路排布、焊接电路板元件等实际操作，将课堂上学到的理论知识应用到实际问题中，培养实践动手能力和解决问题的能力。我在实践中学到了很多课上学不到的焊接经验，培养了我解决实际问题的思维和能力。
+ 课程设计注重团队合作与沟通能力的培养。我和同伴分别负责模拟板和数字板的焊接，通过与小组同伴有效沟通、协调和分工合作，我们的工作能够高效地在一天内完成。其中，团队合作精神和合作能力得以体现。特别是吸锡器的使用一般需要两人共同完成。
+ 在设计过程中，要将模拟电路图设计转换成元件排布图，这锻炼了我的电路设计能力。思考如何能够做得更好是一件很快乐的事，能够给我很大的满足感。
+ 在调试中可能会遇到各种技术难题和困难，需要学生具备独立思考和解决问题的能力。在调试阶段，我们遇到了输出波形错误的问题，通过逐级分析的方法，使用万用表对许多焊点进行测量，最后发现有漏焊的情况。
+ 电子技术课程设计中培养了我的耐心。遇到错焊漏焊情况，不要烦躁，不要抱怨，需要冷静地解决问题。对着电路板发泄只会延缓实验进展。

= 成员分工

- 我负责模拟电路板的设计与焊接，数据记录。
- 队友程煜捷负责数字电路板的焊接与测试。