




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录1设计项目名称22设计要求23设计内容24设计目的25设计原理26硬件电路图87设计流程图88程序设计代码及分析99调试过程及结果1410课程设计总结1511参考文献15附录:16一、设计项目名称 简易电压表设计二、设计要求设计硬件电路并编制程序,实现将0 5V电压模拟量转换成数字量并在3位数码管上显示,精确度要求小数点后两位(最好通过终端进行数据通信)。主要硬件:电位器、ADC0809、8255A、8259A、8086和数码管。三、设计内容ADC0809是逐次逼近型A / D转换器,具有较好的精度和速度,其采集结果为8位二进制数,没采集一次一般需要100s。设计程序时可采用中断方式读取A / D转换结果数据。在中断方式下,A / D转换结束后会自动产生EOC信号,将其与8259的中断输入端相接即可。电压模拟量可由实验箱上的电位器提供,电压范围0 5V,其经ADC0809转换得到的数字量范围为0 255,再将转换的结果通过软件编码得到相应的原始电压值并在LED数码管上显示。四、设计目的通过课程设计达到理论与实际应用相结合,提高对微机硬件结构和软件设计方法的理解。能够根据实际应用初步实现硬件及软件的设计,并对硬件开发有深层次的认识,为今后的软件开发打下坚实的基础。五、设计原理1、模数(A/D)转换器ADC0809(一) 概述:ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A / D转换。(二) 主要特性:1) 8路输入通道,8位AD转换器,即分辨率为8位。 2) 具有转换起停控制端。 3) 转换时间为100s 4) 单个5V电源供电 5) 模拟输入电压范围05V,不需零点和满刻度校准。 6) 工作温度范围为-4085摄氏度 7) 低功耗,约15mW。(三)引脚功能: ADC0809芯片有28条引脚,采用双列直插式封装。引脚图见右图1-1IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 图1-1EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。(四)工作过程: 图1-2 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。2、可编程中断控制器8259A(一)概述: 8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优先级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。 在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态 (二)初始化命令字:1)ICW1写入双数地址。 2) ICW2写入单数地址。3) ICW3写入单数地址。4) ICW4写入单数地址5) 初始化命令字的设置过程 (三)操作命令字:1)OCW1写入单数地址。2) OCW2写入双数地址。3) OCW3写入双数地址。(五)(四)主要功能: 在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。3、并行接口8255A(一)概述: Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。(二) 8255A 工作方式:l 方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路l 方式1:选通输入输出方式适用于查询和中断方式的接口电路l 方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路(三) 8255A控制字格式:(a)工作方式控制字 (b)c口按位置位/复位控制字4、数码管 七段式LED显示部件(a) 典型的七段式LED器件 (b) 共阳极LED (c) 共阴极LED数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。六、硬件电路图见附。七、设计流程图八、程序设计代码及分析1、源代码MODE EQU 082H ;10000010H,方式0,A和C输出PORTA EQU 09000H ;A口地址 CS1PORTB EQU 09001H ;B口地址PORTC EQU 09002H ;C口地址CONTROL EQU 09003H ;命令口地址CS0809 EQU 08000H ;0809地址 CS0ICW1 EQU 00010011B ;上升沿触发,单片8259A,需要ICW4ICW2 EQU 40H ;中断类型号为40HICW4 EQU 00000001B ;正常全嵌套,非自动EOI,工作在8086/8088方式OCW1 EQU 11111110B ;IR1-IR7上的中断请求被屏蔽,只响应INT0中断CS8259A EQU 0A000H ;CS2CS8259B 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位结果 PUSH AX ;压栈,存入结果 MOV 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中为小数点后第二位 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 DELAY MOV 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,00000010B 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,00000001B 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 ;屏蔽外部中断 MOV AX,0 ;初始化中断向量表 MOV DS,AX MOV BX,4*ICW2 ;中断号 MOV AX,CODE SHL AX,4 ;*16 ADD AX,OFFSET IENTER ;设置中断入口地址 (灯的显示) MOV BX,AX MOV AX,0 INC BX INC BX MOV BX,AX ;代码段地址为0 CALL IINIT ;调用初始化8259A MOV AX,DATA MOV DS,AX MOV AL,0 ;初始值为0 MOV DX,CS0809 OUT DX,AL ;启动模/数转换芯片 STI ;将处理器标志寄存器中断标志置1,允许中断LP: NOP ;短暂延时程序,等待中断 JMP LPSTART ENDPCODE ENDS END START 2、整个程序源代码包括定义数据段,定义代码段、子程序及主程序内容。子程序中包括延时子程序、中断服务子程序及8259A初始化主程序。3、A / D转换器从启动转换到转换结束需要一定时间。为了得到正确的转换结果,必须在转换结束之后才能去读取数字量,这就是时间配合。常用三种方法实现时间配合,有:延时等待法、查询法和中断法。中断法是当ADC转换结束,用转换结束信号作为中断请求信号向CPU提出中断请求,CPU相应中断,在中断服务子程序中读取转换结果。4、此次设计中我使用的是中断法。将ADC0809的转换结束指示引脚EOC输出信号作为中断请求信号,送中断控制器8259A,占用一个终端类型号n,在中断服务程序里读取转换结果。5、A / D转换中IN0单极性输入电压与转换后数字的关系为N=(输入电压/参考电压)*2566、经过A / D转换后的数字量是八位二进制数,通过以下程序转换为原始电压值MOV BL,0C4H ;乘以5/256*10000=196 MUL BL ;AX=AL*BL,得16位结果 PUSH AX ;压栈,存入结果 MOV 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中为小数点后第二位7、通过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 DELAY8、本程序中的数码管利用的是动态显示驱动。动态显示驱动将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,九、调试过程及结果1、刚开始编写程序时没有意识到最终显示的要为原始电压值,而是单纯的将八位二进制数转换为十进制数显示,没有考虑到输入电压与转换后数字的关系,所以并没有达到设计要求。2、重新编写LED段程序后发现数码管发光不稳定,闪烁比较严重,通过更改延时主程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解析卷冀教版8年级下册期末试题【研优卷】附答案详解
- 2025年在线教育平台互动教学工具应用与用户满意度分析报告
- 2025年工业互联网平台雾计算协同机制与工业互联网平台数据治理技术标准化报告
- 解析卷人教版(五四制)6年级数学下册期末试题附参考答案详解(模拟题)
- 2025至2030年中国白芷行业市场深度分析及投资策略咨询报告
- 华东师大版7年级下册期末试题及完整答案详解【有一套】
- 会员注册协议需要明确条款
- 国企企业面试题库附答案详解(轻巧夺冠)
- 解析卷-青岛版9年级数学下册期末试题【各地真题】附答案详解
- 考点解析-黑龙江省尚志市中考数学真题分类(丰富的图形世界)汇编专项训练试题
- 监护学徒协议书范本
- 农村宅基地审批培训课件
- 办公楼维修改造施工方案
- 教科版科学小学科学三年级上册:全册 教案教学设计(新教材)
- 船员四小证Z01基本安全理论考试题及答案
- 集团海外业务管理手册(专业完整格式模板)
- 高危儿培训计划和方案
- 《数据中心机房封闭通道设计规范》
- ISO9001 质量管理体系全套(质量手册+程序文件+表格记录全套)
- 路灯CJJ检验批范表
- 肛肠科年度汇报总结
评论
0/150
提交评论