微机课程设计PC系统双机系统.docx
《微机课程设计PC系统双机系统.docx》由会员分享,可在线阅读,更多相关《微机课程设计PC系统双机系统.docx(12页珍藏版)》请在冰豆网上搜索。
微机课程设计PC系统双机系统
课程设计报告
课程名称:
微机系统原理与接口
设计题目:
PC系统双机系统
姓名:
学号:
指导教师:
时间:
2011~2012学年第一学期
课程设计题目
PC系统双机系统
课程设计目的及要求:
1、目的:
(1)了解串行通讯的基本原理;
(2)掌握串行接口芯片8251的工作原理和编程方法。
2、要求:
设计两台计算机的通信,具体要求如下:
(1)用8251A可编程接口电路设计该电路,系统提供时钟384KHZ;
(2)异步通讯的波特率是4800,数据位是7位,偶检验,1位停止位。
双方使用双工通信方式。
(3)设计电路并编写有关程序。
课程设计详细内容:
1、设计分析:
该设计要求异步通信方式,系统提供的时钟384KHZ,使用波特率因子16或64都无法获得4800HZ的频率。
那么,首先对信号进行分频处理,使提供给8251的时钟频率符合要求。
要求Td=4800HZ,波特率因子=16,Tc=16*4800=76800HZ=76.8KHZ。
分频系数384000/76800=5。
使用8253分频电路,输入频率384KHZ,计数值=5,输出频率是76.8KHZ。
该设计要求采用双工的通信方式,系统可以考虑采用中断实现实时的收发处理。
设计一个中断电路,无论发送完成(TxRDY)还是接收到数据(RxRDY),它都能产生中断。
2、设计实现:
(1)硬件设计
硬件电路如图所示。
A机和B机组成了一对可以实现双工通信的计算机系统。
8251A结构图:
8259内部结构:
8253内部结构:
译码电路:
(2)软件设计
A机:
8251电路的工作方式字地址是60H,命令控制字地址是60H,状态字地址是60H,发送数据的数据输出端口地址是61H。
8253的工作方式寄存器地址是43H,通道0的地址是40H,计数值是5。
8259的中断类型号是10000010B,向量地址是1000001000B,208H。
208H~20BH:
中断服务程序的首地址。
B机:
8251电路的工作方式字地址是50H,命令控制字地址是50H,状态字地址是50H,发送数据的数据输出端口地址是51H。
8259的中断类型号是11001010B,向量地址是1100101000B,328H。
328H~32BH:
中断服务程序的首地址。
其工作方式字为:
01111010B=7AH。
程序流程图:
主程序:
A机的程序如下:
;中断服务程序初始化
MOVAX,0000H
MOVDX,AX;设置数据段地址
MOVAX,OFFSETTRQ2SEV
MOVSI,208H
MOV[SI],AX;中断服务偏移地址
MOVAX,SEGIRQ2SEV
MOVSI,20AH
MOV[SI],AX;中断服务段地址
CLI;关中断
;8253分频电路初始化
MOVAL,00010110B;设置0工作方式3二进制,
OUT43H,AL
MOVAL,05
OUT40H,AL;计数器5
;8251异步通信初始化
MOVAL,7AH;异步工作方式7位数据位,偶校验,1位停止位
OUT60H,AL
;收发数据的首地址和长度初始化
MOVSI,SENDBUFF
MOVDI,RECVBUFF
MOVCX,SENDLEN
MOVBX,RECVLEN
MOVFLAG,0
;允许8259的IRQ2的中断
CLI
INAL,21H;读当前中断屏蔽寄存器
ANDAL,0FBH;是IRQ2允许中断
OUT21H,AL
;主程序
STI;开中断
MAIN:
MOVAL,[SI]
OUT60H,AL;发送数据
MAIN1:
JMPMAIN1
;中断服务程序
IRQ2SEV:
INAL,60H
TESTAL,02;是否接受中断
JNZCRECV;是,转入接受中断处理
MOVAL,SFLAG;是否已经发送完毕
TESTAL,01H
JZSEXIT;是,不在发送
INCSI
MOVAL,[SI]
OUT61H,AL
DECCX
JNZSEXIT;判断发送已经结束
MOVAL,0
OUT60H,AL;不允许发送
MOVSFLAG,01;设置停止发送标志
SEXIT:
STI
IRET
CRECV:
TESTAL,38H
JNZERR;出错处理略
INAL,61H
TESTAL,‘END’;判断接收的字符是否为结束字符
JZSHLT;是,设置结束标志
MOV[DI],AL;否,保存数据
INCDI
JMPSEXIT
SNLT:
CLI
IRET
B机的程序如下:
;中断服务程序初始化:
MOVAX,0000H
MOVDS,AX;设置数据段地址
MOVAX,OFFSETIREQ2SEV
MOVSI,328H
MOV[SI],AX;中断服务偏移地址
MOVAX,SEGIREQ2SEV
MOVSI,32AH
MOV[SI],AX;中断服务段地址
STI;关中断
;8251异步通信初始化
MOVAL,7AH;异步工作方式7为数据位
OUT50H,AL
;收发数据的首地址和长度初始化
MOVSI,RECVBUFF
MOVDI,SENDBUFF
MOVCX,RECVLEN
MOVBX,SENDLEN
MOVFLAG,0
;允许8259的IRQ2的中断
CLI
INAL,21H;读当前中断屏蔽寄存器
ANDAL,0FBH;是IRQ2允许中断
OUT21H,AL
;主程序
STI;开中断
MAIN:
:
MOVAL,[SI]
OUT51H,AL;发送数据
MAIN2:
JMPMAIN2
;中断服务程序
IRQ2SEV:
:
INAL,50H
TESTAL,02;是否接受中断
JNZCRECV;是,转入接受中断处理
MOVAL,SFLAG;是否已经发送完毕
TESTAL,01H
JZSEXIT;是,不再发送
INCSI
MOVAL,[SI]
OUT61H,AL
DECCX
JNZSEXIT;判断发送已经结束
MOVAL,0
OUT50H,AL;不允许发送
MOVSFLAG,01;设置停止发送标志
SEXIT:
STI
IRET
CRECV:
TESTAL,38H
JNZERR;出错处理略
INAL,51H
TESTAL,‘END’;判断接收的字符是否为结束字符
JZSHLT;是,设置结束标志
MOV[DI],AL;否,保存数据
INCDI
JMPSEXIT
SNLT:
CLI
IRET
注:
可另附页
课程设计总结及体会:
通过本次课程设计,我更加了解了计算机系统中的常用电路——串行接口电路。
从中再一次的学习了几种芯片的使用,让我对8251、8253、8259以及I/O端口译码电路有了更深刻,更详细的了解与认识。
通过此次课程设计,我也了解了PC系统双机通讯的基本过程。
在此次设计中,采用了异步通信方式,用8251可编程接口电路设计电路,利用8253分频电路对信号进行分频处理,8259作为中断电路。
在整个课程设计过程中,我体会到了独立完成一项任务的乐趣,与成就感。
同时也发现课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。
学生(签字)
__年__月__日
指导教师评语:
课程设计成绩:
指导教师(签字)_______________
_____年_____月_____日
教研室意见:
教研室主任(签字)
_____年_____月_____日