资源描述
中国矿业大学计算机学院硬件课程设计计算机科学与技术学院硬件课程设计报告2011年 9月 徐州1 选题与需求分析1.1 选题经过小组成员的认真考虑,最终确定课程设计的题目为数字示波器。数字示波器是智能化数字存储示波器的简称,是模拟示波技术、数字化测量技术和计算机技术的综合产物。与传统示波器相比,数字示波器不仅具有可存储波形、体积小、功耗低、方便携带等特点,而且还具有强大的实时信号处理分析等功能。因此在电子电信类实验室中使用越来越广泛。但目前我国使用的高性能数字示波器主要依靠国外产品,因此研究数字示波器有重要意义。1.2 需求分析示波器在电子测量、测试仪器中有着很广泛的应用,是观察模拟电路和数字电路实验现象、分析实验中的问题、测量实验结果必不可少的重要仪器。该课程设计是基于HUSY试验箱的示波器模拟,由于仪器限制,只实现示波器的基本功能。设计的初步思想是实现复位、波形延展、显示模拟量的基本大小信息。经过小组讨论,示波器可有两种工作方式。一种用波形的幅度来表示模拟量的大小,另一种工作方式用波长来表示模拟量的大小。2 总体设计2.1 硬件方案 不论工作在哪种工作方式下,都需要用到8279、0809芯片。在方式二下还需要用到8253作分频。在两种方案中,0809做数模转换,把模拟电压量转换成数字量,用8279控制显示器。一、 用波形幅度来表示模拟量的大小模拟信号输入0809转换8086CPU8279LED显示器二、 用波长来表示模拟量大小0809转换8086CPU8253分频8279LED显示器0809转换模拟信号输入.2.2 软件方案 在两种方案下分别对应两种软件方案,都必须包括0809,8279这些器件的初始化,还有这些器件的控制,然后第二个方案还要有8253的相关程序。一、 用波形幅度来表示模拟量的大小输出8279中对应编码的AL,LED对应亮将8279中的LED编码改了在8279中判断该数字的高低0809转换成数字量给0809一个电压对8279初始化对0809初始化二、 用波长来表示模拟量大小根据8255的数据总线的值看是否转换完毕转换完毕后对8279进行编码,控制波形。对0809初始化对8255初始化对8279初始化3 详细设计3.1 硬件实现第一方案:1、 在第一方案中,我们仅用到了0809、8279两种芯片各一个。2、 0809实现将电压的模拟量转化成数字量。然后8279实现一个将数字量按照一定的算法,转化成一定的波形,呈现在它自带的LED显示屏上。3、 管脚的连接是这样的,首先将电压的输出接到0809的一个输入上。然后是0809的clock接到1M/S的接口上,再来是0809的使能接到一个地址上。然后是8279的使能接到另一个地址上。这样就完成了接线。4、 芯片用的计算主要有:首先是电压值转化成数字量之后要在8279的LED灯上进行转化,所以就要对数字量进行一定的算法计算。因为转化之后是0255的数值范围太大,所以我们将转化之后的数除以16得到一个范围为015的数,这样对于后面的LED灯的显示编码有了很大的简便。再来是对LED显示屏的对应编码。由于我们是做一个示波器,所以不需要像8279提供的那样,显示数值,所以必须对8279的LED显示屏进行重新的编码。然后我们将低电平编为08H也就是对应的下面的一个灯亮;将中等电平编为40H也就是对应的中间的一个灯亮;然后将高电平编为01H也就是对应的高的一个灯亮。至此我们的基本的算法就结束了。5、 硬件连线图: 以上为实验连接图第二方案:方案二用到的芯片有8255、8279、0809。芯片图如下:8255芯片图电路连接图在该示波器中,0809起模数转换的作用。用到的管脚有:用于启动0809的START管脚、CLK管脚、ALE管脚,VCC管脚、REF(+)管脚、REF(-)管脚、GND管脚,通道选择ABC三个管脚,允许输出管脚OE,结果数据输出管脚D0-D7,模拟通道IN0。8279控制七段数码管的显示。用到的管脚有:D0-D7,RD,WR,RESET,OUT0-OUT7,CS,CLK,BD,A0,VCC,SL0-SL3,GND。8255主要用于检测0809转换完毕与否。用到的管脚有:PA0,CS,RD,WR,D0-D7,A1,A0,VDD,VSS。8255只用于检测转换完毕,因此只需工作在方式0,基本输入输出方式,用A口作输入。电路连接图如上图所示。系统的工作流程为:当有模拟量输入后,0809启动转换,8255检测转换完毕与否。当连接EOC端的PA0口将数据传送给8086CPU发现最低位为0时,说明转换完毕。这时通过读0809数据端口将转换完的数据通过数据总线传递给8086的寄存器。然后8086CPU将转换完后的数据与1、2、3、4进行比较。比较后再将数据进行处理,对0-5之间的数据进行编码,通过数据总线将数据写入8279的寄存器中,从而显示波形。也就是说0809与8255是通过EOC连接在一起的,而0809与8279是通过8086的数据总线连接在一起的。为了方便比较,现把十进制的1、2、3、4转化完成后比较的数值化成CPU用的16进制数。如表所示。133H266H389H4CCH3.2 软件实现第一方案:在实现软件的时候,我们先上网了解了8279芯片的一些知识,然后再展开的编程。我们的思路是这样的,先让0809检测高地电平,然后根据编程把高低电平按照一定的算法转化成8279的LED显示屏的上中下的灯相应暗灭。0809将模拟量转化成数字量的0255,然后一定算法后转化成015的数值范围,然后根据改变8279LED显示屏的七段码的编程方式来显示相应的波形。以下给出对应高低中电平的对应的七段码。高电平08H中等电平40H低电平01H最后为了可以让示波器的功能更加的齐全,我们加入了8279键盘状态的检测来检测键盘的状态的,以增加示波器的功能,我们让按下3之后,波形定性。然后按下4之后继续扫描,波形继续变化。这样整体的思路就完成了,在下面我们将给出我们设计的代码。Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00 ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率CODE SEGMENTASSUME CS:CODE,DS:codeSTART: PUSH CS POP DS CALL DELAY MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL MOV CX,06HXZ: MOV DX,D8279 MOV AL,00H OUT DX,AL LOOP XZ NOP MOV BL,79Hbg: INC BL MOV DX,208H MOV AL,0 OUT DX,AL CALL DELAY IN AL,DX MOV AH,00H MOV CL,16 DIV CL PUSH AX MOV DX,Z8279 MOV AL,BL OUT DX,AL POP AXPUSH BL LEA BX,LED XLAT MOV DX,D8279 ;将AL中内容写到数码管上 OUT DX,AL MOV CX,25000delay2:LOOP delay2 MOV DX,D8279 ;读入FIFO RAM内容 IN AL,DX NOP TEST AL,01H JE NEXT3 POP BL JMP bgNEXT3: MOV DX,D8279 ;读入FIFO RAM内容 IN AL,DX NOP POP BL TEST AL,02H JE bg JMP NEXT3 LED DB 08H,08H,08H,08H,08H,40H,40H,40H,40H,40H,01H,01H,01H DB 01H,01H,01HDELAY PROC NEAR PUSH CX MOV CX,01F00H LOOP $ POP CX RET DELAY ENDP CODE ENDSEND START第二方案: 通过对硬件电路的分析,软件编写的思想也就生成了。各个器件的连接用软件方法来连接,就是用CPU进行读写芯片的寄存器实现的。8086CPU通过读8255的寄存器得知0809已经转换完毕,然后再读0809的寄存器将转换完的数字量进行比较,然后再对数字量编码,通过写8279控制8279显示波形。程序如下:Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00h LEDFEQ EQU 38H CODE SEGMENT ASSUME CS:CODESTART: PUSH CS POP DS NOP MOV DX,21BH MOV AL,10010000B OUT DX,AL ;以上为初始化8255 MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL ;以上为初始化8279 MOV DX,200H MOV AL,00H OUT DX,AL ;以上为启动0809 MOV DX,218H CHECK: IN AL,DX TEST AL,01H JZ CHECK MOV DX,200H IN AL,DX ;检测0809是否转换完毕。 CMP AL,33H JA C2C1: MOV DX,D8279 ;如果转化后的值介于00H和33H之间执行C1程序段。 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL ;以上为显示占空比为1的波形。 MOV CX,25000 DELAY0: LOOP DELAY0 JMP BLACKC2: CMP AL,66H ;如果转化后的值介于33H和66H之间执行C2程序段。 JA C3 MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL ;以上为显示占空比为2的波形。 MOV CX,25000 DELAY1: LOOP DELAY1 JMP BLACK C3: CMP AL,89H ;如果转化后的值介于66H和89H之间执行C3程序段。 JA C4 MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL ;以上为显示占空比为3的波形。 MOV CX,25000 DELAY2: LOOP DELAY2 JMP BLACKC4: CMP AL,11001100B ;如果转化后的值介于89H和CCH之间,执行C4程序段。 JA C5 MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL ;以上为显示占空比为4的波形。 MOV CX,25000DELAY3: LOOP DELAY3 JMP BLACK C5: MOV DX,D8279 ;不满足以上情况的就执行C5程序。 MOV AL,08H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL MOV DX,D8279 MOV AL,01H OUT DX,AL ;以上为显示占空比比为5的波形。 MOV CX,25000 DELAY4: LOOP DELAY4 JMP BLACK BLACK: NOP JMP START CODE ENDS END START4 设计结果第一方案 方案一的缺点是在电压的大小方面,不能显示更多幅值的电压,只能实现三种电压的模拟。但是优点是能够实时的扫描电压的变化,较明显的显示电压的变化,并且能够暂停下来进行观察分析,也是一个不错的功能。当然由于试验箱的局限性,不然我认为完全可以让这个实验的功能更加的强大。还有一个优点是和很多的示波器一样,我们制作的示波器也是以时间为X轴,以电压的大小为Y轴,电压的大小体现在幅值上。所以较为可观。以下是实验结果图 以上两张图是实时扫描电压的情况 (a) (b)图a是显示按下3波形暂停,图b是显示按下4继续开始扫描第二方案:方案二的不足之处在于不具有很好的适应性。如果脱离HKZK88实验箱,有很大的局限性。要显示其他波形需重新编码。但是该方案能较好的反应模拟量电压的大小。实验后的结果图如下所示。5 实验体会在此次课程设计中,学到的最主要的就是8279的运用,8279控制键盘和七段数码管。在实验开始时,最主要的困难在于方案的确定和具体思路的实现问题。通过小组讨论和请教老师,最终确定了实验方案。在方案确定的问题上,由于方案二的特殊性,在设计初期用到了8253,0809芯片也用了两次。后经过分析,8253分频的作用没有起到很好的控制作用,0809芯片两次进行采集模拟量的做法也是没有必要的,于是,最终确定用0809、8255、8279芯片。在编码过程中遇到的主要问题是如何控制七段数码管。先用8279对数码管进行控制,但由于方案二现实的波形是一定的,无法进行像方案一那样的编码表的方案。后用8255对数码管进行控制,发现8255无法对单个数码管进行控制,只能一起控制。最后通过对8279的赋值,从而实现了显示波形的功能。开始时程序只能执行一次,不符合工程上示波器的要求,于是对程序进行了改进,即能实现多次采样,直至按下RET键后会自动复位。14
展开阅读全文