![本科毕业论文单片机低频信号发生器设计与制作_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f71.gif)
![本科毕业论文单片机低频信号发生器设计与制作_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f72.gif)
![本科毕业论文单片机低频信号发生器设计与制作_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f73.gif)
![本科毕业论文单片机低频信号发生器设计与制作_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f74.gif)
![本科毕业论文单片机低频信号发生器设计与制作_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f7/bcd34858-7cdc-4efd-abbc-0de1b10eb1f75.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要2引言4第一章 低频信号发生器概述51.1系统功能要求.51.2 方案论证5第二章 系统硬件电路设计82.1系统总体方框图82.2硬件电路设计82.3器件介绍11第三章 系统软件设计173.1编程原理173.1.1主程序编程思想173.1.2正弦波程序编程原理173.1.3锯齿波程序编程原理183.14三角波程序编程原理193.15判别按键输入子程序编程原理193.2主控程序193.3程序流程28第四章 系统调试344.1硬件系统调试344.1.1 AT89S51单片机调试344.1.2 波形输出及放大电路调试344.1.3 电路板的制作354.2软件系统调试36结束语37参考文献37
2、附录I 信号发生器原理38附录II 信号发生器PCB图39数字式低频信号发生器设计与制作五邑大学信息学院AP0205204 陈日汉指导老师 刘国安摘要本次主要介绍8位的单片机AT89S51和DAC0832组成一个简单的实时控制系统-低频信号发生器。它主要是以AT89S51做为控制核心,通过编写应用程序来识别按键,并根据相应的按键来产生各种波形。用户可以通过按键选择实验中常常使用的波形:正弦波、三角波、锯齿波。系统根据DAC0382及其外围电路产生设计中需要的低频信号,输出信号在示波器上显示出来。本系统可输出10HZ1KHZ波形信号。若是以单极性输出,输出电压Vpp=5V;若是以双极性输出,输出
3、电压Vpp=10V。若深入应用,可考虑频率和幅度的自动步进或由按键步进。关键词 单片机AT89S51,数模转换器D/A0832,信号发生器Devise and facture of low frequency signal generator based on single chipAbstractThis text introduces a low frequency signal generator which is based on single chip microcomputer AT89S51.By the small keyboards,uers can choose the b
4、asic waveforms which are often used in the laboratory,such as sine wave,square wave and triangle wave.When the single chip microcomputer AT89S51 reseives the control signal from the small keyboards,theIC DAC0832 well get the signal from the chip ,so as to control the choise of signal waveforms and t
5、he output frequency.System recur DAC0832 and its periphery circuitry to produce three kinds of waveforms output and display it through oscillograph.This system can output the waveforms whose frequency is from 10Hz to 20kHz. The signal generator contents the demand of general experiments very well.Ke
6、y words:Low frequency signal generator; AT89S51 signal chip;DAC0832 ; Sine wave;Square wave;Triangle wave引言在现代电子学的各个领域,常常需要高精度且频率可方便调节的信号发生器,它是实验室的基本设备之一,在电路实验和设备检测中也具有十分广泛的用途。而目前广泛使用的一些标准产品,虽然功能齐全、性能指标高,但是其价格也相对较高,而且对于我们学生,很多功能是用不上的,造成的缺点是它只能是实验室所有,学生买不起,它的功能强大,但造成了浪费,它体积庞大,不便于携带,不能随时随地做实验。 根据实际需要,
7、我们不需要太高的频率,也不需要所有的波形,我们实验室中多用的是低中频率信号发生器,波形最常用的是正弦波形,三角波形,锯齿波形,为此,我们有必要设计出一种结构简单、成本低、便于携带的函数信号发生器,便于学生使用。设计任务:1:比较和阐述实现信号发生器各种方案的特点。2:采用单片机AT89S51及D/A转换器0832设计信号发生器3:编写程序产生锯齿波、三角波、正弦波等波形4:输出频率范围:10HZ20KHZ,输出电压V=5V;5:外接电源线,公共地线,电源需加滤波电路。第一章 低频信号发生器的概述 本章将要对低频信号发生器的功能要求及采用的方案进行论证。1.1系统功能要求 本系统的功能是利用主要
8、主控单片机AT89S51通过软、硬件结合,控制多波形宽频率范围信号发生器产生正弦波、三角波、锯齿波等低频信号,频率输出范围在10HZ20kHZ之间,输出的波形信号通过示波器显示出来。1.2方案论证 总结函数信号发生器的实现方法,通常有一下几种:(1)用分立元件组成的函数发生器:通常是单波函数发生器,而且不太稳定,也不易调试。(2)利用晶体管、运放等通用器件设计制作,更多的是用专门发生器ic制作,如L8038/BA205/XR2207等,他们的功能较少,精度不高,频率上限制在300kHZ,调节方式也不够灵活,频率和占空比不能独立调节,二者相互影响。(3)利用专门直接数字合成DDS芯片的函数发生器
9、,能产生任意频率并且达到很高的频率。但成本很高。 基于本设计所用频率不高,主要用于学生实际所需,故采用单片机AT89S51与DAC8032组成电路,软、硬件结合,产生所需波形。 单片微型计算机简称为单片机,它是把组成微型计算机的各功能部件:中央处理器CPU、随机存取存贮器RAM、只读存贮器ROM、I/O接口电路,定时器/计数器以及串行通讯接口等部件制作在一块集成电路芯片中构成一个完整的微型计算机。这样的集成电路称得起超大规模集成电路。因此可以说,单片微型计算机与大规模集成电路和超大规模集成电路的发展井驾齐驱。由于在单片机中设置有只读存贮器,可用来存放控制单片机及外围设备进行工作的程序于是从外部
10、来看单片机成为一个独立的控制装置,可广泛用于实时控制、数据采集与处理等方而,因此单片机又称为微控制器。目前市场上主流的单片机均是MCS-51内核系列兼容的单片机(比如目前流行的89S51、已经停产的89C51等)。本设计课题采用的就是ATMEL的AT89S51。单片机基本框图如下:由单片机控制的波形发生器主要是将所需波形的数据制成相应的表格,然后根据查表的方法,由CPU控制D/A转换器,及通过按键控制输出波形的类型,经D/A转换后输出所需的电压波形。频率的高低也可以通过按键来控制,主要是改变延时时间来实现。其输出频率范围会受到CPU时钟周期及DAC器件性能的影响。硬件设计电路图见附录。单片机系
11、统采取的是上电自检,上电后系统复位,P0P3均为高电平。程序就等待按键按下。当有产生波形的按键按下后,P1口相应的管脚会变为低电平,根据具体的某一位,转向相应的功能程序,由单片机向DAC0832输出所需波形的数据,产生三角波,锯齿波或正弦波。输出波形的过程中会查键,看是否有频率改变键按下,若有,则调延时子程序,来改变波形的频率。在本设计方案中,只有正弦波是通过查表来输出的,锯齿波和三角波是由寄存器的数值自增,或自减来输出。整个方案中硬件部分是比较简单的,主要是单片机和DAC0832的连接,其它的只是外部电源和按键。需要注意的是外加电源需加滤波电路,即要保证外加直流电源的稳定。因为DAC0832
12、的基准电压端Vref是接到外加电源+5V的,如果引入的基准电压不准,则结果输出的波形也会有相应的失真。设计中具体是通过一个大电容和一个小电容的简单滤波电路来实现的。D/A转换后的信号由Iout1、Iout2输出,分别接到运放的负端和正端,若需要双极性输出,则多接个运放。检查结果时则用示波器观察。设计完成后,按键变化引起的波形变化在示波器上应会得到明显的显示。第二章 系统硬件电路设计 本系统采用模块化的设计方法。其中,单片机AT89S51是整个电路的中央控制器,他控制其它模块完成各自的操作。DAC8032也是本电路的主要器件。外围电路包括频率档次选择电路、波形提取电路、放大电路,整流电路、滤波电
13、路等。2.1系统整体方框图图1.1为单片机信号发生器系统组成框图,它由波形选择按钮、单片机AT89S51、D/A转换器及输出控制器等部分组成。其中,单片机、D/A转换器是信号发生器系统中不可或缺的重要组成部分,其他部分则可以视系统的需要而配置。 波形选择按钮单片机D/A转换器示波器 图2.1单片机信号发生器系统组成框图2.2主要电路的设计 波形选择按钮是各波形的选择控制按钮,与单片机的P1口相连。单片机的主要任务是通过编程,并通过波形的选择控制输出各种波形,在经D/A转换器转换后,通过示波器观察各种波形。硬件设计单片机的时钟源和复位电路的设计: 电容C1、C2和晶振(12MHZ)组成89S51
14、的外部源电路,将C1、C2和晶振组成的回路称为LC并联谐振回路,晶振起电感作用,谐振频率由晶振的频率所决定,89S51单片机的晶振可以选1.2MHZ12MHZ。电容C1、C2的取值一般在20PF100PF之间(在60PF70PF时,频率比较稳定)。 图2.2单片机的时钟源 复位电路由R1、R2、C9(极性)和开关组成,采用按钮电平复位方式,它是将复位端通过电阻与VCC相接。 复位电路参数的选择,应保证复位高电平持续时间大于2 个机器周期,就能可靠地使单片机复位,当晶振为6MHZ时,取C9=22UF、R1=22欧和R2=1K欧。图2.3复位电路数据的输出由单片机的P0口接到DAC的数据线,DAC
15、的片选段CS接到P2.7,地址可设为7FFFH。DAC的WR1接到单片机的P3.6/WR,这样再向0832写命令时,0832的WR1端为低电平,寄存器直通,示波器就会显示相应的波形。图2.4单片机对DAC0832控制电路 波形放大电路部分,采用了LM324作为电压放大器,负载可以得到不失真的电压信号。图2.5波形放大电路2.3器件简介:1:AT89S51 本设计方案中所用到的单片机AT89S51。用到89S51,首先应了解51系列的区别:MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采
16、用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),但在各高校及专业学校的培训教材仍以MCS-51单片机作为代表进行理论基础学习。有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个
17、单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash存储器(程序存储器的内容至少可以改写1000次)取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。 不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才
18、能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。如果市场需要,Atmel当然也可以再恢复生产AT89C51。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4
19、k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。89S51相对于89C51增加的新功能包括: - 新增加很多功能,性能有了较大提升,价格基本不变,甚至比 89C51更低! - ISP在线编程功能,这个功能的优势在于改写单片机存储器内的 程
20、序不需要把芯片从 工作环境中剥离。是一个强大易用的功能。 - 最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。 - 具有双工UART串行通道。 - 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。 - 双数据指示器。- 电源关闭标识。 - 全新的加密算法,这使得对于89S51的解密变为不可能,程序保密性大大加强,这样就可以有效的保护知识产权不被侵犯。 - 兼容性方面
21、:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。 比较可知:从AT89C51升级到AT89S51 , 速度改变很多。和S51比起来,C51就要逊色一些,实际应用市场方面技术的进步是永远向前的。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先
22、级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。本设计方案中使用的DIP双列直插封装。AT89S51引脚图如下:2:DAC0832DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。图1-2和图1-3分别为DA
23、C0832的引脚图和内部结构图。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为±1LSB,参考电压为(+10-10)V,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。从图1-3中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 /XFER。图1-2中,当ILE为高电平,片选信号 /CS 和写信号 /WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 /WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器
24、中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号 /XFER 和写信号 /WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当 /WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。图中其余各引脚的功能定义如下:(1)DI7DI0 :8位的数据输入端,DI7为最高位。(2)IOUT1 :模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3)IOUT2 :模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT
25、1IOUT2常数。(4)RFB :反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。(6)Vcc :芯片供电电压,范围为(+5 15)V。(7)AGND :模拟量地,即模拟电路接地端。(8)DGND :数字量地。DAC0832内部结构图DAC0832可处于三种不同的工作方式:直通方式:当I
26、LE接高电平,、和都接数字地时,DAC处于直通方式,8位数字量一旦到达DI7DI0输入端,就立即加到8位D/A转换器,被转换成模拟量。单缓冲方式 :此方式也是本设计方案所采用的输出方式。只要把两个寄存器中的任何一个接成直通方式,而用另一个锁存器数据,DAC就可处于单缓冲工作方式。一般的做法是将和都接地,使DAC寄存器处于直通方式,另外把ILE接高电平,接端口地址译码信号,接CPU的信号,这样就可以通过一条MOVX指令,选中该端口,使和有效,启动D/A转换。双缓冲方式 :主要在以下两种情况下需要用双缓冲方式的D/A转换。需在程序的控制下,先把转换的数据输入输入缓存器,然后在某个时刻再启动D/A转
27、换。这样,可先选中端口,把数据写入输入寄存器;再选中端口,把输入寄存器内容写入DAC寄存器,实现D/A转换。在需要同步进行D/A转换的多路DAC系统中,采用双缓冲方式,可以在不同的时刻把要转换的数据打入各DAC的输入寄存器,然后由一个转换命令同时启动多个DAC转换。先用3条输出指令选择3个端口,分别将数据写入各DAC的输入寄存器,当数据准备就绪后,再执行一次写操作,使变低同时选通3个D/A的DAC寄存器,实现同步转换。3:LM324 LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。一组运算放大器可
28、用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图1.5。 由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。第三章 系统软件设计本系统软件设计采用模块化
29、设计方案,主要包括控制输出信号程序、信号产生程序、改变频率程序等。以下是简单分析:3.1 编程原理3.1.1主程序编程思想: 在电路开始工作后,程序并不是立即输出波形,而是先检测有无按键输入,当有按键输入时,判断是什么键,然后转到相应的程序中执行,输出相应的波形,若不是波形选择按键,则输出正弦波;当没有按键被按下时,程序处在等待中,直到有按键被按下。请参照程序流程图。3.1.2正弦波程序编程原理: DDS(Direct Digital Synthesis,直接数字合成)是一种应用数字技术来实现产生信号波形的方法。DDS技术建立在采样定理的基础上,它首先对需要产生的信号波形进行采样和量化,然后存
30、入存储器作为待产生信号波形的数据表。在输出信号波形时,从数据表中依次读出数据,产生数字化的信号,这个信号再通过D/A转换成所需的模拟信号波形。 相对于其他信号波形产生技术,DDS技术具有输出信号的采样频率固定、全数字化、易于控制、可编程、输出相位连续和信号频率转换时间短等优点。 基于DDS技术,本设计的正弦波输出采用查表的编程方法。其表格建立的具体算法为:将正弦波的一个周期等分为256份,用n表示。则一个周期内的每个90度里有64份,用90除以64求出每一份所需要度数为1.40625度,用表示。假设正弦波的幅度值为1,我们把正弦波的峰峰值(-1到+1)对应十六进制数的00H - 0FFH。在第
31、一象现里,正弦波的数据表应从80H - OFFH,则每一份所对应的十六进制数值应为h=(int(128*sin(n*)+128)Hint()表示取整数n 从0到63=1.40625度例如:(1)第0份所对液压的十六进制数值为 h=(int(128*sin(0*1.40625)+128)H=80H(2)第4份所对液压的十六进制数值为 h=(int(128*sin(4*1.40625)+128)H=8DH(3)第5份所对液压的十六进制数值为 h=(int(128*sin(5*1.40625)+128)H=90H 值得注意的是,当h的值为100H时,应该改为0FFH。由此可建立第一象现的正弦表。 根
32、据正弦波的对称性可以推出第二、三、四象现里的十六进制数值。由此可建立出产生正弦波的汇编程序数值表(见附录)。3.1.3锯齿波程序编程原理: 由于锯齿波一个周期内是一条线性上升的直线,我们将一个周期的锯齿波分为256个点,每个点对应于一个周期的一个幅度值,且幅度值是按固定的阶梯上升的,只要将每个点的幅度值按从小到大的顺序输出,则在总体的效果上,就是一个锯齿波。只要调整两个点输出的时间间隔,就可以改变波形的输出周期,从而改变波形的频率。请参照程序流程图。3.14三角波程序编程原理: 一个周期内的三角波实际上是两个对称锯齿波的组合,同理,我们将半个周期内的三角波分为256个点,每个点对应于这半个周期
33、的一个幅度值。在三角波的上升边:幅度值是按固定的阶梯上升的,只要将每个点的幅度值按从小到大的顺序输出,就可得出这半个周期的三角波;反之,在三角波的下降边,幅度值是按固定的阶梯下降的,只要将每个点的幅度值按从大到小的顺序输出,就可得出另外半个周期的三角波。由在总体的效果上,就是一个三角波。请参照程序流程图。3.15判别按键输入子程序编程原理: 本设计中共有五个按键,分别是:1号键输出正弦波;2号键输出锯齿波;3号键输出三角波;4号键停址程序复位;5号键改变波形输出频率。五个按键分别与P1口的低五位相连,电路按键采用的是低电平输入方式,既当有某个键被按时,则其在P1口中相应的位就变为低电平,而没有
34、被按的键则为高电平。程序中,先把P1口的值送入累加器A中,去掉没用的高三位后,再利用循环指令将分别将累加器A的低五位移到进位C中,检测低五位中的那一个为低电平,则可分别用01H,02H,03H,04H,05H来标注输入的是几号键。 为了使程序简练,在检测P1口的低五位时,从低位开始,每五位最后,当检测到某位为低电平时,既某键按下时,标注该位后就不再检测更高的位了。3.2主控程序流程图 本系统程序除主控流程图外,还有正弦波流程图、三角波流程图、锯齿波流程图等,列出如下:本系统主控程序流程图如图3.11所示。程序初始化有按键输入吗?NY调用判别输入按键子程序正弦波按键1?NY按键2?锯齿波NY三角
35、波按键3?N正弦波正弦波程序流程图如图3.12所示初始化将变址偏移量放入累加器A将正弦表首地址放入DPTR利用基址加变址寻址方式查表输出正弦波一个点的幅度值调用延迟子程序频率值改变了吗?YN变址偏移量加1N变址偏移量加到256次吗?Y有按键输入吗?NY调用判别输入按键子程序Y按键2?锯齿波清频NY按键3?清频三角波N改变频率值按键5?YN按键4?NY调用停止复位子程序锯齿波程序流程图:初始化设置锯齿波的第一个输出幅度值输出锯齿波一个点的幅度值调用延迟子程序频率值改变了吗?YN锯齿波幅度值加1N幅度值加到256次吗?Y有按键输入吗?NY调用判别输入按键子程序Y按键1?正弦波波清频NY按键3?清频
36、三角波N按键5?Y改变频率值NN按键4?Y调用停止复位子程序三角波程序流程图:初始化设置三角波的第一个输出幅度值输出三角波上升边一个点的幅度值调用延迟子程序频率值改变了吗?YN上升边幅度值加1幅度值加到256次吗?NY输出三角波下降边一个点的幅度值调用延迟子程序频率值改变了吗?YN下降边幅度值减1N幅度值减到256次吗?YN有按键输入吗?Y调用判别输入按键子程序Y按键1?正弦波波清频NY按键2?清频锯齿波N按键5?Y改变频率值NN按键4?Y调用停止复位子程序停止复位子程序流程图:初始化给输出清零主程序3.3程序流程清单设计过程中采用的汇编语言,程序流程如下:程序清单:ORG 0000H AJM
37、P MAINPINLU EQU 30HLEDBuf equ 60h ; 显示缓冲SINTAB: DB 80H,83H,86H,89H,8DH,90H,93H,96H ;正弦表 DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
38、DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
39、 DB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H DB 96H,93H,90H,8DH,89H,86H,83H,80H DB 80H,7CH,79H,76H,72H,6FH,6CH,69H DB 66H,63H,60H,5DH,5AH,57H,55H,51H DB 4EH,4CH,48H,45H,43H,40H,3DH,3AH DB 38H,35H,33H,30H,2EH,2BH,29H,27H DB 25H,22H,20H,1EH,1CH,1AH,18H,16H DB 15H
40、,13H,11H,10H,0EH,0DH,0BH,0AH DB 09H,08H,07H,06H,05H,04H,03H,02H DB 02H,01H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,01H,02H DB 02H,03H,04H,05H,06H,07H,08H,09H DB 0AH,0BH,0DH,0EH,10H,11H,13H,15H DB 16H,18H,1AH,1CH,1EH,20H,22H,25H DB 27H,29H,2BH,2EH,30H,33H,35H,38H DB 3AH,3DH,40H,43H,45H,48H
41、,4CH,4EH DB 51H,55H,57H,5AH,5DH,60H,63H,66H DB 69H,6CH,6FH,72H,76H,79H,7CH,80H;/*开始*/MAIN:CLR EA MOV PINLU,#00H ;清频率单元 L1: ACALL Kexam ;有键入? JZ L1 ;无键入,等待 ACALL GetKey ;读入键码 ANL A, #0Fh CJNE A,#01H,NEXT1 AJMP ZHENGXIAN NEXT1:CJNE A,#02H,NEXT2 AJMP JUCHI NEXT2:CJNE A,#03H,L1 AJMP SHANJIAO;/*正弦波*/ZHEN
42、GXIAN: MOV DPTR,#7FFFH MOV R4,#00H LOOP3:PUSH DPL PUSH DPH MOV A,R4 MOV DPTR,#SINTAB MOVC A,A+DPTR POP DPH POP DPL MOVX DPTR,A MOV R5,PINLU CJNE R5,#05H,XJT1 ACALL DLY XJT1:INC R4 CJNE R4,#00H,LOOP3 ACALL Kexam ; 有键入? JZ ZHENGXIAN ACALL GetKey ; 读入键码 ANL A, #0Fh CJNE A,#02H,SIN1 MOV PINLU,#00H AJMP
43、JUCHI SIN1:CJNE A,#03H,SIN2 MOV PINLU,#00H AJMP SHANJIAO SIN2:CJNE A,#05H,SIN3 MOV PINLU,A AJMP ZHENGXIAN SIN3:CJNE A,#04H,ZHENGXIAN AJMP TINGZHI;/*锯齿波*/JUCHI: MOV DPTR,#7FFFH MOV R4,#00H LOOP:MOV A,R4 MOVX DPTR,A MOV R5,PINLU CJNE R5,#05H,XJT2 ACALL DLY XJT2:INC R4 CJNE A,#0FFH,LOOP ACALL Kexam ; 有
44、键入? JZ JUCHI ACALL GetKey ; 读入键码 ANL A, #0Fh CJNE A,#01H,JU1 MOV PINLU,#00H AJMP ZHENGXIAN JU1:CJNE A,#03H,JU2 MOV PINLU,#00H AJMP SHANJIAO JU2:CJNE A,#05H,JU3 MOV PINLU,A AJMP JUCHI JU3:CJNE A,#04H,JUCHI AJMP TINGZHI;*三角波*/SHANJIAO: MOV DPTR,#7FFFH MOV R4,#00H LOOP1:MOV A,R4 MOVX DPTR,A MOV R5,PINL
45、U CJNE R5,#05H,XJT3 ACALL DLY XJT3:INC R4 CJNE A,#0FFH,LOOP1 LOOP2:MOVX DPTR,A MOV R5,PINLU CJNE R5,#05H,XJT4 ACALL DLY XJT4:DEC A CJNE A,#00H,LOOP2 ACALL Kexam ; 有键入? JZ SHANJIAO ACALL GetKey ; 读入键码 ANL A, #0Fh CJNE A,#01H,SH1 MOV PINLU,#00H AJMP ZHENGXIAN SH1:CJNE A,#02H,SH2 MOV PINLU,#00H AJMP JU
46、CHI SH2:CJNE A,#05H,SH3 MOV PINLU,A AJMP SHANJIAO SH3:CJNE A,#04H,SHANJIAO AJMP TINGZHI;*停止输出*/TINGZHI: MOV DPTR,#7FFFH MOV R5,#00H MOV A,R5 MOVX DPTR,A AJMP L1Kexam:MOV A,P1 CPL A ANL A,#1FH ;高三位不用 RETGetKey: ;读键值子程序 MOV R1,#01H MOV R2,#05H CPL A CLR C Get: RRC A JNC JS INC R1 DJNZ R2,Get JS:MOV A,
47、R1 RET DLY:MOV R5,#02H DK:MOV R6,#01H DK1:DJNZ R6,DK1 DJNZ R5,DK RETKEND:END第四章 系统调试 上面几个章节是系统的设计思想,本章节将详细论述各个组成部分的调试与实现过程。 在整个调试的过程中可以充分感受到,对于单片机来说,硬件的调试需要借助软件完成,而软件的调试则依赖于硬件电路的实现,两者互相依赖,也互相支持,要两者都成功了,才能算是一个完整的系统。4.1硬件系统调试4.1.1 AT89S51单片机调试 由于AT89S51是整个系统的控制芯片,因此首先要确保它的正常工作。而想到一般单片机都能工作,就把AT89S51配合示波器一起调试。 按电路图显示部分的电路在面包板上插好,向单片机写上简单的程序,接上示波器,接通电路,实践证明单片机能正常工作。4.1.2 波形输出及放大电路调试 按电路图接好后,利用示波器显示输出波形。开始调试时,输出波形失真较大且不稳定。后来坚持资料的典型电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26《好的故事》说课稿-2024-2025学年语文六年级上册统编版
- 1场景歌说课稿-2024-2025学年统编版语文二年级上册
- 2024年秋一年级道德与法治下册 第二单元 我和大自然 5 风儿轻轻吹说课稿 新人教版
- 18古诗三首浪淘沙(其一)说课稿-2024-2025学年六年级上册语文统编版
- 8 设计制作小车(二) 说课稿-2024-2025学年科学四年级上册教科版
- 23《月光曲》说课稿-2024-2025学年语文六年级上册统编版
- 1 24时计时法(说课稿)-2024-2025学年三年级上册数学人教版001
- 2023九年级道德与法治上册 第三单元 文明与家园 第五课 守望精神家园第2框 凝聚价值追求说课稿 新人教版
- 2025北京市饲料采购合同新
- 2025建造船舶所要用到的合同
- 烟叶复烤能源管理
- 食品安全管理员考试题库298题(含标准答案)
- 执业医师资格考试《临床执业医师》 考前 押题试卷绝密1 答案
- 2024年山东济宁初中学业水平考试地理试卷真题(含答案详解)
- 社会保险课件教学课件
- 订婚协议书手写模板攻略
- 准备单元 雪地上的“足迹”(教学设计)-2023-2024学年五年级下册科学大象版
- 宇航用商业现货(COTS)器件保证指南-编制说明
- 音乐学科阅读方案
- 《立体仓库钢结构货架技术规范(征求意见稿)》
- 2024年贵州蔬菜集团有限公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论