微型计算机接口技术课程设计 双机通信.docx

上传人:小飞机 文档编号:5285907 上传时间:2023-06-22 格式:DOCX 页数:19 大小:301.22KB
返回 下载 相关 举报
微型计算机接口技术课程设计 双机通信.docx_第1页
第1页 / 共19页
微型计算机接口技术课程设计 双机通信.docx_第2页
第2页 / 共19页
微型计算机接口技术课程设计 双机通信.docx_第3页
第3页 / 共19页
微型计算机接口技术课程设计 双机通信.docx_第4页
第4页 / 共19页
微型计算机接口技术课程设计 双机通信.docx_第5页
第5页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微型计算机接口技术课程设计 双机通信.docx》由会员分享,可在线阅读,更多相关《微型计算机接口技术课程设计 双机通信.docx(19页珍藏版)》请在三一办公上搜索。

1、微型计算机接口技术课程设计报告任课教师:指导教师:学生学号:学生姓名:所学专业:目录一、 设计题目1二、设计目的 1三、设计原理及方案 11.8251的基本性能 12.8251的内部结构及外部引脚 13. 8251在异步方式下的TXD信号上的数据传输格式 34. 8251的编程 3四、实现方法 6五、实施结果 61. 实验程序 62. 实验步骤 13六、 其他13七、 设计体会 15一、设计题目8251A串行通信一、设计目的1. 掌握8251的工作方式及应用;2. 了解有关串口通讯的知识。三、设计原理及方案1.8251的基本性能8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据

2、 通信。有下列基本性能:(1)通过编程,可以工作在同步方式,也可以工作在异步方式;(2)同步方式下,波特率为064K,异步方式下,波特率为019.2K;(3)在同步方式时,可以用58位来代表字符,内部或外部同步,可自 动插入同步字符;(4)在异步方式时,也使用58位来代表字符,自动为每个数据增加1 个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位;(5)具有奇偶、溢出和帧错误检测能力;(6)全双工,双缓冲器发送和接收器。注意:8251尽管通过了 RS-232规定的基本控制信号,但并没有提供规定 的全部信号。2.8251的内部结构及外部引脚8251的内部结构图如图1所示,可以看出

3、,8251有7个主要部分,即数 据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、 发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对 外的引脚。图6-1 8251内部结构图8251的外部引脚如图2所示,共28个引脚,每个引脚信号的输入输出方式如图 中的箭头方向所示。三三三二二 2 3 D D 4 5 6 7 # 拜 # #W1288251RxRDY -1415DOD1Vcc RxC#D7R#-RTS# DSR#-RESET CIK一 TxD-TxE-一 CTS4SYNDET/BDTxRDY图6-2 8251外部引脚图3. 8251在异步方式下的TXD信号上的数据

4、传输格式图3示意了 8251工作在异步方式下的TXD信号上的数据传输格式。数据位与停 止位的位数可以由编程指定。图3 8251工作在异地方式下TXD信号的数据传输格式4. 8251的编程对8251的编程就是对8251的寄存器的操作,下面分别给出8251的几个寄存器 的格式。(1)方式控制字方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4 所示。D7D6D5. D4 D3 D2DIDOSCSSS2ESD/S1EFPENL2UE2Bl同步J停止位奇偶校验字符长度波特率系数同D1DO=OO)额=内同步 玄=外同步 职=.双同步1区=单同步异步(D1DO=/=O)00=不用01=

5、1 位10= 1:5 位11 = 2 位.xo=无校验 口1 =奇校验 11=偶校验00=5 位 01 = 6 位 1。=7 位 11 =衣位异步00=不用01=0110=话ii = w3同步00=同步方式标志图4 8251方式控制字(2)命令控制字命令控制字用于指定8251进行某种操作(如发送、接收、内部复位和检测同步 字符等)或处于某种工作状态,以便接收或发送数据。图5所示的是8251命令 控制字各位的定义。D7D6D5.D4D3D2DIDOEHIR瓯3BRKRjcEDTR.TxEN进为搜索1 =允许搜索内部复位1=便盈沌瑟回 方式控制字请求发送1=# RTS输出1错误标志复位便错误标志P

