基于单片机的正弦波函数信号发生器——WHUT单片机课程设计
- 格式:doc
- 大小:35.50 KB
- 文档页数:5
嵌入式系统基础课程设计题目:正弦信号发生器班级:通信0701姓名学号:同组人:一、设计题目正弦信号发生器二、设计要求1.功能要求(1)设计一个正弦信号发生器,可实现双极性输出,频率可变的正弦信号。
(2)可通过面板键盘控制输出频率。
(3)用LED数码管实时显示波形的相关参数。
2.参数要求(1)产生的正弦信号频率在范围在1Hz—1KHz之间。
(2)用键盘控制频率变化,最小步进为1KHz三、方案论证经查阅相关资料,实现正弦信号发生器的方法有很多,列举以下几种并分析:1.使用专用函数发生电路,如ICL8038 或MAX038,通过D/A转换调整函数发生器控制电压实现频率的控制,这种方案可以使频率连续可调,省却了波形转换电路,但控制电压与频率的变化不是严格的线性关系,如果不加频率负反馈则频率无法稳定准确,加上频率负反馈将使电路大大复杂,稳定度也会下降,而且如果要实现比较大的带宽,就需要不断更换振荡电容,电路复杂程度进一步增加。
调试困难,没有采用这种方案。
2.采用微处理器和数模转换器直接合成的数字式函数信号发生器。
这种信号发生器具有价格低,在低频范围内可靠性好,体积小,功耗低,使用方便等特点,它输出的频率是由微处理器向数模转换输出数据的频率和信号在一个周期内的采样点数(N)来决定的,因此受单片机的时钟频率的限制很大,如果单片机的晶振取12MHz,则单片机的工作频率为1MHz,若在一个周期内输出360个数据,则输出信号的频率理论上最高3.只能达到2777Hz。
实际上单片机完成一次数据访问并输出到D/A电路,至少要5个机器周期,因此实际输出信号的频率只有500Hz左右。
即使增大晶振频率,减小一个周期内输出数据个数,在稍高的频率下输出的波形频率误差也是很大的,而且计算烦琐,软件编程麻烦,控制不方便。
4.利用DSP处理器,根据幅值,频率参数,计算产生高精度的信号所需数据表,经数模转换后输出,形成需要的信号波形。
这种信号发生器可实现程控调幅,调频。
摘要信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
所以本设计使用的是AT89C51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。
在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。
在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
在介绍DAC0832芯片特性的基础上,论述了采用DAC0832芯片设计数字函数信号发生器的原理以及整机的结构设计。
对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。
该函数信号发生器可输出三角波,方波和正弦波。
关键词:信号发生器单片机 DAC0832 波形调整 LEDAbstractSignal-generator is a kind of signal source in common use, broadly applied at the electronics electric circuit, auto control system and teaching experiment etc. Currently used mostly function signal generator signal generator, waveform generator and a special price of expensive . So the dissertation is usage of the AT89s51 single-chip microcomputer constitute of wave-form generator, which can generate triangle wave, square wave, sine wave etc variety wave-form, the period of wave can be controlled by procedure, at outer circle spare part of the machine, plus independence type keyboard , which can control wave increase or decrease of form-frequency and the choice of wave-form, at the same time LED display frequency size. The output of the machine connect DAC0832 to carry on a DA conversion,again pass operation amplifier to put an end exportation wave-form. This design has advantage of simple circuit, tightly packed structure, cheap price, superior function etc.Based on the introduction of MAX038 , we discussed the principle and the whole frame of the digital function signal generator. We described the control of the oscillatory frequent , amplitude and the digital display in detail. Thegenerator can output three kinds of waves : sine wave , square wave , triangle wave.Keywords:signal generator MCU DAC0832wave-form adjustment LED1目录摘要 (2)第1章绪论1.1 课题的来源与技术背景 (5)1.2 研究信号发生器的目的及意义 (5)1.3 主要研究内容 (6)第2章电路方案的确定2.1 方案的提出和选择 (8)2.2 电路框图及工作原理 (9)第3章单元电路设计3.1 单片机模块 (10)3.2 电源模块 (11)3.3 D/A转换模块 (12)3.4 键盘输入模块 (15)3.5 显示模块 (16)3.6 I/V转化模块 (17)第4章电路软件设计4.1 系统总框图 (19)4.2 显示子程序 (20)4.3 按键子程序 (21)第5章设计实现与总结错误!未定义书签。
毕业设计论文题目:基于单片机的正弦波信号发生器的设计系部:电子信息工程系专业名称:电子信息工程技术班级: 08431 学号: 33 姓名:顾伟国指导教师:郑莹完成时间: 2011 年 5 月 12 日基于单片机的正弦波信号发生器的设计摘要:信号发生器的应用越来越广,对信号发生器的频率稳定度、频谱纯度、频率范围和输出信号的频率微调分辨率提出越来越高的要求,普通的频率源已经不能满足现代电子技术的高标准要求。
因而本设计采用了AT89C51单片机为控制核心,通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生1HZ—180HZ的正弦波波形。
通过键盘来控制波形频率变化,并通过液晶屏1602显示其波形以及频率和幅度值的大小。
关键字:信号发生器;AT89C51;D/A转换器DAC0832Based on SCM sine wave signal generator designAbstract: Signal generator used more and more widely, to signal generator frequency stability, the spectrum purity, frequency range and output signal frequency fine-tune resolution higher and higher demands are proposed, the average frequency source cannot have satisfied the high standard requirement of modern electronic technology. So this design USES A AT89C51 as control core, through the D/A converterDAC0832 converts digital signals into analog signals, filter and amplification, finally shown by oscilloscope 1HZ - 180HZ, can produce the sine wave. Through the keyboard to control the waveform frequency variation, and through the LCD display of the waveform and 1602 frequency and amplitude values of size.Key word: Signal generator; AT89C51; D/A converter DAC0832目录1、概述 (1)2、系统设计 (1)2.1设计构思 (1)2.2方案设计与论证 (1)2.2.1 信号发生电路方案论证 (1)2.2.2 单片机的选择论证 (2)2.2.3、显示方案论证 (2)2.2.4、键盘方案论证 (2)3、总体系统设计 (2)3.1、硬件实现及单元电路设计 (3)3.1.1 单片机最小系统的设计 (3)3.1.2、波形产生模块的设计 (4)3.1.3、显示模块的设计 (4)3.2、系统软件的设计流程 (5)3.2.1、keil uvision3开发环境简介 (6)3.2.2、proteus7.5软件简介 (7)3.2.3、keil uvision3与proteus7.5联机调试简介 (7)4.输出波形的检查与频率的调试 (7)4.1 测试仪器及测试说明 (7)4.2 测试结果 (8)5、结束语 (9)参考文献 (10)致谢 (11)附录 (12)1、概述波形发生器作为电子技术领域中最基本的电子仪器,广泛应用于航空航天测控、通信系统、电子对抗、电子测量、科研等各个领域中。
目录一、概述 (2)二、技术性能指标 (2)2.1设计内容及技术要求 (2)2.2设计目的 (3)2.3设计要求 (3)三、方案的选择 (3)3.1方案一 (4)3.2方案二 (5)3.3最终方案 (6)四、单元电路设计 (6)4.1矩形波产生电路 (6)4.2三角波产生电路 (8)4.3正弦波产生电路 (10)五、总电路图 (14)六、波形仿真结果 (14)6.1矩形波仿真结果 (14)6.2三角波仿真结果 (15)6.3正弦波仿真结果 (16)6.4三种波形同时仿真结果 (17)七、PCB版制作与调试 (17)结论 (19)总结与体会 (20)致谢 (20)附录1 元件清单 (21)附录2 参考文献 (22)函数信号发生器设计报告一、概述信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。
在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。
二、技术性能指标2.1设计内容及技术要求设计并制作一个信号发生器,具体要求如下:1、能够输出正弦波、方波、三角波;2、输出信号频率范围为1——10Hz,10——100Hz;3、输出信号幅值:方波Up-p=24V,三角波Up-p=0——20V,正弦波U>1V;4、波形特征:方波Tr<10s(100Hz,最大输出时),三角波失真系数THD<2%,正弦波失真系数THD<5%;5、电源:±13V直流电源供电;按照以上技术完成要求设计出电路,绘制电路图,对设计的电路用Multisim进行必要的仿真,用PROTEL软件进行制板、焊接,然后对制作的电路完成调试,撰写设计报告测,通过答辩。
目录1、课程设计概述 (2)2、课程设计题目和实现目标 (2)3、设计方案 (2)4、Proteus仿真原理图 (7)5、程序流程图 (7)6、程序代码 (8)7、调试总结 (16)8、设计心得体会 (16)9、参考文献 (16)1、课程设计概述函数发生器是一种多波形的信号源。
它可以产生正弦波、方波、三角波、锯齿波,甚至任意波形。
它的用途很广泛。
可以用于生产测试、仪器维修和实验室,还广泛使用在其它科技领域,如医学、教育、化学、通讯、地球物理学、工业控制、军事和宇航等。
本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。
根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。
在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。
本方案是基于AT89C51与PCF8591的单缓冲方式接口电路来设计。
单缓冲式接口电路具有过程简单,容易实现。
由于本设计运用汇编的编程语言,导致用独立式键盘来实现简单控制。
本方案所产生的信号频率稳定性高,精确度高。
而且在硬件方面它所选的元器件比较常见。
所以总的来说本方案的性价比高。
2、课程设计题目和实现目标题目:《函数发生器》要求:1、键盘输入产生三角波,正弦波,锯齿波,梯形波,任意波形(用示波器观察)2、频率可调3、幅值可调3、设计方案(1)主控电路AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
基于单片机正弦信发生 器文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)课程设计(论文)任务书专业班级:学生姓名:指导教师(签名):一、课程设计(论文)题目 正弦波信号发生器设计二、本次课程设计(论文)应达到的目的本次课程设计是自动化专业学生在学习了《单片机原理及应 用》课程及《模拟电子线路》、《数字电子线路》等专业基础课程 之后进行的一次综合训练,其主要目的是加深学生对单片机软硬件 技术和相关理论知识的理解,进一步熟悉 51 单片机系统设计的基 本理论、方法和技能;掌握工程应用的基本内容和要求,力争做到 理论与实际的统一;同时培养学生分析问题、解决问题的能力和独 立完成系统设计的能力,并按要求编写相关的技术文档和设计报告 等。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数 据、技术参数、设计要求等)1.设计内容 (1)选择 51 单片机,晶振采用 12MHz。
(2)设计一个能产生 0 至 50HZ 正弦波信号。
通过 0832D/A 芯 片完成数模转换。
(3)频率值由键盘输入。
(4)将频率值由 LED 数码管上显示(两位)。
2.设计要求 (1)按照任务书的要求完成系统分析及方案设计。
(2)完成硬件原理图的设计,并选择相关元器件。
(3)完成控制软件流程图的设计,编写相应的单片机控制程 序。
(4)撰写设计报告。
四、应收集的资料及主要参考文献:1.李建忠.单片机原理及应用.西安电子科技大学出版社, 20082.杨居义.单片机课程设计指导.清华大学出版社,2009 3.李海滨等.单片机技术课程设计与项目实例.中国电力出版 社,2009 以及与 51 系列单片机相关的文献及教材。
五、审核批准意见教研室主任(签字)正弦信号发生器设计方案框图单数/模放大电片转路机换电波形输按键电路显示电 出路路图 1-1 硬件设计方框图 DAC0832 硬件简介根据对 DAC0832 的数据锁存器和 DAC 寄存器的不同的控制方式,DAC0832 有 三种连接方式:直通方式、单缓冲方式和双缓冲方式。
课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 函数发生器的设计初始条件:模拟电子技术基础知识、电子技术实验室要求完成的主要任务:1.电路的理论设计2.电路的安装、调试3.设计报告的撰写时间安排:指导教师签名: 2009年 1月 16日系主任(或责任教师)签名: 2009年 1月日目录摘要 (I)Abstact (I)1 设计要求及技术参数 (1)1.1 技术参数 (1)频率范围: 100HZ~1kHZ, 1HZ~10kHZ; (1)1.2 设计要求 (1)2 思路分析及方案论证 (1)2.1 方波的产生 (1)2.2 三角波的产生 (3)2.3 正弦波的产生 (4)2.4 设计方案论证 (7)3 设计电路原理 (8)3.1 方波-三角波产生电路 (8)3.2 三角波-正弦波变换电路 (10)3.3 电路原理图 (12)3.4 元器件的选用 (12)4 调试过程与调试结果 (13)4.1 方波-三角波发生器的装调 (13)4.2 三角波-正弦波变换电路的装调 (13)4.3 电路安装与调试中遇到的问题及分析解决方法 (14)4.4 实验数据记录以及误差分析 (15)5 实验总结与心得体会 (15)参考文献 (17)摘要信号发生器在电子技术应用领域里的用途非常广泛,例如:测量,控制,通信和广播电视系统中,常常需要频率可变和幅度可调的正弦波信号发生器,在数字系统和自动控制系统也常常需要方波,三角波,的非正弦波信号发生器。
目前我们实验室用的较多的波形发生器主要有两种:低频正弦波发生器和通用多波形发生器,前者只能产生正弦波,调节范围不大,但是信号稳定,失真度底,主要用在对波形有很高的要求的实验中;后者能产生正弦波、方波和三角波,也有的能产生三种以上波形。
关键词:波形发生器,三角波,方波,正弦波,集成运算放大器AbstactSignal generator is being widely used in electronic technology applications. Usually, we need the sine wave signal generator which has variable frequency and adjustable range especially in the circumstances of measurement, control, communications and Radio and TV system. We also need the non-sine wave signal generator in digital system or automatic control system , such as square wave and triangle wave. At present, there are two main signal generators which are being used more in our labs. One is low-frequency sine wave generator, the other is generalized multi-waveform generator. The former can only generate sine wave with small adjustable range but it has stable signal and low distortion, so it is mainly used in the experiment which has high demands for waveform. The latter can not only generate sine wave, but also square wave and triangle wave, and some of them can even generate three or more waveforms.Keywords: waveform generator, triangle wave, square wave, sine wave,Integrated Operational Amplifier1 设计要求及技术参数1.1 技术参数频率范围: 100HZ~1kHZ, 1HZ~10kHZ ; 输出电压: 方波V P-P ≤24V , 三角波V P-P ≤6V ;波形特性: 方波t r <30μs(1KHZ ,最大输出时),三角波γ△<2%1.2 设计要求1.测量性能指标,将测量数据填入表1-1中,对测量结果进行误差分析;表1-1 测量数据表2.画出方波-三角波电路波形,标出电压幅度V P-P 的值。
基于单片机的正弦波发生器的设计【摘要】本文旨在介绍基于单片机的正弦波发生器的设计,在单片机的正弦波发生器的实现原理基础上,详细阐述了正弦波发生器的系统框架结构图,并以具体的幅值和频率值为例来设计了单片机控制程序的流程,从而实现幅值和频率可调的正弦波发生器。
【关键词】单片机;正弦波发生器;数模转换;定时器1 概述随着社会的不断向前发展,我国的电子制造行业也得到长足发展。
信号发生器发出的标准信号是一种电子制造行业进行电子实验经常使用的电子信号,对电子的各种元器件的参数以及工作性能进行测量,以及电工和电子产品的指数验证和工作系能鉴定、工作参数的调整都起着至关重要的作用。
尤其是正弦波信号,在电子制造实验以及工程技术的应用非常广泛。
基于单片机来设计的正弦波发生器的输出信号频率具有非常高的稳定度,加上单片机自身的控制灵活等特点,使得正弦波发生器的频率和幅度控制方面更加灵活。
所以深入学习和研究基于单片机的正弦波发生器的工作原理和系统结构,对于电子制造实验中正弦波信号的产生和应用具有非常重要的实用价值。
2 单片机的正弦波发生器的实现原理我们知道,单片机输出或者产生的信号都是数字信号,而正弦波发生器产生的正弦信号是模拟信号,所以单片机产生数字信号后,需要经过数模转换电路将其编程模拟信号。
基于单片机的正弦波发生器的主要设计原理就是通过单片机向固定端口发送预先设计的数据,然后通过单片机外围的数模转换电路或者芯片将数据转换成模拟量,通过所有预设数据的产生的模拟量的组合构成一个周期内的正弦波信号,最后通过循环有序地发送预设数据值固定端口即可实现正弦波信号的连续产生。
所以,在设计预设数据时,改变预设数据的最大值,从而使得进行数模转换的数据发生变化,生成的模拟信号量也会发生变化,从而实现正弦波信号幅值的变化。
对于产生正弦波动的频率调整原理,是通过改变向端口发送数据的时间间隔,来改变正弦波信号的频率。
对于预设数据来说,所有的预设数据经过数模转换会产生一个周期的正弦波,如果改变发送数据之间的时间间隔,就会使所有预设数据发送完的时间发生变化,使得产生的正弦波信号周期发生变化,从而实现正弦波发生器输出信号频率的变化。
基于单片机正弦信号发生 器Prepared on 22 November 2020课程设计(论文)任务书专业班级:学生姓名:一、课程设计(论文)题目 正弦波信号发生器设计二、本次课程设计(论文)应达到的目的指导教师(签名):本次课程设计是自动化专业学生在学习了《单片机原理及应 用》课程及《模拟电子线路》、《数字电子线路》等专业基础课程 之后进行的一次综合训练,其主要目的是加深学生对单片机软硬件 技术和相关理论知识的理解,进一步熟悉 51 单片机系统设计的基 本理论、方法和技能;掌握工程应用的基本内容和要求,力争做到 理论与实际的统一;同时培养学生分析问题、解决问题的能力和独 立完成系统设计的能力,并按要求编写相关的技术文档和设计报告 等。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技 术参数、设计要求等)1.设计内容 (1)选择 51 单片机,晶振采用 12MHz。
(2)设计一个能产生 0 至 50HZ 正弦波信号。
通过 0832D/A 芯 片完成数模转换。
(3)频率值由键盘输入。
(4)将频率值由 LED 数码管上显示(两位)。
2.设计要求 (1)按照任务书的要求完成系统分析及方案设计。
(2)完成硬件原理图的设计,并选择相关元器件。
(3)完成控制软件流程图的设计,编写相应的单片机控制程 序。
(4)撰写设计报告。
四、应收集的资料及主要参考文献:1.李建忠.单片机原理及应用.西安电子科技大学出版社, 20082.杨居义.单片机课程设计指导.清华大学出版社,2009 3.李海滨等.单片机技术课程设计与项目实例.中国电力出版 社,2009 以及与 51 系列单片机相关的文献及教材。
五、审核批准意见教研室主任(签字)正弦信号发生器设计方案框图单数/模转放大电片换电路路机波形输按键电显示电 出路路图 1-1 硬件设计方框图 DAC0832 硬件简介根据对 DAC0832 的数据锁存器和 DAC 寄存器的不同的控制方式,DAC0832 有三种连接方式:直通方式、单缓冲方式和双缓冲方式。
目录绪论 (1)第1章系统概述和方案 (2)引言 (2) (2)DDS的理论分析与参数计算 (2)DDS的基本原理 (2)参数计算 (3)信号发生芯片选择 (4)第2章系统硬件设计 (5) (5)(DDS)连接电路 (5)单片机AT89S51介绍 (5)AD9835芯片介绍 (7) (8) (10)D∕A转换及幅度控制电路 (11)信号放大电路 (13)显示电路 (14)键盘电路 (16)电源电路 (17)第3章系统软件流程图 (19)主程序流程图 (19)键盘处理子程序流程图 (20)D/A转换子程序流程图 (21)展望 (22)致谢 (23)参考文献 (24)附录一 (25)附录二 (26)绪论基于单片机的正弦波信号发生器设计,该课题的设计目的是充分运用大学期间所学的专业知识,考察信号发生器的基本功能,完成一个基本的实际系统的设计全过程。
通过单片机控制一个有特殊功能的信号发生芯片,可以产生一系列有规律的幅度和频率可调的波形。
这样一个信号发生装置在控制领域有相当广泛的应用范围。
直接数字频率合成(DDS)是近年来发展起来的一种新的频率合成技术。
其主要优点是相对带宽很宽、频率转换时间极短(可小于20ns)、频率分辨率很高、全数字化结构便于集成、输出相位连续、频率、相位和幅度均可实现程控。
因此,能够与计算机紧密结合在一起,充分发挥软件的作用。
作为应用,现在已有DDS 产品用于接收机本振、信号发生器、通信系统、雷达系统、跳频通信系统等。
本文介绍一种由直接数字频率合成(DDS)芯片AD9835设计的正弦信号发生器,该芯片支持高达50MHz的时钟频率,可以产生最高可达25MHz的正弦波形。
通过单片机控制完全可以满足设计所要求的正弦波信号的生成。
本文主要分六大部分:绪论、系统概述和方案、硬件部分、软件部分,展望和致谢。
绪论,首先对课题研究背景和所涉及的相关技术领域进行了介绍;第一章对系统所要完成的功能和可扩展的功能进行描述,确定系统的设计方案主要元器件的选择。
#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define OUTPUT P3#define lcddata P2#define DEC 0#define INC 1sbit KEY0=P1^2;sbit KEY1=P1^3;//sbit KEY2=P1^4;//sbit led=P1^7;sbit lcdrs =P1^0;sbit lcden =P1^1;uchar code aStrTab1[]="f:4.00Hz ";uchar code aStrTab2[]="extent:1v";uint time=1; //控制频率的时间uchar extentFactor=5; //控制幅度的//uchar countExtentAdjust;//uchar countFrequencyAdjust;void delay(uchar z) //在12M下延时z毫秒{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/******1602写入指令************/void WriteComand(uchar com){lcdrs=0;lcddata=com;delay(1);lcden=1;delay(1);lcden=0;}/******1602写入数据***********/void WriteData(uchar date){lcdrs=1;lcddata=date;delay(1);lcden=1;delay(1);lcden=0;}/******初始化***********/void LCD_Init(){uchar num;lcden=0;WriteComand(0x38);//初始化WriteComand(0x0c); //打开光标0x0c不显示光标0x0e光标不闪,0x0f WriteComand(0x01); //清显示WriteComand(0x80);for(num=0;num<9;num++){WriteData(aStrTab1[num]);delay(1);}WriteComand(0x80+0x40);for(num=0;num<9;num++){WriteData(aStrTab2[num]);delay(1);}}uchar extentFactor;uchar frequencyCount;uint tab[5]={1,2,5,10,100};void KeyScan(){uchar temp;temp=KEY0;if(temp==0){delay(5);temp=KEY0;if(temp==0){while(!KEY0);// led=!led;extentFactor++;if(extentFactor>5)extentFactor=1;WriteComand(0x80+0x40+7);WriteData('0'+extentFactor);}}temp=KEY1;if(temp==0){delay(5);temp=KEY1;if(temp==0){while(!KEY1);//led=!led;if(frequencyCount>=5) frequencyCount=0;time=tab[frequencyCount];WriteComand(0x80+2);switch(frequencyCount){case 0: WriteData('4');WriteData('.');WriteData('0');WriteData('0');break;case 1: WriteData('2');WriteData('.');WriteData('0');WriteData('0');break;case 2: WriteData('0');WriteData('.');WriteData('8');WriteData('0');break;case 3: WriteData('0');WriteData('.');WriteData('4');WriteData('0');break;case 4: WriteData('0');WriteData('.');WriteData('0');WriteData('4');break;}frequencyCount++;}}}uint 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,0x07,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,0x79,0x7c,0x80 };/*正弦波码*/void main(void){uchar j;LCD_Init();TMOD=0X01;EA=1;ET0=1;TR0=1;TL0=(65535-50000)/256;TH0=(65535-50000)%256;extentFactor=1;while(1){KeyScan();//extentFactor=4;for(j=0;j<255;j++){OUTPUT=tosin[j]*extentFactor/5;delay(time);}/* OUTPUT=0X0FF;delay(100);OUTPUT=0;delay(100);*/}}uint aa;void timer0() interrupt 1{TL0=(65535-50000)/256;TH0=(65535-50000)%256;aa++;if(aa==4){aa=0;KeyScan();}}。