北理工微机原理实验三.docx

上传人:牧羊曲112 文档编号:5066588 上传时间:2023-06-02 格式:DOCX 页数:12 大小:105.19KB
返回 下载 相关 举报
北理工微机原理实验三.docx_第1页
第1页 / 共12页
北理工微机原理实验三.docx_第2页
第2页 / 共12页
北理工微机原理实验三.docx_第3页
第3页 / 共12页
北理工微机原理实验三.docx_第4页
第4页 / 共12页
北理工微机原理实验三.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《北理工微机原理实验三.docx》由会员分享,可在线阅读,更多相关《北理工微机原理实验三.docx(12页珍藏版)》请在三一办公上搜索。

1、北京理工大拳Heijinfr 加湖me of本科实验报告实验名称:实验三 使用8251A的串行接口应用实验课程名称:计算机原理与应用实验实验时间:任课教师:实验地点:实验教师:实验类型:原理验证综合设计自主创新学生:学号/班级:组 号:学 院:同组搭档:专 业:成 绩:信息与电子学院BCHOdLOF INFOmMATKiN AND ELETRDNi&1. 实验目的1)掌握串行通信原理及半双工和全双工的编程方法;2)掌握用8251A接口芯片实现微机间的同步和异步通信;3)掌握8251A芯片与微机的接口技术和编程方法。2. 实验原理和容8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的

2、接收器和发送器,能实 现单工、半双工、双工通信。1) 8251A部 结构8251A通过引脚D0D7和系统数据总线直接接口,用于和CPU传递命令、数据、状态信息。读 写控制逻辑用来接收CPU的控制信号、控制数据传送方向。CPU对8251A的读写操作控制表如 表3-4所示。表3-4 CPU对8251A的读写操作控制表/CSC/D/RD/ W操作1任意|任意任煮大操作,D4D以渊0110娓控制字0010写数据0101读状态0001读数据2) 8251A的方式控制字和命令控制字方式控制字确定8251A的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符 长度及波特率等,格式如图3-10所示。命

3、令控制字使8251A处于规定的状态以准备收发数据,格式如图3-11所示。方式控制字和命令控制字无独立的端口地址,8251A根据写入的次序来区分。CPU对8251A初始化时先写方式控制字,后写命令控制字。3)状态寄存器异步方式:00=不珊定;01=1个停止位;10=3/2个悖止住11=2个停止榆同步方式;X0=内同步X1 =.外|1无校骋:。1=奇校验:iu=偶校验字符氏度:00=5位;01=6位;KK7位;m 位诞恃率系数:W= l II4SQ0coL8300so2W00LOMOMCiOOC1200OO60实验硬件连接方法:通过计算机点到点三线制串口通信线,掌握接线的方法以及RS-232 标准

4、的机械、电气规。3. 实验连接方法按图连接好电路,其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在 一起。图a-13实睑箱连授原理图1) 8254/CLK 0连接时钟/1MHz;2) 8254/CS连接I/O译码/Y0(280H-287H);3) 8254/OUT0 连接8251/TX/RXCLK;4) 8254/GATE0 连接+5V;5) 8251/TXD 连接8251/RXD;6) 8251/CS连接I/O译码/Y7(2B8H-2BFH。4. 编程提示8251的控制口地址为2B9H,数据口地址为2B8H。8254计数器的计数初值=时钟频率/(波特率X波特率因子),这

5、里的时钟频率接1MHz,波 特率若选1200,波特率因子16,则计数器初值52。1MHz = 1000000Hzl&OOOOO 52. 0833. . - 521920Q基于8251芯片实现异步串行通信一般有两种方式,一种是查询方式,另一种是中断方式, 使用哪种方式取决于进行初始化时寄存器的设置。8254计数器的计数初值=时钟频率/(波特率X波特率因子),这里的时钟频率接1MHz, 波特率若选1200,波特率因子若选16,则计数器初值为52。本实验采用8251A异步方式发送,利用8086汇编语言实验计算机点到点的串口通信,设置:波特率为1200bps、数据位7位、停止位1位、偶校验方式,利用查

6、询方式或中断方式实 现双机通信,能够传输多个字符。程序具体设计如下:1)基础型实验:从键盘输入一个文件或打开已有的文件发送出去再接收回来在屏幕上显示, 实现自发自收。2)提高型实验:设计发送方和接收方两个程序,要求将某汇编语言传送到接收方,接收方 收到后将源程序写入指定磁盘或屏幕显示。1 3-14串行接口通信编程流程图5. 实验代码发送端代码:STACK SEGMENT PARA STACKDB 256 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV DX,3FBH 线路控制寄存器MOV AX,80H10000000B,

