北京工业大学电子工程设计--二阶实验报告重点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子工程设计报告
题目:温度测量系统/闭环温度控制系统设计
专业:电子科学与技术
小组:7
姓名:学号:
袁彬11023221
赖力11023222
指导教师:高新
完成日期:2013.12.12
目录
一、摘要 (3)
二、设计任务与要求 (3)
(二)、设计要求 (4)
(三)单片机 (5)
(一)、电路工作原理及主要元件的功能5
(二)、电路的调试9
四数/模(D/A)转换电路 (10)
(一)、电路工作原理及主要元件功能10
(二)、电路主要参数计算12
(三)、电路调试 (12)
五、模/数(A/D)转换电路 (13)
(一)、ADC0804 芯片介绍13
(二)、电路主要参数计算14
(三)、电路调试15
六、电路显示与键盘控制电路 (16)
(一)、电路工作原理 (16)
(二).电路调试 (19)
七、温度测量 (22)
八、心得体会 (25)
九、附录 (26)
一、摘要
在上学期我们完成了温度控制系统的第一阶段,在这一阶段,我们完成了焊接包括电源板、驱动器和变送器在内的一些工作。

也为我们这次的第二阶段做好了准备。

通过上学期的准备,我们对焊接电路已经基本上熟练掌握了,对一些电路的
原理和设计也都达到了必要的要求,正是基于此我们目前已经完成了第二阶段的所有内容。

下面就主要介绍一下我们第二阶段的工作。

、设计任务与要求
设计小型温度测量与控制系统---典型电子系统
L度测控系统的基本组成
控制执行单元
1. 电路设计
⑴核心单元一单片机应用电路
⑵ 模拟量接口一A/D、D/A电路
⑶人机交互单元一显示、键盘控制电路
2. 程序设计
⑴ 控制模/数转换进行温度数据采集
⑵控制数/模转换改变控温元件工作状态,进行温度控制
⑶控制键盘与显示器,进行控制温度设定和测量温度显示。

⑷将温度数据转换为显示温度数值的算法程序。

(5) 控制温度精确、平稳变化的的算法程序。

3. 系统联调
⑴电路系统联调,配合测试程序实现基本的测温、控温功能。

⑵程序联调,通过电路系统实现精确、平稳的温度控制
4. 本学期关注的重点
⑴设计并实现了一个能够精确、稳定控制温度的系统。

⑵知道了一个典型的电子系统应该具备哪些主要功能
⑶知道了一个典型电子系统的设计实现过程和工作方法。

⑷ 知道如何设计测试方法、创造测试条件,对设计完成的电路模块或电路系统进行测
试,使电路或系统的功能、指标充分展现。

⑸ 设计组装的电路系统出现故障,能够根据电路或系统的工作原理、自己掌握的专业
知识以及积累的经验,快速确定故障范围和故障原因。

⑹ 掌握电路的设计方法,通过设计、计算实现电路设计要求。

(二八设计要求
1. 温度测量范围:0°C ~ +100° C
2. 温度测量误差:不大于±2°C
3. 单片机:具有独立电路板结构。

片选信号:4个,
地址信号:4个,
数据总线:AD0~AD7,
I/O 口线:P3 口,P1 口。

4. 数/模(D/A)转换电路:具有独立电路板结构
输入范围:00H ~ 0FFH,
对应输出:-10V~+10V,
误差:1%,响应时间:< 1ms,
电源供电:+5V,± 12V。

5 .模/数(A/D)转换电路:独立电路板结构
输入信号范围:0V~+5V
分辨率:8bit
精度:1LSB 转换时间:< 1ms
6.显示与键盘控制电路:
4位7段数码显示,
前3位含小数点独立电路板安装结构
0 ~ 9数字输入键及若干功能设置按键控制
(三)单片机
(一)、电路工作原理及主要元件的功能
1,芯片的介绍和参数
MCS-51系列单片机性能优异,因此单片机芯片采用 MCS-51系列中的89C51。

在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4 条控制或与其它电源复用的引脚,32条输入/输出(I/O )引脚
下面按其引脚功能分为四部分叙述这 40条引脚的功能。

1) 主电源引脚VCC 和VSS
VCC ――( 40 脚)接+5V 电压; VSS
( 20 脚)接地。

