1. 基于单片机与12864显示屏的多种函数波形信号发生器设计
点击链接下载protues仿真设计资料:https://download.csdn.net/download/m0_51061483/91926332
1.1 系统功能概述
随着电子测量技术、通信技术以及自动控制技术的快速发展,函数信号发生器已经成为电子实验、产品调试、工业控制以及科研开发过程中不可缺少的重要仪器。传统函数信号发生器通常采用专用模拟电路实现,存在结构复杂、参数调整困难、扩展能力差等问题。为提高系统灵活性与智能化程度,本设计采用单片机作为核心控制器,通过查表法结合DA数模转换技术实现多种标准函数波形输出,并采用12864液晶显示屏进行参数显示与人机交互。
本系统主要实现以下功能:
(1)支持方波、三角波、锯齿波和正弦波四种波形输出;
(2)用户可通过按键选择输出波形类型;
(3)用户可通过按键调节波形输出频率;
(4)采用查表方式生成波形数据,提高输出波形精度;
(5)通过DA转换器输出连续模拟波形信号;
(6)采用LCD12864液晶实时显示当前波形类型及频率参数;
(7)系统具有结构简单、运行稳定、成本低、扩展方便等优点。
整个系统能够满足电子实验教学、嵌入式开发调试以及信号分析等应用需求。
2. 系统总体设计方案
2.1 系统组成结构
系统主要由以下几个部分组成:
- 单片机主控制模块;
- LCD12864液晶显示模块;
- 独立按键输入模块;
- DA数模转换模块;
- 波形数据存储模块;
- 信号输出模块;
- 电源管理模块。
系统工作时,用户首先通过按键选择波形种类和输出频率。单片机根据用户设置调用相应波形数据表,并按照设定频率不断向DA转换器发送数据。DA转换器将数字量转换为模拟电压信号输出,最终形成所需函数波形。同时LCD12864实时显示当前工作状态。
3. 系统电路设计
3.1 单片机最小系统设计
单片机是整个系统的控制核心,负责波形数据输出、按键扫描、频率计算以及液晶显示控制等任务。
最小系统主要包括:
3.1.1 时钟振荡电路
系统采用11.0592MHz晶振作为单片机时钟源。
晶振电路为CPU提供稳定时钟信号,保证波形输出频率的准确性。由于函数信号发生器对时间精度要求较高,因此时钟稳定性直接影响输出波形质量。
3.1.2 复位电路
复位电路由电阻、电容和按键组成。
系统上电后自动复位,使程序从起始地址开始执行;当系统出现异常时,用户也可通过手动按键完成系统复位。
3.1.3 电源电路
系统采用5V稳压供电。
电源模块负责为单片机、DA转换器以及液晶显示模块提供稳定工作电压。
为了降低噪声影响,在电源输入端加入滤波电容和去耦电容,提高系统稳定性。
3.2 按键控制模块设计
按键模块用于实现用户参数设置。
系统设置多个独立按键:
3.2.1 波形选择按键
用于切换波形种类:
- 方波
- 三角波
- 锯齿波
- 正弦波
用户每按一次按键,系统自动切换到下一种波形。
3.2.2 频率增加按键
用于提高输出频率。
每次按下后频率按照预设步进值增加。
3.2.3 频率减小按键
用于降低输出频率。
用户可根据实验需求进行精确调节。
3.2.4 功能确认按键
用于确认当前设置参数。
按键采用软件消抖方式处理,提高识别准确率。
3.3 LCD12864液晶显示模块设计
LCD12864是一种图形点阵液晶显示器,具有显示信息丰富、界面友好等优点。
3.3.1 显示内容
系统主要显示:
- 当前波形类型
- 输出频率
- 系统运行状态
- 参数调整界面
例如:
text
Wave:SINE
Freq:1000Hz
Output:ON
3.3.2 显示特点
相比LCD1602:
- 显示内容更多
- 显示界面更美观
- 可扩展波形图形显示
- 用户操作更加直观
LCD12864通过并行接口与单片机连接,实现数据和命令传输。
3.4 DA数模转换模块设计
DA转换器是系统产生模拟波形的重要部分。
单片机输出的是数字信号,而示波器和测试设备需要连续模拟电压信号,因此需要利用DA芯片完成转换。
3.4.1 工作原理
单片机按照一定时间间隔向DA芯片发送数字数据。
DA芯片根据输入数据输出对应模拟电压:
text
数字量 → DA转换 → 模拟电压
通过连续输出多个数据点形成完整波形。
3.4.2 输出精度
采用8位DA转换器时:
text
分辨率 = 256级
采用12位DA转换器时:
text
分辨率 = 4096级
分辨率越高,输出波形越平滑。
3.5 波形输出模块设计
波形输出模块主要负责将DA输出信号送至外部设备。
为了提高波形质量,输出端增加:
- RC低通滤波器
- 运算放大器缓冲电路
其作用包括:
- 消除阶梯波失真
- 提高驱动能力
- 提高波形平滑度
最终输出标准模拟波形。
3.6 电源管理模块设计
电源模块负责系统供电。
主要包括:
- 稳压芯片
- 滤波电容
- 去耦电容
- 电源指示电路
良好的电源设计能够有效降低噪声对波形输出质量的影响。
4. 系统程序设计
4.1 软件总体设计
系统软件采用模块化结构设计。
程序主要包括:
- 系统初始化模块;
- 按键扫描模块;
- 波形生成模块;
- DA输出模块;
- LCD显示模块;
- 定时器控制模块。
程序运行流程如下:
text
系统初始化
↓
按键扫描
↓
参数设置
↓
选择波形
↓
查表输出
↓
DA转换
↓
LCD显示
↓
循环运行
4.2 主程序设计
主程序负责整个系统调度。
c
void main()
{
System_Init();
while(1)
{
Key_Scan();
Wave_Output();
LCD_Display();
}
}
程序运行后持续检测用户输入并更新输出波形。
4.3 波形数据表设计
系统采用查表法产生波形。
4.3.1 正弦波数据表
c
unsigned char Sin_Table[32]={
128,153,177,199,218,234,245,252,
255,252,245,234,218,199,177,153,
128,103,79,57,38,22,11,4,
1,4,11,22,38,57,79,103
};
查表法优点:
- 运算速度快
- CPU负担小
- 波形精度高
适用于实时波形输出系统。
4.3.2 三角波数据表
c
unsigned char Tri_Table[16]={
0,32,64,96,
128,160,192,224,
255,224,192,160,
128,96,64,32
};
通过线性递增和递减形成三角波。
4.3.3 锯齿波数据表
c
unsigned char Saw_Table[16]={
0,16,32,48,
64,80,96,112,
128,144,160,176,
192,208,224,240
};
数据逐渐增加形成锯齿波。
4.3.4 方波数据表
c
unsigned char Square_Table[16]={
255,255,255,255,
255,255,255,255,
0,0,0,0,
0,0,0,0
};
输出高低电平实现方波。
4.4 波形输出程序设计
系统根据当前波形类型选择对应数据表。
c
void Wave_Output()
{
DA_Write(Wave_Table[index]);
index++;
if(index >= Table_Size)
{
index = 0;
}
}
不断循环输出数据即可形成周期波形。
4.5 频率控制程序设计
频率控制通过定时器实现。
频率计算公式:
text
输出频率 = 定时器中断频率 ÷ 波形采样点数
例如:
text
中断频率 = 32000Hz
采样点数 = 32
输出频率 = 1000Hz
程序如下:
c
void Timer0_ISR() interrupt 1
{
TH0 = Timer_H;
TL0 = Timer_L;
Wave_Output();
}
通过改变定时器重装值即可调整输出频率。
4.6 按键扫描程序设计
按键扫描实现波形和频率设置。
c
void Key_Scan()
{
if(KEY_WAVE == 0)
{
DelayMs(10);
if(KEY_WAVE == 0)
{
Wave_Mode++;
if(Wave_Mode > 3)
{
Wave_Mode = 0;
}
}
}
if(KEY_ADD == 0)
{
Frequency += 100;
}
if(KEY_SUB == 0)
{
Frequency -= 100;
}
}
采用软件消抖提高系统可靠性。
4.7 LCD显示程序设计
实时更新当前参数。
c
void LCD_Display()
{
LCD_ShowString(0,0,"Wave:");
LCD_ShowString(0,6,WaveName);
LCD_ShowString(2,0,"Freq:");
LCD_ShowNum(2,6,Frequency);
LCD_ShowString(2,12,"Hz");
}
显示内容与用户设置保持同步。
5. 系统运行过程分析
系统上电后首先完成硬件初始化,并在LCD12864显示默认波形及默认频率。
用户通过波形选择按键切换不同波形类型,单片机自动切换对应查找表。频率调整按键用于改变定时器中断周期,从而改变波形输出频率。系统实时将参数显示在LCD12864液晶屏上,同时将波形数据通过DA转换器输出到外部接口。
当用户选择正弦波时,系统读取正弦波数据表并依次输出;选择三角波时则调用三角波数据表;选择锯齿波和方波时同理。整个过程完全由单片机控制,实现数字化波形产生。系统具有输出稳定、频率可调、波形丰富、操作简单等特点,能够满足电子实验与信号测试的实际需求。
6. 系统总结
本设计采用单片机作为控制核心,通过查表法结合DA数模转换技术实现方波、三角波、锯齿波和正弦波四种标准函数波形输出。系统利用LCD12864液晶显示模块实现波形类型与频率参数的实时显示,并通过按键实现人机交互控制。整个系统具有结构简单、成本低、运行稳定、扩展方便以及输出波形精度较高等特点,可广泛应用于电子实验教学、仪器仪表开发、嵌入式系统调试以及自动控制领域,具有良好的工程应用价值和推广意义。