李玉魁函数信号发生器课程设计第三次.docx_第1页
李玉魁函数信号发生器课程设计第三次.docx_第2页
李玉魁函数信号发生器课程设计第三次.docx_第3页
李玉魁函数信号发生器课程设计第三次.docx_第4页
李玉魁函数信号发生器课程设计第三次.docx_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

苏州大学本科生毕业论文(设计)摘 要信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用的是AT89C51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。在介绍DAC0832芯片特性的基础上,论述了采用AT89C51芯片设计数字函数信号发生器的原理以及整机的结构设计。对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。该函数信号发生器可输出三角波,方波和正弦波。关键词: 信号发生器 单片机 AT89C51 波形调整 LEDAbstract Signal-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 AT89C51 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. The generator can output three kinds of waves : sine wave , square wave , triangle wave. Keywords: signal generator MCU AT89C51 wave-form adjustment LED目录摘 要1Abstract2目录3第一章 绪论41.1信号发生器的分类51.2 研究信号发生器的目的及意义5 1.2 研究内容6第二章 方案的设计与选择72.1 方案的比较72.2 设计原理 82.3 设计思想 82.4 设计功能 9第三章 硬件设计103.1 硬件原理框图 103.2 主控电路103.3 数模转换电路 113.4 按键接口电路 123.5 时钟电路 123.6 显示电路 13第四章 软件设计134.1流程图 13第五章 软件仿真165.1 方波仿真图 165.2 三角波仿真图 175.3 正弦波仿真图 195.4 硬件电路测试 20第六章 焊接硬件与调试206.1 硬件焊接 206.2 硬件调试21第七章 总结23致谢23参考文献24附录1 电路原理图25附录2 源程序25附录3 器件清单35第一章 绪论1.1信号发生器的分类信号发生器按其信号波形分为四大类:正弦信号发生器。主要用于测量电路和系统的频率特性、非线性失真、增益及灵敏度等。按其不同性能和用途还可细分为低频(20赫至10兆赫)信号发生器、高频(100千赫至300兆赫)信号发生器、微波信号发生器、扫频和程控信号发生器、频率合成式信号发生器等。函数(波形)信号发生器。能产生某些特定的周期性时间函数波形(正弦波、方波、三角波、锯齿波和脉冲波等)信号,频率范围可从几个微赫到几十兆赫。除供通信、仪表和自动控制系统测试用外,还广泛用于其他非电测量领域。脉冲信号发生器。能产生宽度、幅度和重复频率可调的矩形脉冲的发生器,可用以测试线性系统的瞬态响应,或用作模拟信号来测试雷达、多路通信和其他脉冲数字系统的性能。随机信号发生器。通常又分为噪声信号发生器和伪随机信号发生器两类。噪声信号发生器主要用途为:在待测系统中引入一个随机信号,以模拟实际工作条件中的噪声而测定系统性能;外加一个已知噪声信号与系统内部噪声比较以测定噪声系数;用随机信号代替正弦或脉冲信号,以测定系统动态特性等。当用噪声信号进行相关函数测量时,若平均测量时间不够长,会出现统计性误差,可用伪随机信号来解决。1.2 研究信号发生器的目的及意义信号发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。信号发生器是一种经常使用的设备,但由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不够方便、信号失真较大、波形种类过于单一、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等的要求。研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景,以满足军事、民用、教学科研领域对信号源的要求。在现代社会中,自动化技术已经渗透到社会生活的各个领域中,其中,信号发生器是自动化领域中的一个典型应用。例如,在超声波测量技术中,超声换能器(发射换能器和接收换能器) 是超声波检测技术的核心部件。高精度、宽频率范围、高稳定性的激励源对发射换能器及超声检测系统性能的改善和提高起着至关重要的作用。传统的波形发生器通常由晶体管、运放IC 等分离元件制成。与此相比,基于集成芯片的波形发生器具有高频信号输出、波形稳定、控制简便等特点。因为现代的自动化控制中基本都会利用信号来控制设备的工作。利用信号的产生进行仪器的控制已经是自动控制中的一个重要的手段,那么一个幅度,频率,占空比以及波形可调的信号发生器的设计和完成更具有使用价值。使用单片机设计的多功能信号发生器,不仅减少了器件,简化了电路,节约了成本,更使得系统稳定节能,方便快捷地输出多种低频信号。这种结构简单,成本低廉但是性能优良的信号发生装置已经越来越广泛地应用在现代化控制领域的各个方面。无论是工业,民用,航空,军事还是商业领域都有信号发生装置的设计应用产品。本课题的目的是充分运用大学期间所学的专业知识,考察现有信号发生器的优缺点,设计一个频率和幅值可调的信号发生器。通过该课题的设计以掌握单片机系统的软硬件开发过程和基本信号的产生原理、测量及误差分析方法,同时掌握信号发生器系统的设计流程;培养我们综合运用所学的基本知识、基本理论和基本技能的能力,学习解决一般工程技术和有关专业问题的能力,学习工程设计和科学研究的基本方法,完成对所学知识的综合训练。通过这个信号发生器的设计,不但可以融会贯通以前所学的专业知识对以后学习和工作也会有很大帮助的。1.3 研究内容(1)理论基础分析。了解波形发生器的相关理论,包括几种常用波形,如正弦波,方波,三角波等,然后介绍了波形发生器的主要方案及原理。(2)硬件系统设计。主要包括以下几个模块:主控电路,数/模转换电路,按键接口电路,时钟电路,显示电路。(3)软件系统设计。主要有:系统总体流程设计;串口程序设计;单片机程序设计;键盘响应程序设计;LED显示程序设计。(4)系统仿真调试。通过计算机进行模拟仿真调试。第二章 方案的设计与选择 2.1 方案的比较信号发生器的设计方案可用多种方案来完成。在设计前对各种方案进行了比较:方案一:采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分器、比较器等构成正弦、矩形、三角等波形发生器。这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。方案三:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。使用锁相环通过分频运算实现频率的步进,这种方案频率稳定度高,但程控比较困难,而且步进范围过大,鉴于锁相环技术比较复杂不易实现,没有采用这种方案。方案四:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。方案五:利用AT89C51单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示波形的种类及频率。使用单片机的定时器设置定时时间,每半个周期对I/O 口取反一次,从而实现频率输出。这种方案虽然在高频频段误差比较大,但是编程简单控制容易。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。使用专用函数发生电路,如ICL8038 或MAX038,通过D/A转换调整函数发生器控制电压实现频率的控制,这种方案可以使频率连续可调,省却了波形转换电路,但控制电压与频率的变化不是严格的线性关系,如果不加频率负反馈则频率无法稳定准确,加上频率负反馈将使电路大大复杂,稳定度也会下降,而且如果要实现比较大的带宽,就需要不断更换振荡电容,电路复杂程度进一步增加。为避免调试困难,没有采用这种方案。综合比较,方案五既可满足毕业设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,且系统扩展、系统配置灵活,容易构成各种规模的应用系统,单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。所以采用方案五。2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2.1所示。 输出滤波放大D/A转换器接口电路89C51单片机图2.1 信号发生器原理框图89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波。2.3 设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为T,用单片机的定时器产生,其表示式为:T=T/256。如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为: X=213T/Tmec (2.1) 定时时间常数为: TL =(8192T)/MOD256 (2.2)TH=(8192T)/256 (2.3)MOD32表示除32取余数(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为: Y=(A/2sint)+A/2 (其中A=VREF) (2.4) t=NT (N=1256) (2.5)那么对应着存放在计算机里的这一点的数据为: (2.6) (4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1-TAB4为起始地址的存储器中。2.4 设计功能(1)本方案利用8155扩展8个独立式按键,6个LED显示器。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3” 号键代表锯齿波输出。(2)“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,另外一片用来实现信号源的输出)。(4)频率范围:350Hz7KHz。(5)输出波形幅度为02.5V第三章 硬件设计3.1 硬件原理框图硬件原理方框图如图3.1所示。波形输出放大电路复位电路显示电路数/模转换电路键盘电路单片机图3.1 硬件原理框图3.2 主控电路AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形6。如图3.2所示,AT89C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8155的信号控制端,用于控制其信号的输入、输出。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。如果有信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8155的PB口输出,并在数码管上显示出来。图3.2 主控电路图3.3 数/模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。由图3.3可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H, 则U1 的输出电压为0V;若P0口向其送的数据为0FFH时, 则U1的输出电压为-5V. 故当U1 输出电压为0V时,由公式 得:V out = - 5V.当输出电压为- 5V时,可得:V out = +5V,所以输出波形的电压变化范围为- 5V+ 5V. 故可推得,当P0所送数据为80H时,V out为0V4。图3.3 数模转换电路113.4 按键接口电路图3.4为键盘接口电路的原理图,图中键盘和8155的PA口相连,AT89C51的P0口和8155的D0口相连,AT89C51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出。 “S3”号键代表锯齿波输出,“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号3。 图3.4 按键接口3.5 时钟电路8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3.5所示。电容C1、C2对振荡频率有稳定作用,其容量的选择为30pf,振荡器选择频率为12MHz的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形9。 图3.5 时钟电路3.6 显示电路显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用LED数码管显示器。而且LED数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据。其器件模型如图3.6所示。图3.6 LED显示电路13第四章 软件设计4.1 程序流程图本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。主程序的流程图如图4.1所示,在程序开始运行之后,首先是对8155进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。图4.1 主程序流程图4.2为各波形子程序的流程图。如图所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A转换器将数据转换成模拟信号,形成所需波形信号。图4.2 子程序流程图第五章 软件仿真5.1方波仿真如图5.1(a)所示 如图5.1(b) 所示输出幅值为1V 输出幅值为2V周期为250ms 周期为250ms时间档为 100ms 时间档为 100ms幅值档为 1V 幅值档为 1V 图5.1(a) 图5.1(b)如图5.1(c)所示 如图5.1(d)所示输出幅值为3V 输出幅值为4V周期为250ms 周期为250ms时间档为 100ms 时间档为 100ms幅值档为 1V 幅值档为 1V 图5.1(c) 图5.1(d)如图5.1(e)所示输出幅值为5V周期为250ms时间档为 100ms幅值档为 1V 图5.1(e)5.2 三角波仿真图 如图5.2(a)所示 如图5.2(b)所示 输出幅值为1V 输出幅值为2V 周期为2.5ms 周期为2.5ms 时间档为 1ms 时间档为 1ms 幅值档为1V 幅值档为 1V 图5-2(a) 图5-2(b) 如图5.2(c)所示 如图5.2(d)所示 输出幅值为3V 输出幅值为4V 周期为2.5ms 周期为2.5ms 时间档为 1ms 时间档为 1ms 幅值档为 1V/格 幅值档为 1V 图5.2(c) 图5.2(d)如图5.2(e)所示输出幅值为5V周期为2.5ms时间档为 1ms幅值档为 1V 图5.2(e)5.3正弦波仿真图 如图5.3(a)所示 如图5.3(b)所示 输出幅值为1V 输出幅值为2V 周期为0.5ms 周期为0.5ms 时间档为 0.2ms 时间档为 0.2ms 幅值档为 1V 幅值档为 1V 图5.3(a) 图5.3(b) 如图5.3(c)所示 如图5.3(d)所示 输出幅值为3V 输出幅值为4V 周期为0.5ms 周期为0.5ms 时间档为 0.2ms 时间档为 0.2ms 幅值档为 1V 幅值档为 1V 图5.3(c) 图5.3(d) 如图5.3(e)所示 输出幅值为5V ,周期为0.5ms ,时间档为 0.2ms 幅值档为 1V 图5.3(e) 5.4硬件电路测试 实验方波如图5.4(a)所示 实验三角波如图5.4(b)所示 图5.4(a) 图5.4(b) 幅值24V 周期200ms 幅值24V 周期2.5ms 实验正弦波如图5.4(c)所示图5.4(c) 幅值24V 周期1.2ms第六章 焊接硬件与调试6.1焊接硬件l 按照PCB板图布局元件。l 用铜导线当电路导线,按照PCB图走线。走线过程一定要仔细,严格按PCB图走线。因为走线很多,这样才能有效布通线路。也更容易排除错误。布线时最好先布底层线路,对于顶层导线,用带塑料皮的导线布在底层线路的上面。从而就可以避免短路,方便布线。实物板如图7.1所示。6.2调试硬件当电路焊接完成后,首先要做的就是用测试电路板的电源与地之间是否有短路。然后根据PROTEL原理图,用万用表测量对应引脚是否已经正常连接了。是存在局部引脚短路或线路漏接。这些排查完成后,就可以通电了。通过ISP口下载程序到AT89S51中。数码管调试首先观察数码管是否是能够正常显示正常的数字,有没有乱码。如果显示正常,说明数码管电路连线正确。再观察显示的数字亮度是否够亮,有没有闪烁。如果亮度很低,说明动态扫描的时间过短,数码管导通时间不够。如果闪烁,就说明动态扫描的时间过长,第一位管子点亮的时间过长。这些问题就得再修改程序,把动态扫描时间调节到合适的时间20ms以下,由于视觉暂留,就可以“同时”显示各位不同的数字、字符波形发生电路的调试此电路包括DAC0832与单片机接口电路、放大器、反向器电路。1.用示波器测量UA741的第2脚,此引脚应该有微弱的周期电流输出。如果没有,则应该检测DAC0832是否正常工作以及DAC0832与单片机的接口电路。2.第一级放大器后就可以得到幅为负电压的波形,幅值大小可以由反馈电阻调节。用示波器检测是否能达到所要求的幅值是否能在0-5V范围内调节。3.第二级放大电路起反向作用,用示波器观察幅值是否为正值。4.再次调节第一级的反馈电阻,用示波器观察第二级放大波形的幅值能否在0-5V可调。反馈电阻大小是否合要求。电压测量电路的调试此电路包括分频电路、ADC0809与单片机接口电路、幅值测量电路。1.分频电路的检测很简单,直接用示波器测9脚信号是否为500KHZ方波信号。如果不是,刚74LS74接线有问题,检查线路排除问题。2.幅值测量电路的检查时,用数字电压表测量220UF电容正接线端。观察幅值是否为定值。再用示波器测量该点,观察波形幅值是否为接近测量值。3.按下S4(测电压)单片机从DAC0809数据口读取数据后换算,LED数码管此时就应该显示当前波形有幅值。如果LED显示的数据不对,则应该检查ADC0809与单片机接口电路。第七章 总结经过几个月的努力,终于完成了信号发生器的设计,总结几个月来的工作,主要有以下几个方面:(1)通过查阅大量资料使自己对信号发生器的研究现状、原理、工作方式等的基本概念及技术发展有了更好的理解。(2)针对设计的任务和要求,确定了信号发生器的硬件和软件设计方案。(3)本系统使用了单片机作为中央控制器,直接由软件产生波形信号的输出,可通过修改软件,还可以输出其它任意波形。硬件简单,可以把电源和发生器分开来制作,减少电源对发生器的干拢,这样使发生器输出的波形更加稳定。(4)用protel 99SE画系统的硬件原理图,用Visio画系统的软件流程图,使专业作图更加标准规范。(5)这次毕业设计,使我加深了对学过的理论知识的理解,解决问题的能力也得以提高,计算机操作水平有所提升。 致谢在本次系统的研究和设计过程中,我得到了老师和同学们的热情帮助。在此,对他们表示衷心的感谢。首先,要对我的指导老师陈老师表示衷心的感谢。从方案的选取、审题、查找资料,到系统软硬件的各部分设计工作,到最后论文的书写和完成,老师在我的整个毕业设计工作中给了我很大的帮助和支持。老师的谆谆教导,使我受益匪浅。其次,要对大学四年以来所有给我授课的老师们表示感谢。是他们教会了我大学应该掌握的知识和技能,给我打下了坚实的理论基础。只有运用四年学习的基础知识和经验的积累,才能使我能够顺利的完成本次毕业设计工作。最后,要感谢我们班的众多同学,本次设计能够圆满完成,和各位同学的帮助是息息相关的。在本次设计中,我遇到了无数困难,在需要帮助的时候,各位同学给了我无私的帮助,助我度过了一个又一个的难题。参考文献1康华光.电子技术基础(模拟部分) M. 北京:高等教育出版社,2006.2蔡美琴.MCS-51系列单片机系统及应用.北京:高等教育出版社,2005.3王忠飞,胥芳.MCS-51单片机原理及嵌入式系统应用M.西安:西安电子科技大学出版社,2007.4胡汉才.单片机原理及系统设计M.北京:清华大学出版社,2002:200-260.5黄友锐.单片机原理及应用M.合肥:合肥工业大学出版社,2006.6沈文斌.嵌入式硬件系统设计与开发实例详解M.北京:电子工业出版社,2005.7谭浩强.C程序设计(第三版)M. 北京:清华大学出版社,2005.8王建校等51系列单片机原理及C语言程序设计M北京:科学出版社,20029申忠如MCS-51单片机原理及其系统设计M西安:西安交通大学出版社M,2008附录1 电路原理图附录2 源程序源程序:ORG 0000HAJM MAINORG 000BHLJMP TC0ORG 0030HMAIN:MOV DPTR,#9FFFH 指向DAC0832(1)MOV A,70HMOVX DPTR,A DAC0832(1)输出MOV DPTR,#7F00H 指向8155命令字端口地址MOV A,#06H 设置A口为输入,B口、C口为输出MOVX DPTR,A 送命令字MOV DPTR,#7F01H 指向A口地址MOVX A,DPTR 读入A口的开关数据JNB ACC.4,K10H 判断是否“4”号键,若是则转输出10Hz信号JNB ACC.5,K100H 判断是否“5”号键,若是则转输出100Hz信号JNB ACC.6,K500H 判断是否“6”号键,若是则转输出500Hz信号JNB ACC.7,K1K 判断是否“7”号键,若是则转输出1KHz信号AJMP MAINLED1: MOV R3,#06H 设置6个LED显示MOV R2,#01H 选通第一位LED数据MOV R1,#30H 送显示缓冲区首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位选通数据送AMOVX DPTR,A 位选通数据送C口RL A 选通下一位MOV R2,A 位选通数据送R2中保存MOV A, R1 取键值MOV DPTR,#TAB 送LED显示软件译码表首址MOVC A,A+DPTR 查表求出键值显示的段码MOV DPTR,#7F02H 指向B口地址MOV DPTR,A 段码送显示LCALL LOOP1 调延时子程序INC R1 指向下一位显示缓冲区地址DJNZ R3,GN1 循环显示6个LEDRETLOOP1:MOV R4,#08H 延时子程序LOOP:MOV R5,#0A0HDJNZ R5,$DJNZ R4,LOOPRETK10H:MOV 30H,#00H 显示10HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#15HMOV TH0,#9EHAJMP PDK100H:MOV 30H,#00H 显示100HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#01HMOV 34H,#00HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#08HMOV TH0,#0F6HAJMP PDK500H:MOV 30H,#00H 显示500HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#05HMOV 34H,#00HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#01HMOV TH0,#0FEHAJMP PDK1K:MOV 30H,#00H 显示1KHzMOV 31H,#00HMOV 32H,#01HMOV 33H,#00HMOV 34H,#00HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#01HMOV TH0,#0FFHPD:JNB ACC.0,KE0 判断是否“0”号键按下,若是则转方波输出JNB ACC.1,KE1 判断是否“1”号键按下,若是则转正弦方波输出JNB ACC.2,KE2 判断是否“2”号键按下,若是则转三角波输出JNB ACC.3,KE3 判断是否“3”号键按下,若是则转锯齿波输出LJMP PDKE0:MOV R7,#00HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE1:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE2:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HAJMP GN KE3:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HGN: SETB TR0SETB ET0SETB EALOP1:JNB ACC.4,K10H 判断是否“4”号键,若是则转输出10Hz信号JNB ACC.5,K100H 判断是否“5”号键,若是则转输出100Hz信号JNB ACC.6,K500H 判断是否“6”号键,若是则转输出500Hz信号JNB ACC.7,K1K 判断是否“7”号键,若是则转输出1KHz信号AJMP LOP1TC0:CJNE R7,#00H,TC1 发送方波程序MOV DPTR,#TAB1 送方波数据表首址MOV A,R6 发送数据寄存器MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC A MOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC1:CJNE R7,#01H,TC2 发送正弦波程序MOV DPTR,#TAB2 送正弦波数据表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC2:CJNE R7,#02H,QL1 发送三角波程序MOV DPTR,#TAB3 送三角波数据表首址MOV A,R6MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论