《单片机小型系统中的应用》
---集基于 DDS 技术的信号发生器、万年历、
温度传感及控制、I/O 口扩展、串口下载
学 部: 电气与信息工程学部
专 业: 电子信息工程
参赛组成员: 巫萍、孙顺清、纪红平
二 00 九 年 四 月 十九 日
0
摘要:单片机小型系统是由基于 DDS 技术的数字信号发生器、万年历、温度传感
及控制、I/O 口扩展、串口下载与通信、液晶显示等模块组成。
直接数字频率合成(Direct Digital Frequency Synthesis 简称 DDS)是近
年来迅速发展起来的一种新的频率合成方法,广泛应用于通讯、导航、雷达、遥
控遥测、电子对抗以及现代化的仪器仪表工业等领域。波形的频率在 1Hz~10MHz
范围内,频率变换快,其步进频率为 1Hz,频率稳定、抗干扰能力强。精确度高。
它由七个功能模块构成:人机界面模块、频率产生模块、低通滤波模块、单片机
模块、电源模块。
万年历是由先进的时钟芯片 DS12C887 通过与单片机进行总线连接,输出年、
月、日、星期、时、分、秒。及改变程序可以改变其他功能等。
温度传感是采用温度传感器 DS18B20 与单片机进行单总线连接输出传感器所
在地方当时的温度,精确到小数点后 4 位。更重要的是利用程序将所感应到的温
度数据进行数字滤波,并且利用磁滞回线的特性进行温度控制,可以应用到电磁
炉等控制系统。
I/O 口扩展采用 8155 芯片与单片机的 P0 口进行总线形式连接,与 DS12887
通过片选进行区分。
串口下载与通信电路采用 9 针的串口线与计算机相连就可以对 STC 单片机进
行下载,通过 MAX232 进行电平转换,直接与单片机的串行通信口相连。
关键词:
直接数字频率合成(DDS)
数字信号发生器
AD9850
DS12C887
DS18B20
8155
1
目 录
1 单片机实验系统总体介绍……………………………………………………1
1.1 主要芯片介绍…………………………………………………………1
1.2 实验系统介绍…………………………………………………………1
2 单片机实验系统各模块介绍…………………………………………………2
2.1 基于 DDS 技术的信号发生器原理及电路……………………………2
2.2 万年历原理及电路……………………………………………………5
2.3 温度传感及控制原理及电路…………………………………………7
2.4 I/O 口扩展原理及电路………………………………………………8
2.5 串口下载原理及电路…………………………………………………9
2.6 人机交互模块原理及电路……………………………………………9
2.7 电源模块原理及电路…………………………………………………11
3 实验系统总电路图及程序流程图……………………………………………11
3.1 总电路图………………………………………………………………11
3.2 程序流程图……………………………………………………………12
4 元件清单………………………………………………………………………23
5 总结……………………………………………………………………………23
6 参考文献………………………………………………………………………23
7 作者简介………………………………………………………………………24
8 附录:测试波形及总程序……………………………………………………25
2
1 单片机实验系统总体介绍
1.1 主要芯片介绍
AD9850
AD9850 是美国AD公司采用直接数字频率合成(DDS)技术推出的一款高集成
度频率合成。采用 32 位频率控制字;最大时钟频率为 125MHz(本设计采用 50MHz);
输出正弦波频率时的分辨率可达 0.01164Hz;内含可编程DDS系统和高速比较器,
它的核心是相位相加器,由一个加法器和一个N(N=32)位相位寄存器组成。输
出信号的频率Fout=(△FCONB×Fs)÷232(其中△FCONB为 32 位频率控制字的值,
Fs为标准参考时钟的频率,本设计Fs=50MHz)。
DS12C887
DS12C887 可计算到 2050 年以前的年、月、日、星期、时、分、秒;内部自
带晶振及电池,在没有外部电源的情况下可工作 10 年;用二进制或 BCD 码表示
日历信息;12/24 小时两种制式,其中 12 小时制式有 AM、PM 提示;数据地址总
线复用;可应用于 MOTOROLA、INTEL 两种总线(本设计采用 INTEL 总线结构);
内建 128 字节 RAM;周期及闹钟中断;可选夏令时模式;可作为 IBM AT 计算机
的时钟等功能。
18B20
DS18B20是由Dallas半导体公司生产的“一线总线”接口的温度传感器,可
使用户轻松地组建传感器网络;提供 9 位温度读数;可用数据线供电;测温范围
为-55℃~+125℃,在-10℃~+85℃的范围内,精度为±0.5℃;在 750 毫秒(最
大)内把温度变换为数字;适合于恶劣环境的现场温度测量,如环境控制、设备
或过程控制、测温类消费电子产品等。
8155
8155 具有三个可编程 I/O 口,其中 A 口和 B 口为 8 位,C 口为 6 位;A、B
口既可作基本 I/O 口,也可做选通 I/O 口;C 口除可作为基本 I/O 口之外,还可
以用做 A、B 口的应答联络信号线;内部含 256 个单元的 RAM 和一个 14 位计数结
构的定时/计数器;内部还有一个控制寄存器组以及自带地址锁存器,可与单片
机直接相连。
1.2 实验系统介绍
本实验系统以 AT89S52 单片机为核心,外部由基于 DDS 技术的数字信号发生
器、万年历、温度传感与控制、I/O 口扩展、串口下载与通信、液晶显示及矩阵
键盘等模块组成。
通过电脑九针的串口线对 STC 单片机进行编程下载,通过控制 DS12C887、
DS18B20,取得时间及温度数据进行处理之后,显示在液晶 TC1602 的第一界面上,
同时通过 I/O 口扩展芯片 8155 来控制 AD9850 对信号发生器的频率及相位等进行
调整。而键盘的控制通过外部中断 0 来切换到人机交互界面,可以输入想要输出
波形的频率,设置时间,设置温度、回差范围的正负逻辑,查看当前波形的频率、
周期、幅度及占空比等。整体框图如图 1.2-1 所示。
3
串口下载
(MAX232)
P
3
.
0
1
4×4 矩
阵键盘
P1 口
18B20
P3.4 口
温度控
制
P3.3 口
5V 电
源
时钟
(DS12C887)
输出 1~10MHz
的正弦波、方
波
PA 口
PB3、PB4 口
A
D
9
8
5
0
P0 口
读写口
单
片
机
P
2
口
8
1
5
5
P
B
口
液晶 TC1602
图 1.2-1 实验系统整体框图
2 单片机实验系统各模块介绍
2.1 基于 DDS 技术的信号发生器原理及电路
直接数字频率合成(DDS)是采用数字化技术,通过控制相位的变化速度,直
接产生各种不同频率信号的一种频率合成的方法。DDS 的结构原理图如图 2.1-1
所示,它由相位累加器、正弦 ROM 表、D/A 转换器等组成。参考时钟 Fs 由一个
稳定的晶体振荡器产生,用它来同步整个合成器的各个组成部分。相位累加器由
N位加法器与N位相位寄存器级联构成,类似于一个简单的加法器。每来一个时
钟脉冲,加法器就将频率控制字△FCONB 与相位寄存器输出的累加相位数据相加,
然后把相加后的结果送至相位累加器的数据输入端。相位寄存器就将加法器在上
一个时钟作用后产生的新相位数据反馈到加法器的输入端,以使加法器在下一个
时钟的作用下继续将相位数据与频率控制字相加。这样,相位累加器在参考时钟
的作用下进行线性相位累加。当相位累加器累加满量时,就会产生一次溢出,完
成一个周期性的动作,这个周期就是合成信号的一个周期,累加器的溢出频率也
就是 DDS 的合成信号的频率。
DDS 的基本原理是利用采样定量,通过查表法产生波形,在参考时钟 Fs 的
控制下,频率控制字△FCONB 由累加器累加以得到相应的相位数据,把此数据作
为取样地址,来寻址正弦 ROM 表进行相位-幅度变换,输出不同的幅度编码;再
经过 D/A 转换器得到相应的阶梯波;最后经低通滤波器对阶梯波进行平滑处理,
即可得到由频率控制字决定的连续变化的输出正弦波。DDS 的输出频率 Fout、参
考时钟频率 Fs、相位累加器长度N以及频率控制字△FCONB 之间的关系为:
Fout=(△FCONB×Fs)÷232
(其中△FCONB 为 32 位频率控制字的值,Fs 为标准参考时钟的频率,本设计
Fs=50MHz)。
按AD9850 的资料说明,结合实际输出波形测试,本设计的输出频率带宽限
4
制在 1~10MHz(20% Fs以内),即△FCONB取值不能大于 0.2*232。单片机通过 8155
对AD9850 进行并口传送频率控制数据,AD9850 的DAC输出两个互补的模拟电流
(第 20 与第 21 脚),若要调节DAC满量程输出电流,需调整第 12 引脚的外接电
阻。其输出电流与电阻的关系为I=32*(1.248V/R),当电阻为 3.9KΩ时,输出
电流约为 10mA。这样,在 200Ω的负载上可得到峰—峰值约为 2V的正弦波。
并行
输入
串行
输入
数据
及控
制输
入寄
存器
相位控制
相位累加器
输入时钟
参考时钟输入
正弦查找表
模拟输出
10 位 DAC
图 2.1-1 结构原理图
由于输出实际上是时间极短的取样数据,所以DDS发生器输出的是一个阶梯
正弦波,必须经过低通小组滤波器将波形中所含的高次谐波滤除掉。输出端采用
LC低通滤波器滤除高次谐波。为了使通带内有稳定的响应和一定窄的过渡带,设
计中采用椭圆低通滤波器。AD9850 还有 5 位相位控制位,并且允许相位按增量
1800,900,450,22.50,11.250值或这些值的组合进行调整。
在设置AD9850 的输出频率时,得根据频率计算控制字,△FCONB = Fout×
232÷Fs,本设计中Fs=50MHz,则:△FCONB = Fout×85.89934592。根据设置的
频率计算控制字的程序流程图如图 2.1-2 所示。
本设计可以对 AD9850 进行调频、扫频。单片机通过 8155 的 PA、PB 口控制
AD9850 时,先写高字节,再写低字节,总共写五个字节。在写 AD9850 前把 FQ_UD
拉低然后把数据通过 8155 的 PA 口写到数据线上,接着通过 8155 的 PB3 口在 W_CLR
发送一个上升沿,再按上面的方法连继写低四个字节,写完最后一个字节后,再
通过 8155 的 PB4 口在 FQ_UD 上发送一个上升沿使 AD9850 更新。与单片机的连接
电路图如图 2.1-3。
5
进入转化程序
控制字乘以 0.02FAF08H 把整数保成在内存单元
频率值除以 989680H(10000000)存入显示单元 AD_BCD7
余数值除 F4240H(1000000)存入显示单元 AD_BCD6
余数值除 186A0H(100000)存入显示单元 AD_BCD5
余数值除 2710H(10000)存入显示单元 AD_BCD4
余数值除 3E8H(1000)存入显示单元 AD_BCD3
余数值除 64H(100)存入显示单元 AD_BCD2
余数值除 0AH(10)存入显示单元 AD_BCD1
余数值除存入显示单元 AD_BCD0
图 2.1-2 计算频率的程序流程图
图 2.1-3 AD9850 与单片机的连接图
6
2.2 万年历原理及电路
采用 DS12C887 芯片设计的时钟电路无需任何外围电路并具有良好的微机接
口。DS12C887 芯片具有低功耗、外围接口简单、精度高、工作稳定可靠等优点,
可广泛用于各种需要较高精度的实时时钟场合中。DS12C887 内部原理如图 2.2-1
所示,由振荡电路、分频电路、周期中断/方波选择电路、14 字节时钟和控制单
元、114 字节用户非易失 RAM、十进制/二进制计加器、总线接口电路、电源开关
写保护单元和内部锂电池等部分组成。
图 2.2-1 DS12C887 内部原理图
时间和日历信息通过读相应的内存字节来获取,时间、日历和定闹通过写相
应的内存字节设置。在 DS12C887 中,114 字节通用非易失 RAM 不专用于任何特
殊功能,它们可被处理器程序用作非易失内存,在更新周期也可访问。DS12C887
出厂时,其内部晶振被关掉,以防止锂电池在芯片装入系统前被消耗。 DS12887
有 4 个控制寄存器,它们在任何时间都可访问,即使更新周期也不例外。
寄存器 A
BIT7
UIP
BIT6
DV2
BIT5
DV1
BIT4
DV0
BIT3
RS3
BIT2
RS2
BIT1
RS1
BIT0
RS0
UIP:更新周期正在进行位。当 UIP 为 1,更新转换将很快发生,当 UIP 为 0,
更新转换至少在 244µs 内不会发生。
DV0,DV1,DV2:为 010 时打开晶振并时钟运行;为 11X 时打开晶振,但分
频器保持复位状态;其它组合都会使晶振关闭。
寄存器 B
7