信号发生器
- 格式:doc
- 大小:743.00 KB
- 文档页数:15
信号发生器的基本组成信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。
它在测量、测试、调试和维修电子设备中起到了非常重要的作用。
信号发生器的基本组成包括以下几个部分:1. 振荡器:这是信号发生器的核心部分,用于产生所需的信号波形。
振荡器可以是晶体振荡器、LC 振荡器或 RC 振荡器等,具体取决于所需的频率范围和波形。
2. 波形产生电路:波形产生电路用于将振荡器产生的信号转换为所需的波形,如正弦波、方波、三角波等。
这可以通过使用滤波器、放大器、比较器等电子元件来实现。
3. 频率调节电路:频率调节电路用于调整信号的频率。
这可以通过改变振荡器的元件参数、使用频率合成器或锁相环等技术来实现。
频率调节通常可以通过手动旋钮、按键或外部控制信号进行。
4. 幅度调节电路:幅度调节电路用于调整信号的输出电平。
这可以通过可变增益放大器、衰减器或外部控制信号来实现。
幅度调节可以使信号发生器产生不同强度的信号,以满足不同的测试需求。
5. 输出电路:输出电路将生成的信号传递到外部设备或测试装置。
它可以包括放大器、滤波器、隔离器等,以确保信号的质量和稳定性。
6. 控制和显示界面:信号发生器通常配备控制和显示界面,用于设置和显示相关参数,如频率、幅度、波形类型等。
这可以通过旋钮、按钮、显示屏或连接到计算机进行远程控制来实现。
除了以上基本组成部分,一些高级信号发生器还可能包括调制功能、扫描功能、数字信号生成能力、存储和调用波形的能力等。
这些附加功能可以根据具体的应用需求进行选择和配置。
总之,信号发生器的基本组成部分包括振荡器、波形产生电路、频率和幅度调节电路、输出电路以及控制和显示界面。
这些部分协同工作,以产生各种频率和波形的电信号,为电子测试和调试提供了重要的工具。
信号发生器的分类信号发生器是电子测试仪器中常用的一种设备,用于产生不同频率、幅度和波形的电信号。
根据其功能和应用领域的不同,信号发生器可以分为多种类型。
本文将对几种常见的信号发生器进行分类和介绍。
一、函数发生器(Function Generator)函数发生器是最常见的一种信号发生器,它可以产生多种波形信号,如正弦波、方波、锯齿波和三角波等。
函数发生器可以根据用户的需求,通过调节频率、幅度和相位等参数,生成不同形态的信号。
它广泛应用于电子实验、通信测试和教学等领域。
二、任意波形发生器(Arbitrary Waveform Generator)任意波形发生器是一种高级的信号发生器,可以产生任意复杂的波形信号。
与函数发生器相比,任意波形发生器可以通过用户提供的采样点数据,生成非周期性的任意波形信号。
任意波形发生器在研发新产品、模拟真实信号和测试复杂系统等方面具有重要应用。
三、脉冲发生器(Pulse Generator)脉冲发生器是专门用于产生脉冲信号的设备。
脉冲发生器可以产生具有特定频率、宽度和占空比的脉冲信号,常用于数字电路测试、脉冲测量和脉冲信号调试等领域。
脉冲发生器还可以模拟各种脉冲干扰,用于电磁兼容性测试和抗干扰性能评估。
四、频率计(Frequency Counter)频率计是一种用于测量信号频率的设备,通常与信号发生器配合使用。
频率计可以精确地测量输入信号的频率,并显示在数码显示屏上。
频率计广泛应用于科研实验、无线通信、广播电视等领域,常用于校准信号发生器和检测频率稳定性。
五、噪声发生器(Noise Generator)噪声发生器是一种用于产生随机噪声信号的设备。
噪声发生器可以产生不同类型的噪声信号,如白噪声、粉噪声和高斯噪声等。
噪声发生器在通信系统测试、声学实验和信号处理等领域具有重要应用,可以模拟真实环境中的噪声情况。
六、微波信号发生器(Microwave Signal Generator)微波信号发生器是专门用于产生微波频率信号的设备。
信号发生器是一种用于产生各种类型和频率的电信号的仪器,常用于电子测试、实验和通信设备调试等领域。
其主要功能和使用方法如下:
功能:
1.产生标准信号:信号发生器可以产生各种类型的标准信号,如正弦波、方波、脉冲波、三角波等,用于测试和测量电路的性能和响应。
2.调节信号参数:信号发生器可以调节信号的频率、幅度、相位等参数,以满足测试和实验的需求。
3.产生调制信号:信号发生器还可以产生调制信号,如调幅信号、调频信号、调相信号等,用于调试和测试调制解调器、通信设备等。
4.产生噪声信号:一些信号发生器还具有产生噪声信号的功能,用于测试和测量器件或系统的抗干扰能力和性能。
使用方法:
1.设置频率:选择所需的信号类型,通过旋转或按键操作设置所需的频率。
2.设置幅度:根据需要,设置信号的幅度(峰值、峰峰值、或功率)大小。
3.调节相位:若需要,通过旋转或按键操作,调节信号的相位。
4.选择输出方式:选择信号的输出方式,可以通过电缆连接到被测试的设备或电路中,或者使用内置的示波器检测输出信号。
5.调整信号参数:根据实际需求,对信号的频率、幅度、相位等参数进行调整,以满足测试、实验和调试的要求。
6.监测和分析信号:使用示波器或其他测量仪器,监测和分析输出信号的波形和特征,以评估被测试设备或电路的性能和响应。
需要注意的是,使用信号发生器时应遵循安全操作规程,确保信号发生器和被测试设备之间的连接正确可靠,防止过载或短路等意外情况的发生。
信号发生器使用方法
信号发生器是一种电子仪器,可以产生各种类型的电信号或波形,用于测试和调试电子设备。
以下是信号发生器的一般使用方法:
1. 首先,将信号发生器连接到待测设备或电路的输入端。
可以通过电缆或插头连接。
2. 打开信号发生器的电源开关,并确保仪器已经启动。
3. 选择要产生的信号类型,如正弦波、方波、三角波等。
这通常可以通过选择信号类型的旋钮或按下相应的按钮来实现。
4. 设置信号的频率。
可以通过旋钮或按键设置所需的频率值。
通常,频率以赫兹(Hz)为单位。
5. 设置信号的幅度或电压。
可以通过旋钮或按键来调整信号的幅度。
单位可能是伏特(V)或毫伏(mV)。
6. 可以选择设置其他参数,如相位、偏置、扫描等。
这取决于信号发生器的功能和您的测试需求。
7. 确定信号发生器的输出端是否与待测设备或电路正确连接,并确保连接稳定。
8. 最后,确认设置无误后,可以在信号发生器上按下开始或触发按钮,开始产生信号。
请注意,具体的使用方法可能因信号发生器的型号和功能而有所不同。
在使用之前,请务必阅读信号发生器的用户手册,并按照说明进行操作。
如果遇到任何问题,请参考用户手册或咨询相关专业人士。
信号发生器的使用介绍信号发生器是一种用于产生各种类型和频率的电子信号的仪器。
它们被广泛应用于电子设备测试和调试、通信系统分析、音频设备评估等领域。
本文将介绍信号发生器的基本原理、常见类型、主要功能以及使用方法。
基本原理信号发生器基于电子技术原理,通过产生可调频率和振幅的电信号来模拟各种实际环境中的信号。
信号发生器通常由一个稳定的振荡器和相关控制电路组成。
振荡器的频率和振幅可以通过用户界面进行调整和控制。
常见类型1. 函数发生器函数发生器是最常见的信号发生器类型之一。
它可以产生各种形状的波形信号,如正弦波、方波、三角波、锯齿波等。
函数发生器通常具有可调节的频率、幅度和相位等参数,并可以通过内置的触发器和计数器实现复杂的信号模式。
2. 频率合成发生器频率合成发生器是一种高级信号发生器,它可以生成非常精确的特定频率信号。
它的原理是通过将多个频率信号合成为一个复杂的信号,以产生所需精确频率的输出信号。
3. 脉冲发生器脉冲发生器是专门用于生成脉冲信号的信号发生器。
它常用于测试和测量应用中,例如测量脉冲响应、传输信号的时延等。
4. 同步发生器同步发生器是一种专门用于产生同步信号的信号发生器。
它可以生成与特定频率和相位的外部事件同步的信号。
同步发生器常用于测试和测量领域中的同步应用,例如测量信号延迟、同步多台仪器等。
主要功能信号发生器具有多种主要功能,可以根据实际需求进行选择和配置。
1. 频率和振幅调节信号发生器允许用户精确地调节产生的信号的频率和振幅。
用户可以根据需要设置特定的频率和振幅值,并观察信号在设备或系统中的响应。
2. 波形选择和生成信号发生器可以产生不同类型的波形信号,如正弦波、方波、三角波、锯齿波等。
用户可以根据需要选择合适的波形,并根据需要调整相关参数。
3. 脉冲调节对于脉冲发生器,用户可以调节脉冲的宽度和周期。
这可以用于测试和测量应用,如测量脉冲响应、传输信号的时延等。
4. 频率合成频率合成发生器可以合成特定频率的信号。
什么是信号发生器它在电子测试设备中的应用有哪些什么是信号发生器?它在电子测试设备中的应用有哪些信号发生器是一种用于产生不同类型电信号的电子设备。
它可用于各种电子测试和测量,以及在无线通信、音频频率响应、功能验证和故障排查等方面的应用。
本文将介绍信号发生器的基本原理和主要应用领域。
一、信号发生器的基本原理信号发生器的基本原理是通过特定的电路和控制系统来产生不同类型的电信号。
它通常包括一个振荡器和一个输出级,用于产生和放大电信号。
振荡器根据设定的频率和波形参数产生电信号,并将信号传递给输出级进行放大,从而输出到外部电路或设备。
信号发生器的主要参数包括频率、幅度、相位和波形等。
频率是指信号发生器产生信号的周期性,通常以赫兹(Hz)为单位。
幅度是指信号的振幅,通常以伏特(V)为单位。
相位是指信号的相对时间偏移,通常以角度或时间单位来表示。
波形则指信号的形状,如正弦波、方波、脉冲等。
二、信号发生器在电子测试设备中的应用1. 信号发生器在无线通信领域的应用信号发生器在无线通信领域中起到重要作用。
它可用于测试和评估无线电频率、带宽和调制技术的性能。
通过调节信号发生器的频率和幅度,可以模拟出不同的无线信号,如调幅(AM)信号、调频(FM)信号和调相(PM)信号等。
这对于无线电通信设备的设计、调试和性能验证非常关键。
2. 信号发生器在音频频率响应测试中的应用信号发生器也广泛应用于音频设备的测试和评估。
通过产生不同频率和幅度的信号,可以测试音箱、耳机、音频放大器等设备的频率响应和失真程度。
同时,信号发生器还可用于测试音频信号的信噪比、动态范围和音频变调等参数。
3. 信号发生器在功能验证和故障排查中的应用信号发生器在电子设备的功能验证和故障排查中也发挥着重要作用。
它可以用来模拟各种输入信号,验证设备的各项功能是否正常工作。
例如,通过输入不同频率和幅度的信号,可以测试电路板的各个部件是否正常,或者定位故障出现的位置。
同时,信号发生器还可用于测量设备的动态响应、阻抗匹配和信号损耗等参数。
信号发生器的用法
信号发生器是一种用于产生各种类型电信号的仪器,它在电子实验、通信系统测试、电路调试等领域中被广泛使用。
以下是信号发生器的基本用法:
1. 波形选择
- 正弦波、方波、锯齿波等:信号发生器通常能够产生多种类型的波形。
选择合适的波形,以满足实验或测试的需要。
2. 频率设置
- 频率调节:通过信号发生器的频率控制功能,设置所需的信号频率。
频率通常以赫兹(Hz)为单位。
3. 振幅控制
- 振幅调节:调整信号的振幅,确保信号在合适的幅度范围内。
振幅通常以伏特(V)为单位。
4. 偏移设置
- 直流偏移:有些信号发生器允许设置直流偏移,使信号在正负方向上发生偏移。
这在一些特定的实验中可能很有用。
5. 调制功能
- 调制控制:一些信号发生器支持调幅、调频、调相等调制功能。
这对于模拟通信系统中信号的调制和解调很有用。
6. 脉冲生成
- 脉冲宽度、脉冲频率:如果信号发生器支持脉冲信号,可以调节脉冲的宽度和频率。
7. 外部调控
- 外部触发:一些信号发生器可以通过外部触发或外部输入进行控制,实现与其他仪器的同步操作。
8. 连接至电路
- 连接示波器、电路:将信号发生器通过输出端口与示波器、电路或其他测试设备连接,
以进行信号检测、电路调试或实验验证。
9. 记录测量数据
- 数据记录:根据需要,使用其他设备记录或分析信号发生器产生的信号,以获取实验或测试的相关数据。
在使用信号发生器时,根据具体实验或测试需求,灵活运用上述功能,能够方便地生成不同类型的信号,为电子工程师、科研人员提供了强大的工具。
信号发生器的使用方法
信号发生器是一种用于产生不同频率、幅度和波形的电信号的仪器。
它广泛应用于电子测试、通信系统调试和科学研究等领域。
以下是信号发生器的使用方法:
1. 准备工作:确保信号发生器和被测试设备的电源均已连接并正常工作。
检查信号发生器的输出端口是否与被测试设备的输入端口正确连接。
2. 设置输出频率:通过旋转频率调节旋钮或在仪表面板上输入频率值来设置所需的输出频率。
确保所选频率在信号发生器所能提供的范围内。
3. 选择波形类型:信号发生器通常能提供多种波形类型,如正弦波、方波、脉冲波和三角波等。
通过相应的按钮或旋钮来选择所需的波形类型。
4. 调整幅度:信号发生器的幅度控制功能可用于调整输出信号的振幅。
通过幅度控制旋钮来调整输出信号的幅度大小。
5. 设置偏置:如果需要在输出信号中添加直流偏置,则可以通过偏置控制旋钮来调整偏置电压的大小。
6. 运行信号发生器:确认以上参数设置无误后,可以打开信号发生器的电源开关,并调整输出信号的持续时间(如果有该功能)。
7. 监测输出信号:使用示波器或其他合适的测试设备来监测信号发生器输出的信号波形和幅度,以确保其符合要求。
8. 调整参数:根据需要,可以通过微调旋钮或按钮来进一步调整输出信号的频率、幅度和波形类型等参数。
9. 停止使用:在使用完信号发生器后,首先关闭被测试设备的电源,然后再关闭信号发生器的电源开关。
请根据具体的信号发生器型号和使用手册进行操作,以确保正确和安全地使用信号发生器。
单片机原理及系统课程设计专班 姓 学 号: 201008412指导教师:兰州交通大学自动化与电气工程学院2013 年 3 月 7 日汤旻安摘要本课程设计是基于DDS的基本原理设计的低频信号发生器。
以AT89C51单片机为核心。
通过R-2R网络作为数模转换器件,将已经生成的数字信号进行数模转换,最终实现模拟信号的输出。
本次课程设计使用了KILE软件对程序进行编译和PROTEUS软件对实验电路和结果进行仿真,波形的产生和相应的频率由软件编程来实现;波形类型选择和频率大小由按键来控制输出的信号经过滤波放大最后由输出终端输出。
这个信号发生器最终可以产生正弦波、三角波、方波、锯齿波。
关键词:信号发生器;AT89C51;R-2R;DDS目录1引言 (3)1.1设计目的 (3)1.2设计要求 (3)2 设计方案和原理 (3)2.1设计原理 (3)2.2主程序设计 (4)2.3设计思想 (5)3 硬件设计 (5)3.1硬件原理框图 (5)3.2资源分配 (6)3.3振荡器特性 (6)3.4芯片擦除 (6)3.5 R-2R网络 (6)3.6电路结构及原理 (7)4 软件设计 (7)4.1正弦波程序设计 (7)4.2三角波程序设计 (8)4.3方波程序设计 (8)4.4锯齿波程序设计 (8)5 仿真及调试 (9)5.1 R-2R网络的仿真 (9)5.2仿真结果 (9)6 总结 (10)7 参考文献 (11)附录1 在PROTEUS下面的仿真图 (11)附录2源程序 (11)基于51单片机的函数信号发生器1引言1.1设计目的波形发生器是信号源的一种,主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。
可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。
它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。
1.2设计要求本文是做基于R-2R网络的低频信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。
根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。
在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。
制作低频信号发生器可以用八位的R-2R网络作为DA转换器来实现,将输出的模拟量通过低通滤波器,即可得到频率稳定、失真度小的波形。
2 设计方案和原理2.1设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。
89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、数模转换及波形输出等部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图1。
图1 信号发生器原理框图89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。
当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。
2.2主程序设计整个设计的流程图如图2。
图2主程序流程图本设计过程中主要实现利用按键来控制不同波形的输出,当按键KEY1按下1次时,信号发生器就输出正弦波;当按键KEY1按下2次时,信号发生器就输出三角波;当按键KEY1按下3次时,信号发生器就输出方波;当按键KEY1按下4次时,信号发生器就输出锯齿波。
通过按键可以以任意循环方式输出不同波形。
按键KEY4按下时复位。
2.3设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。
(2)将一个周期的信号分离成256个点(按X 轴等分),每两点之间的时间间隔为∆T ,用单片机的定时器产生,其表示式如下式1所示。
256/T T =∆ (1)如果单片机的晶振为12MHz ,采用定时器方式0,则定时器的初值如下式2所示。
m e c T T X /213∆-= (2) 定时时间常数如下式3和4所示。
)256/(X MOD TL = (3)256/X TH = (4)MOD32表示除32取余数。
(3)正弦波的模拟信号是D/A 转换器的模拟量输出,其计算公式如下式5所示。
)1(s i n 2+∆=t A Y (5) 其中(A=VREF ∆t=N ∆T N=1~256)那么对应着存放在计算机里的这一点的数据如下式所示。
2)2551(sin /)256(⨯+∆=⨯=t A Y Di (6) (4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1--TAB4为起始地址的存储器中。
3 硬件设计3.1硬件原理框图硬件原理方框图如图3。
89C51是整个低频信号发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。
当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。
其工作原理为当分别每按下按键一次就会分别出现正弦波、三角波、方波、锯齿波。
图3硬件原理框图3.2资源分配软、硬件设计是设计中不可缺少的,为了满足功能和指标的要求,资源分配如下:(1)晶振采用12MHZ;(2)内存分配(4K字节的ROM用来存储软件程序);(3)P0口与R-2R网络的八位数据输入端相连;(4)P1口用来接按键(key1、key2、key3)。
3.3振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.4芯片擦除整个EPROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.5 R-2R网络由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,本文所使用的N位电压型R-2R梯形电阻网络。
应用R-2R电阻网络实现DAC 功能,其优点是成本低、结构简单、分辨率高、容易实现、响应速度快,其电路结构及原理如下所述。
3.6电路结构及原理图4为T型R-2R网络。
(1)电阻网主要由R和2R两种电阻呈T型构成。
(2)模拟开关由两级CMOS反相器产生两路反相信号,各自控制一个NMOS 开关管,实现模拟单刀双掷的开关功能。
(3)读出电路是一个求和放大器。
(4)基准源V R 。
V图4 T形R-2R电阻网络4 软件设计软件设计上,根据功能分了几个模块编程。
模块主要有:主程序模块、正弦波模块、三角波模块、方波模块、锯齿波模块等。
4.1正弦波程序设计正弦波产生的程序如下:if(fun==1){D1=tosin[b];b++;}程序中的tosin[b]是正弦波的采样表,其包含了在一个周期内,正弦波的256个采样值。
生成码表的过程中要注意四舍五入和溢出的问题,既可以采用等时间间隔而采样点数不同的方法,也可以使用采样点数相同改变采样间隔的方法。
码表和采样间隔等相关数据可以固化在FLASH 中,也可以由上位机或其它微控制器把数据生成后通过UART 接口下载到单片机中,单片机把数据存储到EPROM 中,每次上电时读入到RAM中,以加快执行速度。
4.2三角波程序设计三角波产生首先将D1口地址至为0000H,通过A中数值的加一递升,当A 中的内容与0FFH相等时,A中的内容减一递减,从而循环产生三角波。
程序如下:If(fun==2){If(c<128) D1=c;else D1=255-c;c++;}4.3方波程序设计方波产生首先将D1口地址至为0000H,当A中的内容为0时,输出对应模拟量,然后延时,当A中的内容为0FFH时,同样输出对应模拟量,再延时,从而得到方波。
程序如下:If(fun==3){d++;if(d<=128) D1=0X00;else D1=0X80;}4.4锯齿波程序设计锯齿波产生首先将D1口地址至为0000H,通过A中数值的加一递升,当A 中的内容为255时,延时一段时间,再通过A中的内容减一递减,当A的内容减至0时,延时一段时间,从而循环产生锯齿波。
5 仿真及调试5.1 R-2R网络的仿真本次设计中采用八位的R-2R网络,如图5,由于使用电阻网络作DAC 其输出电阻较高,实际使用中输出端还有跟随器以及低通滤波器。
5.2仿真结果在仿真的过程中,图像较清晰的显示了调频的各个过程,如截图所示。
图6至图9均是本信号源可得到的部分频率。
图5 八位R-2R网络在本次仿真中,运用256点15HZ的正弦信号采样生成的码表,间距为1/256*15=260us,信号源所用的芯片的机器周期为1us(系统时钟为12MHz),可求出定时器的初值是65276,当定时器计到65536 时会溢出,即中断产生。
按此初值设定后,得到图6至9,观察图形,波形的周期约为72.00ms,频率约为14HZ。
比较二者的数值可知结果几乎相等,所以证实了该设计较为精确。
按键2和3分别对应于频率增加和减小,按键1用于转化波形。
图6正弦波图7 三角波图8 方波图9锯齿波6 总结通过这一周多的单片机课程设计,我们将理论学习的知识运用到实践中去,对单片机有了更深刻的认识。
我还学会了对kile和proteus软件的使用。
课程设计中也遇到了很多困难,对程序不能够很好的编译和使用,通过老师和同学们的指导最后完成这次课程设计。
我感觉到现在学习的知识和生活的练习越来越紧密,以后我将加强对理论知识的学习。
7 参考文献[1]王思明.单片机原理及应用系统设计[M].北京:科学出版社,2012,70-378.[2] 谭浩强.C 程序设计[M]. 北京:清华大学出版社,2002,128-148.附录1 在PROTEUS下面的仿真图附录2源程序#include <reg52.h>#include <stdio.h>#include <absacc.h>#define D1 P0#define uchar unsigned charsbit keyn0=P1^0; //波形选择键sbit keyn1=P1^1; //频率加键sbit keyn2=P1^2; //频率减键uchar code tosin[256]={ //正弦波数据表0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae ,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9, 0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x ff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe 9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1, 0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x6 9,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x2 7,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x0 2,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x 09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x3 8,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x8 0 };uchar fun=0,b=0,c=0,d=0,e=0,tl,th;void key1(void); //波形选择void key2(void); //频率加void key3(void); //频率减void keyscan(void); //按键扫描delay1ms(unsigned int ); //延时void main(void) //主程序{TMOD=0X01;TR0=1;th=0xfe;tl=0xfc;TH0=th;TL0=tl;ET0=1;EA=1;while(1){keyscan();}}/*************1ms delay**********/delay1ms(unsigned int t){unsigned int i,j;for(i=0;i<t;i++)for (j=0;j<120;j++);}void keyscan(){if(keyn0==0){delay1ms(10);while(keyn0==0);key1();}if(keyn1==0){delay1ms(10);while(keyn1==0);key2();}if(keyn2==0){delay1ms(10);while(keyn2==0);key3();}}void key1(void) //1键选择发波类型,1为正弦波,2为三//角波,3为方波{fun++;if(fun==5)fun=0x00;}void key2(void) //2键加大频率{tl=tl+5;if(tl==0x1f)th++;}void key3(void) //3键减小频率{tl=tl-5;if(tl==0x00)th--;}void time0_int(void) interrupt 1 //中断服务程序{TR0=0;if(fun==1){D1=tosin[b]; //正弦波b++;}else if(fun==2) //三角波{if(c<128)D1=c;else D1=255-c;c++;}else if(fun==3) //方波{d++;if(d<=128)D1=0x00;else D1=0x80;}else if(fun==4) //锯齿波{D1=e;e++;}TH0=th;TL0=tl;TR0=1;}。