武科大微机原理课程设计.docx

上传人:b****2 文档编号:1643862 上传时间:2022-10-23 格式:DOCX 页数:7 大小:473.26KB
下载 相关 举报
武科大微机原理课程设计.docx_第1页
第1页 / 共7页
武科大微机原理课程设计.docx_第2页
第2页 / 共7页
武科大微机原理课程设计.docx_第3页
第3页 / 共7页
武科大微机原理课程设计.docx_第4页
第4页 / 共7页
武科大微机原理课程设计.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

武科大微机原理课程设计.docx

《武科大微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《武科大微机原理课程设计.docx(7页珍藏版)》请在冰豆网上搜索。

武科大微机原理课程设计.docx

一、设计题目 

键控数据采集及数值显示电路设计   

二、设计任务 

按不同的数字键(0、1、2、3、4、5、6、7)采集0809相应数据通道的模拟量,并在LED数码管上显示值。

设定输入模拟量在0—5V范围内,显示值在0—255范围内。

  

三、设计要求 

1.画出连接线路图或功能模块引脚连接图。

2.采用8088CPU作主控制器,0809作A/D转换器,采用直接地址译码方法,给各芯片分配地址,选取芯片中必须包含有8255。

 

3.采用3个共阴极型LED动态显示,只需显示0—255范围内的值。

  

四、设计思想及需要用的主要芯片 

1、设计思想 

    首先通过编程对8255初始化,然后通过8255对ADC0809转换器初始化,通过0~7号按键(在这里0~7号按键用开关实现,有按键的过程中会有抖动,所以需要加入一个74LS244芯片,用于缓冲),经8088微处理器处理后选择ADC0809的模拟通道,将0~5V内的模拟量通过选择的模拟通道传递给模数转换器,通过转换器把模拟量转换为0~255之间的数字量,将数字量通过可编程并行接口8255(在这里端口A作为数据输入端,端口B作为数据输出端,端口C作为控制端),送给LED数码管显示。

  

2.主要芯片及其功能 

ADC0809与系统的接口包括两个输出口和一个输入口,第一个输出口用于控制芯片内部的模拟通道选择,CPU输出的通道地址从ADC0809的引脚ADDA、ADDB、ADDC输入,并利用ALE信号触发锁存;第二个输出口是哑元,用以触发ADC0809的引脚START启动转换。

当转换结束后,ADC0809的引脚EOC会产生一个高电平的状态信号,该信号用于检测,也可用于申请中断。

随后,CPU可以从ADC0809的引脚D0-D7输入转换后的数据。

其芯片引脚图如下

8255是并行通信接口芯片,其基本功能是以并行的方式在系统总线与I/O设备之间传送数据。

8255A共有三个I/O端口,其中A口和B口J均为8位,而C口既可以作为8位端口,又可以分成两个4位端口。

8255共有3种不不同的工作方式,方式0为基本的I/O方式,方式1为选通I/O方式,方式二为双向I/O方式。

端口A可以选择方式0、1、2,端口B、C可以选择方式0、1,而端口C首先要按照端口A和B的工作方式提供相应的联络线,剩余部分则只能按照方式0工作。

A口和B口的输入输出都具有数据锁存的功能,C口输出有锁存能力,而输入没有锁存能力。

元件引脚如下

74LS244是数据输入三态缓冲器。

外设输入的数据和状态信号,通过数据输入三态缓冲器井经过数据总线传递给微处理器。

8个数据输入端与外设相连,8个数据输出端与微型计算机的数据总线相连。

其引脚图如下

74LS273是数据输出寄存器。

8个输入端微型计算机的数据总线相连,8个数据输出端与外设相连,由时终端控制数据的写入。

其引脚图如下

五.电路设计

1)ADC0809及其8255对应数模转换功能的分析,原理连接图如下:

首先对8255进行操作,选中其地址端口,设置方式选择字,将EOC信号置为低电平,选择PA端口号,将其所有的位置零,然后再将PA7端置1,这样就产生一个上升沿在ADC0809的START引脚,将寄存器清零。

这时候通过键盘输入选择通道,将其对应的二进制数送到ADDA-ADDC,选通模拟通道,改变滑动变阻器的值,可以改变输入模拟量的值。

然后读EOC的值,如果是零继续等待,如果是1,则说明转换完毕,通过PC端口写OE让其有效,这时候数据就可以从D0-D0读取转换后的数据。

2)译码显示器的设计(原理图如下)

通过第一片74LS273进行段选,其中反相器的设计是为了增大驱动电流。

