《函数发生器软件设计毕业论文.doc》由会员分享,可在线阅读,更多相关《函数发生器软件设计毕业论文.doc(37页珍藏版)》请在三一办公上搜索。
1、函数发生器软件设计摘 要任意波形发生器是信号源的一种,它是具有信号源所具有的特点,更因它高的性能优势而倍受人们青睐。本设计是基于80C51单片机的函数发生器,能产生方波、三角波、正弦波,并且信号的频率、幅度都可以变化,本设计的信号频率、幅度变化是通过软件来实现的,单片机输出数字信号要通过DA转换,本设计采用DAC0832芯片来实现数模转换的,转换的模拟信号幅度太小,所以后面要经过放大器进行放大,再输出模拟信号,信号的幅度和频率通过数码管来显示,共有6个数码管,前两个用来显示幅度,后四个显示频率,数码管显示采用动态显示,并且通过8255A芯片并行口扩展连接到数码管显示,本设计按键总共用到6个按键
2、。关键词: DAC0832芯片8255芯片 LM324 80C51单片机 FUNCTION GENERATOR SOFTWARE DESIGNABSTRACTThe random profile generator is the supply oscillator one kind, it has the characteristic which the supply oscillator has, but time is favored because of its high performance superiority the people.This design is based on
3、 the 80C51 monolithic integrated circuit function generator, can have the square-wave, the triangular wave, the sine wave, and the signal frequency, the scope all may change, this design signaling frequency, the amplitude variation are realize through the software, The monolithic integrated circuit
4、output digit signal must transform through DA, this design uses the DAC0832 chip to realize the digital-analog conversion, the transformation simulated signal scope too is small, therefore behind must carry on the enlargement after the amplifierAgain outputs the simulated signal, the signal scope an
5、d the frequency demonstrated through the nixietube that, altogether has 6 nixietubes, first two use for to demonstrate the scope, the latter four demonstration frequency, the nixietube demonstrated uses the dynamic demonstration, and connects the nixietube through the 8255A chip parallel mouth expan
6、sion to demonstrate, this design pressed key altogether uses to 6 pressed keys.Key word: DAC0832 chip 8255 chip LM324 80C51 monolithic integrated circuit目 录中文摘要I英文摘要II1 概述11.1 信号发生器综述11.2 研究方向及意义22 设计总体方案33 系统硬件设计33.1 80C51最小系统设计43.1.1 80C51芯片简介53.2 DA转换电路设计73.2.1 DAC0832芯片介绍83.2.2 LM324运放介绍113.3 键盘
7、电路设计113.4 数码管显示电路设计123.4.1 8255A芯片介绍134 系统软件设计184.1 主程序设计194.2 键盘及波形转换程序设计204.3 DA转换程序设计214.4 显示程序设计225 总 结25致 谢26参考文献27附录1 系统原理图28附录2 程序清单291 概述1.1 信号发生器综述信号发生器是一种历史最为悠久的测量仪器。早在二十年代,当电子设备刚开始出现时,它就出现了。随着通信和雷达技术的发展,四十年代出现了主要用于测试各种接收机的标准信号发生器,使信号发生器从定性分析的测试仪器成为定量分析的测量仪器,同时,还出现了可用来测试脉冲电路或用作脉冲调制器的脉冲信号发生
8、器。由于早期的信号发生器机械结构比较复杂,功率比较大,电路比较简单(与数字仪器、示波器等相比),因此,发展速度较慢。直到 1964 年才出现了第一台全晶体管的信号发生器。自六十年代以来,信号发生器有了迅速的发展,出现了函数发生器、扫频信号发生器、合成信号发生器、程控信号发生器等各种新的种类,而且,各类信号发生器的主要性能指标也都有了大幅度的提高。与此同时,各类信号发生器在简化机械结构,体积小型化、功能多样化等各方面也取得了显著的进展。信号发生器是一种常用的信号源,被广泛应用于电子电路、自动控制和科学试验等各个领域。它是一种为电子测量和计量工作提供符合严格技术要求的电信号设备。如:在测试、研究或
9、调试电子电路及设备时,为测定电路的一些电参量,如测量频率响应、噪声系数、为电压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的激励信号。另外,当要求进行系统的稳态特性测量时,需使用振幅、频率已知的正弦信号源。信号发生器种类较多,性能也各有差别,但它们都可以产生不同频率的正弦波、调幅波、调频波信号以及各种频率的方波、三角波、锯齿波和正负脉冲波等信号。利用信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品整进行指数验证、参数调整及性能鉴定。在多数电路传递网络中、电容与电感组合电路,电容与电阻组合电路及信号调制器的频率、相位的检测中都可以得
10、到广泛的应用。信号发生器的种类相当繁多,可广泛应用于电子信息、机械、交通、地质、航天航空等专业,在教学、科研、生产、工程等诸多领域应用非常广泛。从宏观上讲,一般可以分为通用和专用两大类。专用信号发生器主要是为了某种特殊的测量目的而研制的,如:电视信号发生器、编码脉冲信号发生器等。这种发生器的特性是受测量对象的要求所制约的。如果信号发生器按其频率的高低,可分为:超低频信号发生器,低频信号发生器,高频信号发生器,超高频信号发生器和微波信号发生器。按产生波形的不同,可分为:正弦波信号发生器,脉冲波函数波信号发生器,任意波信号发生器。按调制方式的不同,可分为:调频信号发生器( FM )、调幅信号发生器
11、( AM ) ,调相信号发生器( PM ) ,脉冲调制信号发生器。此外,还有可以产生两种或多种波形信号的发生器。目前,单片机智能信号发生器可直接数字合成( DDS ) ,能够产生任意波形的信号,其精度高,可程控,便于与其他设备对接构成各种系统。一般传统的信号发生器都采用谐振法,即用具有频率选择性的回路来产生正弦振荡,获得所需频率,但也可以通过频率合成技术来获得所需的频率。利用频率合成技术制成的信号发生器,通常被称为合成信号发生器。所谓频率合成技术就是指从一个高稳定和准确的参考频率源,经过技术处理,生成大量离散的频率输出。技术处理方法可以是传统的用硬件实现频率的加、减、乘、除基本运算,可以是锁相
12、环技术,也可以是各种数字技术和计算技术。其参考频率可由高稳定的参考振荡器(一般为晶体振荡器)产生,所生成的一系列离散频率输出与参考振荡器频率有严格的比例关系。1.2 研究方向及意义信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。任意波形发生器是信号源的一种,它是具有信号源所具有的特点,更因它高的性能优势而倍受人们青睐。信号源主要给被测电路提供所需要的已知信号(各种波形),便于与其他设备对接构成各种系统。一般传统的信号发生器都采用谐振法,即用具有频率选择性的回路来产生正弦振荡,获得所需频率,但也可以通过频率合成技术来获得所需的频率。然后用其它仪
13、表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它不是测量仪器,可以对元器件的性能及参数进行测量,还可以对电工和电子产品整进行指数验证、参数调整及性能鉴定。在多数电路传递网络中、电容与电感组合电路,电容与电阻组合电路及信号调制器的频率、相位的检测中都可以得到广泛的应用。而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。目前我国已经开始研制任意波形发生器,并取得了可喜的成果。但总的来说,我国任意波形发生器还没有形成真正的产业。就目前国内的成熟产品来看,多为一些 PC 仪器插卡,并且我国目前在任意波形发生器的种类和性能都与国外同类产品存在较
14、大的差距,因此加紧对这类产品的研制显得迫在眉睫。2 设计总体方案本设计总共分为四大块,有80C51最小系统电路块、按键模块、DA转换模块、数码管显示模块,本设计以单片机为中心,通过外围芯片扩展来实现函数发生器设计,能产生方波、三角波、正弦波,并且信号的频率、幅度都可以变化,通过一段时间的资料查阅,设计出总体框图如下:按键控制输 出8255芯片扩展数码管显示80C51单 片 机放 大 器DAC0832图2-1总体设计框图单片机通过I/O口经过8255芯片的并行口扩展按键功能,数码管采用动态显示,信号的幅度和频率的改变通过单片机软件来实现,单片机输出是数字信号,通过ADC0832数模转换芯片实现数
15、字信号到模拟信号的转换,由于信号比较小所以要经过运放进行放大再输出。再通过电容对信号进行滤波使信号变的平滑点,幅度和频率的显示通过单片机动态显示并用数码管显示,幅度和频率的调整、宏微调整波形的转换通过按键来调整,大部分功能都通过软件来实现。3 系统硬件设计本设计有80C51最小系统电路块、按键模块、DA转换模块和数码管显示模块构成,用到的元件有80C51单片机芯片、8255A扩展芯片、DAC0832芯片、六个数码管、电阻、电容、LM324运放芯片、晶振、小按键。单片机、按键、晶振和电容电阻来构成单片机最小系统,单片机、DAC0832芯片、LM324运放芯片和电阻构成DA转换信号电路,单片机、8
16、255A芯片、数码管和电阻构成显示电路。3.1 80C51最小系统设计RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个震荡脉冲周期以上,整个复位电路包括片内外两部分,外部电路产生的复位信号送斯密特触发器,然后对其进行采样,最后得到内部复位操作所需的信号。复位操作有上电自动复位,按键电平复位和外部脉冲复位三种方式。上电自动复位:通过外部复位电路的电容充电来实现,即接通电源就完成了系统的复位初始化。按键电平复位:通过使复位端经电阻和电源接通而实现,能保证复位信号高电平持续时间大于2个机器周期。外部脉冲复位:由外部提供一个复位脉冲。此复位脉冲应保持宽度大于2个机器周期,复位
17、脉冲过后内部下拉电阻保证RST端的低电平。单片机内部有时钟电路只需通过外部时控元件即可构成一个稳定的字迹振荡器,图中外接晶振和电容构成了外部时控电路,晶振用11.0592MHZ,电容用1030pF,本设计中电容用20pF。图3-1 8051单片机最小系统3.1.1 80C51芯片简介我们刚学过单片机C51,这门课程比较重要,它是与现代高科技有密切联系的,现在好多高科技产品都是用到了单片机来控制实现的,性能较高,价格基本不变,工作频率一般为11.0592MHz,整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被
18、写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。它有40个引脚,既可接外部时钟,也可用内部自己的时钟,有8位CPU,4K的ROM,128B的RAM存储,两个8位的定时器,P0,P1,P2,P3的对外的接口使用,还有5个中断等等,具有集成度高、运行速度快、可靠性强、易于开发和方便修改等特点 。单片机主控电路的主要元件是MCS80C51,其外型如图所示:
19、图3-2 80C51引脚图80C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。80C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,MCS51可以按照常规方法进行编程,也可以在线编程
20、。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。Vcc:供电电压。Vss:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将
21、输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是
22、8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当
23、振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外
24、部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2 DA转换电路设计本设计的核心模块就是DA转换模块,方波、三角波、正弦波信号的输出、信号的频率、幅度都可以变化都是在本
25、模块来实现的,本设计的信号频率、幅度变化是通过软件来实现的,数字信号通过单片机的P0口输出,DAC0832的数字信号输入端连接到单片机的P0口,输出口IOUT1和IOUT2分别接到LM324运算放大器的负输入端和正输入端,RFB是内部反馈电阻端,DAC0832芯片采用直通型工作方式,将CS、XREF、WR1、WR2都接地,ILE接高电平,芯片完全处于直通状态。具体电路如图所示:图3-3 DA转换电路图3.2.1 DAC0832芯片介绍DAC0832是8位电流输出型D/A转换芯片,其主要技术指标:分辨率为8位,增益温度系数为0.02%,单电源供电,外部引脚如图所示:图3-4 DAC0832DI0
26、DI7为数字量输入端,CS片选信号输入端,低电平有效,ILE允许输入锁存信号,高电平有效,WR1输入锁存器写信号,WR2为8位DAC寄存器写信号,XFER传送控制信号,低电平有效,IOUT1为DAC电流输出1端,当八位输入数字量全为1时,此时电流最大,当八位输入数字量全为0时,此时电流最小为0,IOUT2为DAC电流输出2端,IOUT1+IOUT2=常数,RFB反馈电阻,VREF参考电压输入端,可在-10V+10V范围内选择,DAC0832工作方式通过控制端CS、ILE、WR1、WR2、XFER的不同接线方式,可以控制DAC0832工作在不同方式下。单缓冲方式和双缓冲方式,单缓冲方式时两个输入
27、寄存器中有一个处于直通方式,另一个处于受控锁存方式,适用于只有一路模拟信号输出或虽有几路模拟信号但不需要同步输出的场合;双缓冲方式是两个锁存器都接成受控方式ILE接高电平。本设计中80C51的P0口直接与DAC0832的数字输入DI0DI7连接,80C51的WR与DAC0832的WR1连接,P2.7与片选信号CS连接,WR2、XFER直接接地,芯片采用的是单缓冲方式。待转换的8位数字量由芯片的8位数据输入线D0D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为1的各位输出电流之和,IOUT2是逻辑电平为0的各位输出电流之和。另外,ILE、CS
28、、WR1、WR2和XFER是控制转换的控制信号。DAC0832有两个可以分别控制的数据寄存器,可根据需要使寄存器工作在单缓冲方式、双缓冲方式和直通方式,下面介绍这三种方式及相应的连线方法。(1) 双缓冲方式此方式下CPU要对DAC进行两步写操作:第一步把数据写入输入寄存器,第二部把输入寄存器的内容写入DAC寄存器。一般的接法是:固定为高电平,WR1和WR2都接到CPU的WR, CS和XFER分别接两个端口的地址译码信号。双缓冲工作方式的特点是DAC0832的数据接收和启动转换异步进行,多个模拟量输出通道可以同步进D/A转换。(2) 单缓冲方式它是应用在只有一路模拟量输出或几路模拟量不需要同时输
29、出的场合,在这种方式下,使DAC0832的两个寄存器中的其中一个处于常通状态,或使两个寄存器同时选通或锁存。这样两个寄存器相当于一个寄存器,只有一级缓冲,所以称为单缓冲方式。接线方法为:使DAC寄存器处于直通状态,即WR2和XREF端都接数字地。在这种情况下,数据只要一写入DAC寄存器就立即进行数模转换。(3) 直通型工作方式将CS、XREF、WR1、WR2都接地,ILE接高电平,芯片完全处于直通状态。寄存器中的数据跟输入数据的变化而变化。单缓冲方式和双缓冲方式,单缓冲方式时两个输入寄存器中有一个处于直通方式,另一个处于受控锁存方式,适用于只有一路模拟信号输出或虽有几路模拟信号但不需要同步输出
30、的场合;D/A转换器的输出也同时跟随变化。这种方式下待转换的数据需要通过外部的I/O口来输出。DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。其内部结构如下图所示:R
31、FBIOUT2IOUT1VREFXFERWR1WR2CSLEILELE输入数据D0D78位输入寄存器8位DAC寄存器8位D/A寄存器图3-5 DAC0832内部结构图控制信号ILE、CS,WR1用来控制输入寄存器。当ILE为高电平,CS为低电平,WR1为负脉冲时,在LE产生正脉冲;其中LE为高电平时,输入寄存器的状态随数据输入线状态变化,LE的负跳变将输入数据线上的信息存入输入寄存器。控制信号WR2和XFER用来控制8位A/D转换器。当XFER为低电平,WR2输入负脉冲时,则在LE产生正脉冲;其中LE为高电平时,DAC寄存器的输入与输出的状态一致,LE负跳变,输入寄存器内容存入DAC寄存器。在
32、微机应用系统中,通常使用的是电压信号,而DAC 0832输入的是电流信号。这就需要由运算放大器组成的电路实现转换。其中有输出电压各自极性固定的单位性输出和在随动系统中输出电压有正负极性的双极性输出两种输出方式。3.2.2 LM324运放介绍LM 32 4 是四运放集成电路,它采用 14 脚双列直插塑料封装,它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图 1 所示的符号来表示,它有 5 个引出脚,其中“ + ”、“一”为两个信号输入端, v + ”、“ v - ”为正、负电源端, vo ”为输出端。两个信号输入端中, Vi-(一)为反相输入端,表
33、示运放输出端 Vo 的信号与该输入端的相位相反; Vi + ( + )为同相输入端,表示运放输出端 Vo 的信号与该输入端的相位相同。由于 LM324 四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。LM324 的引脚排列如下图所示:LM324V-V+1234567891011121314图3-6 LM324芯片3.3 键盘电路设计本设计按键电路用到5个按键,分别是S1按键,S2按键,S3按键,S4按键,S5按键。S1按键接到单片机的INT0端,S2按键通过上拉电阻接到单片机的P2.0端,S3按键通过上拉电阻接到单片机的P2.1端,S4按键通
34、过上拉电阻接到单片机的P2.2端,S5按键通过上拉电阻接到单片机的P2.3端,五个按键实现了本设计的所有功能转换,具体电路图如图所示:图3-7 按键电路图3.4 数码管显示电路设计本设计数码管显示电路,电路中共用了6个数码管,前两个用来显示幅度,后四个显示频率,单片机的P1口连接到8255A芯片输入端,单片机把要显示的数送到P1口,并行口扩展芯片8255A的PB口来送显示数据,其PA口的几个接口用来送位选信号连接到数码管进行动态显示,数码管都是带小数点显示的7段共阴极数码管,8255A芯片的输出足够驱动数码管显示。具体电路图如图所示:图3-8 显示电路图3.4.1 8255A芯片介绍8255A
35、芯片能扩展三个8位I/O接口,有三种工作方式,使用起来灵活方便,通用性强可作为单片机与多种外围设备的中间接口电路,8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,具有三种工作方式,可通过程序改变其功能,因而使用灵活方便,通用性强,可作单片机与多种外围设备连接时的中间接口电路。8255A的引脚如图所示:图3-9 8255A芯片8255共有40个引脚,采用双列直插式封装,各引脚功能如下:D7D0:三个态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电科有效,控制数据的读出。WR:写入信号线
36、,低电平有效,控制数据的写入。VCC:+5V电源。PA7PA0:A的输入/输出线。PB7PB0:B口输入/输出线。PC7PC0:C口输入/输出线。RESET:复位信号线。A1A0:地址线,用来选择8255内部端口。其中包括三个并行数据输入/输出端口,二个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。各部分功能概括如下:A口:是一个8位数据出锁器/缓冲器和一个8位数据输入锁存器。B口:是一个8位数据输入/输出锁存器和一个8位数据输入结冲器。C口:是一个8位数据输入/输出端口。C作为控制/状态住处缓冲器(输入不锁存)。工作方式控制电路:工作方式控制电路有两个,一个是A组控制电路,另一个
37、是B组控制电路。这两组控制电路具有一个控制命令寄存器,用来接收中央处理器发来的控制字,以决定两组端口的工作方式,也可根据控制字的要求对C口按位清“0”或者位置“1”。A组控制电路用来控制A口和C口的上半部分(PC7PC4)。B组控制电路用来控制B口和C口的下半部分(PC3PC0)。总线数据缓冲器:总线数据缓冲器是一个三态双向8位缓冲器,作为8255与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。读/写控制逻辑电路:读/写控制逻辑电路接收CPU发来的控制信号WR、RD、RESET、地址信号A1A0等,然后根据控制信号的要求,将端口数据读出,送往CPU,或者将CPU送来的数据写
38、入端口。表3-1 8255接口工作状态表A1A2RD WR CS工作状态0 00 11 00 1 00 1 00 1 0A口数据 数据总线B口数据 数据总线C口数据 数据总线0 00 11 01 11 0 01 0 01 0 01 0 0总线数据 A口总线数据 B口总线数据 C口总线数据 控制字寄存器 1 1 10 1 01 1 0数据总线 三态非法状态数据总线 三态8255有三种基本工作方式:方式0:(MODE 0):基本输入输出。方式1(Mode 1):选通输入输出。方式2(Mode 2):双向传送。三种工作方式由工作方式控制字来决定。由CPU通过输入/输出指令来提供。三个端口中C口被分为
39、两个部分,上半部分随A口称为A组,下半部分随B口称为B组。其中A口可工作于方式0、1和2,而B口只能工作在方式0和1各控制信号的功能如下: STB:选通输入,低电平有效,是由外设送来的输入信号,用来将输入数据送入输入锁存器。IBF:输入缓冲器满信号,高电平有效,表示数据已送入输入锁存器,它由STB信号的下降沿置位,由RD信号的上升沿置复位。INTR:中断请示信号,高电平有效,由8255输出,向CPU发中断请求。发中断请求的条件是STB、IBF和INTE(中断允许)为高电平。中断请求信号由RD的下降沿复位。INTE A:A口中断允许信号,由PC4的置位/复位来控制。INTE B由PC2的置位/复
40、位来控制。方式1输出:当任何一个端口按照工作方式1输出时,控制联络信号如图4.32所示各控制信号的功能如下:OBF:输出缓冲器满信号,低电平有效,是8255输出给外围设备的联络信号。表示CPU已把输出数据送到指定端口,外设可以将数据取走。它由WR信号的上升沿置“0”(有效),由ACK信号的下降沿置“1”(无效)。ACK:外设响应信号,低电平有效。表示CPU输出给8255的数据已由外设取走。INTR:中断请求信号,高电平有效。表示数据已被外设取走,请求CPU继续输出数据。中断请求的条件是ACK、OBF和INTE(中断允许)为高电平,中断请求信号由WR的下降沿复位。INTE A:由PC6的置位/复
41、位来控制。INTE B:由PC2的置位/复位来控制。A口除了工作方式0和工作方式1之外,还有工作方式2.按照方式2工作时,A口成为双向数据总线端口,既可以发送数据,又可以接收数据。其主要功能可概括如下:有一个8位双向数据输入/输出端口(A)和一个5位控制信号端口(C)。输入、输出均锁存。5位控制信号端口(C)作为8位双向数据输入/输出端口A的控制/状态信号端口。工作方式2只适合于A口。按照工作方式2工作时,A口既可工作于查询方式,又可工作于中断方式。其控制联络信号如图4.33所示,各控制信号的功能如下:INTR:中断请求信号,高电平有效。在输入、输出方式时,可用于向CPU发中断请求。ACK:外
42、设响应信号,低电平有效。表示CPU输出给8255的数据已由外设取走。INTR:中断请求信号,高电平有效。表示数据已被外设取走,请求CPU继续输出数据。中断请求的条件是ACK、OBF和INTE(中断允许)为高电平,中断请示信号由WR的下降沿复位。INTE A:由PC6的置位/复位来控制。INTE B;由PC2的置位/复位来控制。A口除了工作方式0和工作方式1之外,还有工作方式2.按照方式2工作时,A口成为双向数据总线端口,既可以发送数据,又可以接收数据。其主要功能可概括如下:有一个8位双向数据输入/输出端口(A)和一个5位控制信号端口(C)输入、输出均锁存5位控制信号端口(C)作为8位双向数据输
43、入、输出端口A的控制/状态信号端口。工作方式2只适合于A口。INTR:中断请求信号,低电平有效。是8255输出给外设的联络信号,表示CPU已把数据输出到A口。可确定8255A的操作状态,如表3-1所示。表3-2 8255A功能操作A1A0操作001010000111000A口 数据总线B口 数据总线C口 数据总线输入操作00110101111100000000数据总线 A口数据总线 B口数据总线 C口数据总线 控制口输出操作110111100数据总线为高阻态非法状态数据总线为高阻态禁止操作8255控制有两种:工作方式控制字和口位操作控制字。工作方式控制字控制、3个端口3种工作方式,口位操作控制
44、字控制口按位置“1”或清“0”。8255各端口的工作方式由工作方式控制字确定,该控制字由CPU写入8255A控制口。图3-5为8255A工作方式控制字每一位的含义和功能。其中:D7工作方式控制字标志,“1”有效;D6D3确定A组(包括A口和C口高4位)工作方式;D2D0确定B组(包括B口和C口低4位)工作方式。C口除按字节输入输出外,还可按位进行位操作。通过C口位操作控制字对C口任意一位置“1”或清“0”。图3-6为8255A C口位操作控制字每位的含义和功能。D7C口位操作控制字标志,0有效;D6D4无关位;D3D1位选择;D0置“1”或清0;方式0其本输入输出工作方式:方式1选通输入输出工
45、作方式:方式2双向传送工作方式。由于本设计选用工作方式0,所以在此只介绍方式0,方式1和方式2略去。图3-7为8255A工作于方式0时的功能。 1) A口、B口都可置为输入方式或输出方式,但不能既作输入又作输出,且C口不提供固定的联络信号。 2) C口分为二个4位(高4位和低4位),分别设置输入方式或输出方式,但在4位中不能既作输入又作输出。外围设备先将数据送到8255A的某一端口,CPU执行一条读该端口的指令,即可将该端口的数据读入A中,CPU先将输出数据送入A中,然后执行一条输出到8255A某一端口的指令,即可将数据输出。4 系统软件设计本设计是函数发生器软件设计,所以本设计中点是软件设计,软件设计主要是算法和思路,本设计软件设计有按键处理软件设计、DA转换中的信号幅度、频率改变的软件设计和数码管动态显示软件设计,由于本设计硬件电路简单,大部分功能有软件来实现,所以软件比较麻烦,用单片机编程先打开环境,在此窗口中设置一些参数、模式的转换等。在进行仿真之前,要选择仿真CPU。本试验用的是80C51, 设置好之后,然后新建一个文件来保存接下来要开始编写程序文件,因为程序用C语言来编写,所以程序的后缀要用“.C”的文件格式,编写完成后进行编译,如果有问题需要检查并进行修改,当没问题后编译可通过,然后进行执行看结果是否达到预期的目的
链接地址:https://www.31ppt.com/p-3936057.html