89S52单片机和DAC0832制作的低频函数信号发生器的设计
函数信号发生器的设计毕业设计
本科毕业设计说明书实用信号发生器的设计THE DESIGN OF PRACTICAL SIGNAL GENERATOR 学院(部):电气和信息工程学院专业班级:电子信息工程学生姓名:指导教师:2011 年06 月02 日实用信号发生器的设计摘要信号发生器是一种常用的信号源,广泛地使用于电子电路、自动控制系统和教学实验。
常用的波形发生器多数采用分立元件组成,不但电路复杂、价格昂贵,而且仅能产生几种常用的信号波形,还很难精确调节各类参数,不能满足实际需要。
因此,本课题利用了AT89S52单片机、DAC0832等元件,通过软、硬结合的方式来实现和开发基于单片机的信号发生器系统。
该信号发生器能方便地产生所需信号波形,其频率、波形不但可调,也能满足精度要求。
该信号发生器系统是通过一块AT89S52单片机控制两片DAC0832芯片,其中一片是产生波形,另一片是调节波形幅度。
这种双通道工作方式,可以让波形和幅度的控制有各自对应的芯片,让其工作起来更加精确。
本系统可以产生不同频率、不同幅值的正弦波、方波和三角波,各种波形在频率要求的范围内基本可以保持很好的形状不失真,通过键盘可选择各种波形以及调节各波形的频率和幅度,最后通过液晶显示器把各个波形以及各种参数显示出来。
本系统操作起来相当简便,成本也比较低廉。
通过实验测试,系统性能优良,参数精确,不失真,波形的幅度范围0V到+5V,频率范围1HZ到1kHZ,能满足低频测试基本需要。
关键词:AT89S52单片机,DAC0832,液晶显示器THE DESIGN OF PRACTICAL SIGNAL GENERATORABSTRACTSignal generator is a common source of the signal, widely used in electronic circuits, automatic control system and the teaching experiment. The most commonly used by waveform generator composed of discrete components, circuit not only complex, expensive and can only have several common signal waveform, also difficult to adjust various parameters, we can not To meet actual needs. Therefore, the issue of the AT89S52 SCM, DAC0832, and other components, through software and hardware combination of development and to achieve the signal generator based on the SCM system. The signal generator can easily produce the required signal waveform, its frequency, not only adjustable waveform, but also to meet the requirements of precision.The signal generator system is controlled by a microcontroller AT89S52 two DAC0832 chip, which is generated a wave, another film to regulate the rate waveform. This dual-channel methods of work, allows waveform and the magnitude of the control of all of the corresponding chip, so work together more precise. This system can produce different frequencies, different amplitude of the sine wave, square wave and triangle wave, the wave of various frequencies within the scope of the basic requirements can not maintain a good shape distortion, through various optional keyboard and adjust the waveform The frequency and magnitude waveform, the final adoption of LCD as well as various parameters of various waveform displayed. The system operated with a simple and relatively low cost. Through the experimental test, excellent performance, precise parameters, no distortion, the wave range 0 V to +5 V, the frequency range 1HZ to 1kHZ, can meet the basic requirements of low frequency tests.KEY WORDS: AT89S52 SCM, DAC0832, LCD目录摘要(中文) (I)摘要(外文) ........................................................ I I 1 绪论 . (1)1.1信号发生器综述 (1)1.1.1信号发生器简介 (1)1.1.2信号发生器实现方式 (1)1.1.3信号发生器的分类 (1)1.2 研究信号发生器的目的及意义 (2)1.3本课题的研究现状 (3)1.4主要研究内容 (4)2 信号发生器系统设计 (5)2.1系统方案的比较 (5)2.2系统模块方案选择 (6)2.2.1控制模块方案选择 (6)2.2.2显示方案选择 (6)2.2.3键盘方案选择 (7)2.2.4 D/A转换方案选择 (7)2.3 系统总体方案设计 (7)2.4理论分析 (8)2.4.1电路的理论计算 (8)2.4.2波形产生相关理论 (11)3 系统硬件设计 (13)3.1单片机最小系统 (13)3.1.1单片机的介绍及资源分配 (13)3.1.2单片机最小系统及各部分介绍 (17)3.2波形产生模块设计 (20)3.2.1单片机和DAC0832的接口 (20)3.2.2幅度控制部分 (25)3.2.3 DAC0832和运放的连接 (26)3.3 键盘显示模块设计 (27)3.3.1 键盘电路原理 (27)3.3.2 键盘接口设计 (29)3.3.3 液晶显示电路 (31)4 系统软件设计 .................................... 错误!未定义书签。
基于单片机和DAC0832的函数信号发生器的设计
基于单片机和DAC0832的函数信号发生器的设计引言函数信号发生器是一种能够产生可调频率、可调振幅、可调相位和可调形状的电信号的设备。
它广泛应用于电子实验、通信、音频设备等领域。
本文介绍了一种基于单片机和DAC0832的函数信号发生器的设计方案。
单片机是一种集成电路,具有处理能力和存储能力,能够控制外围设备的工作。
DAC0832是一种数字模拟转换器,能够将数字信号转换为模拟信号。
设计原理函数信号发生器主要由脉冲发生单元、频率调节单元、振幅调节单元、相位调节单元和输出单元组成。
脉冲发生单元负责产生基础脉冲信号,频率调节单元负责调节脉冲信号的频率,振幅调节单元负责调节脉冲信号的振幅,相位调节单元负责调节脉冲信号的相位,输出单元负责将脉冲信号输出。
本设计采用了AT89C51单片机作为控制核心,DAC0832作为模拟输出芯片。
AT89C51是一种8位微控制器,具有强大的IO能力和丰富的外设接口。
DAC0832是一种8位DAC,具有较高的精度和稳定性。
设计步骤1.硬件设计硬件设计包括电路原理图的绘制和元器件的选型。
根据设计要求,确定电路中需要使用的电阻、电容、稳压器等元器件,并通过计算和选型手册选取合适的数值和型号。
2.软件设计软件设计包括单片机程序的编写和功能实现。
根据硬件设计的需求,编写控制程序,实现基础脉冲信号的生成和频率、振幅、相位的调节。
3.调试和测试将硬件组装完成后,使用示波器和信号发生器进行信号的调试和测试。
通过观察输出信号的频率、振幅、相位以及波形形状是否满足设计要求,对硬件和软件进行优化和调整。
4.功能扩展通过增加控制接口和调节电路,可以实现更多功能的拓展。
例如,通过添加旋钮、按键和显示屏等元件,实现手动调节和参数显示功能。
通过添加USB或无线通信模块,实现远程控制和数据传输。
结论本设计基于单片机和DAC0832的函数信号发生器,通过控制单片机和DAC芯片,实现了可调频率、可调振幅、可调相位和可调形状的信号输出。
(完整word版)信号发生器DAC0832和AT89C52
单片机技术课程设计说明书智能信号发生器专业电气工程及其自动化学生姓名TZC班级133学号111111111111指导教师吴冬春完成日期2016年6月12日1目录一课题要求与内容 (3)二系统方案设计 (3)三系统硬件的设计 (4)四系统软件设计 (11)五心得体会 (12)六参考文献 (12)2一课题要求与内容.1.1 设计内容:根据指定的题目完成硬件与软件的设计(原则上要求制作实物或仿真设计)。
1.2 设计目的:(1)了解D/A转换与单片机的接口方法;(2)了解D/A转换芯片的性能及编程方法;(3)了解单片机系统中扩展D/A转换的基本方法1.3 设计要求:利用数字序列输出一个从0V开始逐渐升至5V再降至0V的可变电压,循环并且利用示波器观测波形。
制作信号发生器,并且讨论精度及其提高的方法。
二系统方案设计2.1 信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制系统和教学实验等领域。
信号的产生有模拟电路、专用硬件和软件产生等方法。
采用模拟电路搭建函数信号发生器,可同时产生方波、三角波、正弦波,但不能产生任意波形,存在波形质量差、控制难、可调范围小,电路复杂和体积大等缺点,且频率调节不方便。
专用硬件方法产生的信号频率分辨率高、稳定性好、在线调整方便。
2.2 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
这次的设计分为五个模块:单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。
使用AT98C52作为主控台结合芯片DAC0832产生1HZ-10HZ频率可调的五种信号波(锯齿波、三角波、方波、梯形波、正弦波)。
这几种波形有几个开关控制,可以随意进行切换,十分方便。
另外,波形的频率和振幅也可以通过开关进行更改。
可以说这次的设计操作简单,内容丰富,而且电路快捷明了。
3三系统硬件的设计3.1 DAC0832芯片介绍:DAC0832是8分辨率的D/A转换集成芯片。
基于单片机的低频信号发生器的设计毕业论文
基于单片机的低频信号发生器的设计毕业论文燕山大学本科生毕业设计(论文)摘要本文是基于单片机的低频信号发生器的设计。
我所设计的信号发生器是由单片机AT89C51,D/A转换器DAC0832,低频放大器LM324和四位一体数码管实现的。
本系统输出的电压范围是0~5V,频率范围是1~1000Hz,以电压的方式输出正弦波、三角波和方波信号,用数码管显示信号的频率。
可通过键盘选择输出波形和调节频率的大小。
该信号发生器具有操作简便、灵活,性价比高和智能化的特点,可广泛用于电子测量、调试工程中。
本文首先对信号发生器的原理,发展历史进行了较全面的介绍,为本次设计奠定了扎实的基础。
其次,介绍了信号发生器的种类,通过对几种不同低频信号发生器的比较从中确定本次设计方案,并介绍其基本设计原理。
其次,通过学习AT89C51和DAC0832的主要结构和功能,设计了一种以这两个芯片为核心的低频信号发生器。
本次设计主要是通过软件控制整个电路系统,最后通过软件的主程序流程图和子程序流程图介绍本系统软件的工作过程。
关键词信号发生器;单片机AT89C51;D/A转换;低频放大器I燕山大学本科生毕业设计(论文)AbstractThis article is according to the low-frequency signal generator single-chip design. I designed the signal generator is made up with a single-chip microcomputer of AT89C51, D/A converter of DAC0832, low-frequency amplifier of LM324 and four-in-one digital control to achieve. The system can output the electric voltage biggest be worth for the 0-5 V. The frequency is a 1-1000 Hz Of rectangle wave, triangle wave, and sine wave,for third kinds of form signal.,output voltage waveform signal with a digital display signal frequency. The signal generator is simple, flexible, cost-effective and intelligent features, can be widely used in electronic measurement and testing work.This article first introduce signal generating device principle, the historical development has been carrying on the comprehensive introduction, has laid the solid foundation for this design. Secondly, introduced signal generating device's type, through to several kind of different low-frequency signal generator's comparison definite this design proposal, and introduces its important job principle. Thridly, through studies AT89C51 and the DAC0832 primary structure and the function, has designed one kind of these two chips as the core low-frequency signal generator. This design is mainly through the software control entire circuitry, finally introduces this system software work process through software's master routine flow chart and the subroutine flow chart.Keywords The signal occurrence machine;Monolithic machine AT89C51;D/A conversion;low noise amplifierII目录摘要 ........................................................................... .. (I)Abstract ..................................................................... ........................................... II 第1章绪论 ........................................................................... .. (1)1.1 课题背景 ........................................................................... .. (1)1.2 信号发生器的发展历史 (1)1.3 信号发生器发展趋势及现状 ............................................................... 3 1.4 课题主要内容和章节安排 ................................................................... 4 第2章低频信号发生器的设计原理 (6)2.1 信号发生器的种类 ........................................................................... .... 6 2.1.1 按输出信号频率范围分类 ............................................................ 6 2.1.2 按输出波形分类 ............................................................................6 2.1.3 按信号发生器的性能分类 ............................................................ 7 2.2 低频信号发生器的方案设计 ............................................................... 7 2.2.1 方案一 ........................................................................... ................. 7 2.2.2 方案二 ........................................................................... ................. 8 2.2.3 方案三 ........................................................................... ................. 9 2.3 基于AT89C51信号发生器的方案设计及原理 ................................. 9 2.3.1 信号发生器的硬件电路设计方案 ................................................ 9 2.3.2 信号发生器的软件电路设计方案 ............................................... 11 2.4 本章小结 ........................................................................... .................. 12 第3章信号发生器的硬件部分 (13)3.1 主要器件 ........................................................................... .................. 13 3.1.1 单片机芯片AT89C51 (13)3.1.2 数模转换器DAC0832 (16)3.1.3 LM324的结构与功单元电路设计 ........................................................................... .......... 19 3.2.1时钟电路 ........................................................................... ............ 19 3.2.2复位电路 ........................................................................... ............ 20 3.2.3 电源电路 ........................................................................... .. (20)III3.2.4 数码管显示接口电路 (21)3.2.5 键盘接口电路 ........................................................................... .... 22 3.2.6 D/A转换电路 ........................................................................... ..... 23 3.2.7 I/V转换电路 ........................................................................... ...... 24 3.3 本章小结 ........................................................................... ................... 25 第4章信号发生器的软件部分 (26)4.1 主程序流程图 ........................................................................... ........... 26 4.2 子程序流程图 ........................................................................... ........... 27 4.2.1 显示子程序流程图 (27)4.2.2 正弦波产生流程图 (28)4.2.3 方波和三角波产生流程图 ........................................................... 29 4.2.4 中断子程序流程图 (30)4.3.5 键扫描子程序流程本章小结 ........................................................................... ................... 33 结论 ........................................................................... ....................................... 34 参考文献 ........................................................................... ................................. 35 致谢 ........................................................................... ....................................... 57 附录1 ............................................................................ ..................................... 37 附录2 ............................................................................ ..................................... 42 附录3 ............................................................................ ..................................... 46 附录4 ............................................................................ . (56)IV燕山大学本科生毕业设计(论文)第1章绪论1.1 课题背景随着社会科学的进步,电力电子技术的发展,人们对于一些电路分析所需的仪器种类越来越多,同时要求其的精度也越来越高。
基于单片机的低频信号发生器
XXXXX学院单片机课程设计报告题目:基于单片机的低频信号发生器学生姓名XXX学号09XXX专业电子信息工程班级2009级1班指导教师XXXX学部计算机科学与电气工程课程设计时间2012年6月18日XXXXXXX学院电子信息工程单片机课程设计报告基于单片机的低频信号发生器摘要信号发生器是一种用于生产标准的电子仪器,它广泛用于工业生产、科研和国防等各领域中,本系统是基于STC89C52单片机的低频信号发生器。
采用STC89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM358)、按键和LCD显示电路等。
通过按键可以控制生产正弦波、三角波等并且实现频率和幅度,同时用LCD显示波形名称、频率和幅度。
关键词:信号发生器单片机数字/模拟转换电路目录摘要 (I)第1章绪论 (1)1.1 本设计的意义 (1)1.1.1信号发生器分类 (1)1.1.2研究题目及其意义 (1)1.2 本设计的要求 (2)第2章本设计系统结构介绍 (3)2.1 系统结构框图 (3)2.2 各模块作用介绍 (3)2.2.1独立键盘 (3)2.2 .2 LCD模块 (3)2.2.3 模数转换及集成运放模块 (4)2.2.4 本章小结 (4)第3章系统硬件电路设计 (5)3.1 STC89C52单片机最小系统设计 (5)3.1.1 STC89C52单片机介绍 (5)3.1.2 STC89C52单片机时钟电路介绍 (6)3.1.3 STC89C52单片机复位电路介绍 (7)3.2 数模转换电路介绍 (7)3.2.1主要芯片功能介绍 (7)3.2.2 DAC0832芯片内部结构介绍 (7)3.2.3 DAC0832芯片引脚功能介绍 (8)3.2.4 DAC0832芯片应用电路介绍 (9)3.3 本章小结 (10)第4章系统软件调试环境介绍 (11)4.1 编程软件介绍 (11)4.1.1软件功能 (11)4.1.2软件应用流程 (12)4.2 程序下载软件介绍 (14)4.2.1软件功能 (14)4.2.2软件应用流程 (14)4.3 本章小结 (16)第5章系统程序设计 (17)5.1 系统程序设计流程图 (17)5.2 程序流程图对应程序代码 (17)5.3 本章小结 (22)结论 (23)参考文献 (23)基于单片机的低频信号发生器第1章绪论1.1本设计的意义信号发生器,在生产实践和科技领域中有着广泛的应用。
低频信号发生器设计论文
基于单片机的低频信号发生器设计论文要摘单片机为核心设计了一个低频函数信号发生器。
本文以STC89C52可输出正弦波、方波、信号发生器通过硬件电路和软件程序相结合,波形和三角波、三角波、梯形波,波形的频率在一定范围内可改变.硬件电路和软件频率的改变通过软件控制。
介绍了波形的生成原理、该信号发1440HZ的波形。
部分的设计原理。
本系统可以产生最高频率生器具有体积小、价格低、性能稳定、功能齐全的优点。
;D /A单片机转换; 关键词:低频信号发生器;Abstracta of microcontroller as the core design This paper takes STC89C52 frequency function generator.The signal generator through a combination of hardware circuit and software program.Can output sine wave, square of frequency triangle wave, trapezoidal wave,The wave, triangle wave, and 。
The waveform certain waveform can be changed in a rangethe frequency are changed by software control,This paper introduces design of software part generating principle, hardware circuit and of principlewaveforms,This system can produce the maximum frequency of 1440HZ waveform,The signal generator has the advantages of small volume, low price, stable performance, complete functions.microcomputer low-frequency Keywords: chipsignalgeneratorD /A conversion一、设计选题及任务设计题目:基于单片机的信号发生器的设计与实现.任务与要求:设计一个由单片机控制的信号发生器。
dac0832波形发生器的设计
课程设计课程名称:低频信号源的设计专业年级:电子信息工程082班学生姓名:学号: 200805070211实习时间: 2011年6月30至7月1日指导教师:填写时间:2011年7 月3日一、设计任务及意义本系统是基于AT89C52单片机的数字式简易低频信号发生器。
用程序实现方波、锯齿波、三角波等信号,并在Protues电子设计平台上对方案进行了仿真。
消除了传统信号发生器存在元器件分散性造成波形失真的弊端。
系统采用AT89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、按键电路。
通过按键控制可产生方波、锯齿波、正弦波。
波形的频率和幅度在一定范围内可任意改变,其设计简单、性能优良,可用于多种需要低频信号源的场所,具有一定的实用性。
二、设计方案选择及论证系统方案比较方案一:采用函数信号发生器ICL8038集成模拟芯片,(如图2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。
但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。
这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。
方案三:采用单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。
它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案三既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,所以采用该方案。
三、硬件设计系统总体框图设计本系统是以单片机AT89C51和8位D/A 转换芯片DAC0832共同实现正弦波,方波,锯齿波这三种常见波形的产生及显示相互切换的功能。
图3-1 系统总体框图 3.1单片机晶振电路对于MCS-51一般的晶振可以在1.2MHZ —12MHZ 之间选择,这是电容C 可以对应的选择10pf-30Pf 。
基于单片机波形发生器硬件设计论文
基于单片机的波形发生器的硬件设计【摘要】本设计是基于单片机at89s52和dac0832数模转换器组成的波形发生器。
正弦波,三角波,方波的产生是通过单片机编程实现。
通过按键选择波形的输出以及控制波形的频率和幅值输出,同时采用液晶lcd1602实时显示波形频率和幅值。
输出电压幅值范围为0-5v。
以单片机核心控制电路,键盘电路,数模转换电路,液晶显示电路,倍频电路等来实现波形发生器的设计。
【关键字】单片机波发生器数模转换频率幅值波形发生器是一种常用的信号源,常包括有音频信号发生器,函数发生器,脉冲发生器,射频信号发生器,任意波形发生器等,在科学研究,生产实践中都有重大的应用。
传统设计波形发生器主要是通过硬件电路搭接形成的,这种设计存在波形不稳定,控制比较难而且电路比较复杂,体积大,功耗大等缺点。
随着信息技术的发展,科学技术的研究以及仪器的智能化,都给我们带来方便。
本设计是采用单片机来产生几种不同的波形,集成度高,体积小,低功耗,性价比高。
在一些设计研究中通常需要一种有特殊要求的信号来作为测试的信号源,比如能产生正弦波,三角波,方波等信号的波形,并能实现幅值和频率的可调。
这样的设计更接近智能化,也是市场的需求所在。
一、总体设计思路本设计主要以at89s52单片机为控制核心,由单片机编程产生三种波形的程序,p0口向dac0832送信号值, lm324运放实现了把dac0832的输出电流值转换成对应的电压值,这样可以输出不同的波形。
通过p1口的按键来选择三种波形的输出,以及频率和幅值的增加与减少,同时在lcd上实时显示波形幅值和频率。
为了实现信号的高频率输出,采用倍频电路来提高频率。
硬件需求:●万用表:主要用来检测制作的pcb板有没有断路,短路,电子元件是否连接完好,电路板通电后的部分的电压电流是否正常等。
●所选元件:at89s52单片机,液晶显示屏。
●烧写器:主要用来把完成的软件程序烧写到89s52单片机上。
单片机函数信号发生器设计.
摘要: 本系统利用单片机AT89S52采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz—3kHz的波形。
通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。
关键词:单片机AT89S52、DAC0832、液晶1602Abstract: this system capitalize on AT89s52,it makes use of central processor to generate three kinds of waves, they are triangle wave, and use D/A conversion module, wavegenerate module and liquid crystal display of 1602, it can have the 1Hz-3KHz profile. In this system it can control wave form choosing, frequency, range,can have the sine wave, the square-wave, the triangular wave. Simultaneously may also take the frequencymeasurement frequency,and displays them through liquid crystal display of 1602. thisdesign includes three modules. They are D/A conversion module, wave generate moduleand liquid crystal display of LED module. In this design, the wave generator into waveform module and D/A conversion module are discussed in detail.key word: AT89S52, DAC0832, liquid crystal 1602.目录1. 系统设计1.1 设计要求1.2方案设计与论证1.2.1 信号发生电路方案论证1.2.2 单片机的选择论证1.2.3 显示方案论证1.2.4 键盘方案论证1.3 总体系统设计1.4 硬件实现及单元电路设计1.4.1 单片机最小系统的设计1.4.2 波形产生模块设计1.4.3 显示模块的设计1.4.4 键盘模块的设计1.5 软件设计流程1.6 源程序2. 输出波形的种类与频率的测试2.1 测试仪器及测试说明2.2 测试结果3. 设计心的及体会4. 附录4.1 参考文献4.2 附图1、系统设计经过考虑,我们确定方案如下:利用AT89S52单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。
设计方案低频函数信号发生器方案
成都电子机械高等专科学校毕业设计说明书(论文>设计(论文>题目:低频函数信号发生器的设计专业: 应用电子技术班级:学号:姓名:指导教师:摘要:信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教案实验等领域。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
所以本设计使用的是AT89c51单片机构成的发生器,可产生三角波、方波、正弦波,波形的频率可用程序控制改变。
在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
关键词:信号发生器;单片机;波形调整目录第 1 章绪论31.1 课题背景3第2章低频信号发生器的方案研究32.1 总体方案论证与设计42.2模块结构划分4第 3 章硬件电路的设计53.1 基本原理53.2各模块具体设计63.2.1 AT89C51单片机介绍63.2.2 D/A转换电路的设计8第 4 章软件设计104.1 软件总体设计114.2 程序流程图114.2.1 主函数流程图114.2.2 键盘扫描程序114.3 仿真过程17结论20参考文献20第 1 章绪论1.1 课题背景随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。
尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。
现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。
当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。
在科学研究、工程教育及生产实践中,如工业过程控制、教案实验、机械振动实验、动态分析、材料实验、生物医学等领域,常常需要用到低频信号发生器。
毕业设计(论文)-基于AT89C52低频信号发生器的设计
目录一、引言二、电路设计2.1信号产生部分2.2频率显示部分2.3 简易低频信号源信号产生的电路原理图2.4 控制部分2.4.1 AT89C52的主要性能2.4.2 AT89C52单片机的引脚排列图2.5 数/模转换部分2.5.1 DAC0832的主要性能2.5.2 DAC0832引脚功能2.5.3 DAC0832工作方式2.6 显示部分2.6.1 用集成芯片555构成的施密特触发器电路2.6.2 数码管显示三、软件程序设计3.1初始化子程序3.2 键扫描子程序3.3波形数据产生子程序流程图3.4 频率显示子程序3.5 主程序四、程序编译与下载五、总结附件 A低频信号产生的原理图1频率测试的原理图2附件 B对应原理图的PCB板图附件 C程序清单基于AT89C52低频信号发生器的设计摘要:本文采用一片AT89C52单片机和一片DAC0832数模转换器组成数字式低频信号发生器,该装置能控制输出方波、正弦波、三角波,并将频率通过LED 数码管显示出来。
它具有价格低、性能高和在低频范围内稳定性好、操作方便、体积小、耗电少等特点。
本文给出了硬件原理方框图及软件流程图,分析说明了该信号发生器的主要特点及工作过程。
关键词:AT89C52,DAC0832转换器,555芯片 , 施密特触发器1 引言在工业自动化系统中,经常要用一些信号作为测量基准信号或输出信号。
随着工业的发展,对信号的保真度、频率的稳定性和准确性、幅值的稳定性提出了越来越高的要求,作为电子系统必不可少的组成部分的信号源,在很大程度上决定了系统的性能,因而常称之为电子系统的“心脏”[1]。
在科学研究、工程教育及生产实践中,常常需要用到低频信号发生器。
如工业过程控制、教学实验、机械振动、生物医学等领域[8]。
目前,长期使用的信号发生器绝大部分都是由模拟电路构成的,这类仪器作为信号源,频率达百兆赫,在高频范围内其频率稳定性与可调性好。
而用于低频信号输出时,其需要 RC 值很大,参数准确度难以保证,而体积大,损耗也大。
单片机函数发生器
简易函数信号发生器摘要函数发生器采用AT89S52 单片机作为控制核心,外围采用模拟/数字转换电路(DAC0832)、倍频电路(CD4046)、运放电路(LM324)、按键和LCD液晶显示电路等。
电路采用AT89S52单片机和一片DAC0832数模转换器组成数字式信号发生器。
函数信号发生器,它具有价格低、性能高和在低频范围内稳定性好、操作方便、体积小、耗电少等特点。
由于采用了LM324运算放大器,使其电路更加具有较高的稳定性能,性能比高。
此电路清晰,出现故障容易查找错误,操作简单、方便。
通过按键控制可产生方波、三角波、正弦波,同时用1602显示对应的波形范围为0~5 V,频率范围为1Hz~ 1MHz,并实现占空比和频率。
所产生的波形VP-P可调,波形准确并且平滑。
本系统设计简单、性能优良,具有一定的实用性。
本设计主要应用AT89S52作为控制核心。
硬件电路简单,软件功能完善,控制系统可靠,性价比较高等特点,具有一定的使用和参考价值。
AbstractFunction generator controlled by ATM89S52 MCU as the core,External analog / digital conversion circuit (DAC0832), double frequency circuit (CD4046), operational amplifiers (LM324), buttons and LCD indicator circuit.AT89S52 MCU and a DAC0832 composed digital signal generator.Function signal generator, it has low cost, high performance and low frequency range, good stability, easy operation, small size, low power consumption, etc.As a result of the LM324 op amp, make the circuit more stable performance with high performance.The circuit is clear, easy to find failure error, simple and convenient.It can produce a square wave, triangle wave, sine wave, through the button .Show frequency and the waveform.Waveform Amplitude range of 0 ~ 5 V, frequency range of 1Hz ~ 1MHz, and to achieve adjustable duty cycle, waveform accurate and smooth.The design of the main application is AT89S52 as the control center.Simple hardware circuit, software, functional, and reliable control system, high cost performance characteristics such as a certain reference value for the use.·1、总体方案比较与论证方案 1. 采用模拟分离元件或单片压控函数发生器可产生方波,三角波,正弦波。
单片机设计多功能低频函数信号发生器
51单片机设计多功能低频函数信号发生器应用89S52单片机和DAC0832进展低频函数信号发生器的设计。
本设计能产生正弦波、锯齿波、三角波和方波。
这里着重介绍正弦波和锯齿波的生成原理。
ADC0832的介绍:DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC存放器、8位D/A转换电路及转换控制电路构成。
D0~D7:八位数据输入端ILE:数据允许锁存信号/CS:输入存放器选择信号/WR1:输入存放器选择信号/XFER:数据传送信号/WR2:DAC存放器的写通选择信号Vref:基准电源输入端Rfb:反响信号输入端Iout1: 电流输出1Iout2: 电流输出2Vcc: 电源输入端AGND: 模拟地DGND: 数字地DAC0832构造:D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否那么锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线〔选通数据锁存器〕,低电平有效;WR1:数据锁存器写选通输入线,负脉冲〔脉宽应大于500ns〕有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲〔脉宽应大于500ns〕有效;WR2:DAC存放器选通输入线,负脉冲〔脉宽应大于500ns〕有效。
由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC存放器的输出随存放器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC存放器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC存放器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反响信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的范围为+5V~+15V;VREF:基准电压输入线,VREF的范围为-10V~+10V;AGND:模拟信号地DGND:数字信号地DAC0832的工作方式:根据对DAC0832的数据锁存器和DAC存放器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
基于STC89C51和DAC0832的低频信号源的设计_蒋珂
路中,通常都需要电压稳ห้องสมุดไป่ตู้的直流电源供电。通过变压器转换
[3] 陈明英.8051 单片机课程设计实训教材[M].北京:清华大学出版
到+15V ~ 15V 之间,再通过桥式整流输出直流电压,之后接上 社,2002.
294 滤波电容滤除掉不需要的杂波,通过 7812,7912,7805 三个稳压
作者简介:蒋 珂(1977—),女,江苏省常州刘国钧高等职业技术学校,中教一级,研究方向:电子通信技术。
当数据赋给外部数据存储的地址时单片机传输过来的数字量经过dac0832的数模转换转换成模拟电流量而本设计的要求是输出模拟电压量控制稳压源的各项操作为此本设计在电流输出端接入运放op07把电流量转换成电压量
华 基于 STC89C51 和 DAC0832 的低频信号源的设计
章
蒋珂
(常州刘国钧高等职业技术学校,江苏 常州 213000 )
定的波形符号。方波信号直接由单片机的端口输出。结合功能 电源向整个电路板提供 12 伏电压,STC89C51 单片机构成发生
要求,决定使用 STC89C51 单片机作为控制器,用 DAC0832 作 器,可产生三角波、方波、正弦波等多种波形,波形的频率可用程
为 D/A 转换器,功能按键使用单片机的两个端口。实现系统的 序控制改变。在单片机的输出端口接 DAC0832 进行 D/A 转换,
波形转换键,扫描子程序的任务是检查按键是否按下,若有则执 形用了 256 个采样点合成,波形不是
行相应功能,按键接在单片机控制器的 P3 口,接好外部电源,对 很光滑,如果增加采样点,则输出的
单片机端口控制使输出波形。
频率会更低。在设计中根据应用特点选择了合适的采样点数,
基于AT89S52单片机的信号发生器设计
第一章绪论1.1 信号发生器现状信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。
按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。
按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。
按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。
前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。
后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。
信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。
但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。
在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。
而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是其致命的弱点。
一旦工作需求功能有增加,则电路复杂程度会大大增加。
超低频信号发生器是科研、教学、制造业中一种最常用的通用仪器,输出波形一般固定为正弦波、三角波、锯齿波和方波,不能实现有时在实验或工程应用中需要的特殊信号给用户使用带来不便。
虽然目前市场上的高性能的任意信号发生器已经出现,但是价格昂贵,对于一般机电控制的用户而言频带不需要很宽。
所以一种既能满足一定频率和波形性能要求又价格低廉的超低频任意信号发生器就成为了一种需求。
华科学院本科毕业设计(论文)1.2信号发生器的几个发展阶段从信号发生器的实现看可以简单分为以硬件为核心的电路实现方式和以计算机技术为核心的实现方式。
论文--信号发生器资料
单片机系统实训 (论文)说明书题目:信号发生器院(系):信息与通信学院专业:电子信息工程学生姓名:苏勇坚学号:1101120424指导教师:符强2012 年 12 月 31 日摘要本文以STC89C52单片机为核心设计了一个低频函数信号发生器。
信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,DAC0832可输出自定义波形,如正弦波、方波、三角波、三角波,波形的频率和幅度在一定范围内可任意改变。
波形和频率的改变通过软件控制,幅度的改变通过硬件与软件实现。
介绍了波形的生成原理、硬件电路和软件部分的设计原理。
本系统可以产生最高频率20HZ的波形。
该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。
关键词: 低频信号发生器;单片机STC89S52;D /A转换;AbstractThis paper STC89C52 single-chip microcomputer as the core design a low frequency function signal generator. Signal generator with digital waveform synthesis technology, through the hardware circuit and software program, combining can output custom waveform, such as sine, square wave, triangle wave, triangle wave, wave frequency and amplitude in a certain range can be arbitrary change. Waveform and frequency change through the software control, amplitude change through the hardware and software realization. Introduces the waveform generation principle, hardware circuit and software part of the design principle. This system can produce the highest frequency and hz waveform. The signal generator has small volume, low price, stable performance, fully functional advantages.Key words: Low frequency signal generator; SCM STC89S52; D/A conversion;目录绪论 ............................................................................................................................ 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机设计多功能低频函数信号发生器应用89S52单片机和DAC0832进行低频函数信号发生器的设计。
本设计能产生正弦波、锯齿波、三角波和方波。
这里着重介绍正弦波和锯齿波的生成原理。
ADC0832的介绍:DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
D0~D7:八位数据输入端ILE:数据允许锁存信号/CS:输入寄存器选择信号/WR1:输入寄存器选择信号/XFER:数据传送信号/WR2:DAC寄存器的写通选择信号Vref:基准电源输入端Rfb:反馈信号输入端Iout1: 电流输出1Iout2: 电流输出2Vcc: 电源输入端AGND: 模拟地DGND: 数字地DAC0832结构:D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的范围为+5V~+15V;VREF:基准电压输入线,VREF的范围为-10V~+10V;AGND:模拟信号地DGND:数字信号地DAC0832的工作方式:根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
本设计选用直通方式。
DAC0832工作时序:DAC0832内部结构图:当ILE为1时,只有当/CS、/WR1都为0时输入寄存器才允许输入;当/WR2、/XFER也都为0时,输入寄存器里的信息才能写入DAC寄存器。
根据实际电路图我们就可以得到DAC0832工作的时序的程序。
如下:P37=0;//P37=CS_nop_();//P36=WRP36=0;P0=value; (数据端口信号数值0~255)P36=1;_nop_();P37=1;硬件电路:P0口是数据端口,接上拉电阻(其他端口则不用)。
电源质量要好,质量越好的电源,芯片工作就越稳定。
从LM358运放输出的电压最大峰峰值就是12V所以在二级运放的放大倍数要注意跟基准电压想匹配,否则输出信号会很容易失真。
正弦波的生成:DAC0832产生信号的原理可以说是ADC0809AD转换的逆过程,但DAC0832生成的信号是离散的。
假设要生成一个Y=Asin(2*pi*f*t)的正弦波。
adc0832数据端口给的数据的范围是0~255一共256个。
前0~127表示是X轴上方的电压值(也可能是下方)。
那么128~255是X轴下方的电压值。
那么我们可以得到数据端口的数值的具体量,即value=127sin(2*pi*f*t)+127;假设我在X轴上抽样100个点(0~99),那么value=127sin(pi/50*t)+127; t:0~99.(这个100位的数组可以用MATALB生成)。
也可以抽样更多的点,抽样的点越多,得到的信号越保真,但信号的频率会有所下降。
抽样的点越少,失真越大,但频率能成大幅度递增。
怎么选择,具体情况具体分析。
其他的波形也跟正弦波一样。
程序如下:#include<reg52.h>sbit dac_WR=P3^6;//dac0832的wr端sbit dac_cs=P3^7;sbit KEY1=P2^0;sbit KEY2=P2^1;bit keyflag;unsigned char i;unsigned char code tab[100]={127,135,143,151,159,166,174,181,188,195,202,208,214,220,225,230,234,238,242,245,248,250,251,252,253,254,253,252,251,250,248,245,242,238,234,230,225,220,214,208,202,195,188,181,174,166,159,151,143,135,127,119,111,103,95,88,80,73,66,59,52,46,40,34,29,24,20,16,12,9,6,4,3,2,1,0,1,2,3,4,6,9,12,16,20,24,29,34,40,46,52,59,66,73,80,88,95,103,111,119};void getkey(void){if(KEY1==0){ //按键按下后为电电平RCAP2L+=10; //调节频率if(CY==1){RCAP2H+=1;}}if(KEY2==0){RCAP2L-=10;if(CY==1){RCAP2H-=1;}}}void Timer2_Init(){T2CON=0x00;TH2=(65536-300)/256;TL2=(65536-300)%256;RCAP2H=0XFE;RCAP2L=0XDA; //稳定在50Hz左右EA=1;ET2=1;TR2=1;}void T0_service() interrupt 1{TH0=0XEC;TL0=0X77;keyflag=1;}void Timer2_service() interrupt 5 {TF2=0;//清除中断标志位dac_cs=0;dac_WR=0;P1=tab[i];dac_WR=1;i++;dac_cs=1;if(i==100) i=0;}void main(){Timer2_Init();TMOD=0x01;TH0=0XEC;TL0=0X77;EA=1;ET0=1;TR0=1;while(1){if(keyflag){keyflag=0;getkey();}}}本程序需注意:按键是低电平有效。
定时器2中断发送数据给DAC0832,0832在得到一个数据后生成相应的电压值。
所以他的中断时间决定信号的频率,调节它的中断时间就能调节信号的频率。
其他波形的生成,其他的波形也跟正弦波一样,但锯齿波和三角波可以不用查表法,应用加减计算得到就可以得到。
下面介绍的是锯齿波:#include <at89x52.h>#include <intrins.h>sbit DACWR=P3^6;sbit DACCS=P3^7;unsigned int i;void DAC_0832(void){DACCS=0;DACWR=0;P0=i;i+=1; //加以操作得到上升的锯齿波DACWR=1;_nop_();DACCS=0;if(i==0xff) i=0x7f; //为什么初值是0x7f,其他的行不行。
大家自己动手试试。
}void main(void){i=0x7f;while(1){DAC_0832();}}DAC0832有着致命的一个缺点就是输出的波形里的含有的频率比较杂乱,常常出现过激的现象。
如果你需要精确的信号的话,那么你必须在信号输出端就如滤波器。
得到干净的低频函数信号。
如果要作为信号源的话最好是能就上一级攻放。
效果会好很多。
虽然DAC0832不是非常专业的函数信号发生芯片,但是它的输出波形的范围比较广,常常能输出一些,你意想不到得很有意思的信号曲线。
下面发几张示波器观察到得曲线:实验室里手机照的,不是太清晰但还能看。
编者注:最近比较忙很少去查看邮箱,前几天看一下邮箱结果里面有100份邮件是要函数信号发生器的。
为了方便大家于是我今天又重新整理了一下,并有实际搭了一遍电路验证特一下。
效果还行。
但在protues 上仿真不了,得到的是一个不能预料的曲线。
没查明原因,如果大家有兴趣,可以研究研究。
共同探讨一番。
*************#include <reg52.h>#include <stdio.h>#include <absacc.h>#define DA0832 XBYTE[0Xa000]#define uchar unsigned char#define S1 XBYTE[0X0000]#define S2 XBYTE[0X2000]#define S3 XBYTE[0X4000]uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 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,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee ,0xec,0xea,0xe9,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,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b ,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04 ,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x0 7,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33 ,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x7 9,0x7c,0x80 };uchar fun=0,b=0,c=0,d=0,tl,th;void key1(void);void key2(void);void key3(void);void key4(void);void judge(void);void main(void){TMOD=0X01;TR0=1;th=0xff;tl=0xd0;TH0=th;TL0=tl;ET0=1;EA=1;while(1){judge();}}void judge(void){uchar line,row,de1,de2,keym;P1=0x0f;keym=P1;if(keym==0x0f)return;for(de1=0;de1<200;de1++)for(de2=0;de2<125;de2++){;}P1=0x0f;keym=P1;if(keym==0x0f)return;P1=0x0f;line=P1;P1=0xf0;row=P1;line=line+row;/*存放特征键值*/if(line==0xde)key1();if(line==0x7e)key2();if(line==0xbd)key3();if(line==0x7d)key4();}void key1(void) //1键选择发波类型,1为正弦波,2为三角波,3为方波{fun++;if(fun==4)fun=0x00;}void key2(void) //2键加大频率{tl++;if(tl==0x1f)th++;}void key3(void) //3键减小频率{tl--;if(tl==0x00)th--;}void key4(void) //4键显示频率double t;int f;TR0=0;//ET0的区别t=(65535-th*256-tl)*0.4;f=(int)(1000/t);S3=tab[f%10];f=f/10;S2=tab[f%10];f=f/10;if(f==0)S1=0;else S1=tab[f];TR0=1;}void time0_int(void) interrupt 1 //中断服务程序{TR0=0;if(fun==1){DA0832=tosin[b]; //正弦波b++;}else if(fun==2) //三角波{if(c<128)DA0832=c;else DA0832=255-c;c++;}else if(fun==3) //方波{d++;if(d<=128)DA0832=0x00;else DA0832=0xff;}TH0=th;TL0=tl;TR0=1;。