微机原理课程设计报告--简易电压表设计.doc_第1页
微机原理课程设计报告--简易电压表设计.doc_第2页
微机原理课程设计报告--简易电压表设计.doc_第3页
微机原理课程设计报告--简易电压表设计.doc_第4页
微机原理课程设计报告--简易电压表设计.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

目 录1课程设计描述2(1)设计目的2(2)设计题目2(3)设计要求22设计原理23硬件电路图及接线说明84软件工作流程图85程序设计代码及分析96调试过程及结果147课程设计总结错误!未定义书签。8参考文献15一、课程设计描述(1)设计目的通过课程设计达到理论与实际应用相结合,提高对微机硬件结构和软件设计方法的理解。能够根据实际应用初步实现硬件及软件的设计,并对硬件开发有深层次的认识,为今后的软件开发打下坚实的基础(2)设计题目简易电压表设计(3)设计要求利用STAR ES598PCI试验仪的硬件资源8259中断控制器、8355可编程并行接口芯片和数码管、电位器和ACD0809设计一个简易电压表,编写相应的程序,使电压表能够正常运行,3位数码管显示电位器的电压,精确度要求小数点两位。基本任务:软件查询的方式获取A/D转换结束信息附加任务:中断的方式获取A/D转换结束信息二、设计原理 (1)ADC0809芯片 ADC0809 是逐次逼近型A/D转换器具有较好的精度和速度其采集结果为8位二进制数每采集一次即转换一次需要100us。程序可以采用延迟、EOC结束信号查询、中断查询的方式来读取转换结果。在用中断方式时A/D转换结束后会自动产生EOC信号将其与8259的中断输入端相接即可。电压模拟量可由实验箱上的电位器提供电压范围05v,其经ADC0809转换得到的数字范围为0255。引脚功能:ADC0809芯片有28条引脚,采用双列直插式封装IN0IN7:8路模拟量输入端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。工作过程:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。(2)可编程中断控制器8259A8259A是一种可编程序中断控制器与8088/88兼容。能处理8级向量优先权中断,亦可以通过级联构成64级向量优先权中断系统。具有可编程控制中断方式,并能分别屏蔽各个中断请求。通过4个初始化命令字(ICW1ICW4)及3个操作命令字(OCW1OCW3)使用该中断控制器。本实验中用8259A来接收AD转换器发出的转换结束信号EOC,从而进行把8位二进制数到电平的转换并显示到数码管。初始化命令字的设置过程 (3)并行接口8255A8255A是可编程的通用并行输入/输出接口芯片,其内部有3个8位的输入/输出端口,即A口、B口、C口。C口高4位配合A端口使用,低4位配合B端口使用。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。本实验中用8255A的A端口作为数据输出端口B端口也作为输出端口输出位选信号,确定哪一个数码管显示。8255A 工作方式:方式0:基本输入输出方式-适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式-适用于查询和中断方式的接口电路方式2:双向选通传送方式-适用于与双向传送数据的外设-适用于查询和中断方式的接口电路8255A控制字格式:(a)工作方式控制字 (b)c口按位置位/复位控制字(4)数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。三、硬件电路图及接线说明硬件见附。接线说明:1、8255A的片选信号端口接到CS7端口地址为09000H09FFFH,A、B端口均作为输出端口,将其PA0PA7引脚接至数码管数码显示管的ag以及小数点dp。PC0PB2作为位选信号接数码管位选引脚。 2、8259A的片选信号端口接到CS6,端口地址为0A000H0AFFFH。IR0端接ADC0809的EOC端。 3、ADC0809 的片选信号端口接到CS8,端口地址为08000H08FFFH。IN0引脚接到电位器,从而产生05v电压。四、软件工作流程图五、程序设计代码及分析1、源代码MODE EQU 082H ;10000010H,方式0,A和C输出PORTA EQU 09000H ;A口地址 PORTB EQU 09001H ;B口地址PORTC EQU 09002H ;C口地址CONTROL EQU 09003H ;命令口地址CS0809 EQU 08000H ;0809地址 ICW1 EQU 00010011B ;上升沿触发,单片8259A,需要ICW4ICW2 EQU 08H ;中断类型号为40HICW4 EQU 00001001B ;正常全嵌套,非自动EOI,工作在8086/8088方式OCW1 EQU 11111110B ;IR1-IR7上的中断请求被屏蔽,只响应INT0中断CS8259A EQU 0A000H CS8259B EQU 0A001HDATA SEGMENTNUM DB 3 DUP(?) ;开辟三个空间的缓存LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;数码管显示0到9的字型代码 DB 7FH,6FHLEDDMAP: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87HDB 0FFH,0EFH ;包括小数点的显示DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA DELAY PROC NEAR ;延时子程序 PUSH BX PUSH CX MOV BX,0 MOV CX,100A1: INC BX LOOP A1 POP CX POP BX RET DELAY ENDPIENTER PROC NEAR ;中断服务程序 PUSH AX PUSH DX MOV DX,CS0809 ;0809端口地址 IN AL,DX ;读入结果LED: ;转换为原始电压值显示程序 MOV BL,0C4H ;乘以5/256*10000=196 MUL BL ;AX=AL*BL,得16位结果 MOV BX,0001H MUL BX ;将AX扩展为32位,结果在DX:AX中 MOV BX,64H ;100 DIV BX ;DX:AX/BX,得32位,商在AX中,余数在DX中 DIV BL ;AX/BL,得16位,商在AL中,余数在AH中 MOV SI,AL ;整数部分,结果放进NUM MOV SI,OFFSET NUM ;段码地址,指向七段码表 MOV AL,AH MOV AH,00H MOV BL,0AH DIV BL;再除10 MOV SI+1,AL ;AL中为小数点后第一位 MOV SI+2,AH ;AH中为小数点后第二位 MOV AL,SI MOV DI,OFFSET LEDDMAP;段码地址,查表,显示第一位包括小数点 MOV AH,0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX,AL MOV DX,PORTC MOV AL,11111011B OUT DX,AL ;选通第一位数码管,整数位 CALL DELAYMOV AL,SI+1 MOV DI,OFFSET LEDMAP MOV AH, 0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX,AL MOV DX,PORTC MOV AL,11111101B OUT DX,AL ;选通第二位数码管,小数点后第二位 CALL DELAY MOV AL,SI+2 MOV DI,OFFSET LEDMAP MOV AH, 0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX,AL MOV DX,PORTC MOV AL,11111110B OUT DX,AL ;选通第三位数码管,小数点后第二位 CALL DELAY MOV DX,CS0809 MOV AL,0 OUT DX,AL MOV DX,CS8259A XOR AX,AX ;AX置零 MOV AL,20H ;中断服务程序结束指令 OUT DX,AL POP DX POP AX IRETIENTER ENDPIINIT PROC NEAR ;初始化8259A MOV DX,CS8259A ;偶地址 MOV AL,ICW1 ;00010011B,上升沿触发,单片8259A,需要ICW4 OUT DX,AL ;写ICW1用偶地址 MOV DX,CS8259B ;奇地址 MOV AL,ICW2 ;中断源IR0-IR7,中断类型号为40H-47H OUT DX,AL ;写ICW2用奇地址 MOV AL,ICW4 ;正常全嵌套,非自动EOI,工作在8086/8088方式 OUT DX,AL ;写ICW4用奇地址 MOV AL,OCW1 ;11111110B,IR1-IR7上的中断请求被屏蔽,只响应INT0中断 OUT DX,AL ;写OCW1用奇地址 RETIINIT ENDPSTART PROC NEAR MOV AX,DATA MOV DS,AX MOV SI,OFFSET NUM MOV DX,CONTROL ;8255A控制端命令口 MOV AL,MODE OUT DX,AL ;输出8255控制字到命令口 CLI ;屏蔽外部中断 CALL IINIT ;调用初始化8259A MOV AX,0 ;初始化中断向量表 MOV ES,AX MOV DI,4*ICW2 ;中断号 LEA AX,IENTER ;设置中断入口地址 (灯的显示) STOSW MOV BX,AX MOV AX,SEGIENTER STOSW MOV SI,OFFSETNUM ;代码段地址为0 MOV AL,0 ;初始值为0 MOV DX,CS0809 OUT DX,AL ;启动模/数转换芯片 STI ;将处理器标志寄存器中断标志置1,允许中断LP: NOP ;短暂延时程序,等待中断 JMP LPCODE ENDS END START 2、整个程序源代码包括定义数据段,定义代码段、子程序及主程序内容。子程序中包括延时子程序、中断服务子程序及8259A初始化主程序。3、A / D转换器从启动转换到转换结束需要一定时间。为了得到正确的转换结果,必须在转换结束之后才能去读取数字量,这就是时间配合。常用三种方法实现时间配合,有:延时等待法、查询法和中断法。中断法是当ADC转换结束,用转换结束信号作为中断请求信号向CPU提出中断请求,CPU相应中断,在中断服务子程序中读取转换结果。4、此次设计中我使用的是中断法。将ADC0809的转换结束指示引脚EOC输出信号作为中断请求信号,送中断控制器8259A,在中断服务程序里读取转换结果。5、将模拟量转化为数字量:因为05V的电平用0255表示所以把转换后的值5/256*10000将电压值转换为实际值的10000倍以确保精度。将所的结果相减,除以100商放入AX,把余数放在DX。将AX中的值再除以100,商放入AL中,余数放在AH 中。这样AL中的值就是整数部分的值将AH中的值除以10商放入AL中即为第一位小数,余数放入AH中,为第二位小数。若还想得到第四第五位小数可以用DX中的值再进行计算。 6、通过8255A输出在三位LED数码管上,程序如下:(后两位同理) MOV AL,SI MOV DI,OFFSET LEDDMAP ;段码地址,查表,显示第一位包括小数点 MOV AH,0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX,AL MOV DX,PORTC ;位选 MOV AL,00000100B OUT DX,AL ;选通第一位数码管,整数位 CALL DELAYMOV AL,SI+1 MOV DI,OFFSET LEDMAP MOV AH, 0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX,AL MOV DX,PORTC MOV AL,11111101B OUT DX,AL ;选通第二位数码管,小数点后第二位 CALL DELAY MOV AL,SI+2 MOV DI,OFFSET LEDMAP MOV AH, 0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX

温馨提示

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

评论

0/150

提交评论