微机原理课设_简易电压表_第1页
微机原理课设_简易电压表_第2页
微机原理课设_简易电压表_第3页
微机原理课设_简易电压表_第4页
微机原理课设_简易电压表_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、南京工程学院 通信工程课程设计报告名 称: 微机原理课程设计报告 题目: 简易电压表 专业班级:_ _ _ _姓名:_ _ _学号:_ _ _同组姓名: 指导老师: 2013 年12月23日2013 年12月27日1.设计目的32.设计内容及要求33.设计原理31、主体思想32、实验主要器材43、设计流程图44、相关电子元器件及其功能介绍5(1)8255A芯片5(2)8259A芯片6(3)ADC0809芯片9(4)数码管114.实验原理图与硬件电路图125.测试结果及问题分析131、测试结果132、问题分析136.心得体会137.程序代码141.设计目的通过课程设计达到理论和实际应用相结合,提

2、高对硬件微机结构和软件设计方法的理解。能够根据实际应用初步实现硬件和软件的基本设计,并且对硬件开发有更深层次的认识,为今后的软件开发打下坚实的基础。2.设计内容及要求基本内容:利用STAR ES598PCI实验仪的硬件资源8259中断控制器、8255可编程并行接口芯片和数码管、电位器和ADC0809设计一个简易电压表,编写响应的程序,使电压表能够正常运行,5位数码管显示电位器的电压,精确度要求小数点四位。基本任务:软件查询的方式获取AD转换结束信息附加任务:中断方式获取AD转换结束信息3.设计原理1、主体思想ADC0809是逐次逼近型A / D转换器,具有较好的精度和速度,其采集结果为8位二进

3、制数,每采集一次一般需要100s。设计程序时可采用中断方式读取A / D转换结果数据。在中断方式下,A / D转换结束后会自动产生EOC信号,将其与8259的中断输入端相接即可。电压模拟量可由实验箱上的电位器提供,电压范围0 5V,其经ADC0809转换得到的数字量范围为0 255,再将转换的结果通过软件编码得到相应的原始电压值并在LED数码管上显示。8255A输入输出模块8259A中断处理模块总体模块设计ADC0809数模转换模块数码管显示模块2、实验主要器材实验器材数量备注PC机1装有实验所需软件ES598PCI实验仪18255A芯片18259A芯片1ADC0809芯片1数码管1事先检验完

4、好可用3、设计流程图4、相关电子元器件及其功能介绍(1)8255A芯片a.概述: Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。b.8255A 工作方式:l 方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路l 方式1:选通输入输出方式适用于查询和中断方式

5、的接口电路l 方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路c.8255A控制字格式:(a)工作方式控制字 (b)c口按位置位/复位控制字(2)8259A芯片a.概述: 8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优先级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。 在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用I

6、N或OUT指令对8259A芯片进行初始化编程的状态 b.初始化命令字:1)ICW1写入双数地址。 2) ICW2写入单数地址。3) ICW3写入单数地址。4) ICW4写入单数地址5) 初始化命令字的设置过程 c.操作命令字:1) OCW1写入单数地址。2) OCW2写入双数地址。3) OCW3写入双数地址。(五)d.主要功能: 在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。(3)ADC0809芯片a.概述:ADC0809是采样分辨率为8

7、位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A / D转换。b.主要特性:1) 8路输入通道,8位AD转换器,即分辨率为8位。 2) 具有转换起停控制端。 3) 转换时间为100s 4) 单个5V电源供电 5) 模拟输入电压范围05V,不需零点和满刻度校准。 6) 工作温度范围为-4085摄氏度 7) 低功耗,约15mW。c.引脚功能: ADC0809芯片有28条引脚,采用双列直插式封装。引脚图见右图1-1IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:

8、3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 图1-1EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。d.工作过程: 图

9、1-2 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。(4)数码管 七段式LED显示部件(a) 典型的七段式LED器件 (b) 共阳极LED (c) 共阴极LED数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显

10、示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。4.实验原理图与硬件电路图实验原理图:硬件电路图:

11、5.测试结果及问题分析1、测试结果当调节电位器左端旋转至右端时,数码管显示电压0.00004.9995,可通过改变电阻来改变电压值,再通过A/D转换为数字量通过数码管发出二极管显示数字。2、问题分析 (1)按照实验电路图连接完实物图后,发现数码管显示不了,后来发现,由于B4区的PA和PC插口与G5区的B、C口连接错了,与程序编写不相符,这才导致了数码管显示不了电压值。 (2)刚开始编写程序时没有意识到最终显示的要为原始电压值,而是单纯的将八位二进制数转换为十进制数显示,没有考虑到输入电压与转换后数字的关系,所以并没有达到设计要求。 (3)重新编写LED段程序后发现数码管发光不稳定,闪烁比较严重

12、,通过更改延时主程序参数问题得到解决。6.心得体会短短一周的微机原理与接口技术的课程设计就结束了,但是我在这段时间学习到了很多。它让我体会到了平时在课堂上所不能体验的感受,那种面对硬件实物的激动的心情,已经在自己付出努力后却迟迟得不到想要结果时的焦急。但我深深地明白,这才是课程设计的魅力所在,正是因为有这样或者那样的困难,才让这次的课程设计充满乐趣。设计之初,我仔细阅读了有关ADC0809、8259A和8255A方面的知识,了解了它们的芯片功能、工作原理及初始化等等。以前我们只在课堂上做过一些关于软件设计方面的题目,这次与硬件相结合不仅难度上有所提升,并且对自身能力的要求又提高了不少,不但需要

13、较高的理论水平,而其还要求有实际的动手能力。这次的课程设计目的是提高实践能力,还包括汇编语言的编程能力以及对接口等硬件的分析和设计接口电路的能力,从而学以致用。总而言之,通过这次的课程设计,我不仅仅巩固了课堂上学习到的微机原理与接口技术方面的知识,也大大地补充了我对相关硬件功能的全面认识和理解,并且能够基本掌握它们的使用方法和操作环境。只有通过实际编程和微机及接口的硬件实践,才能真正掌握软硬件设计的方法,从中得到收益和提高。同时,在同学和老师的帮助下,自己独立完成这项课程设计,在这个过程中,不仅仅让我尝到了成功的喜悦以及付出的辛苦,更让我认识到了学习的正确方法,我们绝不能孤立自己,往往在困难肚

14、子解决不了的时候,可以向周围的人寻求帮助,这样可以事半功倍,更加能及时发现自己的设计不足和错误之处。7.程序代码 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 ;正常全嵌套,非自

15、动EOI,工作在8086/8088方式OCW1 EQU 11111110B ;IR1-IR7上的中断请求被屏蔽,只响应INT0中断 CS8259A EQU 0A000H CS8259B EQU 0A001HDATA SEGMENTNUM DB 5 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

16、 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位结果 PUSH AX ;压栈,存入结果 M

17、OV BX,0001H POP AX 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中为小数点后第二位 DIV BL MOV SI+3,AH DI

18、V BL MOV SI+4,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,11101111B 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,11110111B

19、 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,11111011B OUT DX,AL ;选通第三位数码管,小数点后第二位 CALL DELAY MOV AL,SI+3 MOV DI,OFFSET LEDMAP MOV AH, 0 ADD DI,AX MOV AL,DI MOV DX,PORTA OUT DX,AL MOV DX,PORTC MOV AL

20、,11111101B OUT DX,AL ;选通第三位数码管,小数点后第二位 CALL DELAY MOV AL,SI+4 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,上升沿触发,单片8259

温馨提示

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

评论

0/150

提交评论