要使七段发光二极管显示器的某一段亮,就应该使该段相连的段选寄存器的Q端输出为0,同时使其他段选寄存器的Q端输出为1.例如要显示数字6,应该使得段选寄存器输出为0000 0010,若用一个字节表示该字形的代码,则为02H,10个十进制数的字形代码分别是40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。

同时要使得三位中的某一位亮,其他的灭,应该与该位相连的位选寄存器的Q端输出为1,其他的为0。

六.程序流程图

七.实验原理及结果分析

通过键盘输入,可以选通IN0-IN7八个通道,进而通过滑动变阻器调节输入端的电压信号,在0-5V之间变化。

读取模拟信号,通过ADC0809模数转换器转换后的数字在0-255之间变化,当数据转换完成后,通过使OE有效,数据传送到8255,然后通过74LS273寄存器的段选和片选信号将相应的数值在七段共阴极显示器上显示出来。

八.实验小结

通过本次课程设计,我通过查阅资料,参考我们的《微机原理、汇编与接口技术》课本,分析一个个学过的芯片,看它能够实现什么功能,分析芯片的引脚应该怎样连接。

如何利用proteus软件进行仿真。

完成实验后,我不仅复习巩固课堂所学的理论知识,还提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。

实验程序:

;390H是8255PA端口地址,391H是PB口地址,392H是PC口地址 

DATAS SEGMENT 

SEGCH DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H ;段选,10进制数的字形代码  

IBUF DB 4,0,4 DUP(0)   ;分配空间,为存储数字做准备 

DATAS ENDS  

STACKS SEGMENT  ;此处输入堆栈段代码 STACKS ENDS  

CODES SEGMENT 

ASSUME CS:

CODES,DS:

DATAS,SS:

STACKS  

START  PROC  FAR     

MOV AX,DATAS     

MOV DS,AX 

MOV DX,393H   ;8255控制字寄存器的端口地址    

MOV AL,83H   ;方式选择字  

OUT DX,AL 

LOP:

 

MOV AL,00H  ;PC0的控制字  

MOV DX,390H  ;PA端口地址  

OUT DX,AL  ;产生上升沿,使得寄存器清零  

MOV AL,80H  

OUT DX,AL  

PRESS:

  

MOV AH,1  ;PRESS按键设置  INT 21H 

CMP AL,37H ;检测输入的数据是不是在0~7之间 JA PRESS CMP AL,30H JB PRESS 

MOV BL,AL  ;把ASCII码转换成BCD  AND BL,0FH 

MOV AL,BL  ;启动AD转换,并选择通道  

OUT DX,AL  MOV DX,392H  ;PC端口地址 LOP1:

 

 IN AL,DX  ;读EOC的内容  

TEST AL,01H  ;为1,表示转换结束,否则继续等待  JZ LOP1 

MOV DX,392H  ;PC端口地址

LOP1:

 

IN AL,DX  ;读EOC的内容  

TEST AL,01H  ;为1,表示转换结束,否则继续等待  JZ LOP1 

MOV DX,392H  ;PC端口地址 

MOV AL,80H  ;写OE,让其有效,准备输出  

OUT DX,AL  

MOV DX,391H  ;PB端口地址,读从ADC0809传来的数据  

IN AL,DX  

MOV AH,0  ;二进制转换成10进制 

MOV CL,10   

DIV CL 

MOV BP,OFFSET IBUF+2   ;依次将百位、十位、个位数字存入

IBUF  MOV [BP+4],

AH  MOV AH,0  

DIV CL 

MOV [BP+3],

AH  MOV AH,0  

DIV CL     

MOV [BP+2],AH  

MOV [BP+5],0DH   ;存入回车符  

MOV AH,04H    ;用于操作七段显示器的位码

SHOW:

 

MOV BL,DS:

[BP+2]  

MOV BH,0 

MOV AL,SEGCH[BX]  ;取出BCD数七段显示代码,用于显示  

MOV DX,380H    ;74LS273端口地址,输出段码  

OUT DX,AL  

MOV AL,AH    ;输出位码  

MOV DX,384H   

OUT DX,AL  

MOV CX,1000    ;延时  

LOOP $       

INC BP     ;调整指向BCD码的指针,用于显示下一个数字  

SHR AH,1    ;调整位码指针,使得下一个七段显示器有效  

AND AH,AH    ;判断三位数字是否已经完全输出  

JNZ SHOW    ;未输完则跳转,输完则继续执行  

MOV AH,11    ;检查键盘有无输入  

INT 21H  

CMP AL,0    ;无输入时,AL=0  

JNE PRESS    ;若有按键,则返回继续选通道依次执行  

RET

START ENDP

CODES ENDS 

END START

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1