基于单片机的函数发生器设计与实现
需积分: 9 48 浏览量
更新于2024-09-13
收藏 322KB DOC 举报
函数发生器单片机设计报告
**函数发生器单片机设计报告**
**设计要求**
本设计项目的目的是设计一个函数发生器,以单片机AT89C51为核心,利用D/A转换器实现函数发生器,并通过按键选择输出波形,能够分别产生三角波、阶梯波、正向锯齿波、负向锯齿波和方波。
**设计目的**
1. 学会使用Keil和Proteus软件进行单片机编程和仿真设计。
2. 初步了解工程设计和项目设计的基本概念和方法。
3. 完成课程设计,提高单片机编程和应用系统设计的能力。
**设计方案**
本设计采用Atmel公司的AT89C51单片机编程方法实现,利用按键输入和液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。AT89C51单片机是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。
**设计原理**
本系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换。采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。
**实验结果**
实验结果表明,本设计的函数发生器可以成功地产生五种不同的波形:方波、正向锯齿波、负向锯齿波、三角波和阶梯波。实验结果见下图:
**总原理图**
总原理图见下图:
**源程序**
源程序使用C语言编写,使用Keil编译器编译。源程序的主要部分见下:
```c
#include<reg52.h>
#include<absacc.h>
#define DAC0832 0x7fff
sbith=P3^4;
unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//定义数组SEG7
void delay(unsigned int i) //延时函数
{
while(i--);
}
void fang() //方波
{
if(h==1)
{
DAC0832=0;
delay(15);
DAC0832=255;
delay(15);
}
}
```
**结论**
本设计的函数发生器单片机设计报告展示了使用AT89C51单片机设计一个函数发生器的整个过程,从设计要求到实验结果,展示了设计的每一个步骤和细节。该设计可以作为单片机应用系统设计的参考和示例。
2019-03-24 上传
2014-03-24 上传
134 浏览量
2013-05-29 上传
2023-08-03 上传
2023-07-04 上传
2022-07-03 上传
2022-07-03 上传
loveroway
- 粉丝: 0
- 资源: 1
最新资源
- ASP.NET数据库高级操作:SQLHelper与数据源控件
- Windows98/2000驱动程序开发指南
- FreeMarker入门到精通教程
- 1800mm冷轧机板形控制性能仿真分析
- 经验模式分解:非平稳信号处理的新突破
- Spring框架3.0官方参考文档:依赖注入与核心模块解析
- 电阻器与电位器详解:类型、命名与应用
- Office技巧大揭秘:Word、Excel、PPT高效操作
- TCS3200D: 可编程色彩光频转换器解析
- 基于TCS230的精准便携式调色仪系统设计详解
- WiMAX与LTE:谁将引领移动宽带互联网?
- SAS-2.1规范草案:串行连接SCSI技术标准
- C#编程学习:手机电子书TXT版
- SQL全效操作指南:数据、控制与程序化
- 单片机复位电路设计与电源干扰处理
- CS5460A单相功率电能芯片:原理、应用与精度分析