微机课程设计

  • 格式:doc
  • 大小:271.50 KB
  • 文档页数:12

课程设计报告 课程名称: 微机系统原理与接口 设计题目: PC系统双机系统 姓 名: 学 号: 指导教师: 欧晓鸥 时 间:2011~2012学年第 一 学期

南京人口学院信息科学系 课程设计题目 PC系统双机系统 1

课程设计目的及要求: 1、目的:(1)了解串行通讯的基本原理; (2)掌握串行接口芯片8251的工作原理和编程方法。

2、要求: 设计两台计算机的通信,具体要求如下: (1)用8251A可编程接口电路设计该电路,系统提供时钟384KHZ; (2)异步通讯的波特率是4800,数据位是7位,偶检验,1位停止位。双方使用双工通信方式。 (3)设计电路并编写有关程序。 2

课程设计详细内容: 1、 设计分析: 该设计要求异步通信方式,系统提供的时钟384KHZ,使用波特率因子16或64都无法获得4800HZ的频率。那么,首先对信号进行分频处理,使提供给8251的时钟频率符合要求。 要求Td=4800HZ,波特率因子=16,Tc=16*4800=76800HZ=76.8KHZ。 分频系数384000/76800=5。 使用8253分频电路,输入频率384 KHZ,计数值=5,输出频率是76.8KHZ。 该设计要求采用双工的通信方式,系统可以考虑采用中断实现实时的收发处理。设计一个中断电路,无论发送完成(TxRDY)还是接收到数据(RxRDY),它都能产生中断。 2、设计实现: (1)硬件设计 硬件电路如图所示。A机和B机组成了一对可以实现双工通信的计算机系统。 3

8251A结构图:

8259内部结构: 4 8253内部结构:

译码电路: (2)软件设计 A机:8251电路的工作方式字地址是60H,命令控制字地址是60H,状态字地址是60H,发送数据的数据输出端口地址是61H。 8253的工作方式寄存器地址是43H,通道0的地址是40H,计数值是5。 8259的中断类型号是10000 010B,向量地址是10 0000 1000B,208H。 208H~20BH:中断服务程序的首地址。 5

B机:8251电路的工作方式字地址是50H,命令控制字地址是50H,状态字地址是50H,发送数据的数据输出端口地址是51H。 8259的中断类型号是11001 010B,向量地址是11 0010 1000B,328H。 328H~32BH:中断服务程序的首地址。 其工作方式字为:01111010B=7AH。

程序流程图: Y 开 始 从8251A数据口取入一个

将此字节显示在微机屏清除8259A中ISR的标接受的字节为中断结束IRET 置IRQ2的中断屏蔽位为1,

开中断STI 用INT 21H的4CH功能调用返回DOS

N 6

主程序: 开 始 置8253定时器2为模式3,并赋予其初始值

初始化8251为8个数据位,1个停止位,波特率因子为16,无奇偶校验,并处于允许接收和发射状态

提示用户:“在主机键盘上输入字符”,将显示在终端屏幕上;键入“!”则结束发送过程

主机从键盘上输入一个字符并存入BL 从8251命令端口取状态字节放入AL 状态字节最低位TXRDY=1? 通过8251数据口,主机把BL中字节送出 该字节为“!”吗?

显示提示信息:用户在键盘上输入字符,将显示在显示器上,用“!”结束程序

将接受中断服务程序的入口地址,写入中断矢量表0AH中断位置

开放IRQ2对应的中断屏蔽位 开中断 死循环等待硬件中断

N N Y

Y 7

