接口课程设计报告格式.docx
《接口课程设计报告格式.docx》由会员分享,可在线阅读,更多相关《接口课程设计报告格式.docx(16页珍藏版)》请在冰豆网上搜索。
![接口课程设计报告格式.docx](https://file1.bdocx.com/fileroot1/2023-2/21/2f3b54cc-4c4b-4fbc-ab0a-4d0320bba2a7/2f3b54cc-4c4b-4fbc-ab0a-4d0320bba2a71.gif)
接口课程设计报告格式
微机原理与接口技术课程设计报告
2009-2010学年第二学期
设计题目:
计时器系统设计
小组成员:
张丽君、张君、刘华松、路芳芳、张明
所学专业:
计算机科学与技术
指导教师:
高国红
完成时间:
2010-06-
内容提要
《微机原理与接口技术》是一门实践性和实用性都很强的课程,学习的目的在于应用。
掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
目录
一、设计的目的要求1
二、系统的主要功能1
三、设计所用芯片结构4
1、8259A芯片的内部结构及引脚4
2、8255芯片的内部结构及引脚5
3、8253芯片的内部结构及引脚6
四、源程序清单:
8
五、连线图11
六、设计总结及心得体会11
参考文献:
12
一、设计的目的要求
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
该系统的要求利用8253定时器设计一个具有分、秒显示的电子时钟,并定义一个脉冲kk+2,当按下该键时时钟从当前设定值(00:
00)开始走时。
二、系统的主要功能
该系统是一个简单的利用8253定时器、8255可并行通信接口和中断控制器8259设计的电子时钟系统。
8253定时器开始计时(8253的初值为10000,接1MHz的脉冲,即当8253计满100时正好是1S),当计时计满100时,8259便产生一次中断,在LED显示器便显示系统预先设计好的初始值“00:
00”便开始从秒位开始加1,当加到10S时,10s位加1,加到60S时分位加1,同时秒位清零。
该系统主要接口部件有:
可并行通信接口8255一片,计数器/定时器8253一片,中断控制器8259一片,七段LED数码管显示器4个以及译码电路等。
其中各个部件的初始化如下:
1、可并行通信接口8255的控制字是方式选择控制字,A口工作在方式0(即基本输入输出方式)下,并且为输出状态,B口工作在方式0下,为输出口,C口低四位为输入口,其初始化为:
8255控制口地址为63h
A端口地址为60h
B端口地址为61h
C端口地址为62h
movdx,63h
moval,10000001b
outdx,al
2、做为计数器的计数器/定时器8253,在设置好计数初值(即定时常数)后,便开始减1计数,为0时,输出一个信号;控制字设置:
BCD为设置为计数值为二进制格式,模式选择为模式2(即为分频器,当控制字写入后,输出段OUT变为高电平作为初始状态,当计数初值写入初值寄存器后,下一个时钟脉冲时,计数初值被写到计数执行部件,然后计数执行部件做减1计数,减到1时,输出端OUT变为低电平;完成一次计数过程后,输出端OUT又变为高电平,开始一个新的计数过程,由此可以周而复始的进行下去),读写指示位为先写低8位字节,在读写高8位字节,计数器选择计数器0。
其中8253的计数初值为10000d,当接1MHZ的脉冲时,分频后的输出值为0.01S。
8253的初始化为:
8253控制端口地址为43h
计数器0端口地址为40h
moval,34h
movdx,43h
outdx,al
movdx,40h
movax,2710H
outdx,al
moval,ah
outdx,al
3、中断控制器8259的初始化为:
ICW1,用来指示ICW1的标志的D4=1,LTIM为0(即中断请求为边沿触发方式),系统只用一片8259,所以SNGL为1,因为初始化程序将用到ICW4,所以,IC4为为1;
ICW2设置中断类型码的初始化命令字,必须写到8259的奇地址端口中,ICW2是任选的,而ICW2一旦确定下来,8259的8个中断请求信号输入引脚IR0~IR7所对应的8个中断类型码也确定了;
ICW4方式控制初始化命令字,它也要求写入奇地址端口,不过ICW4并不总是需要写入的,只有在ICW1的第0位为1时,才有必要设置ICW4,其中,D7~D5三为总是为0,作为ICW4的标识码,SFNM位为0,BUF位为0,M/S位为0,AEOL位为0,D0为为1表示8259当前所在的系统为16位或32位系统;
OCW1中断屏蔽操作命令字,要求写入8259的奇地址端口;
moval,13h
movdx,20h
outdx,al;ICW1初始化
moval,08h
movdx,21h
outdx,al;ICW2初始化
moval,01h
outdx,al;ICW4初始化
inal,dx
andal,0feh
outdx,al
该系统的主要工作原理为:
在主程序中,要对各个用到的芯片进行初始化,在对8253进行初始化时,使它用方式2,每10ms产生一次脉冲。
在系统总8253的输入时钟频率为1MHZ,定时常数设为10000,则定时周期正好为10ms。
由于8253的定时输出与8259的IR0相连,所以,系统中每隔10ms便由8253对8259产生一次中断请求,即每隔10ms执行一次中断处理程序。
本系统将与时间密切相关的两个模块即显示模块和计时模块放在中断处理程序中,这样,就保证了LED的数字每隔10ms得到一次刷新,从而保证了数字显示的稳定。
中断处理程序完成计时功能要依靠两个方面,因为中断处理程序是每10ms执行一次,但计时并不是一10ms为单位进行的,而是以秒为单位进行的,所以,计时功能的事项一方面要利用10ms这个基准时间单位,另一方面要借助于一个计数单元。
计数单元的初始值为100,每进行一次中断,便使计数单元的内容减1,也就是说,每10ms作一次计数。
每当计数单元从100减为0时,说明已经经过了10ms*100=1s时间,于是使秒位加1。
秒位加1之后,又须判断由此而可能引起的进位,如有进位,则应实现正确的修改。
修改完以后,再将LED显示一遍。
三、设计所用芯片结构
1、8259A芯片的内部结构及引脚
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
8259引脚图如图3.3,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
图3.18259A引脚图
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表3.1所示:
表3.18259A中断矢量表
中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
矢量地址
20H
~
23H
24H
~
27H
28H
~
2BH
2CH
~
2FH
30H
~
33H
34H
~
37H
38H
~
3BH
3CH
~
3FH
说明
时钟
键盘
可用
可用
串行口
可用
可用
可用
2、8255芯片的内部结构及引脚
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:
方式0—基本输入/输出方式
方式1—选通输入/输出方式
方式2—双向选通输入/输出方式
8255引脚图如图3.2示,各引脚功能如下。
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;
RESET——复位输入信号
2、8255端口地址
表3.28255端口地址表
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
3、8253芯片的内部结构及引脚
8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。
8253的功能用途是:
(1)延时中断
(2)可编程频率发生器
(3)事件计数器
(4)二进倍频器
(5)实时时钟
(6)数字单稳
(7)复杂的电机控制器
8253有六种工作方式:
(1)方式0:
计数结束中断
(2)方式1:
可编程频率发生器
(3)方式2:
频率发生器
(4)方式3:
方波频率发生器
(5)方式4:
软件触发的选通信号
(6)方式5:
硬件触发的选通信号
8253引脚图如图3.3示,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器地址输入信号;
CLK——计数输入,用于输入定时基准脉冲或计数脉冲;
OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;
GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
表3.38253端口地址表
2、8253端口地址
信号线
寄存器
编址
IOY2
0#计数器
40H
1#计数器
41H
2#计数器
42H
控制寄存器
43H
四、源程序清单:
DATASEGMENT
TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
TIMEDB00,00,00,00
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
Start:
MOVAX,CS
MOVDS,AX
MOVAX,OFFSETIRQ6;irq6送中断向量表
MOVSI,0038H
MOV[SI],AX
MOVAX,0000H
MOVSI,003AH
MOV[SI],AX
MOVAX,OFFSETIRQ7;irq7送中断向量表
MOVSI,003cH
MOV[SI],AX
MOVAX,0000H
MOVSI,003AH
MOV[SI],AX
MOV63,81H;8255初始化,A,B口输出,C口输入
MOVAL,94H ;8253初始化,计数器0,方式3
MOVDX,43H
OUTDX,AL
SUN:
MOVAX,10
MOVDX,40H
OUTDX,AL
MOVAL,AH
OUTDX,AL
CALLDALLY
CALLDISPLAY
JMPSUN
RET
IRQ6:
STI
MOVDX,OFFSETTIME;TIME时间置为00:
00
MOV[DX],00H
INCDX
MOV[DX],00H
INCDX
MOV[DX],00H
INCDX
MOV[DX],00H
MOVAL,20H
OUT20H,AL
IRET;IRQ6结束
IRQ7:
STI
MOVDX,OFFSETTIME ;调秒的个位
MOVAX,[DX]
INCAX
CMPAX,0AH
JELOP1 ;判断对应薄码
MOV[DX],AX
IRET
LOP1:
MOV[DX],00H
INCDX;调秒的十位
MOVAX,[DX]
CMPAX,06H
JELOP2;判断对应薄码
INCAX
MOV[DX],AX
RET
LOP2:
MOV[DX],00H
INCDX;调分的个位
MOVAX,[DX]
CMPAX,0AH
JELOP3;判断对应薄码
INCAX
MOV[DX],AX
RET
LOP3:
MOV[DX],00H
INCDX;调分的十位
MOVAX,[DX]
CMPAX,06H
JELOP4;判断对应薄码
INCAX
MOV[DX],AX
RET
LOP4:
MOV[DX],00H
RET;置时钟为00:
00
MOVAL,20H
OUT20H,AL
IRET;IRQ7终端结束
DISPLAY:
PUSHAX;在LED上显示TIME的时间
PUSHDX
MOVSI,OFFSETTIME
MOVSH,FE
DISP:
MOVAL,[SI]
MOVBX,OFFSETTABLE
XLAT
OUT61,AL
MOVAL,AH
OUT60,AL
CALLDALLY
CMPAH,DF
JZQUIT
INCSI
RORAH,1
JMPDISP
QUIT:
POPDX
POPAX
RET;子程序结束
DALLY:
PUSHCX;调用延迟子程序
PUSHAX
MOVCX,0040H
A3:
MOVAX,056CH
A4:
DECAX
JNEA4
LOOPA3
POPAX
POPCX
RET;子程序返回
CODEENDS
ENDSTART
五、连线图
六、设计总结及心得体会
经过两周努力,在指导老师和同学的帮助下,终于如期完成了该电子时钟的课程设计。
当然在课程设计的过程中遇到了许多问题,但是经过查阅有关资料和向老师、同学请教后,还是一一解决了。
系统设计的开始几天的时间,没有什么大的进展,仅仅是初始界面就调试了很长时间才成功,以后的几天的时间开始调中断程序,程序中一旦有了中断,调试就困难了,调中断调了好几天,难度挺大的,任何一个初始化的失误都可能使你的程序不正常,所以写程序的时候一定要仔细,考虑问题一定要全面,最后使各部分捏成一整体,让整个程序顺利运行,这部分不是很难,所以只用半天就调完了。
通过本次课程设计,使我在课堂中学到的东西充分的融入到实践当中。
进一步的熟悉了可并行通信接口8255、计数器/定时器8253及中断控制器的编程原理和7段LED数码管显示器的工作原理,为以后独立的设计系统提供了丰富的实践经验。
参考文献:
[1]戴梅萼,史嘉权编著.微型计算机技术及应用(第三版).北京:
清华大学出版社,2003
[2]周明德编著.微型计算机系统原理及应用(第四版).北京:
清华大学出版社,2002
[3]李顺增,吴国东,赵河明等.微机原理及接口技术.北京:
机械工业出版社,2006
[4]眭碧霞.微型计算机原理与组成[M].人民邮电出版社,2003.8
[5]钱晓捷,陈涛,《微型计算机原理及接口技术》机械工业出版社1999年1月
[6]郑初华,《汇编语言、微机原理及接口技术》,电子工业出版社,2006年
[7]杨立新.微型计算机原理和应用[M].北京:
科学技术文献出版社,1986.11
[8]李大友.微型计算机原理[M].北京:
清华大学出版社,1998.7