接口设计.docx
《接口设计.docx》由会员分享,可在线阅读,更多相关《接口设计.docx(16页珍藏版)》请在冰豆网上搜索。
接口设计
微机原理与接口技术课程设计
课题:
足球比分显示系统
学院:
西安科技大学计算机科学与技术学院
班级:
姓名:
学号:
目录
一、设计目的3
二、设计任务3
三、设计原理3
四、设计线路图6
五、程序流程图7
六、源程序8
七、总结和体会11
设计目的
“微机与接口技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。
本课程设计是计算机专业学生的一次较全面的的设计训练,是配合“微机与接口技术”课堂教学的最后一个重要的实践教学环节,它将起到巩固课堂和书本上所学的知识、加强综合能力、提高系统设计水平、启发创新思想的作用。
设计任务
设计足球比分显示系统,利用唐都实验箱,完成以下功能:
一:
数码管显示比赛时间,屏幕显示比赛得分,得分时,流水灯闪烁。
二:
如遇意外,停止计时,处理完毕恢复。
设计原理
1.显示模块
利用数码管的显示功能来设计。
数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。
通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。
电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。
该模块主要是将时钟运算模块和对时模块运算出来并存放在内存单元里的十六进制表示的时位和分位数据转化为十进制,并通过四个数码管显示出来。
该模块实现的硬件是TND86/88的LED-KEYBOARDUNIT。
2.8253可编程定时器/计数器
可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。
通道2工作在3方式下,提供计算一秒的中断请求信号。
8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
3.8255A可编程并行接口电路
可编程并行接口电路,可编程外设接口芯片可由程序改变其功能,通用性强、使用灵活。
通过8255A,CPU可直接同外设相连接,其负责CPU和外设之间的数据传送。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。
方式0————基本输入输出方式;
方式1————选通输入/出方式;
方式2————双向选通输入/输出方式;
A1,A0:
两根地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A1=0,A0=0时,PA口被选择;
当A1=0,A0=1时,PB口被选择;
当A1=1,A0=0时,PC口被选择;
当A1=1.A0=1时,控制寄存器被选择。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
工作于三种方式中的任何一种;
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
不能工作于方式二;
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'不能工作于方式一或二。
4.8259A可编程中断控制器
8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。
8259A有多种工作方式,能用于各种系统。
各种工作方式的设定是在初始化时通过软件进行的。
在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态,编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态。
8259A的主要功能:
(1)每片8259A可管理8级优先级中断源,通过开关,最多可管理64级优先权的中断源。
(2)对任何一个级别的中断源都可单独进行屏蔽,使该级中断请求暂时被挂起,直到取消屏蔽时为止。
(3)能向CPU提供可编程的标识码。
(4)具有多种中断优先权管理方式。
有完全嵌套方式、自动循环方式、特殊循环方式、特殊屏蔽方式和查询方式五种。
这些管理方式均可通过程序动态地进行变化。
设计线路图
程序流程图
程序主流程图:
IRQ0中断程序:
IRQ6,IRQ7中断程序:
源程序
DATASEGMENT
TIMEDB0,0,0,0
LEDTALDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
BIFENDB'ATEAM:
BTEAM',00H
COUNTDW0
DATAENDS
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,2000H
MOVSI,0020H
MOV[SI],AX
MOVAX,0000H
MOVSI,0022H
MOV[SI],AX
MOVAX,OFFSETIRQ7
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVAX,0000H
MOVSI,003EH
MOV[SI],AX
MOVAX,OFFSETIRQ6
ADDAX,2000H
MOVSI,0038H
MOV[SI],AX
MOVAX,0000H
MOVSI,003AH
MOV[SI],AX
CLI
POPDS
MOVSI,3000H
MOVAL,0
MOV[SI],AL
MOV[SI+1],AL
INAL,21H
ANDAL,0FCH
OUT21H,AL
INAL,21H
ANDAL,3FH
OUT21H,AL
MOVAL,80H
OUT63H,AL
MOVAL,0B6H
OUT43H,AL
MOVAX,30D4H
OUT42H,AL
MOVAL,AH
OUT42H,AL
MOVCOUNT,0
MOVAL,0FFH
OUT62H,AL
CALLOUTPUT
JJW:
STI
CALLDISP
CMPCOUNT,5DH
JLJJW
MOVCOUNT,0
MOVDI,OFFSETTIME
MOVAL,[DI]
INCAL
MOV[DI],AL
CMPAL,10
JNZJJW
MOVAL,0
MOV[DI],AL
MOVAL,[DI+1]
INCAL
MOV[DI+1],AL
CMPAL,6
JNZJJW
MOVAL,0
MOV[DI+1],AL
MOVAL,[DI+2]
INCAL
MOV[DI+2],AL
CMPAL,10
JNZJJW
MOVAL,0
MOV[DI+2],AL
MOVAL,[DI+3]
INCAL
MOV[DI+3],AL
CMPAL,9
JNZJJW
MOVAL,0
MOV[DI+3],AL
JMPJJW
IRQ0:
INCCOUNT
MOVAL,20H
OUT20H,AL
IRET
IRQ6:
CLI
PUSHBX
PUSHAX
PUSHDX
PUSHCX
MOVAL,[SI]
INCAL
MOV[SI],AL
CALLLIU
CALLOUTPUT
MOVAL,20H
OUT20H,AL
POPCX
POPDX
POPAX
POPBX
CLI
IRET
IRQ7:
CLI
PUSHBX
PUSHAX
PUSHDX
PUSHCX
MOVAL,[SI+1]
INCAL
MOV[SI+1],AL
CALLLIU
CALLOUTPUT
MOVAL,20H
OUT20H,AL
POPCX
POPDX
POPAX
POPBX
CLI
IRET
DISPPROCNEAR
MOVDI,0
MOVCL,0FEH
ST1:
MOVAL,CL
TESTAL,10H
JZED
OUT60H,AL
ROLAL,01H
MOVCL,AL
MOVAL,[DI]
MOVBX,OFFSETLEDTAL
XLAT
OUT61H,AL
CALLDALLY
CALLDALLY
INCDI
JMPST1
ED:
RET
DISPENDP
LIUPROCNEAR
MOVCX,16
MOVAL,0FEH
L:
OUT62H,AL
ROLAL,1
CALLDALLY1
LOOPL
MOVAL,0FFH
OUT62H,AL
RET
LIUENDP
OUTPUTPROCNEAR
MOVBX,OFFSETBIFEN
MOVAH,06H
INT10H
MOVAL,[SI]
ADDAL,30H
MOVAH,01H
INT10H
MOVAL,3AH
MOVAH,01H
INT10H
MOVAL,[SI+1]
ADDAL,30H
MOVAH,01H
INT10H
MOVAL,0AH
MOVAH,01H
INT10H
MOVAL,0DH
MOVAH,01H
INT10H
RET
OUTPUTENDP
DALLYPROCNEAR
PUSHAX
PUSHCX
MOVCX,0008H
T1:
MOVAX,0010H
T2:
DECAX
JNZT2
LOOPT1
POPCX
POPAX
RET
DALLYENDP
DALLY1PROCNEAR
PUSHAX
PUSHCX
MOVCX,300
T3:
MOVAX,0010H
T4:
DECAX
JNZT2
LOOPT1
POPCX
POPAX
RET
DALLY1ENDP
CODEENDS
ENDSTART
总结和体会
"微机原理与接口技术"作为计算机科学与技术专业的主要基础课程之一,课程紧密结合计科专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU为主线,系统介绍微型计算机及其接口电路的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机接口的结构与工作流程,建立起系统的概念。
这次微机原理与接口技术课程设计历时两个星期,在整整两星期的日子里,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
这次课程设计使我明白了画线路图以及程序流程图是很有必要的。
因为通过程序方框图和实验线路图,在做设计的过程中,每一步要完成什么任务都有一个很清楚的思路,而且在线路和程序测试的过程中也有利于查错。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
以前对于编程的理解还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去编程、接线、改错,怎么去使用Debug看每一步的运行结果,怎么去了解每个寄存器的内容以确保线路和程序的正确性上都有了很大程度的提高。
最后,对给过我帮助的各位指导老师和所有同学表示由衷的感谢!