7、DLAB=1,数据位,停止位,校验位,波特率因子OUT DX,ALMOV DX,3F8HMOV AX,60H 波特率寄存器(低) 查表OUT DX,ALMOV DX,3F9HMOV AX,0OUT DX,AL波特率寄存器(高) 查表MOV DX,3FBHMOV AX,0AHOUT DX,AL线路控制寄存器00001010B,DLAB=0MOV DX,3FCH;MOV AX,03HOUT DX,AL调制解调器控制寄存器00000011B,OUT1,2均输出1,请求发送,数据已就绪MOV DX,3F9HMOV AX,0OUT DX,AL中断允许寄存器各种中断全部禁止FOREVER:用死循环不断检测

8、8251状态MOV DX,3FDH;从线路状态寄存器读状态IN AL,DXTEST AL,1EHJNZERROR死记;传输线状态寄存器全部都是0TEST AL,01HJNZ RECEIVE00000001B,检测接收缓存寄存器是否有数据 可以收了TEST AL,20HJNZ SENDJMP FOREVER00100000B,检测发送保持寄存器是否为空可以发了SEND:INT 16HJZ FOREVER可以发但是未接收到键盘字符收到了MOV AH,0INT 16H输入读入ALMOV DX,3F8H扔进(对于发送端是)发送保持寄存器,发出OUT DX,ALCMP AL,03HJE DONEMOV

9、DL,ALMOV AH,02HINT 21H显示发送的字符CMP AL,0DH00001101BJNZ FOREVERMOV DL,0AHMOV AH,02HINT 21HJMP FOREVERRECEIVE:MOV DX,3F8HIN AL,DXAND AL,7FHCMP AL,03H;JZ DONEMOV DL,ALMOV AH,02HINT 21HCMP AL,0DHJNZ FOREVERMOV DL,0AHMOV AH,02HINT 21HJMP FOREVERERROR:MOV DX,3F8HIN AL,DXMOV DL,0AHMOV AH,02HINT 21HJMP FOREVER

10、DONE:MOV AH,4CHINT 21HCODE ENDSEND STAR接收端代码:DATA SEGMENTIO8254A EQU 280HIO8251AEQU 2B8HIO8251BEQU 2B9HDATA ENDSSTACK SEGMENT PARA STACKDB 256 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV DX,IO8254A+3MOV AL,00010110BOUT DX,ALMOV DX,IO8254AMOV AL,52OUT DX,A

11、LMOV DX,IO8251BMOV AX,0MOV CX,3reset8251:OUT DX,ALPUSH CXMOV CX,40HLOOP $POP CXLOOP reset8251MOV AL,40HOUT DX,ALMOV CX,40HLOOP $MOV AL,5AHOUT DX,ALMOV AL,27HOUT DX,ALFOREVER:MOV DX,IO8251BIN AL,DXTEST AL,38HJNZERRORTEST AL,02HJNZ RECEIVETEST AL,01HJNZ send;设置8254计数器0工作方式;给8254计数器0送初值;对8251进行初始化;向825

12、1控制端口送40H,使其复位;从线路状态寄存器读状态;检测是否为00111000;传输线状态寄存器全部都是0;检测接受数据是否准备好了;等于0则表示数据没有准备好;数据没有准备好;没有,则跳转等待JMP FOREVERsend:MOV AH,1INT 16HJZ FOREVERMOV AH,0INT 16HMOV DX,IO8251AOUT DX,ALCMP AL,03HJZ DONE;检测键盘按下;有键盘按下;读键盘;将键盘的数据输出发送到缓冲器MOV DL,ALMOV AH,02HINT 21HCMP AL,0DHJNZ FOREVERMOV DL,0AHMOV AH,02HINT 21HJMP FOREVERRECEIVE:;接收数据;最高位为停止位MOV DX,IO8251AIN AL,DXAND AL,7FHCMP AL,03H;JZ DONEMOV DL,ALMOV AH,02HINT 21HCMP AL,0DHJNZ FOREVERMOV DL,0AHMOV AH,02HINT 21HJMP FOREVERCMP AL,0DHJNZ FOREVERERROR:MOV DX,IO8251AIN AL,DXMOV DL,?MOV AH,02HINT 21HJMP FOREVERDONE:MOV AH,4CHINT 21HCODE ENDSEND START

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号