武科大微机原理课程设计Word文档下载推荐.docx
《武科大微机原理课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《武科大微机原理课程设计Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
随后,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
4,0,4
DUP(0)
分配空间,为存储数字做准备
ENDS
STACKS
此处输入堆栈段代码
CODES
ASSUME
CS:
CODES,DS:
DATAS,SS:
START
PROC
FAR
MOV
AX,DATAS
DS,AX
DX,393H
8255控制字寄存器的端口地址
AL,83H
方式选择字
OUT
DX,AL
LOP:
AL,00H
PC0的控制字
DX,390H
PA端口地址
产生上升沿,使得寄存器清零
AL,80H
PRESS:
AH,1
PRESS按键设置
INT
21H
CMP
AL,37H
检测输入的数据是不是在0~7之间
JA
PRESS
AL,30H
JB
BL,AL
把ASCII码转换成BCD
AND
BL,0FH
AL,BL
启动AD转换,并选择通道
DX,392H
PC端口地址
LOP1:
IN
AL,DX
读EOC的内容
TEST
AL,01H
为1,表示转换结束,否则继续等待
JZ
LOP1
PC端口地址
写OE,让其有效,准备输出
DX,391H
PB端口地址,读从ADC0809传来的数据
AH,0
二进制转换成10进制
CL,10
DIV
CL
BP,OFFSET
IBUF+2
依次将百位、十位、个位数字存入
[BP+4],
AH
[BP+3],
[BP+2],AH
[BP+5],0DH
存入回车符
AH,04H
用于操作七段显示器的位码
SHOW:
BL,DS:
[BP+2]
BH,0
AL,SEGCH[BX]
取出BCD数七段显示代码,用于显示
DX,380H
74LS273端口地址,输出段码
AL,AH
输出位码
DX,384H
CX,1000
延时
LOOP
$
INC
BP
调整指向BCD码的指针,用于显示下一个数字
SHR
调整位码指针,使得下一个七段显示器有效
AH,AH
判断三位数字是否已经完全输出
JNZ
SHOW
未输完则跳转,输完则继续执行
AH,11
检查键盘有无输入
AL,0
无输入时,AL=0
JNE
若有按键,则返回继续选通道依次执行
RET
ENDP
END
START