2) 外接晶体引脚XTAL1和XTAL2
XTAL1( 19脚)接外部晶体的一个引脚。

在单片机内部,它是一个反相放大 器的输入
端,这个放大器构成了片内振荡器。

当采用外部振荡器时,对 HMO 单片 机,此引脚应接地;对 CMO 单片机,此引脚作为驱动端。

XTAL2 (18脚)接外晶体的另一端。

在单片机内部,接至上述振荡器的反相 放大器的输
出端。

采用外部振荡器时,对 HMO 单片机,该引脚接外部振荡器的信 号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对 XHMO,S 此引
脚应悬浮。

3) 控制或与其它电源复用引脚 RST/VPD ALE/PROG PSEh 和EA/VPP RST/VPD (9
脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片 机复位。

正脉冲信号,此频率为振荡器频率的 1/6。

因此,它可用作对外输出的时钟,或
用于定时目的。

PSEN (29脚):此脚的输出是外部程序存储器的读选通信号。

在从外部程序存储 器取指令(或常数)期间,每个机器周期两次 PSEN 有效。

但在此期间,每当访问 外部数据存储器时,这两次有效的 PSEN 言号将不出现。

EA/VPP (31脚):当EA 端保持高电平时,访问内部程序存储器,但在 PC (程序
ALE/PROG30脚):当访问外部存贮器时, 地
址的低位字节。

即使不访问外部存储器, ALE (允许地址锁存)的输出用于锁存 ALE 端仍以不变的频率周期性地出现
计数器)值超过 OFFFH (对851/8751/80C51 )或 仆FFH (对8052)时,将自动转 向执
行外部程序存储器内的程序。


EA 保持低电平时,则只访问外部程序存储
器,不管是否有内部程序存储器。

输入/输出(I/O )引脚P0、P1、P2、P3(共32 根): P0 口( 39脚至32脚):是双向8位三态I/O 口,在外接存储器时,与地址总线 的低8位及数据总线复用,能以吸收电流的方式驱动 8个LS 型的TTL 负载。

P1 口( 1脚至8脚):是准双向8位I/O 口。

由于这种接口输出没有高阻状态, 输入也不能锁存,故不是真正的双向 I/O 口。

P1 口能驱动(吸收或输出电流)4 个LS 型的TTL 负载。

对8052、8032,P1.0引脚的第二功能为T2定时/计数器的
P2 口( 21脚至28脚):是准双向8位I/O 口。

在访问外部存储器时,它可以作 为扩展电路高8位地址总线送出高8位地址。

P3 口(10脚至17脚):是准双向8位I/O 口,在MCS-51中,这8个引脚还用于 专门功能,
是复用双功能口。

2、电路方案的比较、选择和确定
全部地址参与译码,产生的控制信号对应唯一地址。

部分地址参与译码,产 生的控制信号对应某一地址区域, 而不是唯一地址。

部分地址参与译码,产生的 控制信号对应某一地址区域,而不是唯一地址。

三种电路方案
(1)部分地址译码、带有总线驱动电路,产生的控制信号对应某一地址区域。

图示部分地址译码、带有总线驱动电路
+5
C3 10uF
R1 RST P3.2 P3.4
WD
L5
L3 L23 L6
RD
L8
P1.6
R19 10
RXD R21 11 TXD
| P3.^j R17 13 P3.5
R15 15
C1
22p
l
CY1 一一 C2 22p
P10 VCC
P11 P12 P13 P14
P15 P00 P16 P01 P17 P02 RESET P03 RXD P04 TXD P05 INT0 P06 INT1 P07
T0
T1_ ALE/P
WR
RD
P20
P21 X1 P22 X2
P23
P24 PSEN
P25
EA/VP P26 GND P27
VCC
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 A6 B6 A7 B7 DIR
E
Q0
D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 Q5 D6 Q6 D7 Q7 LE
OE
18 L7
17 L9 16 L11 15 L13 14 L15 13 L17 12 L19 11
L21

