《三角波发生器设计报告》由会员分享,可在线阅读,更多相关《三角波发生器设计报告(12页珍藏版)》请在金锄头文库上搜索。
1、计算机硬件技术课程设计学院:自动化工程学院班级:学号:同组人:.专业资料.2015年1月目录一、目的二、容三、设计任务四、方案选择及原理五、所用器件六、原理及结果图七、流程图八、程序代码九、设计中遇到的问题十、收获及体会三角波发生器、目的1、了解和掌握8086、DAC0832等接口芯片和示波器的原理和功能;2、能用这些接口芯片构建一个简单的系统控制对象,3、 掌握接口电路的综合设计与使用;4、通过自己动手,进一步了解计算机工作原理,接口技术,提高计算机硬件, 软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训 练。二、容利用D/A设计一个三角波发生器,可利用按键改变其输出波形
2、的幅值。例如, 可利用5个按键改变其输出波形的幅值,当按下按键时使 D/A输出幅值从1V增 加到5V。三、设计任务1、选用8086和适当的存储器及接口芯片完成相应的功能2、画出详细的硬件连接图。3、画出软件流程图。4、给出所有程序清单并加上必要注释。5、 完成设计说明书(列出参考文献,所用器件型号)。四、方案选择及原理D/A转换器产生各种波形的原理:利用 D/A转换器输出的模拟量与输入数字 量成正比关系这一特点,将 D/A转换器作为微机输出接口, CPU通过程序向D/A 转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等。五、所用
3、器件CPU8086地址锁存器74LS373译码器74154、数/模转换器DAC0832主要器件简介8086功能简介1. 概述Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片。8086 CPU 有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字 节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有 一个惟一的地址与之对应,其地址围用十进制表示为01048575,用十六进制表示为 000001FFFFFHIntel 8086拥有四个16位的通用寄存器,也能够当作八个 8位寄存器来存 取,以及四个16位索引寄存器(包含了堆栈指标)。
4、资料寄存器通常由指令隐含 地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8位元的输出输入(或32K 16位单元),以及固定的向量中断。大部分的指令只能够存取一个存位址, 所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。In tel 8086 有四个存区段(segme nt)寄存器,可以从索引寄存器来设定。 区段寄存器可以让CPU利用特殊的方式存取1 MB存。8086把段地址左移4位 然后把它加上偏移地址,8086的寻址方式改变让存扩充较有效率。2. CPU工作于最小模式中部分引脚信号定义(1) AD15 AD0( Address Data Bus ):地址/数据总线
5、,双向,三态。这是一组采用分时的方法传送地址或数据的复用引脚。根据不同时钟周期的 要求,决定当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻状态。(2) (RD)读选通信号,三态,输出,低电平有效信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作(3) (WR)写选通信号,三态,输出,低电平有效信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还 是对I/O端口执行写操作(M/IO)存储器或I/O端口控制信号,三态,输出信号为高电平时,表示CPU正在访问存储器,为低电平时,表示 CPU正在访 问I/O端口。(5) INTR(I
6、nterrupt Request)可屏蔽中断请求信号,输入,电平触发或边 沿触发,咼电平有效CPU在每条指令周期的最后一个时钟周期检测此信号,一旦检测到此信号有 效,并且中断允许标志位IF=1时,CPU在当前指令执行完后,转入中断处理程 序。用STI指令,可使中断允许信号标志位IF置“1”用CLI指令可使IF置“0” 从而可实现中断屏蔽。3. 8086指令系统按功能分类,8086的指令共有六大类,它们是:数据传送指令、算术运算指 令、逻辑运算和移位指令、字符串处理指令、控制转移指令以及处理器控制指令。常用指令简介:MOV传送指令(Move指令格式:MOV目的,源指令功能:将源操作数(一个字或一
7、个字节)传送到目的操作数IN输入指令(In put 指令格式: IN AL,端口地址或IN AX,端口地址 IN AL,DX ;端口地址存放在DX寄存器中或 IN AL,DX指令功能:输入指令用来从指定的外设寄存器取信息送入累加器。(3) OUT 输出指令(Output)指令格式: OUT AL,端口地址或OUT AX,端口地址 OUT AL,DX ; 端口地址存放在 DX寄存器中或 OUT AL,DX指令功能:输出指令用来把累加器的容送往指定的外设存储器当端口地址大于FFH时,必须使用第二种寻址方式,即先将端口号送入DX寄存器,再执行操作。CMP 比较指令(Compare指令格式:CMP目的
8、,源指令功能:两个操作数相减,不产生运算结果,仅影响标志,接着可用条件 跳转指令决定程序去向(5)JMP无条件转移指令指令格式:JMP目的指令功能:使程序无条件的转移到指定的地址去执行74LS373功能简介74LS373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器。74LS373工作原理简述:(1)1脚是输出使能(0E),是低电平有效, 当1脚是高电平时,不管输入3、4、7、& 13、14、17、18如何,也不管11 脚(锁存控制端,G)如何,输出 2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、 16(Q6)、19(Q7)全部呈现高阻状态(或者
9、叫浮空状态);(2)当1脚是低电平 时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、 9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚 3、4、7、8、13、 14、17、18的状态。锁存端LE由高变低时,输出端8位信息被锁存,直到LE端再次有效。当三态门使能信号0E为低电平时,三态门导通,允许Q0Q7输出,0E为高电平时,输出悬空。6789012345d /HIy r20228g212EBCDE10 12 3 4 5ILI2374154功能简介74154为4线16线译码器,当选通端(E1、E2)均为低电平时,可将地址
10、端(ABCD的二进制编码在一个对应的输出端,以低电平译出。如果将E1和E2中的一个作为数据输入端,由 ABCD寸输出寻址。A、B、C、D译码地址输入端(低电平有效)E1、E2选通端(低电平有效)0 15输出端(低电平有效)。DAC0832是CMOS工艺制造的8位单片D/A转换器,属于 R-2RT型电阻 网络的8位D/A转换器,建立时间150ms,为电流输出型,并且片带输入数 字锁存器。DAC0832与89S52接成的是单缓冲方式,由于DAC0832是电流输出,而我们用的是模拟电压,在这种情况下,要将输出的电流转换成电压, 转换电路接成同相电压输出形式。引脚的功能定义1、DI0 DI7 : 8位
11、数字量输入信号。2、CS:输入寄存器的选择信号,低电平有效。3、WR、WR2前者为输入寄存器的“写”选通信号,低电平有效。后 者为DAC寄存器的“写”选通信号。4、 XFER数据转移控制信号,用来控制WR2言号,低电平有效。5、 IOUTI :电流输出引角1端,此电流输出端为是“1”的各位权电流汇集输出端。当 DAC寄存器全为“ 1 ”时,此电流最大,当DAC寄存器全为“ 0”时,此电流为“ 0”。6、 IOUT2:电流输出引角 2端,此电流输出端是逻辑电平为“0”的各位输出电流之和。在数值上,IOUT,+IOUT2=数。7、Rfb :反馈信号输入端,芯片已连接有反馈电阻。8、VREF基准电压
12、输入端,可在 -10V +10V围选择。9、AGND DGND模拟地和数字地,为了防止串扰,系统的模拟地应共 接与一点,系统字地汇于一点,然后两地再共接与一点。10、VCC工作电源,可在 +5V- +15V间选择。六、原理及结果图kwu i*HEEJ21-1*1504-Fl *原理图七、流程图打开显示屏“选弔AL为数宇髡七景“三角渡下降段,AL值 255开始増1并输 出.循5? 256次+三危波上升段,AL谊 宜0开妇增1并输出, 循环256次卍K开改宜E 过 三电 通变关变波八、程序代码CODE SEGMENTASSUME CS:CODESTART: MOV CX,256MOV AL,00H
13、MOV DX,0000HLOOP1: OUT DX,ALMOV BX,125DELAY1:DEC BXJNZ DELAY1INC ALLOOP LOOP1MOV CX,256MOV AL,0FFH;代码段开始;代码段定义;计数器设为256,计数器大小与上升高度相等;高度初始值为0;DAC0832地址为 0000H 输出AL;延迟环节的计数器使用 BX延迟125个单位时间;BX自减1;直到BX为0才延迟结束;AL自力卩1;三角波上升过程的循环,256次后结束 ;计数器重设为256,开始AL下降;AL 为 255MOV DX,0000H;输出AL;延迟;AL自减1;三角波下降的循环,256次后返回
14、上一段程序LOOP2: OUT DX,ALDELAY2:DEC BX JNZ DELAY2 DEC AL LOOP LOOP2 JMP STARTCODE ENDSEND STARTMOV BX,125;AL再次上升;代码段结束;整个程序结束九、设计中遇到的问题本次大作业中所用到的proteus仿真软件可以说是很熟悉了,只要的问题的 如何在软件当中画出他的仿真电路图,根据在计算机硬件这门课程中学到的有关 于cpu8086以及D/A数模转换的基础知识原理,在绘制仿真的过程中,在如何用 键盘输入1-5V这个环节上可谓是下了蛮大功夫,在仿真的过程中实在不知道如 何输入这一环节,为此和同学讨论了许久怎样实现这个功能, 最后被网上一篇有 关微机原理的容点醒,于是用了 5个开关分别接入1,2,3,4,5V,在仿真的过程 可以接入1,2,3,4 ,5V,通过这样改变幅值。而这CPU程序代码这一块,书上107页有实现三角波输出的具体代码段, 主要是通过EMU8086