6、RFE复位发中止字苻1=TXD为低口=正常工作接收允许1 =也许&=禁止数据窘端准备好l = 1DTRi 出 U发送允许1=允许口=禁上图5 8251命令控制字格式(3)状态字CPU通过状态字来了解8251当前的工作状态,以决定下一步的操作,8251的状 态字如图6所示。D7D6D5D4D3D2 DI DODSRSYNDETFEOEPETxERxRDY数据装置就 鳍:当DSR 输盛为0时 整位为1同步检测帧错误:该标志仅用于异步方 式,当在任一字符的结尾没有 检刨到有麒的停止位时,典位 置1。此标志由命令控制字中的 位4复侮.溢出错误:在下一个字 符变为可用前|CPU没 有把字符读走,此标志

7、置1=此错误出现时上 一字符已丢失。奇隅错误:当检测到奇偶错误时此位置匚发送器空接收就绪为1表明接收到一个字符0发送就绪为.1表明发透缓冲器空。(4)系统初始化8251的初始化和操作流程如图7所示。a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存 器。b)如果模式字中规定了 8251A工作在同步模式,c)由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端 口写入的值将作为数系统RESET 初始化图7 8251初始化流程图四、实现方法8251A的引脚上有一“控制/信号”信号C/D,此信号和“读/写”信号合起来通知 8251A当前读写的是数据还是控制字.状态字。

8、当C/D=0进行读写时,读出和写入 的是数据。当C/D=1进行写入时,写入的是控制字、方式字和同步字符;C/D=1进 行读出时,是从状态寄存器中读出的状态。那么,在C/D=1写入时,到底写到哪一个 寄存器呢?这涉及8251A初始化的有关约定。这个约定有三条:(1)芯片复位后,第 一次用C/D=1写入的值是方式字;(2)如果方式字中规定了同部方式,接着用C/D=1 写入的就是同部字符;(3)在此之后,以C/D= 1写入的都被作为命令字。从原则上来说,象8251A这样的8位接口芯片,连接在16位系统时,低8位的数 据总写到偶地址,高8位的数据总写到奇地址.STD5221也遵从这个原则,不将地 址总

9、线的最低位A0连到8251A的地址线上,而将地址总线A1作为8251A的地址 最低位地址总线A0经过反相后连到8251A的C/D端.(在常见的具有USART的 PC系统中,人0是直接连接到8251A的C/D端,与STD5221相反,这一点在应用时要 注意)。注:据实验结果,在C/D=1写入的第一个命令字之后,先向数据口写同步 字符,才能启动同步发送(在流程图中有标示)。五实施结果2.实验程序OUTBIT equ 08002h ;位控制口OUTSEGequ 08004h;段控制口IN_KEYequ 08001h;键盘读入口CS8251Dequ 09000h;串行通信控制器数据口地址CS8251C

10、equ 09001h;串行通信控制器控制口地址data segmentLEDBuf db6 dup(?);显示缓冲Num db 1 dup(?) ;显示的数据DelayT db 1 dup(?)RBufdb 0TBufdb 0LEDMAP:;八段管显示码db3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable:;键码定义db16h, 15h, 14h, 0ffhdb13h, 12h, 11h, 10hdb0dh, 0ch, 0bh, 0ahdb0eh, 03h, 06h, 0

11、9hdb0fh, 02h, 05h, 08hdb00h, 01h, 04h, 07hcode segmentassume cs:code, ds:dataDelayprocnearpushax;延时子程序pushcxmoval, 0movcx,axloop$popcxpopaxretDelayendpDisplayLED proc nearmovbx, offset LEDBufmovcl, 6;共6个八段管movah, 00100000b ;从左边开始显示DLoop:movdx, OUTBITmoval, 0outdx,al;关所有八段管moval, bxmovdx, OUTSEGoutdx

12、, almovdx, OUTBITmoval, ahoutdx, al;显示位八段管pushaxmovah, 1callDelaypopaxshrah, 1incbxdeccljnzDLoopmovdx, OUTBITmoval, 0outretdx,al;关所有八段管DisplayLED endpTestKey proc nearmovdx, OUTBITmoval, 0outdx, al;输出线置为0movdx, IN_KEYinal, dx;读入键状态not al and al, 0fh ;高四位不用 retTestKey endpGetKey proc near movch, 0010

13、0000bmovcl, 6KLoop: mov dx, OUTBIT mov al, ch;找出键所在列not al outdx, alshrch, 1mov dx, IN_KEY in al, dx not al and al, 0fhjne Goon_;该列有键入dec cl jnz KLoopmov cl, 0ffh ;没有键按下,返回0ffh jmp Exit1Goon_: dec cl shl cl, 2;键值=列X 4 +行mov ch, 4LoopC: test al, 1 jnz Exit1 shr al, 1 inc cl dec chjnz LoopCExitl:mov d

