您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 串行通信微机原理课程设计
课程设计(综合实验)报告(2012--2013年度第一学期)名称:微机原理与应用题目:串行通信实现文件传输院系:控制与计算机工程学院班级:实验自10学号:101190104学生姓名:高耀岿指导教师:杨国田设计周数:1周成绩:日期:2013年1月3日课程课程设计(综合实验)报告1一、课程设计的目的与要求。1.1设计的目的。(1)掌握串行通信的一般原理。(2)掌握双机通迅的方法。(3)掌握8250A的的工作原理。(4)能够应用8250A实现双机串行通信。(5)巩固所学知识,培养分析和解决问题的能力。1.2设计的要求。设计双机文件互传程序,即每台计算机均有文件发送和接受功能。要求采用尽可能高的波特率,操作方式尽可能灵活、实用。1.3设计的意义。在微机原理及应用课程中学过了微机各个基本组成模块的原理和编程技术,在实验室现有的设备情况下,设计一个具有一定功能的应用系统,达到对知识的深入理解和融会贯通,培养动手能力、实践能力以及团队合作的精神。二、设计正文。2.1设计的基本原理。2.1.1串行异步通信规程。串行异步通信规程是把一个字符看作一个信息单元,每一个字符中的各位以固定的时间传送。因此,这种传送方式在同一字符内部是同步的,而字符间是异步的。在异步通信中,收发双方取得同步的方法是:采用在字符格式中设置起始位和停止位的办法。在一个有效字符正式发送之前,先发送一个起始位,而在字符结束时发送一至两个停止位。当接收到起始位时,便能知道接着是有效的字符位,于是开始接收字符,检测到停止位时,就将接收到的有效字符装载到接收缓冲器中。2.1.28250部分引脚。(1)D0-D7:双向数据线,用于传送和接收数据。(2)A2-A0:地址信号,实现片内各寄存器的选择。(3)012\\CSCSCS,片选信号。(4)DSR:数据设备准备就绪信号,低电平表示数据设备可与8250进行数据传输。(5)RTS:请求发送信号,低电平时通知数据设备,8250已准备好发送数据。(6)CTS:清除发送信号,每当Modem状态寄存器的CTS位改课程课程设计(综合实验)报告2变状态时,若允许Modem状态中断,就会产生一次中断。(7)SOUT和SIN:串行数据输出、输入端。(8)XTAL:外部时钟输入端。(9)INTRPT:中断请求输出,高电平有效,此时中断允许寄存器IER相应位必须为1。(10)OUT:用户指定的输出信号,分别受控于Modem控制寄存器的D2和D3位。如果编程将D2和D3设定为1,则均为有效的低电平。8250复位后输出高电平。2.1.2地址译码电路2.1.38250内部寄存器编址课程课程设计(综合实验)报告3器冲缓线总据数接收缓冲器传输线控制寄存器除数寄存器(低字节)除数寄存器(高字节)传输线状态寄存器发送保持寄存器控制寄存器Modem状态寄存器Modem中断允许寄存器中断标志寄存器线总据数部内接收移位寄存器接收时间与控制发送移位寄存器发送时间与控制波特率发生器中断控制逻辑控制逻辑ModemD0D0——D7D7SINSINSOUTSOUT在接收数据时:(1)接收移位寄存器将SIN引脚的串行数据进行移位输入。(2)检测到SIN输入信号变低后,连续测试8个接收时钟周期。(3)如果采样到的都是低电平,则确认为起始位,否则为干扰信号。(4)找到起始位后,每隔16个接收时钟脉冲对SIN输入的数据进行一次采样,直到完整的字符帧结束。(5)接收移位寄存器将接收到的数据转化为并行数据送入到接收数据缓冲器RBR。在发送数据时:(1)CPU送来的并行数据存放在发送保持寄存器中。(2)数据经过发送移位寄存器进行并串转换。(3)按规定格式加上起始位、奇偶校验位和停止位,构成完整的串行数据帧。(4)数据由SOUT发出。2.1.48250A内部结构。2.2设计方案。2.2.1总体方案。(见附录)课程课程设计(综合实验)报告4RRAAMMRROOMM88008866CCPPUU显显示示88225500AArraammrroommDD//AA88008866CCPPUU键键盘盘88225500AA2.2.2硬件原理图。2.2.38250A初始化流程。2.3程序设计。2.3.1发送程序(查询方式):DATASEGMENTMSG1DB13,10,'Pleaseinputachar:',13,10,13,10,'$'MSG2DB'transmissionstart:',13,10,13,10,'$';回车换行DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,3FBH;通信线路控制寄存器地址MOVAL,80H;允许访问波特率因子寄存器OUTDX,ALMOVDX,3F8H;置波特率因子寄存器MOVAL,12H;波特率因子低字节课程课程设计(综合实验)报告5OUTDX,ALMOVDX,3F9HMOVAL,0;波特率因子高字节OUTDX,AL;波特率设置为最大值9600;----------------------------------------------------------------------------MOVDX,3FBH;置线路控制寄存器MOVAL,0BH;数据位8位、停止位1位、奇校验OUTDX,ALMOVDX,3FCH;置MODEM控制寄存器MOVAL,03H;禁止中断,发送接收双向就绪OUTDX,ALMOVDX,3F9H;置中断允许寄存器MOVAL,0;屏蔽所有中断OUTDX,ALMOVDX,OFFSETMSG2;显示发送提示信息MOVAH,9INT21H;显示以$结尾的字符串;-----------------------------------------------------------------------------MOVDX,OFFSETMSG1;显示发送提示信息MOVAH,9INT21H;显示以$结尾的字符串LOP:MOVAH,1;读取按键字符,存入AL中,并显示INT21HMOVDX,3F8H;发送数据保持寄存器地址,准备发送该字符OUTDX,ALCMPAL,0DH;判断按下字符是否是回车?JZOVER;是,则结束JMPLOP;不是,继续循环OVER:MOVAH,4CH;返回DOSINT21HCODEENDSENDSTART课程课程设计(综合实验)报告62.3.2接收程序(查询方式):DATASEGMENTRBUFDB30DUP(0)DISPDB'RECEIVESTART:',13,10,13,10,'$'ERRORDB'RECEIVEERROR!',13,10,13,10,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,RBUF;置接收缓冲区地址指针MOVDX,3FBH;通信线路控制寄存器地址,置DLAB=1MOVAL,80HOUTDX,ALMOVDX,3F8H;置波特率因子寄存器MOVAL,12H;波特率因子低字节OUTDX,ALMOVDX,3F9HMOVAL,0;波特率因子高字节OUTDX,AL;波特率设置为最大值9600;----------------------------------------------------------------------------MOVDX,3FBH;置通信线路控制寄存器MOVAL,0AH;数据位8位、停止位1位、奇校验OUTDX,ALMOVDX,3FCH;置MODEM控制寄存器MOVAL,03;禁止中断,发送接收双向就绪OUTDX,ALMOVDX,3F9H;置中断允许寄存器MOVAL,0;屏蔽所有中断OUTDX,ALMOVDX,OFFSETDISPMOVAH,9INT21H;显示接收提示信息MOVDX,3F8H课程课程设计(综合实验)报告7INAL,DX;读接收缓冲器内容,不处理LOP:MOVDX,3FDH;读线路状态寄存器INAL,DXTESTAL,1EH;测试。该寄存器除最低位只要有一位是1就算出现错误JNZER;有错误,转错误显示TESTAL,01H;无错误,则测试最低位接收数据准备好?JZLOP;未准备好则循环测试MOVDX,3F8H;准备好则接收字符INAL,DXANDAL,7FHCMPAL,13H;判断接收结束吗?JZOVER;结束转OVERMOV[SI],AL;未结束则存入缓冲区INCSIMOVDL,AL;显示该字符MOVAH,02INT21HJMPLOPER:MOVDX,2F8H;清标志位,接收数据缓冲器的内容一旦读过后,8250有错误位自动复位INAL,DXMOVDX,OFFSETERROR;显示错误信息MOVAH,9INT21HJMPLOPOVER:MOVDL,ALMOVAH,2INT21HMOVAH,4CH;返回DOSINT21HCODEENDSENDSTART课程课程设计(综合实验)报告8三、课程设计的总结和结论。3.1设计结论。双机串行通信,在一台PC机键入字串符,从8250A的发送端发送给另一台PC机,另一台PC机的8250A的接收端接收,然后在屏幕上显示出来。3.2设计总结。通过这一周时间的微机课程设计,我体会很多,由于之前从未接触过课程设计,这也是我进入大学的第一个课程设计,感到新鲜的同时不乏焦虑。现在终于将它完成了,感到受益颇多。首先,这是一份考验我们自觉性、动手能力与协作意识的任务。在长达一个周的时间里,我们不断发现自身不足也不断自我完善。其次,未知并不可怕,可怕的是因未知而止步。通过本次课程设计,我发现我在课堂上所学的知识是非常有限的,这次的课程设计就是一个很好的考验。实践中我遇到很多问题,有些函数的运用我们还没掌握牢固,甚至初次接触,一些简单的循环语句都可能出错,所以我深刻感受到只有实践,才能知道自己真正掌握了多少,也感悟到了理论结合实际的重要性。最后,团结就是力量一点都不假,三个臭皮匠顶一个诸葛亮。在团组合作时我们更便于互相取长补短,相互讨论,效果很好。四、参考文献。【1】李继灿,《新编16/32位微型计算机原理及应用(第四版)》,清华大学出版社,2008年【2】陈庆军,《微机接口——双机通迅》,中南大学,2011-7-9【3】《可编程接口芯片8250》,【4】《8250串行接口实验》,【5】周佩玲,彭虎,傅忠谦编.微机原理与接口技术学习指导(基于16位机).北京:电子工业出版社,2005.4课程课程设计(综合实验)报告9接收YNNYYN开始设置接收缓冲区,设置接收错信息,初始段寄存器,设置接收缓冲区地址指针初始8250:9600波特、8位数据、奇校验、1位停止位、禁止中断屏幕显示:接收开始读线状态寄存器接收错?接收数据准备好?接收数据取AL低七位空格?存字符到接收区调整指针送屏幕显示显示:接收错结束发送NYNY开始初始段寄存器,设置发送缓冲区指针初始8250:9600波特、8位数据、奇校验、1位停止位、禁止中断屏幕显示:发送开始读线状态寄存器发送保持寄存器空?发送字符屏幕显示字符空格?结束附录:总体方案
本文标题:串行通信微机原理课程设计
链接地址:https://www.777doc.com/doc-5158421 .html