微机原理设计报告.docx
《微机原理设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
微机原理设计报告
微机原理课程设计
题目:
I/O接口卡设计
学院:
仪器与电子学院
专业:
测控技术与仪器
指导教师:
陈鸿
成员姓名:
设计日期:
2015.6.15-2015.6.28
目录
一.设计题目及设计要求
1.设计内容
2.设计要求
二.设计总体方案
三.主要元件
1.IBMPC/XT总线简介
2.ISA总线简介
3.8255芯片简介
4.驱动器
5.LED显示器
四.工作原理
五.硬件电路
六.程序设计及流程图
1.流程图
2.程序设计
七.设计心得
八.参考文献
1、设计题目及设计要求:
1.设计一块I/O卡,该卡具有3个8位I/O口(A、B、C口),利用该I/O卡控制该卡控制一个四位的LED显示器,该卡插在PC机的IMB-PC扩展总线插槽上(ISA),选用8255接口芯片
2.设计要求:
画出电路原理图,说明工作原理,编写利用该接口卡对键盘上键入的数字进行显示的程序(当回车键按下前,如果键入的数字的次数大于4时显示最后的4位数)
二.设计整体方案
该接口卡的主芯片是8255芯片,将ISA总线上的地址线A0-A19经过译码作为8255的片选信号,IOR、IOW分别作为8255的读写信号。
四位LED显示器采用共阴极接法,将8255的A端口的8个引脚经过驱动器与LED的a-h相连,用C端口的低四位来控制那个LED亮,B端口不使用。
三.主要元件
1.IBMPC/XT总线简介
总线在PC/XT机的底板上共有8个插头,称为IMBPC/XT总线。
PC/XT总线在每个插槽(扩展槽)配有62个引脚代表各种不同的信号。
IBMPC/XT总线的62条引线包括20位地址线、8位数据线、21根控制线、2根状态线和11根辅助线及电源线。
每一个插槽对应的引脚均有相同的意义,因此所有的接口卡可插于任何一个插槽上。
引脚间隔为2.54mm。
2.ISA总线简介
ISA总线是IBM PC/AT机(CPU是80286)所用的系统总线,这是一个16位兼8位的总线标准。
如果忽略标准化细节,则可认为16位ISA总线就是PC/AT总线。
由于IBM PC/AT与IBM PC、IBM PC/XT机(CPU都是8088)所用的Pc总线兼容,所以可认为8位ISA总线(16位ISA总的低8位部分)就是PC总线。
ISA总线的主插槽与IBM总线的插槽兼容,如下:
注意事项:
(1)当设计非DMA方式的I/O接口时,应把AEN为低作为该接口工作的使能条件,以确保在总线上进行DMA传送时该接口不工作,否则DMA传送时所发出的地址与该接口设计地址相同时该接口会误操作。
(2)系统对ISA总线上的I/O端口地址采用部分译码方法,只译码A9~AO或A10~A0,在选择接口地址时应避开系统已占用的地址以及它们的重叠区。
(3)原则上讲,在用户自行设计接口插卡时,反未被占用的地址端口都可以使用,但要考虑到系统的现存配置情况,对端口地址的占用要留有余地,以免发生地址冲突。
一般用户可使用300H-31FH的地址,这些地址是留作实验卡用的。
3.8255芯片简介
8255是可编程并行I/O口接口芯片。
如下图所示:
(1)8255具有24个可编程设置的I/O口,即3组8位的I/O口分别为A口,B口和C口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).
(2)8255内部有4个寄存器:
分别为寄存器A、B、C和控制寄存器。
A、B、C寄存器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据。
其中,{1}PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。
{2}PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。
(3) PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
而控制寄存器的数据则表明PA、PB、PC的工作方式。
通过CS、A0、A1、RD和WR对4个寄存器进行操作。
CS为低电平时选通8255;A1、A0为地址选通。
具体如下:
当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1.A1=1时,控制寄存器被选择.
RD和WR为读、写信号:
RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。
(3)8255引脚功能
RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
(4)8255有三种基本的工作方式:
方式0(基本的输入输出方式),方式1(选通输入输出方式),方式2(双向传输方式)。
具体如下:
{1}方式0:
这种方式不需要任何选通信号。
A口、B口及C口的两个4位口中的任何一个端口都可以被设定为输入或输出。
输出锁存,输入不锁存;{2}方式1:
这种方式下,A口、B口、C口分为两组。
A组包括A口和C口的高4位,A口可由编程设定为输入口或输出口,C口的高四位则用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低4位,B口可由编程设定为输入口或输出口,C口的低四位则用来作为输入/输出操作的控制和同步信号。
A口和B口的输入输出数据都被锁存;{3}方式2:
这种方式下,A口为8位双向总线口,C口PC3~PC7用来作为输入/输出操作的控制和同步信号;B口和C口的PC0~PC2则可编程为方式0或方式1工作。
4.驱动器
74LS07同向能够驱动共阴极起端数码管显示,8255C端口为LED显示器的控制端口需用74LS04进行反向驱动。
5.LED显示
LED数码管的主要部分是七段发光管,分别称为abcdefg,通过七个发光段的不同组合,可以显示0-9和A-F共16个字母数字,从而实现16进制的显示。
LED数码管有两种结构,分为共阳极接法和共阴极接法,如为共阴极结构,各字段阴极控制端共接低电平,而各段阳极控制端凡接高电平者便发光。
四.工作原理
首先由I/O卡的RESET将8255A芯片复位,由微机系统的扩展槽中20根地址线来决定8255A片选信号是否选通,由其工作原理图可知A端口地址300H,B端口地址301H,C端口地址302H,控制口地址303H。
(为避免地址冲突,因此选用300H-303H)。
经MS—DOS功能调用从键盘输入一串字符,(调用OAH号功能,输入的字符串可达254个字符,其入口参数为DS:
DX,在DX第一个字节必须存放输入字符的最大字节量,第二个单元存放是实际输入字符的个数,字符串本身从第三个字节开始有效,由终止回车符生成的码作为穿的最后一个字符输入。
),通过软件设计,不管输入多少个数,始终只显示最后输入的四个数。
同时也将由键盘输入的四个ASCII码数转换成相应的BCD码,取个位数,将此BCD码转换成字形码,在将字形码送入到8255A的A端口,而将状态字送入C端口,用来控制哪一个显示器亮,并调用5ms延迟程序。
依此类推,取十位,百位,千位进行相同的操作,只是送C端口的数据不同,依次为O7H,O5H,03H、O1H。
由于四个显示器依次点亮的时间间隔短,利用发光管的余晖和人眼视觉的暂留作用,使人感觉好像4位LED显示器都在显示(动态显示)。
五.硬件原理图:
六.程序设计及流程图
1.流程图
2.程序设计
DATASEGMENT
STRING1DB“pleaseinputchar”
STRING2DB100DUP(?
)
STRING3DB100DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;数据段寄存器的初始化
MOVAL,80H;8255的初始化
MOVDX,300H
OUTDX,AL
LEADX,OFFSETSTRING1
MOVAH,09H;显示字符串功能
INT21H
NEXT1:
LEADX,OFFSETSTRING2
MOVAH,0AH;从键盘读入数字
INT21H
MOVCL,STRING2+1;实际读入的数字的个数送至CL
CMPCL,0
JZNEXT1;没有读入数字则继续等待
MOVSI,DX
ADDCL,1
MOVCH,0
ADDSI,CX
MOVAL,[SI];个位数转化为BCD码
ANDAL,0FH
LEADI,OFFSETSTRING3
MOV[DI],AL
DECSI;十位数转化为BCD码
MOVAL,[SI]
ANDAL,0FH
MOV[DI+1],AL
DECSI;百位数转化为BCD码
MOVAL,[SI]
ANDAL,0FH
MOV[DI+2],AL
DECSI;千位数转化为BCD码
MOVAL,[SI]
ANDAL,0FH
MOV[DI+3],AL
NEXT2:
LEABX,OFFSETLEDADD;将千位数字转化为对应的字型码
MOVAL,[DI+3]
XLAT;查表转换
MOVDX,302H
OUTDX,01H;将与之对应的数码管的位选打开
OUT300H,AL;将转换后的字型码送A口
CALLDELAY;调用5ms的延时子程序
LEABX,OFFSETLEDADD;将百位数字转化为对应的字型码
MOVAL,[DI+2]
XLAT
MOVDX,302H
OUTDX,03H
OUT300H,AL
CALLDELAY
LEABX,OFFSETLEDADD;将十位数字转化为对应的字型码
MOVAL,[DI+1]
XLAT
MOVDX,302H
OUTDX,05H
OUT300H,AL
CALLDELAY
LEABX,OFFSETLEDAD;将个位数字转化为对应的字型码
MOVAL,[DI]
XLAT
MOVDX,302H
OUTDX,07H
OUT300H,AL
CALLDELAY
LOOPNEXT2
DELAYPROC;延时子程序
PUSHBX
PUSHCX
MOVCX,4167
NEXT3:
LOOPNEXT3
POPCX
POPBX
RET
DELAYENDP
LEDADD:
DB40H
DB79H
DB24H
DB30H
DB19H
DB12H
DB02H
DB78H
DB00H
DB10H
CODEENDS
ENDSTART
七.课程设计心得:
通过这次课程设计,我们受益匪浅。
最大的收获就是将理论与实际相结合,但同时也知道了自己的操作能力不行,希望以后加强这方面的锻炼。
在做完这个设计后发现自己所学知识有限觉的惭愧,以后会加强对这方面的知识的学习。
本次设计过程中,我们了解了计算机控制技术发展史,I/O接口、8255芯片、PROTEL发展和使用等。
使我巩固了在课堂上学到的东西,加深了印象。
本次课程设计,同时也 使我们进一步学习与理解计算机控制系统的构成原理、接口电路与应用程序,还进一步了解了波形发生器的原理及汇编语言的应用,加深了自己对理论知识的理解,提高了动手能力,独立分析问题、解决问题能力,协调能力和创造性思维能力。
提高了在应用方面的实技践能,树立了严谨的科学作风。
通过电路和程序的设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
通过课程设计要实现以下两个目标:
第一,让学生初步掌握计算机控制技术的试验、设计方法。
即学生根据设计要求和性能参数,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能指标;第二,课程设计为后续的毕业设计打好基。
通过实验训练,掌握单片机应用的基本操作方法,为今后从事相关工作打下扎实的基础,在此过程中培养从事设计工作的整体观念。
八. 参考文献
[1]彭沛夫、张桂芳编著.《微机控制技术与实验指导》清华大学出版社,2005
[2]李顺增、吴国东、赵河明、乔志伟.《微机原理及接口技术》机械工业出版社,2004.
[3]林敏编著.《微机控制技术及应用》高等教育出版社,2004
[4]于海生编著.《微型计算机控制技术》清华大学出版社,1999
[5]张大明编著.《单片微机控制应用技术》 机械工业出版社,2006