- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子系统设计实践报告
单片机控制的多功能函数发生器
设 计 报 告
姓 名: 陈远辉
学 号: 241099429
专 业: 电子信息工程
指导教师: 吴钟华
2013年 6 月 25 日
波形发生器的设计
完成人:吕金穗();()(信)
? 关键词:? 2.1?系统组成及工作原理
该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。
AT89C51单片机时钟电路采用内部方式,外接陶瓷谐振器(频率为12MHz),微调电容值为30pF。系统复位采用按键式外部复位方式,复位信号至少保持8us以上。通过按键由用户选择要输出的波形,按键选择占用P10—P17口,采用独立式键盘结构,框图如图2.1所示。
图2.1 系统的总体框图
2.2 波形发生器测量原理
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。STC89C52单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C52再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器。
STC89C52是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。
?3?硬件设计
? 3.1?硬件组成
单片机和数模转换DAC0832是波形发生器的核心部分。单片机负责读取程序,处理按键信息,产生波形数据,然后把数字信号送往数模转换器,转换成模拟信号输出,也就是波形。实际上产生的波形是一个周期的采样点数,这里取的是256个点。产生波形是每个采样点后,延时一段时间再输出下一个点,直至采样点都输出完了,就完成了一个周期的波形输出。
图3.1 硬件仿真图
? 3.2?单片机核心模块
AT89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用AT89C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图是AT89C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:
有可供用户使用的大量I/O口线。
内部存储器容量有限。
应用系统开发具有特殊性。
图3.2 单片机引脚图
? 3.3?波形产生电路
由单片机采用编程方法产生四种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形其电路图如下:
?
图3.3 波形产生电路
?3.4?显示电路
1602的八位数据端接单片机的P2口,其三个使能端RS、RW、E分别接单片机的P1.6—P1.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。
图3.4 显示电路
4?.程序设计
? 4.1?主程序设计
本系统采用AT89C51单片机,用编程的方法来产生四种波形,并通过编程
来切换四种波形以及波形频率的改变。
具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。软件调通后,通过编程器下载到AT89C51芯片中,然后插到系统中即可独立完成所有的控制。软件的流程图如下:
图4.1 流程图
4.2?程序设计
#includereg52.h
#includeabsacc.h
#define DAC0832 XBYTE[0x0fff] //DAC0832端口
int pinlv=256; //改变频率的时延自变量
int pinlv1=256;
sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
sbit p23=P2^3;
sbit RS = P3^0;
sbit RW= P3^1; //液晶显示的端口
sbit E = P3^4;
int j=0;
unsigned char code TAB[ ]=0123456789msTime: ;
unsigned char code TAB1[ ]=zh
文档评论(0)