¥
2 A0 L16 5 A1 L14
6 A2 L12 9 A3 L10 12 A4 D0
D1 D2
D3 D4 D5 D6 D7
A Y0
B Y1
C
Y2
Y3
Y4
E3 Y5 E1 Y6 E2
Y7
L24 L22 L20 L18
C1 C2 C3 C4
8.2K
R3
1
P1.1 P1.2 P1.3 P1.4 P1.5 P1.0 P1.1 8 9
11.059 20
39 38 34 33 32 14
19 18
28
2汕 U1 89C51
22 "~23 37 36 35 26 27 24 25 30
21 U2
74LS245 4 9 1
U3
2 3 5 6
7 74LS373
3 4 14 17 19 A7
7_

13 18 11
A1 A2 A3 A4
15 A5 16 A6 A15 3
9 A1 3 1 A1 4 2 15
14 B 13 灯10
(2) 部分地址译码、无总线驱动电路
图示部分地址译码,无总线驱动电路
(3) 直接选通、不要低8位地址和驱动电路
因为这个方案的片选信号与地址之间并不是线性关系,所以使用 该方案需要熟练掌握片选信号与地址之间的关系计算。

(4) 电路方案的确定
通过比较,我们最后选定相对容易实现的部分地址译码, 无总线驱动的方案, 因为这样可以简化电路。

电路图如下:
C3 +5

L7 L9 DO R1 8.2 K
R3 R5
+5
RXD
TXD
L11 L13
L15 L17
L19 D2 D3 D4 R1 7 13
P3. 3 __________ ■ 14
----------- R 1 5 15 P3.5]
C1
+5
T
P10 VCC
P11
P12
P13 P14
P15
P00
■ P16 P01
P17 P02
RESET
P03
RXD P04
TXD P05 INT0
P06
J 1 INT1 P07
-T0
T1 ALE/P - n WR - g
RD P20
P21
X1 P22 X2
P23
P24 ■0 PSEN P25 EA/VP P26 - GND
P27
40
L21
D5 D6 D7
3 —a.
D0 Q0 D1 Q1 D2
Q2
D3
Q3 D4 Q4
D5
Q5
D6 Q6 D7
Q7 LE
OE
A0 L16 A1 L14 A3 L10 Y2 A1 A2 A3 A4
Y3
Y4 Y5
Y4
Y5 Y6 Y7 C1 C3 10uF
R1 8.2K
+5
T 1
R3 1
R5 2
R7 3 R9 4
R1 1 5
R1 3
6
R2 3
7
RST P3.2 P3.4 L5 L3 L23 WD RD
L6 L8
no C2
22p
R1 9 1 0
RXD
R2 1 1 1
TXD _______ -P10 VCC
1 P11 1 P1
2 ・P1
3 ・P14
■ P15 P00 P16 P01 P17 P02 RESET P03 RXD P04 ■ TXD P05 INT0 P06 INT1 P07
T0
T1 ALE/P
—— WR
RD P20
P21 X1 P22 X2 P23
P24 PSEN P25 EA/VP P26 GND
P27
+5

39 AD0 L7 38 AD1 L9 37 AD2 L11 36 AD3 L13 35 AD4 L15 34 AD5 L17 33 AD6 L19 32 AD7
L21
22 A9 L14 23 A1 0 L12 24 A1 1 L10 25 A1 2 L24 26 A1 3 L22 27
A1 4 L20 28
A1 5 L18
ALE 1 OuF
IL
R7 R1 3 R2 3 R9 R1 1 L5 L23 L6 L8
2 2p
11.0591 I
U1 89C5 1
1 2 4 39
7
36
35
34
1 2
33
32
30
1 6
19 1 8
20
5 6 24 1 7 ~3o T37
R2 1 1 1 R1 9 10 27 28
21
U3 2
4
5 7 8
9
1 7
U4
74LS1 38 A B C
1 8 ' TT^ 1 3 ' 1 6 A 6
1 9 A 7 1
2 A 4 74LS
3 73
Y0 Y1 Y2 A 1 5 3
VCC
E1 E2 E3
L24
0 O —
i i
10 C2 C3 C4
15
8
P1.0 P1.1 P1.2 P1.3 P1.4
P1.5
P1.6 9
P3.3
R1 7 1 3
20
1 9 1 8
U1 —:_I 1 4
-------- 1 R15
—~1否
--------------------
L4 30 D0 D1 D2 D3 D4 D5 D6 D7 L16 A8 21 A1 A2 A3 A4 C1 C2 C3 C4
单片机的安装结构图如下图所示:
单片机电路
(二)、电路的调试
1 •按照电路图将电路板焊接完毕,过程中需要严格检查焊接线路是否正确,避免出现错误。

