键控大数据采集及数值显示电路设计(微机原理)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二○一二~二○一三学年第一学期
信息科学与工程学院
自动化系
课程设计计划书
班级:自动化1006班
课程名称:微机原理及应用课程设计姓名:
指导教师:
二○一二年月十二日
一、设计题目
键控数据采集及数值显示电路设计
二、设计任务
按不同的数字键(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是8位逐次逼近式A/D转换器。
片内有8路模拟开关及地址锁存与译码电路、8位A/D转换和三态输出锁存缓冲器。
其芯片引脚图如下
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
74LS244是数据输入三态缓冲器。
外设输入的数据和状态信号,通过数据输入三态缓冲器井经过数据总线传递给微处理器。
8个数据输入端与外设相连,8个数据输出端与微型计算机的数据总线相连。
其引脚图如下
74LS273是数据输出寄存器。
8个输入端微型计算机的数据总线相连,8个数据输出端与外设相连,由时终端控制数据的写入。
其引脚图如下
六、流程图:
七、源程序代码
STACK SEGMENT
DW 32 DUP(0)
STACK ENDP
DA TA SEGMENG
BUF DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H ;0~9的字形码
IBUF DB 4,0,4 DUP(0) ;分配空间,为存储数据做准备DA TA ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DA TA
MOV DS,AX
MOV DX,383H ;8255控制字寄存器的端口地址
MOV AL,83H ;方式选择字
OUT DX,AL
LOP1: MOV AL,0
MOV DX,005H ;读74LS244芯片地址
IN AL,DX ;读74LS244端口地址
AND AL,OFFH
JZ LOP5
MOV BL,0
LOP2:CMP AL,01H ;将按键转化成相应的数字
JE LOP3
SHR AL,1
INC BL
JMP LOP2
LOP3:MOV AL,BL
OUT DX,AL ; 启动A/D转换并选择通道
MOV DX,382H ;PC端口地址
LOP4:IN AL,DX
TEST AL,01H ;为1表示转换结束,否则继续等待
JZ LOP4
MOV DX,383H ;控制字寄存器的端口地址
MOV AL,80H ;写OE让其有效
OUT DX,AL
MOV AL,1 ;PC端口选择位置位字
OUT DX,AL ;将ADC0809的EOC改为高电平有效
MOV AL,0BH;
OUT DX,AL ;使OE有效,允许输出
MOV DX,383H
MOV 90H ;将PA端口设置为输入
OUT DX,AL
MOV DX,380H ;写PA端口,将转化结果写入8255
IN AL,DX
MOV DX,383H ;设置控制字,将PB端口设置为输出
MOV AL,80H
OUT DX,AL
MOV DX,381H ;读PB端口
OUT DX,AL
LOP5:MOV CL,10
MOV AH,0
BEGIN:DIV CL
MOV BP,OFFSET IBUF ;依次将百位,十位,个位存入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,BUF[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 ;没有输入完,则跳转至SHOW
MOV AH,11 ;检测有无输入
INT 21H
CMP AL,0
JNZ LOP1 ;若有按键,则返回继续选择通道继续执行
RET
START ENDP
CODE ENDS
END START
八、实验小结
此次试验对于我来说是一次历练,由于我们在做实验时做的题目相对于这一次的课程设计来说要简单,所以开始拿到题目是有一些茫然。
冷静下来后开始分析题目,首先得知道题目究竟要我们做什么,实现什么功能。
然后拿着我们的《微机原理、汇编与接口技术》课本,分析一个个学过的芯片,看它能够实现什么功能,分析芯片的引脚应该怎样连接。
除了已经要求必须要用到的主要芯片,还需要找出一些辅助芯片,看究竟用哪一个芯片,能够是连接的电路图能够更加的简介。
在画硬件电路图上我也遇到了问题,由于没有选修电子电路CAD那门课,我一开始对Protel软件完全不熟悉,所以开始完全不知道图怎么画,最后请教的同学,他们教我怎样选择芯片、怎样选择一些元器件、怎样连接试图看起来更加清晰。
在Protel 软件里面所有芯片内部的接Vcc的引脚和接地的引脚都没有显示,再此加以说明。
在实现功能的时候自己也遇到了一些麻烦,比如我们一般做试验的时候,实验室里面不需要我们对如何实现8086芯片的功能进行连线,只需把相应的数据总线等与其他的芯片连接起来即可,且许多芯片的内部已经接好,不需要我们另外连接。
在该课程设计中模拟量是0~5V,我在这里在ADC0809的ref(+)和ref(-)端分别接+5V和地,在在它们之间接一个滑动变阻器来实现。
实用标准文案
实用标准文案。