文本描述
基于 51单片机的数字信号发生器的设计 西安交通大学 姜萌 彭保基 杨东平 摘要:本文介绍了基于 ATMEL公司的 AT89C51和 AT89C2051的数字信 号发生器的硬件设计和软件编程思想。 关键词:51单片机,UART通讯,模拟开关,波形转换 概述:我们用一块AT89C51实现键盘输入扫描与 LED数码管显示控制, 同时通过 UART向 AT89C2051发送频率控制与波形转换档位选择信息。 AT89C2051通过UART接收 AT89C51发送的控制信息,选择波形转换 档位之后通过内部定时器在 I / O口产生相应频率的方波信号,至此完 成数字信号发生过程。 2051将产生的方波信号输入运算放大器组成 的积分电路,得到相同频率的三角波信号,该三角波信号通过差分放 大电路得到相同频率的正弦波信号。该信号发生器能准确输出频率范 围为 16HZ—70KHZ的三种波形信号。 方案论证与比较 信号发生部分: 方案一:使用锁相环通过分频运算实现频率的步进,这种方案频率稳 定度高,但程控比较困难,而且步进范围过大,鉴于锁相环技术比较 复杂,没有采用这种方案。 方案二:使用专用函数发生电路,如I CL8038或MAX038,通过 D/ A 转换调整函数发生器控制电压实现频率的控制,这种方案可以使频率 连续可调,省却了波形转换电路,但控制电压与频率的变化不是严格 PDF文件使用"pdf Fact or y Pr o"试用版本创建 的线性关系,如果不加频率负反馈则频率无法稳定准确,加上频率负 反馈将使电路大大复杂,稳定度也会下降,而且如果要实现比较大的 带宽,就需要不断更换振荡电容,电路复杂程度进一步增加。为避免 调试困难,没有采用这种方案。 方案三:使用单片机的定时器设置定时时间,每半个周期对 I / O口取 反一次,从而实现频率输出。这种方案虽然在高频频段误差比较大, 但是编程简单控制容易,权衡以上利弊,我们选择了方案三。 键盘与显示控制部分: 方案一:使用并行控制器 8279或 I I C总线控制器 ZLG7290构建键盘 与显示部分,编程简单功能强大,但成本较高而且接口协议比较复杂, 我们没有采用。 方案二:使用单片机本身的I / O口做键盘和显示控制,能够节省大量 外围器件,符合硬件软化的原则,而且本系统对按键和显示部分的要 求并不高,所以我们采用了这种方案。 波形转换部分: 方案一:使用专用的波形转换芯片,效果好但成本高,也没有典型的 器件可以采用,故没有