2•测试时,将电源板放到相应位置。

将单片机正确插入,然后将仿真头与单片机电路连接(注意缺口标志要对应)再把仿真器连好。

3 •断开译码电路负载,运行测试程序,检查各输出引脚是否有输出,各个输出之间相对位置关系是否正确;以下是单片机测试的程序:
#in elude "C8051F020.h"
#in elude "absacc.h “
#inelude "data define.e"
#defi ne CS0 XBYTE[0x0000]
#defi ne CS1 #defi ne CS2 #defi ne CS3 #defi ne CS4 #defi ne CS5 XBYTE[0x2000] XBYTE[0x4000] XBYTE[0x6000] XBYTE[0x8000] XBYTE[0xA000]
#inelude "Init Deviee.e"
void main (void) {
In it_Device();
while(1)
{ CS0=0; CS1=0; CS2=0; CS3=0; CS4=0; CS5=0; } }
正确输出波形如图所示:
Cl〜C4输出波形图
C1
C2
C3
C4 用示波器观察C1~ C4引脚,应有图示的波形输出。

如果没有输出或者彼此关系错乱,都表明电路中存在故障。

电子工程设计第二阶段设计报告
10
四数/模(D/A)转换电路
(一)、电路工作原理及主要元件功能
1、DAC8032芯片介绍
数模转换器是整个控制系统将计算机输出的数字信号转化成模拟信号的重要部件,它的特性直接影响温度转换的精度。

其转换的精度主要由数模转换器的位
数和Wef结合电子工程设计的实际要求,结合高性价比的原则我们选择了8位D/A 转换器DAC0832
单片集成D/A转换器产品种类繁多,按其内部电路结构一般可分为两类:一类集成芯片内部只集成了转换网络和模拟电子开关;另一类则集成了组成D/A 转换器的所有电路。

本实验选用DA0832各引脚名称及作用如下:
D〜D :具有三态特性数字信号输出。

GND信号地。

CS:低电平有效的片选端。

WR写信号输入,低电平启动D/A转换。

RD读信号输入,低电平输出端有效。

V REF:参考电平输入,决定量化单位。

2、原理说明
(1)、数模转换电路,可以将数字电量转换成模拟电量。

在数模转换中,应根据转换要求,考虑输出电压的分辨率和精度。

(2)、数模转换有多种方法可以实现,在满足要求的情况下,应力求降低成本。

可以采用频率/电压变换的方法,也可以采用D/A变换器或其它方法,如采用D/A 变换器,建议使用DAC0832 (00—FF)数字对应于(—10V〜+ 10V)电压。

3.电路的选择
输出方式:与数字量成比例的电流输出/与数字量成比例的电压输出/数字量和参考电压的相乘输出。

我们组选择的电路如图:
11
电子工程设计第二阶段设计报告
10
本实验要求模数转换电路的输出电压为一10V〜+ 10V电压。

因此,在DA的外围电路上,我们连接了一个放大器。

放大器的作用是将DAC0832勺输出电流转化成电压,通过合理调整两个滑动变阻器的阻值,可以调整输出电压的大小,即使D/A的输出从0〜5V变为一10V〜10V。

