【本科优秀毕业设计】基于单片机的函数信号发生器的设计与仿真_第1页
【本科优秀毕业设计】基于单片机的函数信号发生器的设计与仿真_第2页
【本科优秀毕业设计】基于单片机的函数信号发生器的设计与仿真_第3页
【本科优秀毕业设计】基于单片机的函数信号发生器的设计与仿真_第4页
【本科优秀毕业设计】基于单片机的函数信号发生器的设计与仿真_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的函数信号发生器的设计与仿真电子信息科学与技术专业学生摘要本系统利用80C51设计一个函数信号发生器,详细说明了其实现过程。本系统使用汇编语言编写,用80C51单片机来实现各模块功能,使用PROTEUS进行仿真。本文描述使用汇编语言和PROTEUS仿真实现函数信号发生器的基本功能,实现了方波、三角波、正弦波、锯齿波,频率可调为10HZ、100HZ、500HZ、1000HZ。本文给出了源程序、各模块的连接图以及仿真图,并做出了详细的分析。关键词汇编语言,PROTEUS,函数信号发生器,80C51DESIGNANDSIMULATIONOFTHEFUNCTIONSIGNALGENERATORBASEDONMCUELECTRONICSANDINFORMATIONSCIENCEANDTECHNOLOGYABSTRACTTHISSYSTEMUSES80C51DESIGNEDAFUNCTIONSIGNALGENERATOR,DESCRIBESDETAILEDLYTHEIMPLEMENTATIONPROCESSTHESYSTEMUSESTHEASSEMBLERLANGUAGE,REALIZINGEVERYFUNCTIONUSES80C51,APPLYINGPROTEUSTOSIMULATEINORDERTOREALIZETHEFUNCTIONEVERYMODULESTHISARTICLEDESCRIBESTHEUSEOFASSEMBLERLANGUAGEANDPROTEUSSIMULATION,TOACHIEVETHEBASICFUNCTIONSOFTHEFUNCTIONSIGNALGENERATOR,REALIZEDSQUAREWAVE,TRIANGLEWAVE,SINEWAVE,SAWTOOTHWAVE,ANDTHEFREQUENCYADJUSTABLEFOR10HZ,100HZ,500HZ,1000HZTHISARTICLEGIVESTHEORIGINALPROGRAMANDTHESIMULATINGDIAGRAMANDTHECOMBINATIONOFALLOFTHEMODULES,GIVESDETAILANALYSISOFEVERYSIMULATINGDIAGRAMASWELLKEYWORDSASSEMBLERLANGUAGE,PROTEUS,FUNCTIONSIGNALGENERATOR,80C511引言11单片机概述随着大规模集成电路技术的发展,中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的1,2。12信号发生器的分类信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器1,2。13研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。2方案的设计与选择21方案的比较方案一采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。方案二采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省3,4。22设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。80C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将80C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图21所示。图21信号发生器原理框图如图21所示80C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。89C51单片机接口电路D/A转换器滤波放大输出23设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率。(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为,用单片机的定时器产生,其表示式为。/256如果单片机的晶振为12MHZ,采用定时器方式0,则定时器的初值为152MEC21定时时间常数为228129/256LMOD23MOD32表示除32取余数(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为其中24/2SIN/2YAREFVA其中25T1256N那么对应着存放在计算机里的这一点的数据为25SINID(4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1TAB4为起始地址的存储器中。24设计功能本方案利用8255A扩展8个独立式按键,6个LED显示器。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3”号键代表锯齿波输出。“S4”号键为10HZ的频率信号,“S5”号键为100HZ的频率信号,“S6”号键为500HZ的频率信号,“S7”号键为1KHZ的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。利用DAC0832实现频率可调的信号源。频率范围10HZ,100HZ,500HZ,1000HZ。输出波形幅度为05V。3硬件设计31硬件原理框图硬件原理方框图如图31所示。图31硬件原理框图如图31所示80C51单片机为硬件系统的核心,单片机对键盘扫描读入键值确定波形与频率,通过显示电路显示频率值,通过数模转换器放大电路输出波形,通过示波器可以观察波形与频率,复位电路用于系统复位重启。32主控电路RETD0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7D0D1P27P27WRRDB0B1B2B3B4B5B6B7001020304050607XTAL218XTAL119ALE30EA31PSEN29RST9P0/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P12P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P3/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P2/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51D034D13D232D31D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB42PB523PB624PB725PC014PC115PC216PC317PC413PC512PC61PC710U2825A图32主控电路图如图32所示,80C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8255A的信号控制端,用于控制其信号的输入、输出。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。如果有单片机键盘电路显示电路复位电路数/模转换电路放大电路波形输出信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8255A的PB口输出,并在数码管上显示出来。33数/模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。RFBP25WRGNDD3D2D1D0VREFRFBIOUT2P25WRGNDWRD3P26D2D4D1D5D0D6VREFD7IOUT1WRP26D4D5D6D7IOUT2IOUT1OUT1OUT112VD034D13D232D331D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB42PB523PB624PB725PC014PC115PC216PC317PC413PC512PC61PC710U2825AVREF8GND3VC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT11IOUT212DI713DI614DI515DI416XFER17WR218ILEBY1/BY219U3DAC0832VREF8GND3VC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT11IOUT212DI713DI614DI515DI416XFER17WR218ILEBY1/BY219U4DAC083232141RS1OPAMP图33数模转换电路由图33可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H,则U1的输出电压为0V。若P0口向其送的数据为0FFH时,则U1的输出电压为5V故当U1输出电压为0V时,VOUT5V当输出电压为5V时,可得VOUT5V,所以输出波形的电压变化范围为5V5V故可推得当P0所送数据为80H时,VOUT为0V6。公式如右所示3120UR34按键接口电路040506070010203图34按键接口电路图34为键盘接口电路的原理图,图中键盘和8255A的PA口相连,80C51的P0口和8255A的D0口相连,80C51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出。“S3”号键代表锯齿波输出,“S4”号键为10HZ的频率信号,“S5”号键为100HZ的频率信号,“S6”号键为500HZ的频率信号,“S7”号键为1KHZ的频率信号735时钟电路8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图35所示。RETXTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51C122PFC222PFX112M图35时钟电路如图35所示电容C1、C2对振荡频率有稳定作用,其容量的选择为30PF,振荡器选择频率为12MHZ的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形9。36显示电路图36LED显示电路如图36所示显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用LED数码管显示器。而且LED数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据10。4软件设计41程序流程图本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。按下复位键后系统对8255A初始化,再通过键盘按钮确认频率与波形选择。首先判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。主程序的流程图判断信号频率中断设置开中断显示频率值判断波形YY根据频率值置新的时间常数8255A初始化开始NN图41主程序流程图如图41所示,在程序开始运行之后,首先是对8255A进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。下面说明主程序流程图的程序实现1开始ORG0000H程序开始执行,首先觉得跳转到主程序AJMMAINORG000BH定时器0中断入口地址,跳转到中断服务程序LJMPTC0ORG0030H28255A初始化MOVDPTR,7F00H指向8255A命令字端口地址MOVA,06H设置A口为输入,B口、C口为输出MOVXDPTR,A命令字(8255A初始化)3判断信号频率MOVDPTR,7F01H指向A口地址MOVXA,DPTR读入A口的开关数据JNBACC4,K10H判断是否“4键”,是则转输出10HZ信号JNBACC5,K100H判断是否“5键”,是则转输100HZ信号JNBACC6,K500H判断是否“6键”,是则转输出500HZ信号JNBACC7,K1K判断是否“7键”,是则转输出1KHZ信号AJMPMAIN无键按下则返回等待4根据频率值置新的时间常数,以显示10HZ为例,其他原理相同不做论述K10HMOV30H,00H显示10HZMOV31H,00H初始化显示缓冲段MOV32H,00HMOV33H,00HMOV34H,01HMOV35H,00HLCALLLED1调显示子程序MOVTMOD,00H写定时器工作方式MOVTL0,15H置新的时间常数MOVTH0,9EHAJMPPD5显示频率值,下面以显示10HZ为例,其他原理相同不做论述K10HMOV30H,00H显示10HZMOV31H,00HMOV32H,00HMOV33H,00HMOV34H,01HMOV35H,00HLCALLLED1调用显示子程序6显示子程序LED1MOVR3,06H设置6个LED显示MOVR2,01H选通第一位LED数据MOVR1,30H送显示缓冲区首址GN1MOVDPTR,7F03H指向C口地址MOVA,R2位选通数据送AMOVXDPTR,A位选通数据送C口RLA通下一位MOVR2,A位选通数据送R2中保存MOVA,R1取键值MOVDPTR,TAB送LED显示软件译码表首址MOVCA,ADPTR查表求出键值显示的段码MOVDPTR,7F02H指向B口地址MOVDPTR,A段码送显示LCALLLOOP1调延时子程序INCR1指向下一位显示缓冲区地址DJNZR3,GN1循环显示6个LEDRET7中断设置开中断GNSETBTR0启动定时器SETBET0开定时器0中断SETBEA开总中断8判断波形PDJNBACC0,KE0“0”号键按下,若是则转方波输出JNBACC1,KE1“1”号键按下,若是则转正弦方波输出JNBACC2,KE2“2”号键按下,若是则转三角波输出JNBACC3,KE3“3”号键按下,若是则转锯齿波输出LJMPPD无键按下则返回等待波形子程序的流程图方波发出D/A转换值查表求出数据正弦波发出D/A转换值查表求出数据正弦波发出D/A转换值查表求出数据锯齿波发出D/A转换值查表求出数据返回中断服务程序开始YYNNNY图42子程序流程图如图42所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。下面说明子程序流程图的程序实现1中断服务程序开始LJMPTC0绝对跳转到中断服务程序2判断是否是方波及处理方法TC0CJNER7,00H,TC1判断是否是方波,不是则跳转MOVDPTR,TAB1送方波数据表首址MOVA,R6发送数据寄存器MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HAJMPQL13判断是否是正弦波及处理方法TC1CJNER7,01H,TC2判断是否是正弦波,不是则跳转MOVDPTR,TAB2送正弦波数据表首址MOVA,R6MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HAJMPQL14判断是否是三角波及处理方法TC2CJNER7,02H,QL1判断是否是三角波,不是则跳转MOVDPTR,TAB3送三角波数据表首址MOVA,R6MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HAJMPQL15判断是否是锯齿波及处理方法TC3CJNER7,03H,QL1判断是否是锯齿波,不是则跳转MOVDPTR,TAB4送锯齿波数据表首址MOVA,R6MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00H四种波形的仿真波形图如下在仿真环境下,运行仿真软件,按要求操作键盘将会出现如下波形图,各个波形的仿真图有四种不同的频率,在此不一一列出波形图。图43方波如图43方波图,横坐标为时间轴每小格表示133MS,纵坐标为幅值轴每小格为100MV。当“S0”键按下是将产生方波,键“S4”“S7”决定方波的频率。“S4”号键为10HZ的频率信号,“S5”号键为100HZ的频率信号,“S6”号键为500HZ的频率信号,“S7”号键为1KHZ的频率信号。图44正弦波如图44正弦波图,横坐标为时间轴每小格表示133MS纵坐标为幅值轴每小格为100MV。当“S1”键按下是将产生正弦波,键“S4”“S7”决定正弦波的频率。“S4”号键为10HZ的频率信号,“S5”号键为100HZ的频率信号,“S6”号键为500HZ的频率信号,“S7”号键为1KHZ的频率信号。图45三角波如图45三角波图,横坐标为时间轴每小格表示133MS纵坐标为幅值轴每小格为100MV。当“S2”键按下是将产生三角波,键“S4”“S7”决定三角波的频率。“S4”号键为10HZ的频率信号,“S5”号键为100HZ的频率信号,“S6”号键为500HZ的频率信号,“S7”号键为1KHZ的频率信号。图46锯齿波如图46锯齿图,横坐标为时间轴每小格表示133MS纵坐标为幅值轴每小格为100MV。当“S3”键按下是将产生锯齿波,键“S4”“S7”决定锯齿波的频率。“S4”号键为10HZ的频率信号,“S5”号键为100HZ的频率信号,“S6”号键为500HZ的频率信号,“S7”号键为1KHZ的频率信号。5结论基于单片机的函数信号发生器的设计与仿真已全部完成,所设计的函数信号发生器有一定的实用价值和经济价值。能按预期的效果通过按键“S0”“S3”实现了方波,正弦波,三角波,锯齿波四种波形切换,键“S4”“S7”决定锯齿波的频率,波形标准美观频率稳定可调。并且在数码管上显示出波形的频率。在函数信号发生器系统的4个模块中,最重要的是主控模块,其它还有显示模块,按键模块,信号输出模块。各模块完成后,将它们组合成完整的函数信号发生器系统。在设计过程中还需改进的地方是在频率的选择上,频率选择只能是10HZ、100HZ、500HZ、1000HZ,理想情况下频率选择应该更加精确。本文所用的汇编语言为机器语言,相对来说复杂难懂,移植性差,可读性差,但是代码效率高,其本质作用在于直接控制硬件,因而会受到硬件环境的限制,因此做系统是编程语言的选择尤为重要。答谢设计终于顺利完成了,在设计中遇到了很多编程问题,最后在蔡剑华老师的辛勤指导下,终于游逆而解。同时,在蔡剑华老师那里我学得到很多实用的知识,再次我表示感谢同时,对给过我帮助的潘雄文,朱三星同学表示忠心的感谢参考文献1程全基于AT89C52实现的多种波形发生器的设计J周口师范学院学报,200522557582周明德微型计算机系统原理及应用M北京清华大学出版社,20023413643刘乐善微型计算机接口技术及应用M北京北京航空航天大学出版社,20012582644童诗白模拟电路技术基础M北京高等教育出版社,20001712025杜华任意波形发生器及应用J国外电子测量技术,2005138406张友德单片微型机原理、应用与实践M上海复旦大学出版社,200440447程朗基于8051单片机的双通道波形发生器的设计与实现J计算机工程与应用,200481001038张永瑞电子测量技术基础M西安西安电子科技大学出版社,2006611019李叶紫MCS51单片机应用教程M北京清华大学出版社,200423223810INTEL,MICROCONTROLLERHANDBOOK,1988M附录1电路原理图RETRETD0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7D0D1P27P27WRRDRFBP25WRGNDD3D2D1D0VREFRFBIOUT2P25WRGNDWRD3P26D2D4D1D5D0D6VREFD7IOUT1WRP26D4D5D6D7IOUT2IOUT1OUT1OUT112VOUT2OUT212V12VVOUTB0B7B1B2B3B4B5B6B7B0B1B2B3B4B5B6040506070010203001020304050607XTAL218XTAL119ALE30EA31PSEN29RST9P0/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P12P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P3/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P2/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51C12PFC22PFC310UFX112MD034D13D232D31D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB42PB523PB624PB725PC014PC115PC216PC317PC413PC512PC61PC710U2825AVREF8GND3VC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT11IOUT212DI713DI614DI515DI416XFER17WR218ILEBY1/BY219U3DAC0832VREF8GND3VC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT11IOUT212DI713DI614DI515DI416XFER17WR218ILEBY1/BY219U4DAC083232141RS1OPAMP32141RS2OPAMP附录2源程序源程序ORG0000HAJMMAINORG000BHLJMPTC0ORG0030HMAINMOVDPTR,9FFFH指向DAC0832(1)MOVA,70HMOVXDPTR,ADAC0832(1)输出MOVDPTR,7F00H指向8255A命令字端口地址MOVA,06H设置A口为输入,B口、C口为输出MOVXDPTR,A命令字MOVDPTR,7F01H指向A口地址MOVXA,DPTR读入A口的开关数据JNBACC4,K10H判断是否“4”,是则转输出10HZ信号JNBACC5,K100H判断是否“5”,是则转输100HZ信号JNBACC6,K500H判断是否“6”,是则转输出500HZ信号JNBACC7,K1K判断是否“7”,是则转输出1KHZ信号AJMPMAINLED1MOVR3,06H设置6个LED显示MOVR2,01H选通第一位LED数据MOVR1,30H送显示缓冲区首址GN1MOVDPTR,7F03H指向C口地址MOVA,R2位选通数据送AMOVXDPTR,A位选通数据送C口RLA选通下一位MOVR2,A位选通数据送R2中保存MOVA,R1取键值MOVDPTR,TAB送LED显示软件译码表首址MOVCA,ADPTR查表求出键值显示的段码MOVDPTR,7F02H指向B口地址MOVDPTR,A段码送显示LCALLLOOP1调延时子程序INCR1指向下一位显示缓冲区地址DJNZR3,GN1循环显示6个LEDRETLOOP1MOVR4,08H延时子程序LOOPMOVR5,0A0HDJNZR5,DJNZR4,LOOPRETK10HMOV30H,00H显示10HZMOV31H,00HMOV32H,00HMOV33H,00HMOV34H,01HMOV35H,00HLCALLLED1调显示子程序MOVTMOD,00HMOVTL0,15HMOVTH0,9EHAJMPPDK100HMOV30H,00H显示100HZMOV31H,00HMOV32H,00HMOV33H,01HMOV34H,00HMOV32H,01HMOV33H,00HMOV34H,00HMOV35H,00HLCALLLED1调显示子程序MOVTMOD,00HMOVTL0,01HMOVTH0,0FFHPDJNBACC0,KE0判断是否“0”号键按下,若是则转方波输出JNBACC1,KE1判断是否“1”号键按下,若是则转正弦方波输出JNBACC2,KE2判断是否“2”号键按下,若是则转三角波输出JNBACC3,KE3判断是否“3”号键按下,若是则转锯齿波输出LJMPPDKE0MOVR7,00HLCALLLED1调显示子程序MOVR6,00HAJMPGNKE1MOVR7,02HLCALLLED1调显示子程序MOVR6,00HAJMPGNKE2MOVR7,02HLCALLLED1调显示子程序MOVR6,00HAJMPGNKE3MOVR7,02HLCALLLED1调显示子程序MOVR6,00HGNSETBTR0SETBET0SETBEALOP1JNBACC4,K10H判断是否“4”号键,若是则转输出10HZ信号JNBACC5,K100H判断是否“5”号键,若是则转输出100HZ信号JNBACC6,K500H判断是否“6”号键,若是则转输出500HZ信号JNBACC7,K1K判断是否“7”号键,若是则转输出1KHZ信号AJMPLOP1TC0CJNER7,00H,TC1发送方波程序MOVDPTR,TAB1送方波数据表首址MOVA,R6发送数据寄存器MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HAJMPQL1TC1CJNER7,01H,TC2发送正弦波程序MOVDPTR,TAB2送正弦波数据表首址MOVA,R6MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HAJMPQL1TC2CJNER7,02H,QL1发送三角波程序MOVDPTR,TAB3送三角波数据表首址MOVA,R6MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HAJMPQL1TC3CJNER7,03H,QL1发送锯齿波程序MOVDPTR,TAB4送锯齿波数据表首址MOVA,R6MOVCA,ADPTRMOVDPTR,0AFFFH指向DAC0832(2)MOVXDPTR,ADAC0832(2)输出MOVA,R6INCAMOVR6,ACJNEA,32,QL1MOVR6,00HQL1RETITABDB0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80HTAB1DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00HTAB2DB80H,83H,86H,89H,8DH,90H,93H,96HDB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB96H,93H,90H,8DH,89H,86H,83H,80HDB80H,7CH,79H,78H,72H,6FH,6CH,69HDB66H,63H,60H,5DH,5AH,57H,55H,51HDB4EH,4CH,48H,45H,43H,40H,3DH,3AHDB38H,35H,33H,30H,2EH,2BH,29H,27HDB25H,22H,20H,1EH,1CH,1AH,18H,16HDB15H,13H,11H,10H,0EH,0DH,0BH,0AHDB09H,08H,07H,06H,05H,04H,03H,02HDB02H,01H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,01H,02HDB02H,03H,04H,05H,06H,07H,08H,09HDB0AH,0BH,0DH,0EH,10H,11H,13H,15HDB16H,18H,1AH,1CH,1EH,20H,22H,25HDB27H,29H,2BH,2EH,30H,33H,35H,38HDB3AH,3DH,40H,43H,45H,48H,4CH,4EHDB51H,55H,57H,5AH,5DH,60H,63H,66HDB69H,6CH,6FH,72H,76H,79H,7CH,80HTAB3DB00H,02H,04H,06H,08H,0AH,0CH,0EHDB10H,12H,14H,16H,18H,1AH,1CH,1EHDB20H,22H,24H,26H,28H,2AH,2CH,2EHDB30H,32H,34H,36H,38H,3AH,3CH,3EHDB40H,42H,44H,46H,48H,4AH,4CH,4EHDB50H,52H,54H,56H,58H,5AH,5CH,5EHDB60H,62H,64H,66H,68H,6AH,6CH,6EHDB70H,72H,74H,76H,78H,7AH,7CH,7EHDB80H,82H,84H,86H,88H,8AH,8CH,8EHDB0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ACH,0AEHDB0B0H,0B2H,0B4H,0B6H,0B8H,0BAH,0BCH,0BEHDB0C0H,0C2H,0C4H,0C6H,0C8H,0CAH,0CCH,0CEHDB0D0H,0D2H,0D4H,0D6H,0D8H,0DAH,0DCH,0DEHDB0E0H,0E2H,0E4H,0E6H,0E8H,0EAH,0ECH,0EEHDB0F0H,0F2H,0F4H,0F6H,0F8H,0FAH,0FCH,0FEHDB0FFH,0FEH,0FCH,0FAH,0F8H,0F6H,0F4H,0F2HDB0F0H,0EEH,0ECH,0EAH,0E8H,0E6H,0E4H,0E2HDB0E

温馨提示

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

评论

0/150

提交评论