当前位置:首页 > 基于C8051F330单片机的可调数字波形发生器的设计与实现-实验报告 - 图文
基于C8051F330单片机可调数字波形发生器设计
第二章 硬件设计
第1节 系统硬件功能
根据系统设计方案,系统硬件的主要功能为:(1)能直接接+5V直流电源适配器,并带有电源通断开关和通电LED指示;(2)具有手动复位功能,具有可选的2个按键;(3)具有调试和程序下载接口;(4)有D/A功能;
根据系统功能的要求,系统的总体设计方案如图2-1所示。其中,正弦波和方波信号由主控制模块C8051F330单片机软件及其片上的电流模式输出的数/模转换器(IDAC)实现,并将各信号通过引出的引脚接到示波器上显示.
按键
主芯片C8051F330 下载接口
D/A 电源 MAX32322 PC机 复位
扩展IO口 图2-1 系统硬件功能总体框图
第2节 电源电路设计
由于C8051F330单片机为3.3V供电,在电路的设计当中,通过正5V电源适配器对系统提供5V直流电压,通过电压转换芯片产生3.3V电压供给单片机工作。电容为滤除电路中的高频噪声。系统供电电路如图2-2(附录)所示。图中的电阻R25的作用是保护LED,在电流过大时,防止将LED烧坏。其中各部分参数是以官方推荐为准。
第3节 C8051F330控制电路设计
5
基于C8051F330单片机可调数字波形发生器设计
1、复位电路
在单片机的复位电路设计中,复位电路采用了按键复位来实现的。当单片机上电时,自动实现内部寄存器等初始化复位。因为在实际应用中单片机还需要设置成可以随时复位,以便在异常情况下根据用户的指令程序可以重新运行。因此,多加了一个按键复位电路,这个电路平时的状态为断开,当按键按下时就会使RESET置低,使得单片机复位。按键复位电路图如图2-3(附录)所示。
2、按键电路
根据系统设计方案,我们在本次实验过程中需要用到两个开关按键, 分别用来控制波形的转换和波形频率的转换;根据设计的按键可知在按键按的 情况下,按键所接端口被置0。按键电路图如图2-3-2(附录)。
第三章 软件设计
第1节 系统软件功能
本设计通过采用单片机控制D/A的方法设计利用C8051F330单片机和验证程序实现正弦波,方波和三角波信号输出。在控制上,只需上电,就能通过D/A转换,可在示波器上输出正弦波、方波三角波等信号,并可在示波器上显示输出波形,且频率与波形均可通过按键可调。整个系统需要具有操作方便、控制灵活的。
第2节 软件详细设计
1、软件主程序流程图设计
6
基于C8051F330单片机可调数字波形发生器设计
根据系统设计方案,我们在主函数的设计上,根据要使用的各各硬件部分,对部分 I/O端口,系统时钟,DAC转换,定时器中断进行初始化,在定时器的选择上。我们使用定时器0,方式1,来控制延时。如图3-2-1主函数流程图
图3-2-1主函数流程图
2、可调波形程序设计
正弦波设计
正弦波的实现相对复杂,程序设计中采用通过查找256点正弦查找表并通过DA实现波形输出,对于DA的输出触发更新触发模式选择定时器触发更新模式。
通过改变各个输出点的延时来实现频率可调,同样通过输出点的值的衰减来实现幅度可调。设计流程图如下图3-2-2所示:
方波设计
为了保持系统软件设计的一致性,方波信号通过在一定时间内使引脚置高和置低来实现。同样采用了 256点输出,DA输出更新触发模式选用定时器触发更新模
式。其中前128点置低,实现低电平,后128点置高,实现高电平。
7
基于C8051F330单片机可调数字波形发生器设计
通过输出点的延时来实现频率可调,且幅度可通过衰减值实现可调。设计流程图如下图3-2-2所示。
心形波设计
在心形波程序设计中采用通过交叉查找256点正弦表并通过DA实现波形输出。
通过输出点的延时来实现频率可调,且幅度可通过衰减值实现可调。在此提供心形波输出代码。结果如图3-2-3显示
case 3: {
Timer_C = 0; if(i>255)
IDA0H=125; 3-2-3 心形波实物图 else{ if(num==1) { num=-num;
} else
{ num=-num;
IDA0H=SIN_TABLE[125+(i/2)5];
3-2-3 心形波形实物图
}}
IDA0H=SIN_TABLE[i5]/2;
//自创爱心波形
if(++Timer_C>F_C)
if(i++>300)
i = 0; break; }
第四章 过程与结果分析
产生的问题与分析 硬件问题
在实验前期,通过protel 99 SE 对硬件部分进行设计,了解老师提供开发板的基本电路设计,在实验过程通过C8051F330的P0.1(IDAC0)端口进行输出电流,将P0.1端口引脚直接与示波器连接,导致波形无法输出。
8
共分享92篇相关文档