A机的程序如下: ;中断服务程序初始化 MOV AX , 0000H MOV DX , AX ;设置数据段地址 MOV AX , OFFSET TRQ2SEV MOV SI , 208H MOV [SI] , AX ;中断服务偏移地址 MOV AX , SEG IRQ2SEV MOV SI , 20AH MOV [SI] , AX ;中断服务段地址 CLI ;关中断 ;8253分频电路初始化 MOV AL , 00010110B ;设置0 工作方式3 二进制, OUT 43H , AL MOV AL , 05 OUT 40H , AL ;计数器5 ;8251异步通信初始化 MOV AL , 7AH ;异步工作方式7位数据位,偶校验,1位停止位 OUT 60H , AL ;收发数据的首地址和长度初始化 MOV SI , SENDBUFF MOV DI , RECVBUFF MOV CX , SENDLEN MOV BX , RECVLEN MOV FLAG,0 ;允许8259的IRQ2的中断 CLI IN AL , 21H ;读当前中断屏蔽寄存器 AND AL , 0FBH ;是IRQ2允许中断 OUT 21H , AL ;主程序 STI ;开中断 MAIN: MOV AL , [SI] OUT 60H , AL ;发送数据 MAIN1:JMP MAIN1 ;中断服务程序 IRQ2SEV:IN AL , 60H TEST AL , 02 ;是否接受中断 JNZ CRECV ;是,转入接受中断处理 MOV AL , SFLAG ;是否已经发送完毕 TEST AL , 01H JZ SEXIT ;是,不在发送 8

INC SI MOV AL , [SI] OUT 61H , AL DEC CX JNZ SEXIT ;判断发送已经结束 MOV AL , 0 OUT 60H , AL ;不允许发送 MOV SFLAG , 01 ;设置停止发送标志 SEXIT: STI IRET CRECV:TEST AL , 38H JNZ ERR ;出错处理略 IN AL , 61H TEST AL ,‘END’ ;判断接收的字符是否为结束字符 JZ SHLT ;是,设置结束标志 MOV [DI] , AL ;否,保存数据 INC DI JMP SEXIT SNLT: CLI IRET

B机的程序如下: ;中断服务程序初始化: MOV AX , 0000H MOV DS , AX ;设置数据段地址 MOV AX , OFFSET IREQ2SEV MOV SI , 328H MOV [SI] , AX ;中断服务偏移地址 MOV AX , SEG IREQ2SEV MOV SI , 32AH MOV [SI] , AX ;中断服务段地址 STI ;关中断 ;8251异步通信初始化 MOV AL , 7AH ;异步工作方式7为数据位 OUT 50H , AL ;收发数据的首地址和长度初始化 MOV SI , RECVBUFF MOV DI , SENDBUFF MOV CX , RECVLEN MOV BX , SENDLEN MOV FLAG , 0 ;允许8259的IRQ2的中断 CLI 9

IN AL , 21H ;读当前中断屏蔽寄存器 AND AL , 0FBH ;是IRQ2允许中断 OUT 21H , AL ;主程序 STI ;开中断 MAIN:: MOV AL , [SI] OUT 51H , AL ;发送数据 MAIN2: JMP MAIN2 ;中断服务程序 IRQ2SEV:: IN AL , 50H TEST AL , 02 ;是否接受中断 JNZ CRECV ;是,转入接受中断处理 MOV AL , SFLAG ;是否已经发送完毕 TEST AL , 01H JZ SEXIT ;是,不再发送 INC SI MOV AL , [SI] OUT 61H , AL DEC CX JNZ SEXIT ;判断发送已经结束 MOV AL , 0 OUT 50H , AL ;不允许发送 MOV SFLAG , 01 ;设置停止发送标志 SEXIT: STI IRET CRECV: TEST AL , 38H JNZ ERR ;出错处理略 IN AL , 51H TEST AL , ‘END’ ;判断接收的字符是否为结束字符 JZ SHLT ;是,设置结束标志 MOV [DI] , AL ;否,保存数据 INC DI JMP SEXIT SNLT: CLI IRET

注:可另附页 10

课程设计总结及体会: 通过本次课程设计,我更加了解了计算机系统中的常用电路——串行接口电路。从中再一次的学习了几种芯片的使用,让我对8251、8253、8259以及I/O端口译码电路有了更深刻,更详细的了解与认识。通过此次课程设计,我也了解了PC系统双机通讯的基本过程。在此次设计中,采用了异步通信方式,用8251可编程接口电路设计电路,利用8253分频电路对信号进行分频处理,8259作为中断电路。在整个课程设计过程中,我体会到了独立完成一项任务的乐趣,与成就感。同时也发现课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。

学生(签字) __年__月__日