版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目编号:大学生创新创业训练计划项目研究报告项目名称: 基于AT89C52的低频函数信号发生器 项目级别: 国家级 省级 校级 项目类别: 创新训练 创业训练 创业实践 项目负责人: 任佳 所在学院: 电气信息工程学院 专业: 电子信息工程 学号: 201210501019 项目组成员: 杨丽娟 夏皓 指导教师: 曾技 二一 年 月 日目录第1节 前 言51.1 课题研究背景51.2信号发生器分类51.3研究的目的及意义61.4 系统设计6第2节 设计方案与论证72.1技术指标72.2方案设计设计论证72.2.1 信号发生电路方案论证72.2.2 单片机的选择论证82.2.3 显示方案论证8第
2、3节 硬件电路设计93.1 系统硬件总述93.2 主控制器电路设计93.3 波形产生模块设计103.4 显示模块的设计113.5 键盘模块的设计12第四节 软件设计134.1主程序设计134.2 人机交互程序设计154.3 键盘扫描程序设计154.4 波形产生程序16第五节 组装调试及项目成果175.1 仿真调试175.1.1初始界面调试175.1.2三角波仿真调试175.1.3矩形波仿真调试185.1.4 正弦波波仿真185.2 生成PCB195.3组装实物图20结束语22参考文献23仪器仪表清单24附 录25附录一系统原理图及PCB25附录二源程序26基于AT89C52的低频函数信号发生器
3、摘 要本系统是基于AT89C52单片机的低频函数信号发生器。采用AT89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和1602等。通过按键控制可产生方波、三角波、正弦波,同时用1602进行相应的显示。其设计简单、性能良好,可用于多种需要低频信号的场所,具有一定的实用性。各种各样的信号是通信领域的重要组成部分,其中正弦波、三角波和方波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、适用方便的信号源是十分必要的。本文介绍的是利用AT89C52单片机和数模转换器件DAC08
4、32产生所需不同信号的低频信号源,其信号频率可以按要求进行调节。文中介绍了DAC0832数模转换器的结构原理和使用方法,AT89C52的基础理论,以及与设计电路有关的各种芯片。文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。本次关于低频函数信号发生器的设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。关键词:单片机,模转换,运放,信号源Low frequency signalgenerator based on AT89C52Abstract This system is thelow frequency signal generatorbas
5、ed on AT89C52 mcu.Using AT89C52 microcontrolleras control core,the external use ofdigital / analogconversion circuit(DAC0832),op amp circuit(LM324),buttons and 1602etc.Through the buttoncontrol can produceFang Bo,triangle wave,sine wave,at the same time with the1602correspondingdisplay.Its design is
6、 simple,the performance is good,can be used for a variety ofneeds of low-frequency signal place,has a certain practicality. Various signals are an importantpart ofthe communication field,includingsine wave,triangle waveand Fang Boare common signals.Several signal generating deviceoften needsin scien
7、ce research and teaching experiment.For experimental convenience,to develop a suitable,complete function,convenientforthe signal sourceis very necessary. This paperintroduces islow frequencysignal source usingAT89C52 SCM andDAC0832 generated bydifferent signals,thesignalfrequency can beadjustedaccor
8、ding torequirements.This paperintroduces thestructure and principle of DAC0832digital to analog converterandmethod of use,the basic theory of AT89C52,and a variety ofchipdesign relatedcircuit.This paper mainly introduces thehardwarecircuit and software programminghow to useSCM control D/Aconverter g
9、eneratesthe signal.Thistime about thelow frequency signal generatordesign,can meet the requirements of the experimentin the theory and the practicenot only,but also have strong feasibility.Keywords: MCU,analog conversion,operational amplifier,signal source第1节 前 言1.1 课题研究背景随着电子测量及其他部门对各类信号发生器的广泛需求及电子
10、技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬
11、如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。1.2信号发生器分类信号发生器是指产生所需参数的电测试信号的仪器。因其应用广泛,种类繁多,特性各异,分类也不尽一致。按信号波形可分为正弦信号、函数信号、脉冲信号和随机信号发生器等四大类;按频
12、率覆盖范围分为低频信号发生器、高频信号发生器和微波信号发生器;按输出电平可调节范围和稳定度分为简易信号发生器、标准信号发生器和功率信号发生器;按频率改变的方式分为调谐式信号发生器、扫频式信号发生器、程控式信号发生器和频率合成式信号发生器等。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。1.3研究的目的及意义信号发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不方便、信号失真较大、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点
13、的波形发生器具有较好的市场前景。以满足工业领域对信号源的要求。本次试验实现利用单片机AT89S52和8位D/A转换芯片DAC0832共同实现方波、锯齿波、三角波、正弦波这四种常用波形的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。并且可以通过数码管和键盘显示模块,键盘可以实现对几种波形的切换。1.4 系统设计该设计设计一个低频信号发生器,我们采用的是AT89C51单片机用软件实现
14、信号的输出。该单片机是一个微型计算机,包括中央处理器CPU,RAM,ROM、I/O接口电路、定时计数器、串行通讯等,是波形设计的核心。该信号发生器原理框图如图2.1,总体原理为:利用AT89C51单片机构造低频信号发生器,可产生正弦波,方波,三角波,三种波形,通过C语言对单片编程即可产生相应的波形信号,并可以通过键盘进行各机的种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也就得到所需要的信号波形,通过运算放大器的放大输出波形,同时让显示器显示输出的波形信息。第2节 设计方案与论证2.1技术指标 1、利用单片机采用软件设计方法产生三种波形 2、三种波形可通过按键选择 3、波
15、形频率可调 4、显示波形的种类及其频率AT89C521602液晶显示独立按键复位电路起振电路D/A转换波形输出LM324放大5v电源主要控制图2.2方案设计设计论证2.2.1 信号发生电路方案论证 方案一:通过单片机控制D/A,输出四种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电
16、路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。但此方案成本高,程序复杂度高。以上三种方案综合考虑,选择方案一。2.2.2 单片机的选择论证 方案一:AT89C52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其
17、价格较贵以上两种方案综合考虑,选择方案一2.2.3 显示方案论证方案一:数码管。数码管显示能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。发光响应时间极短(0.1us),高频特性好,单色性好,亮度高。体积小,重量轻,抗冲击性能好。寿命长,使用寿命在10万小时以上,甚至可达100万小时。但显示功能有限,只能显示数字和个别字母。方案二:液晶显示器。液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,显示质量高。其接口都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。方案三:阴极射线管显示
18、器。此种显示器图像色彩丰富,还原性好,有丰富的几何失真调整能力。但不能长期暴露在磁场下,会磁化或损坏,不能让强光直射,会降低发光效率,不能在高温下使用,工作性能和使用寿命会大打折扣。基于对显示器功能的稳定性和齐全性考虑,我们采用方案二。 第3节 硬件电路设计3.1 系统硬件总述对于该低频信号发生器的设计,我们采用了以AT89C51单片机芯片作为核心处理器,编程实现各种不同类型信号的产生,最后通过DA转换输出到示波器。结构简单,思路仅仅有条,而根据设计的基本要求,我们又把其细分为不同的功能模块,各个功能模块相互联系,相互协调,通过单片机程序构成一个统一的整体。3.2 主控制器电路设计主控制器采用
19、AT89C52单片机作为微处理器,该单片机内含256个字节的RAM、32条I/O线、3个16位定时器/计数器,且自带8K的电擦除EEPROM,可用以保存控制程序。用dac0832作为模数转换器,可以实现对电流,电压由模拟量向数字量的转换,单片机的P0口与dac0832的输出端口连接,以读取AD转换后的结果。主控制器系统的外围接口电路由键盘、液晶显示及放大电路、起振电路、复位电路等几部分组成。主控制器系统的硬件电路原理图如图3.2所示。图3.2主控制器电路图3.3 波形产生模块设计 由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在经过放大之后输出。其电路图3.3如下:图3.3
20、DAC0832模块在函数信号发生器中,DAC0832为电流输出型转换器,所以必须还要经过一个外接的运算放大器将电流转换成电压。如图所示为一种用两级运算放大器组成的模拟电压输出电路。从第一个运放输出的为单极性模拟转换电压,从第二个运放输出的电压为双极性模拟电压。DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换器及转换控制电路四部分构成。8位输入锁存器用于存放主机送来的数字量,使输入数字得到缓冲和锁存,并加以控制;8位DAC寄存器用于存放存放待转换的数字量,并加以控制;8位D/A转换器输出与数字量成正比的模拟电流,由与门、与非门组成的输入控制的输入电
21、路来控制2个寄存器的选通或锁存状态,其原理框图如3.3。当WR2和XFER同时有效时,8位DAC寄存器端为高电平“1”,此时DAC寄存器的输出端Q跟随输入端D也就是出入寄存器Q端得电平变化,反之,当端为低电平“0”时,第一级8位输入寄存器Q端得状态则锁存到第二级8位DAC寄存器中,以便第三极8位DAC转换器进行D/A转换图3.3.1 DAC0832引脚图3.4 显示模块的设计通过液晶1602显示输出的波形、频率,其电路图3.4如下:图3.4 1602液晶显示模块如上图所示,1602的八位数据端接单片机的P0口,其三个使能端RS、RW、E分别接单片机的P2.1P2.3。通过软件控制液晶屏可以显示
22、波形的种类以及波形的频率。3.5 键盘模块的设计由于本系统所用按键少,所以采用独立键盘,其连接电路图3.5如下:图3.5 按键模块第四节 软件设计4.1主程序设计本系统采用AT89S52单片机,用编程的方法来产生三种波形,并通过编程来切换三种波形以及波形频率的改变。具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。软件调通后,通过编程器下载到AT89S52芯片中,然后插到系统中即可独立完成所有的控制。软件的流程图如下:主程序D/A转换程序按键程序设液晶显示程序Led驱动程序利用8位D/A转换器DAC0832,可以将8位数字量转换成模拟量输出。数字量输入的范围为0255,
23、对应的模拟量输出的范围在VREF-到VREF+之间。根据这一特性,可以利用单片机的并行口输出的数字量,产生常用的波形。例如,要产生幅度为05V的三角波,只要将DAC0808的VREF-接地,VREF+接+5V,单片机的并行口首先输出00H,再输出01H、02H,直到输出FFH,再输出00H,依此循环,这样在图4.2所示的Vout端就可以看到输出的三角波。4.2 人机交互程序设计开始LCD初始化延时显示第一行内容显示第二行内容显示光标移动位置图4.2 LCD1602程序设计流程图系统的人机交互程序设计,主要是解决按键的扫描与信息的显示,让操作者能够灵活地控制系统工作。键盘用来输入指令,液晶显示器
24、LCD1602用来显示单片机的状态,这是一个比较简单的人机交互形式。4.3 键盘扫描程序设计本系统的键盘采用的是单键盘,单键盘由一行四个按键组成,按键位于一行、上。一个一行4键的可以构成一个含有4个按键的键盘,显然,在按键数量较多时,键盘较之独立式按键键盘要节省很多I/O口。在进行键盘扫描时,首先把键盘的第一根线置高,然后分别再检测键盘行线是否有高电平的信号,如果有信号,那么就证明这根行线与第一根列线相交处的按键被按下了,单片机就读入这个键值。由于键盘扫描的速度很快,而人按键总会持续一定的时间,因此只要单片机处在等待输入的状态,这个键盘扫描程序基本上不会错过任何一个按键信号。由于一般人按键会有
25、抖动,抖动信号造成键盘扫描时会出现一些错误的信号,要不就是扫描不进数据,要不就是重复输入很多次数据,因此需要有一个消除抖动的程序。让单片机不响应一些相关的抖动信号,而只响应一次确实存在的按键信号。消抖动程序是这样实现的,当检测到一个脉冲信号时,并不立即认为是一次按键,而是延时一段时间以后再进行检测,如果三次检测都有信号,那么就认为有一次按键动作发生了。延时的选择非常重要,太快了,起不到消除抖动的效果,太慢了系统的按键定义除了基本的数字键(04)外,将其它的键依次定义为增值、减值、定时、确认四个命令键,其控制的基本功能是:(1) 通过按键进行波形的转换(2) 通过按键进行输出波形频率的加减(3)
26、 通过按键对设置进行复位系统通过软件方法实现该功能,即定义开、关、增值、减值、定时、确认等命令键,利用键盘扫描程序获取对应命令键的键值,然后执行相应的子程序,实现所要求的控制功能。4.4 波形产生程序为各波形子程序的流程图。如图所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A转换器将数据转换成模拟信号,形成所需波形信号。第五节 组装调试及项目成果5.1 仿真调试5.1.1初始界面调试 图5.1.15.1.2三角波仿真调试5.1.3矩形波仿真调试 5.1.4 正弦波波仿
27、真 5.2 生成PCB PROTEL99SE的介绍与PCB板的设计Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。一、Protel 99 SE的系统组成按照系统功能来划分,Protel99se主要包含以下两大部分和6个功能模块。1、电路工程设计部分(1)电路原理设计部分(Advanced Schematic 99):电路原理图
28、设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。(2)印刷电路板设计系统(Advanced PCB 99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。(3)自动布线系统(Advanced Route 99):本系统包含一个基于形状(Shape-based)的无栅格自动布
29、线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。2、电路仿真与PLD部分(1)电路模拟仿真系统(Advanced SIM 99):电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。(2)可编程逻辑设计系统(Advanced PLD 99):可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。(3)高级信号完整性分析系统(Advanced
30、 Integrity 99):信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。二、Protel 99 SE的功能特性1、开放式集成化的设计管理体系2、超强功能的、修改与编辑功能3、强大的设计自动化功能本设计中,PCB的设计如图所示:将DXP 制图软件中的PCB原理图封装,布线。点击软件菜单栏中“设计”按钮,然后点击其下的“update PCB Document.PCB2PcbDoc”按钮,就将PCB原理图封装,布线到创建的PCB文件上,如图所示的PCB布线图。5.3组装实物图 制完板后,先对各个电路连线进行检测,这时
31、就需要用到万用表进行通路的检测。检测无误后,按元件清单上列出的元器件进行查找和相应的元件检测。最后,按照电路原理图进行元器件的焊接,并调试单片机最小系统、液晶显示、按键等性能。 实物上层 实物底层结束语 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意! 在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在
32、。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。同时在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、
33、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节。参考文献【1】 1程全.基于AT89C52实现的多种波形发生器的设计J.周口师范学院学报,【2】 2005.22(5):5758.【3】 2周明德.微型计算机系统原理及应用M.北京:清华大学出版社,2002.341364.【4】 3刘乐善.微型计算机接口技术及应用M.北京:北京航空航天大学出版社,2001.258264.【5】 4童诗白.模拟电路技术基础M.北京:高等教育出版社,2000.171202.5杜华.任意波形发生
34、器及应用J.国外电子测量技术,2005.1:3840.6张友德.单片微型机原理、应用与实践M.上海:复旦大学出版社,2004.4044.【6】 7程朗.基于8051单片机的双通道波形发生器的设计与实现J.计算机工程与应【7】 用,2004.8:100103.【8】 8张永瑞.电子测量技术基础M.西安:西安电子科技大学出版社,2006.61101.9李叶紫.MCS-51单片机应用教程M.北京:清华大学出版社,2004.232238.【9】 李华. MCS-51系列单片机实用接口技术M. 北京:北京航空航天大学出版社. 2003仪器仪表清单设计所用仪器及器件如表一所示:表一 仪器清单表类型规格数量
35、备注电阻500W11KW3滑动变阻器10KW/220v1芯片DAC08321芯片LM3241芯片74LS081单片机AT89C521电容33PF2晶振11.0592MHz1液晶16021开关按键开关4附 录附录一系统原理图及PCB附图1附图2附录二源程序#include#include lcd1602.h#include delay.h#include pltable.h#include key.h#include adc0832.hvoid timer0() interrupt 1TH0=THtemp;TL0=TLtemp;if(waveform=0) sine_out();else if(
36、waveform=1) triangle_out();else if(waveform=2) square_out();void main() DAdata=0;DA_S1=1; /关闭8位输入寄存器init_lcd();TMOD=0x01; /设置定时器0为16位工作方式IT0=1; /设置外部中断0为下降沿触发ET0=1; /开定时器中断EX0=1; EA=1;while(1) ; #ifndef _ADC0832_H_#define _ADC0832_H_#define DAdata P1/DA数据端口uchar wavecount; /抽点计数uchar THtemp,TLtemp;/
37、传递频率的中间变量uchar judge=1; /在方波输出函数中用于简单判别作用uchar waveform; /当其为0、1、2时,分别代表三种波uchar code freq_unit3=5,25,100; /三种波的频率单位uchar idata wavefreq3=1,1,1; /给每种波定义一个数组单元,用于存放单位频率的个数sbit DA_S1= P27; / 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存void triangle_out()/三角波输出 DAdata=triangle_tabwavecount+;if(wav
38、ecount64) wavecount=0;DA_S1=0; /打开8位输入寄存器DA_S1=1; /关闭8位输入寄存器void sine_out() /正弦波输出 DAdata=sine_tabwavecount+;DA_S1=0; /打开8位输入寄存器DA_S1=1; /关闭8位输入寄存器void square_out() /方波输出 judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打开8位输入寄存器DA_S1=1; /关闭8位输入寄存器#endif#ifndef _DELAY_h_#define _DELAY
39、_h_#define uchar unsigned char#define uint unsigned intvoid delay(uchar z) uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay5us() uchar i; for(i=1;i0;i-);#endif #ifndef _KEY_h_#define _KEY_h_#include adc0832.h#include delay.hbit ST=0;bit DUQU=0;sbit key=P32;unsigned char keytemp;unsigned int total
40、_freq; /总频率void key_int0() interrupt 0 EA=0; TR0=0; /关总中断与定时器delay(50); /延时够吗if(key=0) /确实有按键按下而引发中断delay(50);if (key=0)keytemp=P3&0xf8; switch(keytemp) case 0xf0:/选择波形 waveform+; if(waveform2) waveform=0; break; case 0xe8: /频率按规定单位依次增加 wavefreqwaveform+; if(wavefreqwaveform10) wavefreqwaveform=1; b
41、reak; case 0xd8: /频率按规定单位依次衰减 wavefreqwaveform-; if(wavefreqwaveform1) wavefreqwaveform=10; break;case 0xb8: wavefreqwaveform=0; THtemp=waveTHwaveform*10+(wavefreqwaveform-1); /方括号中选 取第几个数后,并把该值赋给T_tempTLtemp=waveTLwaveform*10+(wavefreqwaveform-1);total_freq= wavefreqwaveform * freq_unitwaveform; /求
42、输出频率(个数*单位)lcd_hang25=total_freq%10+0x30;lcd_hang35=total_freq%10+0x30; /在液晶中显示个位,(0x30 在液晶显示中表示数字0) total_freq/=10; lcd_hang24=total_freq%10+0x30;lcd_hang34=total_freq%10+0x30; /在液晶中显示时十位 total_freq/=10; lcd_hang23=total_freq%10+0x30;lcd_hang33=total_freq%10+0x30; /在液晶中显示时百位 total_freq/=10; lcd_han
43、g22=total_freq%10+0x30; lcd_hang32=total_freq%10+0x30;/在液晶中显示时千位 disp_lcd(0x80,&lcd_hang1waveform*16); /在第一行显示 disp_lcd(0xc0,lcd_hang2); /在第二行显示 wavecount=0; /抽点计数清零 while(!key); EA=1; TR0=1; /开启总中断与定时器#endif#ifndef _LCD1602_h_#define _LCD1602_h_#include delay.huchar code lcd_hang1=ZX Wave SJ Wave J
44、X Wave System Is Ready! Now to switch. SAVE . Finish! Reading . ;uchar idata lcd_hang216=F= Hz ;uchar idata lcd_hang316=F= Hz . V;sbit rs=P20;sbit rw=P21;sbit lcden=P22; sbit lcdbf=P07; /读写操作使能位unsigned char i,j; void LCD_Wait(void)/读忙状态rs=0;rw=1;lcden=1;delay(10);lcden=0;/下降沿while(lcdbf) lcden=0;lc
45、den=1; void write_com(uchar dat)rs=0;rw=0;P0=dat;lcden=1;delay(10);lcden=0;LCD_Wait();void write_date(uchar date)rs=1;rw=0;P0=date;lcden=1;delay(10);lcden=0;LCD_Wait();void disp_lcd(uchar addr,uchar *temp1) reentrantuchar num;write_com(addr);delay(1); /延时一会儿?for(num=0;num16;num+) write_date(temp1num
46、);/或者这样写write_date(*(temp1+num); delay(1);void init_lcd()lcden=0; rw=0; /初始化一定要设置为零,表示写数据write_com(0x38); /使液晶显示点阵,为下面做准备write_com(0x0c); /初始设置write_com(0x06); /初始设置write_com(0x01); /清零write_com(0x80); /使指针指向第一行第一格 disp_lcd(0x80,&lcd_hang13*16); /在第一行显示 disp_lcd(0xc0,&lcd_hang14*16); /在第二行显示#endif#i
47、fndef _PLTABLE_h_#define _PLTABLE_h_uchar code waveTH= 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe;uchar code waveTL= 0x16,0x9a,0x20,0x5e,0x88,0xa3,0xb8,0xc3,0xce,0xd6, /正弦波频率调整中间值0xbc,0xce,0x58,0x8a,0xa9,0xbf,0xcb,0xd8,0xe0,0xee,/三角波频率调整中间值0x98,0x60,0xa0,0x42,0x44,0xce,0x5a,0xb3,0xf5,0x3c; /*/uchar code triangle_tab= /每隔数字8,采取一次 ,三角波0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西点师年度工作总结
- 融资合作协议书范本
- 租赁合同样本:2024年度单位场地租赁3篇
- 2024年度二手房买卖合同(标的:长沙市岳麓区套住宅)3篇
- 租田合同范本
- 水产品购销合同范例
- 拍卖合作协议合同协议书范本
- 驾驶员雇佣合同
- 2024年度智能高低压开关柜定制购销合同
- 小区电梯维保合同(2篇)
- 中学生养成良好学习习惯和行为习惯的主题班会
- 上海市莘庄中学等四校联考2025届高二物理第一学期期中检测试题含解析
- 施工承包合同(包工包料)(30篇)
- 2024年学期辅导员工作计划(四篇)
- GB/T 44351-2024退化林修复技术规程
- 第5单元 圆 单元测试(含答案)2024-2025学年六年级上册数学人教版
- 2024年P气瓶充装理论考试题及答案
- 北京高校物业管理服务人员配置及费用测算指导意见
- 第10课《我们不乱扔》(课件)-部编版道德与法治二年级上册
- DB42∕T 2232-2024 湖北省水利工程护坡护岸参考设计图集
- 24春国家开放大学《教育学》期末大作业
评论
0/150
提交评论