云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于8251双机通信设计 - 图文

基于8251双机通信设计 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/4/24 4:54:36

JMP Exit

InitPCI2: MOV AH,0B1H

MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡

LEA DX,msg1 JMP

InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H MOV AL,09H INT 1AH

;读取该卡PCI9052基地址

JNC InitPCI4 LEA DX,msg2 JMP

InitPCI1

InitPCI4: AND

CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI

ENDP

ModifyAddress PROC NEAR ADD CTL_ADDR,CX ADD DATA_ADDR,CX ADD W_8253_T0,CX ADD W_8253_C,CX

RET ModifyAddress ENDP Exit: MOV AH,4CH

INT 21H

END START

20

2、双机通信接收机源程序 .MODEL

TINY

;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_ID EQU Device_ID EQU

.STACK 100 .DATA

;控制字或状态字 ;读写数据

10EBH ;厂商ID号 8376

;设备ID号

Receive_Buffer EQU 3000H

CTL_ADDR DW 00F1H W_8253_T0 DW 00B0H W_8253_C DW 00B3H

IO_Bit8_BaseAddress DW msg0 msg1 msg2

?

DATA_ADDR DW 00F0H

;计数器0地址 ;控制字

DB 'BIOS不支持访问PCI $' DB '找不到Star PCI9052板卡 $' DB '读8位I/O空间基地址时出错$'

//Receive_Buffer DB 10 DUP(0) ;接受缓冲器

.CODE

MOV DS,AX MOV ES,AX NOP

CALL InitPCI

START: MOV AX,@DATA

CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址

CALL INIT_8253 CALL INIT_8251

MOV CX,10

;OUT1输出频率为1S的方波

CALL Receive_Group CALL IfExit JZ START1

21

START1:

JMP Exit

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,14H

;只允许接收数据,清错误标志,

OUT DX,AL CALL DLTIME

RET

INIT_8251 ENDP

;8251的复位,对8251的控制口进行一次写入后须有恢复时间 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

22

CALL DLTIME

RET

Reset_8251 ENDP

;接受一组数据,CX--接受数目 Receive_Group PROC NEAR MOV DI,Receive_Buffer

Receive_Group1:

CALL Receive_Byte

STOSB

MOV AH,06H

MOV BX,3000H

INT 10H ;显示中断调用 LOOP Receive_Group1

RET

Receive_Group ENDP ;接受一个字节 Receive_Byte PROC NEAR

MOV DX,CTL_ADDR Receive_Byte1: IN AL,DX

;读入状态

TEST AL,02H JZ Receive_Byte1 ;有数据吗?

MOV DX,DATA_ADDR

;有

IN AL,DX

RET

Receive_Byte ENDP ;延时 DLTIME

PROC NEAR

PUSH AX PUSH DX MOV DX,1 ;延时1ms MOV AH,0FFH

;星研公司提供的软中断

INT 21H POP DX POP AX

RET

DLTIME

ENDP

23

搜索更多关于: 基于8251双机通信设计 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

JMP Exit InitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1 JMP InitPCI1 InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;读取该卡PCI9052基地址 JNC InitPCI4 LEA DX,msg2 JMP InitPCI1 InitPCI4: AND CX,0F

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com