安装结构图
数/模转换电路
12
电子工程设计第二阶段设计报告
10 (二八电路主要参数计算
D/A转换器用于将数字量转换成模拟量,他的输入粮食数字量D,输出量为模拟量V o,
要求输出的模拟量与输入的数字量成正比,即:
V o = D V R
其中V R为基准电压。

nA
D =dnf 口才|1| do2^- di2i
其中,d i, d2,…,dni是输入的数字量代码;n是输入数字量的位数。

n A
将D带入V o = D V R得到:V o =7 d i2i V R。

该式说明,将输入的每一位数字量转换为与
i z0
其相应的模拟量,把各位对应的模拟量相加就可得到该数字两所对应的模拟量。

D/A转换器
的模拟输出与数字量输入成正比。

(三)、电路调试
调试方法:断开电路负载,运行测试程序,检查各节点信号是否正确。

1 •焊接完毕,而后再次认真查线一遍然后再开始测试。

2 •测试时,将电源板,单片机,数模电路正确连接。

按正确加电顺序供电,如果一切正常可以开始进一步的测试。

3 •运行D/A测试程序数/模数据显示窗口将有相应,数据显示,数据为从00—FF顺序递增并不断循环。

另外输出管脚会有锯齿波。

测试程序如下:
#in elude "C8051F020.h"
#in elude "absacc.h"
#inelude "data_define.e"
#defi ne C3 XBYTE[0x4000]
#defi ne TIMER 0x8000
#i nelude "In it_Device.c"
void delay(void);
void ma in (void)
{
un sig ned char x; In it_Device();
while(1)
{ ++x; C3=x; delay(); }
}
void delay(void)
13
电子工程设计第二阶段设计报告
10
14
{
int i;
for(i=0;i<TIMER;++i); }
用示波器测量芯片的7号管脚 输出波形如图:
如果出现上述的波形图,就间接地证明电路板调试成功
五、模/数(A/D)转换电路
(一)、ADC0804芯片介绍
芯片参数:
工作电压:+5V ,即VCC=+5V 模拟输入电压范围:
0〜+5V ,即0W Vin < +5V
分辨率:8位,即分辨率为 1/2 8=1/256,转换值介于 0〜255之间。

转换时间:100us (fCK=640KHz 时)。

转换误差:土 1LSB
参考电压:2.5V ,即 Vref=2.5V 。

1. 原理说明
模数转换器,是将模拟电信号转变成计算机能识别的数字信号。

在模数转换中,
应根据测量精度要求,考虑转换电路的精度和分辨率,并力求降低成本。

模数转 换有多种方法可以实现,如采用电压/频率变换器,以频率或脉宽来计算温度, 也可以采用A/D 变换器或其它方法。

如采用A/D 变换器,应考虑转换器输入阻抗 和变送器输出阻抗对信号的衰减可能引起的测试误差,
并尽量降低这一误差。


间连接应注意保护。

根据课设要求,温度 0〜100 C 的变化是用电压0〜5V 表 示的,转成数字表示,即0〜FFH
2. 电路的选择
常用A / D 电路的特点:
积分型:将电压转换成脉宽信号或频率,由定时器/计数器获得数字值。

优点: 分辨率高;缺点:转换速率极低
逐次比较型:由比较器和DA 转换器通过逐次比较逻辑构成,经 n
次比较而
电子工程设计第二阶段设计报告
10输出数字值。

优点:速度较高、功耗低,在<12位分辩率时价格便宜并行比较型:用多个比
较器,仅作一次比较而实行转换。

优点:转换速率极高;分辩率高时电路规模大、价格也高,只适用于低分辨率高速场合压频转换型:将模拟信号转换成频率,然后用计数器将频率转换成数字量从理论上讲其分辨率几乎可以无限增加。

优点:分辩率高、功耗低、价格低;但是需
要外部计数电路共同完成AD转换
(二八电路主要参数计算
(1)转换精度:
A/D转换器也采用分辨率和转换误差来描述转换精度。

分辨率是指引起输出数字量变动一个二进制码最低有效位 (LSB时,输入模拟量的最小变化量。

他反映了A/D转换器对输入模拟量微小变化的分辨能力。

在最大输入电压一定时,位
数越多,量化单位越小,分辨率越高。

转换误差通常用输出误差的最大值形式给出,常用最低有效位的倍数表示,
15
电子工程设计第二阶段设计报告
10
16
反映A/D 转换器实际输出数字量和理论输出数字量之间的差异。

(2) 转换时间:
转换时间是指转换控制信号(V L )到来,到A/D 转换器输出端得到稳定的数 字量所需要的时间。

转换时间与A/D 转换器类型有关,並行比较型一般在几十个 纳秒,逐次比较型在几十个微秒,双积分型在几十个毫秒数量级。

实际应用中,应根据数据位数、输入信号极性与范围、精度要求和采样频率 等几个方面综合考虑A/D 转换器的选用。

(3) 8位数模转换电路主要技术指标:
分辨率---8位:表示能够分辨的最小电压变化

V ref
V i V 「二 Data

- 28
DATA 为1时的Vi 表示最小电压变化
误差---± 1LSB
转换时间---100微秒
(三八电路调试
调试方法:调整变送器电路在正常工作状态,连接变送器输出至模 /数转换
电路输入。

运行测试程序,改变调试台温度设置值,检查单片机采集到的数据是 否正确,如果
不正确按照故障诊断预案进行诊断分析,并且排除故障。

改变设置温度,运行A/D 测试程序,检查模/数转换结果。

在调试台上通过 +10按键不断改变温度数值。

模/数转换电路
电子工程设计第二阶段设计报告
10调试程序如图:
#in elude "C8051F020.h"
#in elude "absacc.h"
#inelude "data_define.e"
#defi ne C2 XBYTE[0x2000]
#defi ne TIMER 0x8000
#i nelude "In it_Device.c"
void delay(void);
void ma in (void)
{
un sig ned char x;
In it_Device();
while(1) { C2=x; delay(); x=C2; delay(); } }
void delay(void)
{
un sig ned char i;
for(i=0;i<TIMER;++i);
}
在调试台上通过旋转调温按钮不断改变温度数值
六、电路显示与键盘控制电路
(一)、电路工作原理
1. 电路的选择
单片机与LED显示器有两种接口方法。

动态显示电路方案:电路简单,成本低,控制程序复杂,适用于显示位数较多的场合。

可使用智能芯片8279完成。

以下为动态显示原理图
17
电子工程设计第二阶段设计报告
10
18
键盘接口方法
矩阵键盘电路方案:按键较多时,成本低,控制程序较直读电路复杂,适用 于显示位数较多的场合。

采用此方案。

原理图如下:
* --------------
1
n ILil
DL aftisw
静态显示电路方案:使用的元件多,成本相对较高。

每位独 序设计比较简单,适用于显示位数较少的场合。

使用
74LS273, 立控制,程
采用此方案
静态显示控制电路
K3 J-32 Ml MO
■*

2

1 如
r 匸二
电子工程设计第二阶段设计报告
10
19
D 卜D7
L<J C H -
RD P2.0 \VR
2M 74LS32
D0-D7
最终我们的电路方案如图所示:
电子工程设计第二阶段设计报告
10
20
(二).电路调试
(1)显示电路模块调试
按照图进行电源板焊接完毕,而后再次认真查线一遍然后再开始测试。

测试 时,将电源板,单片机,显示电路正确连接。

按正确加电顺序供电,如果一切正 常可以开始进一步的测试。

运行显示模块测试程序,如果电路工作正常,在
4
个数码管上应有数字0-9滚动显示。

否则,说明电路存在故障。

显示电路的编 程流程如图:
键盘/显示电路
电子工程设计第二阶段设计报告
10
试程序如图:
#i nclude "C8051F020.h"
#in elude "absacc.h"
#in elude "data_defi ne.c" #i nclude "In it_Device.c"
#defi ne ADC XBYTE[0x0000]
#defi ne DPI XBYTE[0x0001]
#defi ne DP2XBYTE[0x0002]
#defi ne TIMER0x8000
un sig ned chartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void
delay(void);
void display (un sig ned char x,un sig ned char y);
void mai n(void)
{
un sig ned char x=0,y=0,z=0,num=0;
DP 仁DP2=0xff;
In it_Device();
while(1)
{ADC=x;
delay();
x=ADC;
x=(x*100)/256;
y=x%10 ;num=2;display
(num ,y);
z=x/10 ;num=1;display (nu
}
}
void display (un sig ned char x,un sig ned char y)
{
if (x==1) DP1=table[y];
else DP2=table[y];
}
void delay(void)
{
un sig ned int i;
for(i=0;i<TIMER;++i);
}
键盘控制模块调试:
运行键盘控制电路的测试程序,如果电路工作正常,在键盘上每按1个
键,都会通过2位数码显示管,显示相应的行编码和列编码。

否则,说明电
电子工程设计第二阶段设计报告
10



调试程序如图:
#in elude "C8051F020.h" #in elude "absacc.h" #i nclude "data_defi ne.c" #defi ne DPI XBYTE[0x7000] #defi ne DP2 XBYTE[0x7100] #defi ne DP3 XBYTE[0x7200] #defi ne DP4 XBYTE[0x7300] #defi ne TIMER 0x8000 #i nclude "I ni t_Device.c"
unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void display (un sig ned char x,un sig ned char y) {
DP3=table[x]; DP4=table[y]; } void mai n(void) {
unsigned char l_val,r_val,r_state,temp,conter,x,c; int key; DP1=DP2=DP3=DP4=0xff; In it_Device(); while(1) {
key=OxOOO4; for(x=1;x<5;x++,key++)
{
路存在故障。

c=XBYTE[key];
if(r_state=~c&0x1f)
{
for(con ter=1,temp=OxO1;con ter<6;++con ter,temp=temp<<1) if((r_state&temp)!=0)
{
r_val=c on ter;
l_val=x;
display(l_val,r_val);
}
}
}
}
}
七、温度测量
1•内容与原理
L度测控系统的基本组成
控制执行单元
2•实验程序如下:
#in clude "C8051F020.h"
#in elude "absacc.h"
#in elude "data_defi ne.c"
#defi ne C0XBYTE[0x0000]
#defi ne C1XBYTE[0x2000]
#defi ne C2XBYTE[0x4000]
#defi ne DP1XBYTE[0x0000]
#defi ne DP2XBYTE[0x0001]
#defi ne DP3XBYTE[0x0002]
#defi ne DP4XBYTE[0x0003]
#defi ne TIMER 0x8000
#in elude "In it_Device.c"
unsigned char table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
un sig ned char keymatrix[4][4]={0,1,2,3,4,5,6,7,8,9,'A','B',C,'D','E','F'};
void display (un sig ned char x,un sig ned char y)
{
if (x==1) DP1=table[y];
else if(x==2) DP2=table[y];
else if(x==3) DP3=table[y];
else DP4=table[y];
}
void delay(void)
{
int i;
for(i=0;i<TIMER;++i);
}
un sig ned char sca n()
{
un sig ned char col,row,r_state,temp,c;
un sig ned int key=0x0004;
for(row=0;row<4;row++,key++)
{
c=XBYTE[key];
if(r_state=~c&0x1f)
{
for(col=0,temp=0x01;col<4;++col,temp=temp<<1) if((r_state&temp)!=0) return
keymatrix[row][col];
}
}
return 100;
}
un sig ned char keyboard (un sig ned char *dp)
{
un sig ned char ch,i,j;
i=1;
do
{
i++;
ch=sca n();
if(ch==100) con ti nue;
else if(ch=='A') retur n 0;
dp[3+i%2]=ch;
display(3+i%2,ch);
for(j=0;j<10;j++) delay();
}while(1);
}
un sig ned char OUT(sig ned char temperature_1,sig ned char temperature_2) {
un sig ned char output;
sig ned char dnum;
dnum=temperature_1-temperature_2;
if(d num>0)
{
if(dnum==1) output=128+20;
else output=250;
}
else if(dnum<0)
{
if(dnum==-1) output=128-20;
else output=5;
}
else output=128;
return output;
}
void mai n(void)
{
un sig ned char nu m1, nu m2;
un sig ned char dp[4];
un sig ned char temperature,i nput;
DP仁DP2=DP3=DP4=0xff;
In it_Device();
aa:keyboard(dp);//Set and display the aimed temperature
num 仁dp[3]*10+dp[4];
temperature=n um1*255/100;
flag=O;
do
{
C1=i nput;
delay();
in put=C1;//Read the curre nt temperature
delay();
nu m2=(i nput*100)/256;
display(1, nu m2/10);
display(2 ,nu m2%10);//Display curre nt temperature C2=OUT(temperature,i nput);〃
0utput C2 if(sca n( key)=='B') break;
}while(1);
goto aa;
}
3. 调试过程:连接电路并运行程序。

观察测温系统数字显示,应跟随调试台设置温度变化并与调试台设置温度接近。

若测量温度与设置温度相差过大的调试,则需调整变送器。

调试台设置低端温度,变送器进行零点校准,调试台设置高端温度,变送器进行满度校准。

以下是我们的实验截图:
八、心得体会
第二阶段我们一共完成了测温系统中的单片机,A/D转换,D/A转换,显示键
盘电路一共四块电路板。

虽然有了第一阶段的一些经验积累,没有那么手忙脚乱,但是这四块板子的难度相比第一阶段来说是更加的高。

第二阶段我们主要面临的问题有以下几点。

第一点就是电路板需要焊接的线数量非常大,非常密集。

这就意味着排线的难度大幅增加,同时在焊接过程中很容易出现失误。

在单片机这块的焊接中,我们就出现了把芯管脚搞反,结果在插针焊接的时候错了很多,要更改起来特别困难。

另外在布线的结构上我们也存在很大的问题,这就让焊接的线变得很多很乱,在测试电路的时候出现问题,查线排除故障进行的非常缓慢。

另外在显示键盘电路这块板子上,一开始四个数码管只有两个亮,我们以为是数码管的问题,但更换之后问题依然存在。

于是再进行电路检查,查了三四遍线路都认为没有问题这让我们觉得非常奇怪,后来在和其他组同学的电路板对比之后发现少了两根地线没有接,还是我们焊接时候的粗心大意造成的。

还有就是有些芯片的GND管脚没有标在管脚图上,也被我们忽略了,这是缺乏经验的缘故。

最让我们组头痛的就是测温系统,将6块板子组合在一起进行测试。

在之前我们每块板子单个都通过了测试,可是没有想到进行测温系统测试的时候竟然没有成功。

经过推断我们认为冋题肯定是出现在单片机上,但是不论是查线还是测试输出波形都查不出问题所在。

在我们非
常着急头痛走投无路的时候,老师给予了我们巨大的帮助。

在老师的测试下,一针见血的指出了A2管脚的线路有问题,经过检查果然如此,修正了电路之后果然就显示了正确的结果。

最后一节课,我们还有幸聆听了来自西门子的电子工程师的讲座,为我们讲述了他的学习经验,让我们收获颇丰。

本学期电子工程设计课程圆满结束,在这学期我们第一次尝试去完成一个功能完善的电子系统。

在这个过程中遇到了诸多的困难,但我们都顽强的客服了,我们的动手能力得到了锻炼,让我们明白纸上的电路转换为实际的系统,需要付出百倍的努力和耐心才能实现。

也让我们更加敬仰在历史长河中那些为人类做出贡献的电子工程师。

最后感谢高新的耐心教导和帮助。

九、附录
一、参考文献
1. 电子工程设计训练任务书(信息控制与通信部分)北京工业大学出版社
2. 模拟电子技术基础(第四版)童诗白,华成英高等教育出版社
二、插座定义
10
SEL NC 地地BUSY地
ACK地D8地D7地D6地D5地D4NC D3NC D2NC D1ERR STB NC
+5V+5V
模数转换输入
变送器输出
驱动器输入
数模转换输出-12V-12V +12V+12V
地地
D4A1 D5C4 D6C3 D7C2 P3.4C1地地。

相关文档
最新文档