好文档 - 专业文书写作范文服务资料分享网站

微机基础原理与接口技术实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

-/

三、实验结果及其分析 -/

实验名称 姓 名 实验日期 6.22 实验四 (2) 8251 可编程通信实验(与微机) 系院专业 导教师 班 级 1 学 号 成 绩 一、实验目的和要求 了解 8251 的内部结构、工作原理;了解 8251 与 8086 的接口逻辑;掌握对 8251 的初始 化编程方法,学会使用 8251 实现设备之间的串行通信。 复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。 二、实验内容(包括实验步骤和代码) 实验内容 1、编制程序:实现 8251 与 PC 机的串行通讯,使用 8253 作分频器提供 8251 的收发时 钟。 2、连接线路,使 8251 从微机接收一批数据,接收完毕,再将它们回送给微机。 实验原理图 实验步骤 1、连线说明: C4 区:CS(8253)、A0、A1 —— A3 区:CS2、A0、A1 C4 区:CLK0 —— B2 区:2M C4 区:GATE —— C1 区的 VCC C4 区:OUT0 —— C3 区:RxC TxC C3 区:CS(8251)、C/D —— A3 区:CS4、A0 C3 区:CLK —— B2 区:4M C3 区:RXD、TXD —— D7 区:RXD、TXD 2、运行程序。 3、运行“串口助手(ComPort.EXE)”,设置串口(波特率 4800,8 个数据位,一个停止位, 偶校验),打开串口,选择“HEX 发送”、“HEX 显示”,向 8251 发送 10 个字节数据(输入数据 之间用空格分隔),是否能接收到 10 个字节数据,接收到的数据是否与发送数据一致。 4、改变传输数据的数目,重复实验,观察结果。 -/

演示程序 .MODEL TINY ;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps CTL_ADDR EQU 0241H ;控制字或状态字 DATA_ADDR EQU 0240H ;读写数据 W_8253_T0 EQU 0260H ;计数器0地址 W_8253_C EQU 0263H ;控制字 .STACK 100 .DATA Receive_Buffer DB 10 DUP(0) ;接受缓冲器 Send_Buffer EQU Receive_Buffer ;发送缓冲器 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL INIT_8253 CALL INIT_8251 START1: MOV CX,10 CALL Receive_Group MOV CX,10 CALL Send_Group JMP START1 INIT_8253 PROC NEAR MOV DX,W_8253_C MOV AL,37H ;定时器0,方式3 OUT DX,AL MOV DX,W_8253_T0 MOV AL,26H ;BCD码26(2000000/26)=16*4800 OUT DX,AL MOV AL,0 OUT DX,AL RET INIT_8253 ENDP INIT_8251 PROC NEAR CALL RESET_8251 MOV DX,CTL_ADDR MOV AL,7EH ;波特率系数为16,8个数据位 OUT DX,AL ;一个停止位,偶校验 CALL DLTIME ;延时 MOV AL,15H ;允许接收和发送发送数据,清错误标志 OUT DX,AL CALL DLTIME RET -/

INIT_8251 ENDP Reset_8251 PROC NEAR MOV DX,CTL_ADDR MOV AL,0 OUT DX,AL ;向控制口写入\CALL DLTIME ;延时,等待写操作完成 OUT DX,AL ;向控制口写入\CALL DLTIME ;延时 OUT DX,AL ;向控制口写入\CALL DLTIME ;延时 MOV AL,40H ;向控制口写入复位字40H OUT DX,AL CALL DLTIME RET Reset_8251 ENDP ;接受一组数据,CX--接受数目 Receive_Group PROC NEAR LEA DI,Receive_Buffer Receive_Group1: CALL Receive_Byte STOSB LOOP Receive_Group1 RET Receive_Group ENDP ;接受一个字节 Receive_Byte PROC NEAR MOV DX,CTL_ADDR Receive_Byte1: IN AL,DX ;读入状态 TEST AL,2 JZ Receive_Byte1 ;有数据吗? MOV DX,DATA_ADDR ;有 IN AL,DX RET Receive_Byte ENDP ;发送一组数据,CX--发送数目 Send_Group PROC NEAR LEA SI,Send_Buffer Send_Group1: LODSB CALL SendByte LOOP Send_Group1 RET Send_Group ENDP ;发送一个字节 Sendbyte PROC NEAR PUSH AX -/

MOV DX,CTL_ADDR ;读入状态 Sendbyte1: IN AL,DX TEST AL,1 JZ Sendbyte1 ;允许数据发送吗? POP AX ;发送 MOV DX,DATA_ADDR OUT DX,AL RET Sendbyte ENDP ;延时 DLTIME PROC NEAR MOV CX,10 LOOP $ RET DLTIME ENDP END START 三、实验结果及其分析 在这个实验里,A,B口工作在输出方式,C口高4位工作在输出方式,用来控制行的状态,它的低4位工作在输入方式,用来判断那一列有键按下。A口控制位码,控制那一个显示器显示,B口控制段码,控制到底显示哪一个数字。

微机基础原理与接口技术实验报告

-/三、实验结果及其分析-/实验名称姓名实验日期6.22实验四(2)8251可编程通信实验(与微机)系院专业导教师班级1学号成绩一、实验目的和要求了解8251的内部结构、工作原理;了解8251与8086的接口逻辑;掌握对
推荐度:
点击下载文档文档为doc格式
78viy9hlk96et871df8g8njyy26yjv018k1
领取福利

微信扫码领取福利

微信扫码分享