14、x, OUTBITmov al, 0 out dx, almovch, 0movbx, offset KeyTableadd bx, cxmoval, bxmovbl, alWaitRelease:mov dx, OUTBIT mov al, 0 out dx, almov ah, 10 call Delay call TestKey jne WaitRelease mov al, bl retGetKey endpIInit proc nearmov dx, CS8251C mov al, 01001111b out dx, almov al, 00010101b out dx, al re

15、tIInit endp;取出键码;等键释放;8251初始化;1停止位,无校验,8数据位,x64;清出错标志,允许发送接收Send proc nearmov dx, CS8251C mov al, 00010101b out dx, al WaitTXD:inal, dxtest al, 1 jzWaitTXDmov al, TBuf mov dx, CS8251D out dx, al push cx mov cx,0ffffh loop $ pop cx retSend endpReceive proc nearmov dx, CS8251C WaitRXD:in al, dx test a

16、l, 2 jeWaitRXDmov dx, CS8251D inal, dxmov RBuf, al retReceive endpstart proc near movax, datamovds, ax;串口发送;清出错,允许发送接收;发送缓冲是否为空;取要发送的字;发送;串口接收;是否已收到一个字;读入call IlnitmovLEDBuf, 0ffh;显示 8.8.8.8.movLEDBuf+1, 0ffhmovLEDBuf+2, 0ffhmovLEDBuf+3, 0ffhmovLEDBuf+4, 0movLEDBuf+5, 0MLoop:callDisplayLED;显示movdx,

17、CS8251Cinal, dx;是否接收到一个字testal, 2jnzRcvDatacallTestKey;有键入?jeMLoop;无键入,继续显示callGetKey;读入键码andal, 0fh;显示键码movTBuf, alcallSendjmpMLoopRcvData:callReceive;读入接收到的字moval, RBufandal, 0fh;只显示低四位movah, 0movbx, offset LEDMAPaddbx, axmoval, bx;转换成显示码movLEDBuf+5, aljmpMLoopStart endpcode endsend start2. 实验步骤(1

18、)按图10连接实验线路;系统总线Jllj加IDWttIQE出IOYOCLK就中KAIKA2IOWWII泌103发送机E就LKTkCLK:0 CLK 82 51 单元DuD7AUAlWR ELDOTTT2CLK2GATE2CS 82&1单元 1S432I1IH2VCCvccf FDORKD-D7TKDAJOR:CLKWEELDTkCLKCS8251 单元 CLK接收机0000一DOOUT2D7CLK2AOAlGATE2WR ELD82 54单元CS00O051Ll就:侦EIOW#II潮IOYUCLPLKDQ51-7XAKA2IOW#II潮I0Y3系统总线(2)为两台机器分别编写实验程序,编译、链

19、接后装入系统;(3)为发送机初始化发送数据;(4)首先运行接收机上的程序,等待接收数据,然后运行发送机上的程序,将 数据发送到串口。(5)观察接收机端屏幕上的显示是否与发送机端初始的数据相同,验证程序功 能。六、改进意见和建议在做这次课程设计时,我就在思考,既然已经实现了两台计算机的通信,那 应该如何实现多台计算机的通信那?我会更多的学习接口知识,完成对本次课程 设计的改进。七、其他1.完成设计的关键技术要想顺利完成这次课程设计,首先要对8251A芯片有充分的认识,对其基本 性能,内部结构,外部引脚以及它的初始化流程等等要十分清楚。正确的编写两 台计算机之间通信的实验员程序代码,并根据实验程序

20、连接电路,是本次课程设计成功完成的关键。2.程序设计流程图收到中断的程序流程图如图:主程序流程图:开始3. 在本次课程设计中,我和我们组的同学齐心协力,大家一起努力完成了这一次 的课程设计。我和王昊同学完成了一台计算机实验箱的连接,其他三名同学完成 另一台的连接。实验程序代码是大家共同编写,修改完成的。七、设计体会课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问 题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程.随 着科学技术发展的日新日异,微型计算机已经成为当今计算机应用中空前活跃的 领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握微 型计算机的开发技术是十分重要的。通过这次的学习,了解了计算机之间串口通信的原理,以及熟悉了 8251A芯 片的功能特性和编程方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号