




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、科学技术学院SCIENCE & TECHNOLOGY COLLEGE OF NANCHANG UNIVERSITY 工 程 训 练报 告REPORT ON ENGINEERING TRAINING题 目 基于AT89C51简易信号发生器的设计与制作 学科部、系: 信息学科部 专业班级: 电子112班 学 号: 学生姓名: 指导教师: 起讫日期: 基于AT89C51简易函数信号发生器的设计与制作摘 要本次作品是一个基于单片机AT89C51设计的函数信号发生器。函数信号发生器的设计方法有多种,利用单片机设计的函数信号发生器具有编程灵活,功能更以扩充等实际的优点。利用单片机设计的函数信号发生器能够产
2、生正弦波,三角波,方波,并实现对频率调节,以及液晶屏显示波形名称和波形频率,波形的切换和频率的调节都可以用按键实现。通过D/A转换器DAC0832将数字信号转换成模拟信号,最终由示波器显示出来。系统大致包括信号发生部分、数/模转换部分、液晶显示部分以及电源部分,在编程语言上,本文选择C语言,这样在后期波形的调试及与硬件衔接方面更容易发挥出自身优势。经过设计及后期长时间的调试,设计的所有功能均已实现。但在这个过程中也发现了一个问题,由于硬件本身灵敏度的原因,使得频率达不到很高。关键词:函数信号发生器 单片机 LCD1602液晶屏目 录第一章 基于AT89C51简易函数信号发生器的设计与制作的概述
3、11.1 简介11.2 工程训练的性质、任务、目的1第二章 设计方案的选择和确定22.1 电路设计要求和指标22.2 方案方案设计与论证22.2.1 总体方案22.2.2 显示方案论证2第三章 系统硬件设计33.1 工作原理及总体方框图33.2 各部分电路的设计33.2.1 单片机AT89C51模块设计33.2.2 D/A转换电路53.2.3 LCD 1602液晶显示模块设计73.2.4 按键电路模块设计93.2.5 电源及指示电路9第四章 系统的软件设计114.1 软件设计流程11第五章 性能测试与分析125.1 软件仿真性能测试125.2 实物测试13心得体会14附录1 总原理图15附录2
4、 PCB图16附录3 源程序17参考文献25第一章 基于AT89C51简易函数信号发生器的设计与制作的概述1.1 简介此次工程训练是利用单片机AT89C51制作简易函数信号发生器。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照信号发生器性能指标可
5、以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。按输出波形可分为:正弦信号发生器和非正弦信号发生器。非正弦信号发生器包括脉冲信号发生器、函数信号发生器、扫频信号发生器、数字序列信号发生器、图形信号发生器、噪声信号发生器等。按其性能可分为:简易信号发生器、功率信号发生器、扫频信号发生器、矢量信号发生器。电路核心器件中有单片机,它是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随
6、机存储器RAM、只读存储器ROM多种I/O口、中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。随着现代科技的发展,单片机的集成度越来越高,CPU的位数也越来越高,已能将所有主要部件都集成在一块芯片上,使其应用模式多、范围广,并具有以下特点:体积小,功耗低,价格便宜,重量轻,易于产品化。控制功能强,运行速度快,能针对性地解决从简单到复杂的各类控制问题,满足工业控制要求,并有很强的位处理和接口逻辑操作等多种功能。抗干扰能力强,适用温度范围宽。由于许多功能部件集成在芯片内部,受外界影响小,故可靠性高。虽然
7、单片机内存储器的容量不可能很大,但存储器和I/O接口都易于扩展。可以方便的实现多机和分布式控制1.2 工程训练的性质、任务、目的结合单片机原理及应用教程课程内容,培养实际动手能力,提高对知识的理解与应用能力,增强把书本知识转化为实际运用能力。更突出设计过程中的锻炼,强化学生的实践创新能力及独立思考分析能力。27第二章 设计方案的选择和确定2.1 电路设计要求和指标可产生波形类型有:正弦波、方波、三角波;使用同一按键选择三种波形,输出状态为正弦波,按下出现三角波,再按出现方波;正弦波输出步进值为10Hz(10-100Hz),三角波步进值为100Hz(100-1000HZ),方波步进值为200Hz
8、(200-2KHz);输出波形的同时液显第一行显示内容为:输出正弦波时显示:Sine Wave输出三角波时显示:Triangle Wale输出方波时显示Square Wave;第二行显示内容为:Frequency: * Hz 。在制作实物时,电源及地需预留端口出来,以便仪器的测量。2.2 方案方案设计与论证2.2.1 总体方案方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出
9、频率覆盖系数的要求,且电路复杂。方案三:使用集成信号发生器发生芯片,例如AD9854,它可以生成最高几十MHZ的波形。但是该方案也不能产生任意波形(例如梯形波),并且价格昂贵。方案四:采用AT89C51单片机和DAC0832数模转换器生成波形,它的特点是可产生任意波形,频率容易调节,频率能达到设计的500HZ以上。性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。经比较,方案四既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案。2.2.2 显示方案论证 方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼
10、具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。 方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容易控制,可以显示字母。以上两种方案综合考虑,选择方案二。第三章 系统硬件设计3.1 工作原理及总体方框图根据系统设计的任务要求和设计思路,综合上述方案的选择,确定该系统的设计方框图,如图3.1所示。硬件电路主要由单片机AT89C51、数模转换DAC0832、LM324放大电路、按键控制电路、电源及电源指示电路模块构成。该系统采用单片机作为数据处理及控制核心,由单
11、片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。具体利用单片机AT89C51采用程序设计方法产生正弦波、三角波、方波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,最终由示波器显示出来。LCD1602液晶显示模块 A T单 8片 9机 C51数模转换DAC0832 LM324放大电路电源及指示电路模块输出电路按键控制电路图3.1 总体方框图3.2 各部分电路的设计3.2.1 单片机AT89C51模块设计图3.2 AT89C51模块原理图单片机AT89C51模块原理图如图3.2所示,其中XTL1,XTL2连接的
12、是时钟电路,RST所连接的是复位电路,单片机的P0口连接DAC0832的八位数据输入端,P2.7连接DAC0832片选CS、WR,P1口连接的是液晶显示器LCD1602八位数据端,三个使能端RS、RW、E分别接单片机的P3.5、P3.6、P3.7;是外部中断口,由按键控制电路模块通过对单片机传输中断信号来实现波形切换及频率调节。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash 只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中
13、央处理器和Flash存储单元。 图3.3 AT89C51的引脚图AT89C51的引脚图如图3.3所示,相应引脚的功能如下:P0:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个
14、TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX), P2:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存
15、储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。 P3:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器
16、周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE 操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序
17、储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器的及
18、内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2.2 D/A转换电路图3.4 D/A转换电路原理图 DA转换器的功能是将数字信号转换成模拟信号,它是一种将二进制数字量形式的离散信号转换成标准量(或参考量)为基准的模拟量的转换器,简称DAC或D/A转换器。最常见的数模转换器是将并行二进制的数字量转换为直流电压或直流电流,数模转换器电路还在利用反馈技术的模数转换器设计中。D/A转换器由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压及部分组成。数字量以并行或串行方式输入、存储于数码寄存器中,数字寄存器输出的各位数码,分别控制对应的位的模拟电子开关,使数码为1的位在位权
19、网络上产生与其权值成正比的电流值,再由求和电路将各种权值相加,即得到数字量对应的模拟量。此次工程训练选用DAC0832芯片作为核心器件,其原理图如图3.4所示。 DAC0832内部结构如图3.5所示。图3.5 DAC0832内部结构图 DAC0832内部结构:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要。DA转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。DAC0832引脚图如图3.6所示,引脚功能说明: (1)DI0DI7:数据
20、输入线,TTL电平。(2)ILE:数据锁存允许控制信号输入线,高电平有效。(3)CS:片选信号输入线,低电平有效。(4)WR1:为输入寄存器的写选通信号。(5)XFER:数据传送控制信号输入线,低电平有效。(6)WR2:为DAC寄存器写选通输入线。(7)Iout1:电流输出线。当输入全为1时Iout1最大。(8)Iout2:电流输出线。其值与Iout1之和为一常数。 (9)Rfb:反馈信号输入线,芯片内部有反馈电阻。(10)Vcc:电源输入线(+5V)。 图3.6 DAC0832引脚图(11)Vref:基准电压输入线。(12)AGND:模拟地,模拟信号和基准电源的参考地。(13) DGND:两
21、种地线在基准电源处共地比较好。电路还运用到运算放大器,选用LM324芯片,它是四运放集成电路,采用14脚双列直插塑料封装,它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。通过此电路可将0832输出的电流转换为电压输出。运算放大器特点如下: (1)开环放大倍数非常高,一般为几千,甚至可高达10万。在正常情况下,运算放大器所需要的输入电压非常小。 (2)输入阻抗非常大。运算放大器工作时,输入端相当于一个很小的电压加在一个很大的输入阻抗上,所需要的输入电流也极小。 (3)输出阻抗很小,所以,它的驱动能力非常大。3.2.3 LCD 1602液晶显示模块设计如图3.7所示为LC
22、D 1602液晶显示模块原理图,液晶显示器LCD1602八位数据端连接P1,三个使能端RS、RW、E分别接单片机的P3.5、P3.6、P3.7,通过软件控制液晶屏可以显示波形的种类以及波形的频率。图3.7 LCD 1602液晶显示模块原理图1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它有若干个5X7的点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用,正因为如此 所以它不能显示图形。1602是指显示的内容为16X2,即可以显示两行,每行16个字符的液晶模块。目前市面上字符
23、液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。图3.8 1602引脚图 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,其管脚图如图3.8所示,各引脚接口说明如表3.1所示。表3.1 1602 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极1602液晶模块内
24、部的控制器共有11条控制指令,如表3.所示。表3.2 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说
25、明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行
26、显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 (有些模块是DL:高电平时为8位总线,低电平时为4位总线)指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据。 指令11:读数据。因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H) 所以编写程序时的地址表3.3。表3.3 1602地址表1234567891011
27、1213141516808182838485868788898A8b8C8D8E8FC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF3.2.4 按键电路模块设计如图3.9所示为按键电路模块设计,由三个按键及二极管组成的系统通过对单片机传输中断信号来实现波形切换及频率调节。中断口为INT0口。图3.9 按键电路3.2.5 电源及指示电路 根据以上电路可以知道整个电路需要三个工作电源,即+5V、+9V、9V。电路图如图3.9所示。在这里需要注意的是稳压芯片、带锁按键以及指示灯的接法,不可以接错,尤其要注意7909芯片是1脚接地。图3.10 电源电路7805,7809,7909稳压芯
28、片的管脚排布如图3.11所示。 (a) 7805管脚排布 (b) 7809管脚排布 (c) 7909管脚排布图3.11 7805,7809,7909稳压芯片的管脚排布图在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。当稳压管温度过高时,稳压性能将变差,甚至损坏,还应注意散热片总是和接地脚相连。综上所述,总原理图见附录1.PCB板的制作流程 设计绘制原理图导成PCB图打印输出(热转印纸)利用热转印法将PCB图转到敷铜板腐蚀(留下电子线路) 金属焊盘钻孔 焊接安装元器件 调试 成品。注意事项:(1) 正确的选择元器件的封装。(2) 要合理地选择线宽、焊盘、焊孔的大
29、小,在钻孔时需要仔细地选择钻头的直径,以方面元器件的焊接。(3) 导入PCB后,先进行布局对布线有利。(4) 在焊接元器件前,一定要先检测元器件是否有损坏,再进行焊接。在焊接过程中也要注意安全。 PCB图见附录2.成品实物图如图3.12所示。图3.12 实物图第4章 系统的软件设计4.1 软件设计流程本系统采用AT89C51单片机,用编程的方法来产生三种波形,并通过编程来切换三种波形以及波形频率的改变。具体功能有:(1)正弦波,三角波,方波波形的切换;(2)各波形的步进值参数;(3)各波形频率的增减等。利用软件keil,protus联调调通后,通过编程器下载到AT89C51芯片中,然后插到系统
30、中即可独立完成所有的控制。如图4.1所示为程序流程图图4.1 程序流程图Protus仿真图如图4.2所示。图4.2 protus仿真图源程序设计,见附录3。第五章 性能测试与分析5.1 软件仿真性能测试测量说明:将示波器传输线接到波形输出端,测量正弦波、矩形波、三角波信号的输出,通过独立按键来实现不同波形的输出以及其频率的改变。测试过程:程序下载完之后,液晶屏上第一行显示Sine Wave,第二行显示Frequency:0010Hz,再按一下K1键为三角波,按两下为方波,三次为一个循环。另外两个开关可以调节频率,三种波形的频率步进值不同,分别为:正弦波输出步进值为10Hz(10-100Hz),
31、三角波步进值为100Hz(100-1000HZ),方波步进值为200Hz(200-2000Hz)。 三种波形的仿真波形图及液晶显示如下:图5.1正弦波仿真波形图图5.2 三角波仿真波形图图5.3 方波仿真波形图5.2 实物测试通电后三个电源指示灯全亮,液晶屏亮且没有芯片发热,烧焦,爆炸等现象,说明电路整体无太大错误。 (1)电源部分的测试 三个电源测试端的记录数据见表5.1。表5.1 电源测试值电源芯片780578097909理论值/V+5.00+9.009.00测试值/V+5.00+9.0798.968误差0%0.88%0.34% (2)波形测试通过三个按键分别可以实现波形的选择,频率大小的
32、增减,其中正弦波是10Hz的步进值进行调节,范围是10100Hz;三角波是100Hz的步进值调节,范围是1001000Hz;方波是200Hz的步进值调节,范围为2002000Hz。但由于各种误差,示波器锁测得的频率与理论有较大的差距。 液晶显示部分基本实现即与软件仿真显示的是相同的。(3)调试过程中遇到的问题1) 不能调节波形的频率。此问题错在调频率程序上。2) 波形的频率没有上限,检查程序频率模块发现按键调频的上限不对。心得体会在此次工程训练中,我学到了很多东西。凡事只要用心,都能有一份属于自己的收获。也许看似不大,但对于我而言却是弥而珍贵的,因为那是我的不足之处。在这里我和你一起分享我的收
33、获。大一到大三,这次是第一次运用到程序,训练的中心从原来的焊板子变成了编程,所以这次工程训练复习了单片机的知识,另外增加了单片机C语言的知识,也逐渐养成了编写程序的几个好习惯:(1) 编写程序输入“”时要成对的输入,以免多输或少输。(2) 对每一个模块(或子程序)结束后加上注释以说明它的用途。(3) 习惯使用宏定义对于特殊的引脚用通俗的字符来代替。(4) 定义函数名时应通俗易懂。(5) 对特殊含义的变量应加上注释。 虽然我才开始写程序,这些习惯还没有深入脑海,随着今后的编写程序学习过程中,我会在出去工作之前养成这些习惯,我想着对于今后的工作是有很大的帮助的。 这次工程训练还利用了protus软
34、件进行仿真,和其他仿真软件用法大致一样,不一样的是需要进行联调。以前学习单片机的时候虽然在做实验运用到Keil软件但对它的调试功能不是很熟悉,这次对其加深了印象。附录1 总原理图附录2 PCB图附录3 源程序 #include #include / _nop_() 函数延时1US用 #define uchar unsigned char #define uint unsigned int #define DAdata P1 #define LCDDAdata DAdata #define DAdata1 P0 void delay(uchar i); void WR_Com(uchar tem
35、p); void WR_Data(uchar num);void disp_lcd(uchar addr,uchar *temp1);void disp_lcdF(uchar addr1,uchar *temp11);void SquareOUT();void SineOUT();void TriangleOUT();void lcd_Reset();uchar Wavecount,THtemp,TLtemp;uchar Waveform=0;uint WaveCoef,WaveCoef1;sbit RS=P37;sbit RW=P36;sbit E=P35;sbit DA=P27;sbit
36、KEY=P32;uchar code Sinetab256=0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xab,0xad,0xaf,0xb1,0xb2,0xb4,0xb6,0xb7,0xb9,0xba,0xbc,0xbd,0xbf,0xc0,0xc1,0xc3,0xc4,0xc5,0xc6,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xce,0xcf,0xd0,0xd1,0xd1,0xd2,
37、0xd2,0xd3,0xd3,0xd3,0xd2,0xd2,0xd1,0xd1,0xd0,0xcf,0xce,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc6,0xc5,0xc4,0xc3,0xc1,0xc0,0xbf,0xbd,0xbc,0xba,0xb9,0xb7,0xb6,0xb4,0xb2,0xb1,0xaf,0xad,0xab,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,0x9e,0x9c,0x9a,0x98,0x96,0x94,0x92,0x90,0x8e,0x8c,0x8a,0x88,0x86,0x84,0x82,0x80,0x7d,
38、0x7b,0x79,0x77,0x75,0x73,0x71,0x6f,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61,0x5f,0x5d,0x5b,0x59,0x57,0x55,0x54,0x52,0x50,0x4e,0x4d,0x4b,0x49,0x48,0x46,0x45,0x43,0x42,0x40,0x3f,0x3e,0x3c,0x3b,0x3a,0x39,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x31,0x30,0x2f,0x2e,0x2e,0x2d,0x2d,0x2c,0x2c,0x2b,0x2b,0x2b,0x2b,0x2a,
39、0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2b,0x2c,0x2c,0x2d,0x2d,0x2e,0x2e,0x2f,0x30,0x31,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x40,0x42,0x43,0x45,0x46,0x48,0x49,0x4b,0x4d,0x4e,0x50,0x52,0x54,0x55,0x57,0x59,0x5b,0x5d,0x5f,0x61,0x63,0x65,0x67,0x69,0x6b,0x6d,0x6f,0x71,
40、0x73,0x75,0x77,0x79,0x7b,0x7d,;/正弦uchar code Triangletab58=0x1a,0x21,0x28,0x2f,0x36,0x3d,0x44,0x4b,0x52,0x59,0x60,0x67,0x6e,0x75,0x7c,0x83,0x8a,0x91,0x98,0x9f,0xa6,0xad,0xb4,0xbb,0xc2,0xc9,0xd0,0xd7,0xde,0xe5,0xde,0xd7,0xd0,0xc9,0xc2,0xbb,0xb4,0xad,0xa6,0x9f,0x98,0x91,0x8a,0x83,0x7c,0x75,0x6e,0x67,0
41、x60,0x59,0x52,0x4b,0x44,0x3d,0x36,0x2f,0x28,0x21; /三角uchar code Squaretab2=0x56,0xaa;/方波uchar code disp1=Sine Wave Triangle Wale Square Wave ;uchar idata disp216=Frequency: Hz;uchar code Coef3=10,100,200;/步进uchar idata WaveFre3=1,1,1;uchar code WaveTH=0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xf
42、f,0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;uchar code WaveTL=0xf2,0x78,0xfb,0x3c,0x63,0x7d,0x8f,0x9d,0xa8,0xb1,0x17,0x0b,0xb2,0x05,0x37,0x58,0x70,0x82,0x90,0x9b,0x4d,0xa7,0xc4,0xd3,0xdc,0xe2,0xe6,0xea,0xec,0xee;void main()lcd_Reset(); /1602初
43、始化P2=0xff;WR_Com(0x8c);/设置频率值显示初始位置WaveCoef=WaveFreWaveform*CoefWaveform;/需要输出的频率值disp213=WaveCoef%10+0x30;WaveCoef/=10;disp212=WaveCoef%10+0x30;WaveCoef/=10;disp211=WaveCoef%10+0x30;WaveCoef/=10;disp210=WaveCoef%10+0x30;WaveCoef/=10;disp_lcd(0x80,&disp1Waveform*16);disp_lcd(0xc0,disp2);DAdata=0x00;
44、DAdata1=0x00;DA=0;TMOD=0x01;IT0=1;ET0=1;EX0=1;P2=0xff;TH0=THtemp;TL0=TLtemp;TR0=1;EA=1;while(1);/*函数名:LCD初始化功能:设置LCD显示规则,设置显示模式:8位子行57点阵 显示器开、光标开、光标允许闪烁 文字不动,光标自动右移变量:无输入:无输出:无*/void lcd_Reset() WR_Com(0x01);/清屏光标复位WR_Com(0x38);/设置显示模式:8位子行57点阵WR_Com(0x0c);/显示器开、光标开、光标允许闪烁WR_Com(0x06);/文字不动,光标自动右移/*
45、函数名:LCD写入控制功能:将命令写入到LCD输入:temp;待输出的命令数据输出:无*/void WR_Com(uchar temp) RS=0;RW=0;DAdata=temp;E=0;delay(10);E=1;/*函数名:LCD完成显示功能功能:在LCD的界面上显示出数据输入:num;待输出数据输出:无*/void WR_Data(uchar num) RS=1;RW=0;DAdata=num;E=0;delay(10);E=1;/*函数名:LCD连续显示功能:在LCD上连续显示16位数据输入:addr、*temp1输出:无*/void disp_lcd(uchar addr,uchar *temp1)uchar i;WR_Com(addr);delay(10);for(i=0;i16;i+) WR_Data(temp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 停车场建设合同协议范本
- 外脚手架承包合同协议书
- 公交司机离职协议书范本
- 公司解聘个人的合同范本
- 劳务派遣离队协议书模板
- 卫生医疗机构合作协议书
- 加盟合同签约香港的协议
- ic卡水表销售合同范本
- 包装代言人协议合同模板
- 公司合作合同分成协议书
- 2025年中国白胡椒行业市场运营现状及投资方向研究报告
- 通海翡翠华庭建设项目 水土保持方案报告表
- 2025至2030年中国特种石墨行业市场发展态势及投资机会研判报告
- 小学科学新大象版一年级上册全册教案(2024秋)
- 乡村治理与乡村振兴规划
- T/CCMA 0206-2024混凝土机械液压平衡阀
- 奶茶店分红合同协议书
- 手阳明大肠经课件
- 职场高效沟通与结构化表达技巧培训
- 2025广告公司收购合同范本
- 中国中煤华东分公司所属舟山公司招聘笔试题库2025
评论
0/150
提交评论